Optimized E settings
This commit is contained in:
parent
f7d253e7e3
commit
0569bb0167
@ -35,7 +35,7 @@
|
||||
#define JS8E_TX_SECONDS 4
|
||||
#define JS8E_START_DELAY_MS 100
|
||||
#else
|
||||
#define JS8E_SYMBOL_SAMPLES 4000
|
||||
#define JS8E_SYMBOL_SAMPLES 3840
|
||||
#define JS8E_TX_SECONDS 30
|
||||
#define JS8E_START_DELAY_MS 500
|
||||
#endif
|
||||
|
@ -17,7 +17,8 @@
|
||||
! parameter (NSPS=960, NTXDUR=8, NDOWNSPS=24, NDD=100, JZ=116) ! 100 Hz 12.50 baud 32 wpm -22.0dB (1.0Eb/N0) 5.92s
|
||||
! parameter (NSPS=1200, NTXDUR=10, NDOWNSPS=20, NDD=100, JZ=116) ! 80 Hz 10 baud 24 wpm -23.0dB (1.0Eb/N0) 7.90s
|
||||
! parameter (NSPS=1920, NTXDUR=15, NDOWNSPS=32, NDD=100, JZ=116) ! 50 Hz 6.250 baud 16 wpm -25.0dB (1.0Eb/N0) 12.64s
|
||||
parameter (NSPS=4000, NTXDUR=30, NDOWNSPS=40, NDD=90, JZ=116) ! 24 Hz 3 baud 8 wpm -28.2dB (1.0Eb/N0) 26.33s
|
||||
parameter (NSPS=3840, NTXDUR=30, NDOWNSPS=32, NDD=94, JZ=116) ! 24 Hz 3.125 baud 8 wpm -28.0dB (1.0Eb/N0) 25.28s
|
||||
! parameter (NSPS=4000, NTXDUR=30, NDOWNSPS=40, NDD=90, JZ=116) ! 24 Hz 3 baud 8 wpm -28.2dB (1.0Eb/N0) 26.33s
|
||||
|
||||
parameter (AZ=12000.0/(1.0*NSPS)*0.8d0) !Dedupe overlap in Hz
|
||||
parameter (ASTART=0.5) !Start delay in seconds
|
||||
|
@ -1031,7 +1031,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
// reorder so slow is at the top
|
||||
ui->menuModeJS8->removeAction(ui->actionModeJS8UltraSlow);
|
||||
ui->menuModeJS8->insertAction(ui->actionModeJS8Normal, ui->actionModeJS8UltraSlow);
|
||||
ui->actionModeJS8UltraSlow->setText("JS8 (&Slow, 30s, 24Hz, ~8WPM)");
|
||||
ui->actionModeJS8UltraSlow->setText("JS8 (&Slow, 30s, 25Hz, ~8WPM)");
|
||||
}
|
||||
|
||||
// prep
|
||||
@ -2491,9 +2491,9 @@ void MainWindow::fixStop()
|
||||
|
||||
int MainWindow::computeSubmodePeriod(int submode){
|
||||
switch(submode){
|
||||
case Varicode::JS8CallNormal: return JS8A_TX_SECONDS;
|
||||
case Varicode::JS8CallFast: return JS8B_TX_SECONDS;
|
||||
case Varicode::JS8CallTurbo: return JS8C_TX_SECONDS;
|
||||
case Varicode::JS8CallNormal: return JS8A_TX_SECONDS;
|
||||
case Varicode::JS8CallFast: return JS8B_TX_SECONDS;
|
||||
case Varicode::JS8CallTurbo: return JS8C_TX_SECONDS;
|
||||
case Varicode::JS8CallUltraSlow: return JS8E_TX_SECONDS;
|
||||
}
|
||||
|
||||
@ -4003,16 +4003,15 @@ bool MainWindow::decodeReady(int submode, int period, int *pSubmode, int *pPerio
|
||||
qint32 cycleSampleStartE = computeCycleStartForDecode(cycleE, JS8E_TX_SECONDS);
|
||||
qint32 framesNeededE = computeFramesNeededForDecode(Varicode::JS8CallUltraSlow, JS8E_TX_SECONDS);
|
||||
bool couldDecodeE = k >= cycleSampleStartE + framesNeededE;
|
||||
#if !JS8E_IS_ULTRA
|
||||
static int lastE = -1;
|
||||
|
||||
// protect against multiple decodes for the same cycle
|
||||
static int lastDecodeCycleE = -1;
|
||||
if(couldDecodeE){
|
||||
if(cycleE == lastE){
|
||||
if(cycleE == lastDecodeCycleE){
|
||||
couldDecodeE = false;
|
||||
}
|
||||
lastE = cycleE;
|
||||
lastDecodeCycleE = cycleE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#else
|
||||
qint32 cycleSampleStartE = 0;
|
||||
qint32 framesNeededE = 0;
|
||||
@ -4504,7 +4503,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
||||
DecodedText decodedtext {QString::fromUtf8 (t.constData ()).remove (QRegularExpression {"\r|\n"}), "FT8" == m_mode &&
|
||||
ui->cbVHFcontest->isChecked(), m_config.my_grid ()};
|
||||
|
||||
bool bValidFrame = decodedtext.snr() > -24;
|
||||
bool bValidFrame = decodedtext.snr() > -28;
|
||||
|
||||
// dupe check
|
||||
auto frame = decodedtext.message();
|
||||
@ -7220,7 +7219,7 @@ void MainWindow::prepareHeartbeatMode(bool enabled){
|
||||
ui->hbMacroButton->setChecked(false);
|
||||
}
|
||||
ui->actionHeartbeat->setEnabled(enabled);
|
||||
ui->actionModeJS8HB->setEnabled(m_nSubMode == Varicode::JS8CallNormal);
|
||||
ui->actionModeJS8HB->setEnabled(m_nSubMode == Varicode::JS8CallNormal || (!JS8E_IS_ULTRA && m_nSubMode == Varicode::JS8CallUltraSlow));
|
||||
ui->actionHeartbeatAcknowledgements->setEnabled(ui->actionModeAutoreply->isChecked() && enabled);
|
||||
|
||||
#if 0
|
||||
@ -7268,7 +7267,7 @@ void MainWindow::on_actionJS8_triggered()
|
||||
}
|
||||
|
||||
// Only enable heartbeat for normal mode
|
||||
ui->actionModeJS8HB->setEnabled(m_nSubMode == Varicode::JS8CallNormal);
|
||||
ui->actionModeJS8HB->setEnabled(m_nSubMode == Varicode::JS8CallNormal || (!JS8E_IS_ULTRA && m_nSubMode == Varicode::JS8CallUltraSlow));
|
||||
prepareHeartbeatMode(ui->actionModeJS8HB->isEnabled() && ui->actionModeJS8HB->isChecked());
|
||||
|
||||
//if(m_nSubMode != Varicode::JS8CallNormal){
|
||||
|
@ -25,11 +25,10 @@ public:
|
||||
|
||||
// submode types
|
||||
enum SubmodeType {
|
||||
JS8CallNormal = 0,
|
||||
JS8CallFast = 1,
|
||||
JS8CallTurbo = 2,
|
||||
JS8CallSlow = 4,
|
||||
JS8CallUltraSlow = 4
|
||||
JS8CallNormal = 0,
|
||||
JS8CallFast = 1,
|
||||
JS8CallTurbo = 2,
|
||||
JS8CallUltraSlow = 4
|
||||
};
|
||||
|
||||
// frame type transmitted via itype and decoded by the ft8 decoded
|
||||
|
Loading…
Reference in New Issue
Block a user