Remainder of renames to FST4

This commit is contained in:
Bill Somerville 2020-07-23 18:51:05 +01:00
parent 085e63e05d
commit 580dd85a18
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
11 changed files with 150 additions and 150 deletions

View File

@ -69,7 +69,7 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym
m_bFastMode=fastMode; m_bFastMode=fastMode;
m_TRperiod=TRperiod; m_TRperiod=TRperiod;
unsigned delay_ms=1000; unsigned delay_ms=1000;
if(mode=="FT8" or (mode=="FST240" and m_nsps==720)) delay_ms=500; //FT8, FST240-15 if(mode=="FT8" or (mode=="FST4" and m_nsps==720)) delay_ms=500; //FT8, FST4-15
if(mode=="FT4") delay_ms=300; //FT4 if(mode=="FT4") delay_ms=300; //FT4
// noise generator parameters // noise generator parameters

View File

@ -14,7 +14,7 @@ QRA64 1111100101101101100000000010000000
ISCAT 1001110000000001100000000000000000 ISCAT 1001110000000001100000000000000000
MSK144 1011111101000000000100010000000000 MSK144 1011111101000000000100010000000000
WSPR 0000000000000000010100000000000000 WSPR 0000000000000000010100000000000000
FST240W 0000000000000000010100000000000001 FST4W 0000000000000000010100000000000001
Echo 0000000000000000000000100000000000 Echo 0000000000000000000000100000000000
FCal 0011010000000000000000000000010000 FCal 0011010000000000000000000000010000
FT8 1110100001001110000100001001100010 FT8 1110100001001110000100001001100010
@ -61,4 +61,4 @@ Mapping of column numbers to widgets
30. labDXped 30. labDXped
31. cbRxAll 31. cbRxAll
32. cbCQonly 32. cbCQonly
33. sbTR_FST240W 33. sbTR_FST4W

View File

@ -46,22 +46,22 @@ namespace
{20000000, Modes::FreqCal, IARURegions::ALL}, {20000000, Modes::FreqCal, IARURegions::ALL},
{136000, Modes::WSPR, IARURegions::ALL}, {136000, Modes::WSPR, IARURegions::ALL},
{136200, Modes::FST240W, IARURegions::ALL}, {136200, Modes::FST4W, IARURegions::ALL},
{136130, Modes::JT65, IARURegions::ALL}, {136130, Modes::JT65, IARURegions::ALL},
{136130, Modes::JT9, IARURegions::ALL}, {136130, Modes::JT9, IARURegions::ALL},
{136130, Modes::FST240, IARURegions::ALL}, {136130, Modes::FST4, IARURegions::ALL},
{474200, Modes::JT65, IARURegions::ALL}, {474200, Modes::JT65, IARURegions::ALL},
{474200, Modes::JT9, IARURegions::ALL}, {474200, Modes::JT9, IARURegions::ALL},
{474200, Modes::FST240, IARURegions::ALL}, {474200, Modes::FST4, IARURegions::ALL},
{474200, Modes::WSPR, IARURegions::ALL}, {474200, Modes::WSPR, IARURegions::ALL},
{474400, Modes::FST240W, IARURegions::ALL}, {474400, Modes::FST4W, IARURegions::ALL},
{1836600, Modes::WSPR, IARURegions::ALL}, {1836600, Modes::WSPR, IARURegions::ALL},
{1836800, Modes::FST240W, IARURegions::ALL}, {1836800, Modes::FST4W, IARURegions::ALL},
{1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations {1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations
{1839000, Modes::JT9, IARURegions::ALL}, {1839000, Modes::JT9, IARURegions::ALL},
{1839000, Modes::FST240, IARURegions::ALL}, {1839000, Modes::FST4, IARURegions::ALL},
{1840000, Modes::FT8, IARURegions::ALL}, {1840000, Modes::FT8, IARURegions::ALL},
// Band plans (all USB dial unless stated otherwise) // Band plans (all USB dial unless stated otherwise)
@ -93,10 +93,10 @@ namespace
// //
{3570000, Modes::JT65, IARURegions::ALL}, // JA compatible {3570000, Modes::JT65, IARURegions::ALL}, // JA compatible
{3572000, Modes::JT9, IARURegions::ALL}, {3572000, Modes::JT9, IARURegions::ALL},
{3572000, Modes::FST240, IARURegions::ALL}, {3572000, Modes::FST4, IARURegions::ALL},
{3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation {3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation
{3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out {3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out
{3568800, Modes::FST240W, IARURegions::ALL}, {3568800, Modes::FST4W, IARURegions::ALL},
{3575000, Modes::FT4, IARURegions::ALL}, // provisional {3575000, Modes::FT4, IARURegions::ALL}, // provisional
{3568000, Modes::FT4, IARURegions::R3}, // provisional {3568000, Modes::FT4, IARURegions::R3}, // provisional
@ -132,11 +132,11 @@ namespace
// 7110 LSB EMCOMM // 7110 LSB EMCOMM
// //
{7038600, Modes::WSPR, IARURegions::ALL}, {7038600, Modes::WSPR, IARURegions::ALL},
{7038800, Modes::FST240W, IARURegions::ALL}, {7038800, Modes::FST4W, IARURegions::ALL},
{7074000, Modes::FT8, IARURegions::ALL}, {7074000, Modes::FT8, IARURegions::ALL},
{7076000, Modes::JT65, IARURegions::ALL}, {7076000, Modes::JT65, IARURegions::ALL},
{7078000, Modes::JT9, IARURegions::ALL}, {7078000, Modes::JT9, IARURegions::ALL},
{7078000, Modes::FST240, IARURegions::ALL}, {7078000, Modes::FST4, IARURegions::ALL},
{7047500, Modes::FT4, IARURegions::ALL}, // provisional - moved {7047500, Modes::FT4, IARURegions::ALL}, // provisional - moved
// up 500Hz to clear // up 500Hz to clear
// W1AW code practice QRG // W1AW code practice QRG
@ -170,9 +170,9 @@ namespace
{10136000, Modes::FT8, IARURegions::ALL}, {10136000, Modes::FT8, IARURegions::ALL},
{10138000, Modes::JT65, IARURegions::ALL}, {10138000, Modes::JT65, IARURegions::ALL},
{10138700, Modes::WSPR, IARURegions::ALL}, {10138700, Modes::WSPR, IARURegions::ALL},
{10138900, Modes::FST240W, IARURegions::ALL}, {10138900, Modes::FST4W, IARURegions::ALL},
{10140000, Modes::JT9, IARURegions::ALL}, {10140000, Modes::JT9, IARURegions::ALL},
{10140000, Modes::FST240, IARURegions::ALL}, {10140000, Modes::FST4, IARURegions::ALL},
{10140000, Modes::FT4, IARURegions::ALL}, // provisional {10140000, Modes::FT4, IARURegions::ALL}, // provisional
// Band plans (all USB dial unless stated otherwise) // Band plans (all USB dial unless stated otherwise)
@ -213,11 +213,11 @@ namespace
// 14106.5 OLIVIA 1000 (main QRG) // 14106.5 OLIVIA 1000 (main QRG)
// //
{14095600, Modes::WSPR, IARURegions::ALL}, {14095600, Modes::WSPR, IARURegions::ALL},
{14095800, Modes::FST240W, IARURegions::ALL}, {14095800, Modes::FST4W, IARURegions::ALL},
{14074000, Modes::FT8, IARURegions::ALL}, {14074000, Modes::FT8, IARURegions::ALL},
{14076000, Modes::JT65, IARURegions::ALL}, {14076000, Modes::JT65, IARURegions::ALL},
{14078000, Modes::JT9, IARURegions::ALL}, {14078000, Modes::JT9, IARURegions::ALL},
{14078000, Modes::FST240, IARURegions::ALL}, {14078000, Modes::FST4, IARURegions::ALL},
{14080000, Modes::FT4, IARURegions::ALL}, // provisional {14080000, Modes::FT4, IARURegions::ALL}, // provisional
// Band plans (all USB dial unless stated otherwise) // Band plans (all USB dial unless stated otherwise)
@ -250,33 +250,33 @@ namespace
{18100000, Modes::FT8, IARURegions::ALL}, {18100000, Modes::FT8, IARURegions::ALL},
{18102000, Modes::JT65, IARURegions::ALL}, {18102000, Modes::JT65, IARURegions::ALL},
{18104000, Modes::JT9, IARURegions::ALL}, {18104000, Modes::JT9, IARURegions::ALL},
{18104000, Modes::FST240, IARURegions::ALL}, {18104000, Modes::FST4, IARURegions::ALL},
{18104000, Modes::FT4, IARURegions::ALL}, // provisional {18104000, Modes::FT4, IARURegions::ALL}, // provisional
{18104600, Modes::WSPR, IARURegions::ALL}, {18104600, Modes::WSPR, IARURegions::ALL},
{18104800, Modes::FST240W, IARURegions::ALL}, {18104800, Modes::FST4W, IARURegions::ALL},
{21074000, Modes::FT8, IARURegions::ALL}, {21074000, Modes::FT8, IARURegions::ALL},
{21076000, Modes::JT65, IARURegions::ALL}, {21076000, Modes::JT65, IARURegions::ALL},
{21078000, Modes::JT9, IARURegions::ALL}, {21078000, Modes::JT9, IARURegions::ALL},
{21078000, Modes::FST240, IARURegions::ALL}, {21078000, Modes::FST4, IARURegions::ALL},
{21094600, Modes::WSPR, IARURegions::ALL}, {21094600, Modes::WSPR, IARURegions::ALL},
{21094800, Modes::FST240W, IARURegions::ALL}, {21094800, Modes::FST4W, IARURegions::ALL},
{21140000, Modes::FT4, IARURegions::ALL}, {21140000, Modes::FT4, IARURegions::ALL},
{24915000, Modes::FT8, IARURegions::ALL}, {24915000, Modes::FT8, IARURegions::ALL},
{24917000, Modes::JT65, IARURegions::ALL}, {24917000, Modes::JT65, IARURegions::ALL},
{24919000, Modes::JT9, IARURegions::ALL}, {24919000, Modes::JT9, IARURegions::ALL},
{24919000, Modes::FST240, IARURegions::ALL}, {24919000, Modes::FST4, IARURegions::ALL},
{24919000, Modes::FT4, IARURegions::ALL}, // provisional {24919000, Modes::FT4, IARURegions::ALL}, // provisional
{24924600, Modes::WSPR, IARURegions::ALL}, {24924600, Modes::WSPR, IARURegions::ALL},
{24924800, Modes::FST240W, IARURegions::ALL}, {24924800, Modes::FST4W, IARURegions::ALL},
{28074000, Modes::FT8, IARURegions::ALL}, {28074000, Modes::FT8, IARURegions::ALL},
{28076000, Modes::JT65, IARURegions::ALL}, {28076000, Modes::JT65, IARURegions::ALL},
{28078000, Modes::JT9, IARURegions::ALL}, {28078000, Modes::JT9, IARURegions::ALL},
{28078000, Modes::FST240, IARURegions::ALL}, {28078000, Modes::FST4, IARURegions::ALL},
{28124600, Modes::WSPR, IARURegions::ALL}, {28124600, Modes::WSPR, IARURegions::ALL},
{28124800, Modes::FST240W, IARURegions::ALL}, {28124800, Modes::FST4W, IARURegions::ALL},
{28180000, Modes::FT4, IARURegions::ALL}, {28180000, Modes::FT4, IARURegions::ALL},
{50200000, Modes::Echo, IARURegions::ALL}, {50200000, Modes::Echo, IARURegions::ALL},
@ -287,11 +287,11 @@ namespace
{50260000, Modes::MSK144, IARURegions::R3}, {50260000, Modes::MSK144, IARURegions::R3},
{50293000, Modes::WSPR, IARURegions::R2}, {50293000, Modes::WSPR, IARURegions::R2},
{50293000, Modes::WSPR, IARURegions::R3}, {50293000, Modes::WSPR, IARURegions::R3},
{50293200, Modes::FST240W, IARURegions::R2}, {50293200, Modes::FST4W, IARURegions::R2},
{50293200, Modes::FST240W, IARURegions::R3}, {50293200, Modes::FST4W, IARURegions::R3},
{50310000, Modes::JT65, IARURegions::ALL}, {50310000, Modes::JT65, IARURegions::ALL},
{50312000, Modes::JT9, IARURegions::ALL}, {50312000, Modes::JT9, IARURegions::ALL},
{50312000, Modes::FST240, IARURegions::ALL}, {50312000, Modes::FST4, IARURegions::ALL},
{50313000, Modes::FT8, IARURegions::ALL}, {50313000, Modes::FT8, IARURegions::ALL},
{50318000, Modes::FT4, IARURegions::ALL}, // provisional {50318000, Modes::FT4, IARURegions::ALL}, // provisional
{50323000, Modes::FT8, IARURegions::ALL}, {50323000, Modes::FT8, IARURegions::ALL},
@ -300,7 +300,7 @@ namespace
{70102000, Modes::JT65, IARURegions::R1}, {70102000, Modes::JT65, IARURegions::R1},
{70104000, Modes::JT9, IARURegions::R1}, {70104000, Modes::JT9, IARURegions::R1},
{70091000, Modes::WSPR, IARURegions::R1}, {70091000, Modes::WSPR, IARURegions::R1},
{70091200, Modes::FST240W, IARURegions::R2}, {70091200, Modes::FST4W, IARURegions::R2},
{70230000, Modes::MSK144, IARURegions::R1}, {70230000, Modes::MSK144, IARURegions::R1},
{144120000, Modes::JT65, IARURegions::ALL}, {144120000, Modes::JT65, IARURegions::ALL},
@ -310,7 +310,7 @@ namespace
{144360000, Modes::MSK144, IARURegions::R1}, {144360000, Modes::MSK144, IARURegions::R1},
{144150000, Modes::MSK144, IARURegions::R2}, {144150000, Modes::MSK144, IARURegions::R2},
{144489000, Modes::WSPR, IARURegions::ALL}, {144489000, Modes::WSPR, IARURegions::ALL},
{144489200, Modes::FST240W, IARURegions::R2}, {144489200, Modes::FST4W, IARURegions::R2},
{144120000, Modes::QRA64, IARURegions::ALL}, {144120000, Modes::QRA64, IARURegions::ALL},
{222065000, Modes::Echo, IARURegions::R2}, {222065000, Modes::Echo, IARURegions::R2},

View File

@ -25,8 +25,8 @@ namespace
"FreqCal", "FreqCal",
"FT8", "FT8",
"FT4", "FT4",
"FST240", "FST4",
"FST240W" "FST4W"
}; };
std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]); std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]);
} }

View File

@ -50,8 +50,8 @@ public:
FreqCal, FreqCal,
FT8, FT8,
FT4, FT4,
FST240, FST4,
FST240W, FST4W,
MODES_END_SENTINAL_AND_COUNT // this must be last MODES_END_SENTINAL_AND_COUNT // this must be last
}; };
Q_ENUM (Mode) Q_ENUM (Mode)

View File

@ -486,7 +486,7 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx
if(modeTx=="JT4") t1=" $ "; if(modeTx=="JT4") t1=" $ ";
if(modeTx=="JT65") t1=" # "; if(modeTx=="JT65") t1=" # ";
if(modeTx=="MSK144") t1=" & "; if(modeTx=="MSK144") t1=" & ";
if(modeTx=="FST240") t1=" ` "; if(modeTx=="FST4") t1=" ` ";
QString t2; QString t2;
t2 = t2.asprintf("%4d",txFreq); t2 = t2.asprintf("%4d",txFreq);
QString t; QString t;

View File

@ -105,7 +105,7 @@ extern "C" {
void genft4_(char* msg, int* ichk, char* msgsent, char ft4msgbits[], int itone[], void genft4_(char* msg, int* ichk, char* msgsent, char ft4msgbits[], int itone[],
fortran_charlen_t, fortran_charlen_t); fortran_charlen_t, fortran_charlen_t);
void genfst240_(char* msg, int* ichk, char* msgsent, char fst240msgbits[], void genfst4_(char* msg, int* ichk, char* msgsent, char fst4msgbits[],
int itone[], int* iwspr, fortran_charlen_t, fortran_charlen_t); int itone[], int* iwspr, fortran_charlen_t, fortran_charlen_t);
void gen_ft8wave_(int itone[], int* nsym, int* nsps, float* bt, float* fsample, float* f0, void gen_ft8wave_(int itone[], int* nsym, int* nsps, float* bt, float* fsample, float* f0,
@ -114,7 +114,7 @@ extern "C" {
void gen_ft4wave_(int itone[], int* nsym, int* nsps, float* fsample, float* f0, void gen_ft4wave_(int itone[], int* nsym, int* nsps, float* fsample, float* f0,
float xjunk[], float wave[], int* icmplx, int* nwave); float xjunk[], float wave[], int* icmplx, int* nwave);
void gen_fst240wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample, void gen_fst4wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample,
int* hmod, float* f0, int* icmplx, float xjunk[], float wave[]); int* hmod, float* f0, int* icmplx, float xjunk[], float wave[]);
void gen4_(char* msg, int* ichk, char* msgsent, int itone[], void gen4_(char* msg, int* ichk, char* msgsent, int itone[],
@ -428,7 +428,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this});
ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this});
ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300, 900, 1800}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300, 900, 1800});
ui->sbTR_FST240W->values ({15, 30, 60, 120, 300, 900, 1800}); ui->sbTR_FST4W->values ({15, 30, 60, 120, 300, 900, 1800});
ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser->set_configuration (&m_config, true);
ui->decodedTextBrowser2->set_configuration (&m_config); ui->decodedTextBrowser2->set_configuration (&m_config);
@ -579,8 +579,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
on_EraseButton_clicked (); on_EraseButton_clicked ();
QActionGroup* modeGroup = new QActionGroup(this); QActionGroup* modeGroup = new QActionGroup(this);
ui->actionFST240->setActionGroup(modeGroup); ui->actionFST4->setActionGroup(modeGroup);
ui->actionFST240W->setActionGroup(modeGroup); ui->actionFST4W->setActionGroup(modeGroup);
ui->actionFT4->setActionGroup(modeGroup); ui->actionFT4->setActionGroup(modeGroup);
ui->actionFT8->setActionGroup(modeGroup); ui->actionFT8->setActionGroup(modeGroup);
ui->actionJT9->setActionGroup(modeGroup); ui->actionJT9->setActionGroup(modeGroup);
@ -1045,7 +1045,7 @@ void MainWindow::on_the_minute ()
} }
} }
if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W") { if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST4W") {
if (m_idleMinutes < m_config.watchdog ()) ++m_idleMinutes; if (m_idleMinutes < m_config.watchdog ()) ++m_idleMinutes;
update_watchdog_label (); update_watchdog_label ();
} else { } else {
@ -1122,7 +1122,7 @@ void MainWindow::writeSettings()
m_settings->setValue("NoOwnCall",ui->cbNoOwnCall->isChecked()); m_settings->setValue("NoOwnCall",ui->cbNoOwnCall->isChecked());
m_settings->setValue ("BandHopping", ui->band_hopping_group_box->isChecked ()); m_settings->setValue ("BandHopping", ui->band_hopping_group_box->isChecked ());
m_settings->setValue ("TRPeriod", ui->sbTR->value ()); m_settings->setValue ("TRPeriod", ui->sbTR->value ());
m_settings->setValue ("TRPeriod_FST240W", ui->sbTR_FST240W->value ()); m_settings->setValue ("TRPeriod_FST4W", ui->sbTR_FST4W->value ());
m_settings->setValue("FastMode",m_bFastMode); m_settings->setValue("FastMode",m_bFastMode);
m_settings->setValue("Fast9",m_bFast9); m_settings->setValue("Fast9",m_bFast9);
m_settings->setValue ("CQTxfreq", ui->sbCQTxFreq->value ()); m_settings->setValue ("CQTxfreq", ui->sbCQTxFreq->value ());
@ -1197,7 +1197,7 @@ void MainWindow::readSettings()
m_bFast9=m_settings->value("Fast9",false).toBool(); m_bFast9=m_settings->value("Fast9",false).toBool();
m_bFastMode=m_settings->value("FastMode",false).toBool(); m_bFastMode=m_settings->value("FastMode",false).toBool();
ui->sbTR->setValue (m_settings->value ("TRPeriod", 15).toInt()); ui->sbTR->setValue (m_settings->value ("TRPeriod", 15).toInt());
ui->sbTR_FST240W->setValue (m_settings->value ("TRPeriod_FST240W", 15).toInt()); ui->sbTR_FST4W->setValue (m_settings->value ("TRPeriod_FST4W", 15).toInt());
m_lastMonitoredFrequency = m_settings->value ("DialFreq", m_lastMonitoredFrequency = m_settings->value ("DialFreq",
QVariant::fromValue<Frequency> (default_frequency)).value<Frequency> (); QVariant::fromValue<Frequency> (default_frequency)).value<Frequency> ();
ui->WSPRfreqSpinBox->setValue(0); // ensure a change is signaled ui->WSPRfreqSpinBox->setValue(0); // ensure a change is signaled
@ -1341,7 +1341,7 @@ void MainWindow::fixStop()
m_hsymStop=50; m_hsymStop=50;
} else if (m_mode=="FT4") { } else if (m_mode=="FT4") {
m_hsymStop=21; m_hsymStop=21;
} else if(m_mode=="FST240" or m_mode=="FST240W") { } else if(m_mode=="FST4" or m_mode=="FST4W") {
int stop[] = {39,85,187,387,1003,3107,6232}; int stop[] = {39,85,187,387,1003,3107,6232};
int stop_EME[] = {48,95,197,396,1012,3107,6232}; int stop_EME[] = {48,95,197,396,1012,3107,6232};
int i=0; int i=0;
@ -1396,10 +1396,10 @@ void MainWindow::dataSink(qint64 frames)
int nsmo=m_wideGraph->smoothYellow()-1; int nsmo=m_wideGraph->smoothYellow()-1;
bool bLowSidelobes=m_config.lowSidelobes(); bool bLowSidelobes=m_config.lowSidelobes();
int npct=0; int npct=0;
if(m_mode.startsWith("FST240")) npct=ui->sbNB->value(); if(m_mode.startsWith("FST4")) npct=ui->sbNB->value();
symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s,
&m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct);
if(m_mode=="WSPR" or m_mode=="FST240W") wspr_downsample_(dec_data.d2,&k); if(m_mode=="WSPR" or m_mode=="FST4W") wspr_downsample_(dec_data.d2,&k);
if(m_ihsym <=0) return; if(m_ihsym <=0) return;
if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer
if(m_monitoring || m_diskData) { if(m_monitoring || m_diskData) {
@ -1506,7 +1506,7 @@ void MainWindow::dataSink(qint64 frames)
if(m_mode!="WSPR") decode(); //Start decoder if(m_mode!="WSPR") decode(); //Start decoder
if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return; if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return;
if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST240W")) { if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST4W")) {
//Always save unless "Save None"; may delete later //Always save unless "Save None"; may delete later
if(m_TRperiod < 60) { if(m_TRperiod < 60) {
int n=fmod(double(now.time().second()),m_TRperiod); int n=fmod(double(now.time().second()),m_TRperiod);
@ -1525,7 +1525,7 @@ void MainWindow::dataSink(qint64 frames)
m_saveWAVWatcher.setFuture (QtConcurrent::run (std::bind (&MainWindow::save_wave_file, m_saveWAVWatcher.setFuture (QtConcurrent::run (std::bind (&MainWindow::save_wave_file,
this, m_fnameWE, &dec_data.d2[0], samples, m_config.my_callsign(), this, m_fnameWE, &dec_data.d2[0], samples, m_config.my_callsign(),
m_config.my_grid(), m_mode, m_nSubMode, m_freqNominal, m_hisCall, m_hisGrid))); m_config.my_grid(), m_mode, m_nSubMode, m_freqNominal, m_hisCall, m_hisGrid)));
if (m_mode=="WSPR" or m_mode=="FST240W") { if (m_mode=="WSPR" or m_mode=="FST4W") {
QString c2name_string {m_fnameWE + ".c2"}; QString c2name_string {m_fnameWE + ".c2"};
int len1=c2name_string.length(); int len1=c2name_string.length();
char c2name[80]; char c2name[80];
@ -1587,7 +1587,7 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int
auto source = QString {"%1, %2"}.arg (my_callsign).arg (my_grid); auto source = QString {"%1, %2"}.arg (my_callsign).arg (my_grid);
auto comment = QString {"Mode=%1%2, Freq=%3%4"} auto comment = QString {"Mode=%1%2, Freq=%3%4"}
.arg (mode) .arg (mode)
.arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST240") .arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST4")
? QString {", Sub Mode="} + QChar {'A' + sub_mode} ? QString {", Sub Mode="} + QChar {'A' + sub_mode}
: QString {}}) : QString {}})
.arg (Radio::frequency_MHz_string (frequency)) .arg (Radio::frequency_MHz_string (frequency))
@ -1794,7 +1794,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
m_config.transceiver_online (); m_config.transceiver_online ();
if(!m_bFastMode) setXIT (ui->TxFreqSpinBox->value ()); if(!m_bFastMode) setXIT (ui->TxFreqSpinBox->value ());
if ((m_config.single_decode () && !m_mode.startsWith ("FST240")) || m_mode=="JT4") { if ((m_config.single_decode () && !m_mode.startsWith ("FST4")) || m_mode=="JT4") {
ui->label_6->setText(tr ("Single-Period Decodes")); ui->label_6->setText(tr ("Single-Period Decodes"));
ui->label_7->setText(tr ("Average Decodes")); ui->label_7->setText(tr ("Average Decodes"));
} }
@ -1879,7 +1879,7 @@ void MainWindow::on_autoButton_clicked (bool checked)
m_nclearave=1; m_nclearave=1;
echocom_.nsum=0; echocom_.nsum=0;
} }
if(m_mode=="WSPR" or m_mode=="FST240W") { if(m_mode=="WSPR" or m_mode=="FST4W") {
QPalette palette {ui->sbTxPercent->palette ()}; QPalette palette {ui->sbTxPercent->palette ()};
if(m_auto or m_pctx==0) { if(m_auto or m_pctx==0) {
palette.setColor(QPalette::Base,Qt::white); palette.setColor(QPalette::Base,Qt::white);
@ -2317,9 +2317,9 @@ void MainWindow::setup_status_bar (bool vhf)
mode_label.setStyleSheet ("QLabel{background-color: #ff0099}"); mode_label.setStyleSheet ("QLabel{background-color: #ff0099}");
} else if ("FT8" == m_mode) { } else if ("FT8" == m_mode) {
mode_label.setStyleSheet ("QLabel{background-color: #ff6699}"); mode_label.setStyleSheet ("QLabel{background-color: #ff6699}");
} else if ("FST240" == m_mode) { } else if ("FST4" == m_mode) {
mode_label.setStyleSheet ("QLabel{background-color: #99ff66}"); mode_label.setStyleSheet ("QLabel{background-color: #99ff66}");
} else if ("FST240W" == m_mode) { } else if ("FST4W" == m_mode) {
mode_label.setStyleSheet ("QLabel{background-color: #6699ff}"); mode_label.setStyleSheet ("QLabel{background-color: #6699ff}");
} else if ("FreqCal" == m_mode) { } else if ("FreqCal" == m_mode) {
mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); mode_label.setStyleSheet ("QLabel{background-color: #ff9933}");
@ -2537,7 +2537,7 @@ void MainWindow::hideMenus(bool checked)
minimumSize().setWidth(770); minimumSize().setWidth(770);
} }
ui->menuBar->setVisible(!checked); ui->menuBar->setVisible(!checked);
if(m_mode!="FreqCal" and m_mode!="WSPR" and m_mode!="FSt240W") { if(m_mode!="FreqCal" and m_mode!="WSPR" and m_mode!="Fst4W") {
ui->label_6->setVisible(!checked); ui->label_6->setVisible(!checked);
ui->label_7->setVisible(!checked); ui->label_7->setVisible(!checked);
ui->decodedTextLabel2->setVisible(!checked); ui->decodedTextLabel2->setVisible(!checked);
@ -2902,7 +2902,7 @@ void MainWindow::decode() //decode()
dec_data.params.nutc=100*ihr + imin; dec_data.params.nutc=100*ihr + imin;
if(m_TRperiod < 60) { if(m_TRperiod < 60) {
qint64 ms=1000.0*(2.0-m_TRperiod); qint64 ms=1000.0*(2.0-m_TRperiod);
if(m_mode=="FST240") ms=1000.0*(6.0-m_TRperiod); if(m_mode=="FST4") ms=1000.0*(6.0-m_TRperiod);
//Adjust for FT8 early decode: //Adjust for FT8 early decode:
if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288; if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288;
if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288; if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288;
@ -2972,8 +2972,8 @@ void MainWindow::decode() //decode()
dec_data.params.nmode=5; dec_data.params.nmode=5;
m_BestCQpriority=""; m_BestCQpriority="";
} }
if(m_mode=="FST240") dec_data.params.nmode=240; if(m_mode=="FST4") dec_data.params.nmode=240;
if(m_mode=="FST240W") dec_data.params.nmode=241; if(m_mode=="FST4W") dec_data.params.nmode=241;
dec_data.params.ntrperiod=m_TRperiod; dec_data.params.ntrperiod=m_TRperiod;
dec_data.params.nsubmode=m_nSubMode; dec_data.params.nsubmode=m_nSubMode;
if(m_mode=="QRA64") dec_data.params.nsubmode=100 + m_nSubMode; if(m_mode=="QRA64") dec_data.params.nsubmode=100 + m_nSubMode;
@ -2990,7 +2990,7 @@ void MainWindow::decode() //decode()
dec_data.params.nexp_decode = static_cast<int> (m_config.special_op_id()); dec_data.params.nexp_decode = static_cast<int> (m_config.special_op_id());
if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.single_decode()) dec_data.params.nexp_decode += 32;
if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64;
if(m_mode.startsWith("FST240")) dec_data.params.nexp_decode += 256*ui->sbNB->value(); if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*ui->sbNB->value();
::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime); ::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime);
::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall); ::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall);
@ -3149,7 +3149,7 @@ void MainWindow::readFromStdout() //readFromStdout
} }
bool haveFSpread {false}; bool haveFSpread {false};
float fSpread {0.}; float fSpread {0.};
if (m_mode.startsWith ("FST240")) if (m_mode.startsWith ("FST4"))
{ {
auto text = line_read.mid (64, 6).trimmed (); auto text = line_read.mid (64, 6).trimmed ();
if (text.size ()) if (text.size ())
@ -3268,7 +3268,7 @@ void MainWindow::readFromStdout() //readFromStdout
//Right (Rx Frequency) window //Right (Rx Frequency) window
bool bDisplayRight=bAvgMsg; bool bDisplayRight=bAvgMsg;
int audioFreq=decodedtext.frequencyOffset(); int audioFreq=decodedtext.frequencyOffset();
if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") { if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST4") {
auto const& parts = decodedtext.string().remove("<").remove(">") auto const& parts = decodedtext.string().remove("<").remove(">")
.split (' ', SkipEmptyParts); .split (' ', SkipEmptyParts);
if (parts.size() > 6) { if (parts.size() > 6) {
@ -3352,7 +3352,7 @@ void MainWindow::readFromStdout() //readFromStdout
//### I think this is where we are preventing Hounds from spotting Fox ### //### I think this is where we are preventing Hounds from spotting Fox ###
if(m_mode!="FT8" or (SpecOp::HOUND != m_config.special_op_id())) { if(m_mode!="FT8" or (SpecOp::HOUND != m_config.special_op_id())) {
if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="JT4" if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="JT4"
or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST240") { or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST4") {
auto_sequence (decodedtext, 25, 50); auto_sequence (decodedtext, 25, 50);
} }
@ -3370,12 +3370,12 @@ void MainWindow::readFromStdout() //readFromStdout
// extract details and send to PSKreporter // extract details and send to PSKreporter
int nsec=QDateTime::currentMSecsSinceEpoch()/1000-m_secBandChanged; int nsec=QDateTime::currentMSecsSinceEpoch()/1000-m_secBandChanged;
bool okToPost=(nsec > int(4*m_TRperiod)/5); bool okToPost=(nsec > int(4*m_TRperiod)/5);
if(m_mode=="FST240W" and okToPost) { if(m_mode=="FST4W" and okToPost) {
line_read=line_read.left(22) + " CQ " + line_read.trimmed().mid(22); line_read=line_read.left(22) + " CQ " + line_read.trimmed().mid(22);
int n=line_read.trimmed().size(); int n=line_read.trimmed().size();
line_read=line_read.trimmed().left(n-3); line_read=line_read.trimmed().left(n-3);
DecodedText FST240W_post {QString::fromUtf8(line_read.constData())}; DecodedText FST4W_post {QString::fromUtf8(line_read.constData())};
pskPost(FST240W_post); pskPost(FST4W_post);
} else { } else {
if (stdMsg && okToPost) pskPost(decodedtext); if (stdMsg && okToPost) pskPost(decodedtext);
} }
@ -3497,7 +3497,7 @@ void MainWindow::killFile ()
if (m_fnameWE.size () && !(m_saveAll || (m_saveDecoded && m_bDecoded))) { if (m_fnameWE.size () && !(m_saveAll || (m_saveDecoded && m_bDecoded))) {
QFile f1 {m_fnameWE + ".wav"}; QFile f1 {m_fnameWE + ".wav"};
if(f1.exists()) f1.remove(); if(f1.exists()) f1.remove();
if(m_mode=="WSPR" or m_mode=="FST240W") { if(m_mode=="WSPR" or m_mode=="FST4W") {
QFile f2 {m_fnameWE + ".c2"}; QFile f2 {m_fnameWE + ".c2"};
if(f2.exists()) f2.remove(); if(f2.exists()) f2.remove();
} }
@ -3508,7 +3508,7 @@ void MainWindow::on_EraseButton_clicked ()
{ {
qint64 ms=QDateTime::currentMSecsSinceEpoch(); qint64 ms=QDateTime::currentMSecsSinceEpoch();
ui->decodedTextBrowser2->erase (); ui->decodedTextBrowser2->erase ();
if(m_mode=="WSPR" or m_mode=="Echo" or m_mode=="ISCAT" or m_mode=="FST240W") { if(m_mode=="WSPR" or m_mode=="Echo" or m_mode=="ISCAT" or m_mode=="FST4W") {
ui->decodedTextBrowser->erase (); ui->decodedTextBrowser->erase ();
} else { } else {
if((ms-m_msErase)<500) { if((ms-m_msErase)<500) {
@ -3562,7 +3562,7 @@ void MainWindow::guiUpdate()
if(m_modeTx=="JT65") txDuration=1.0 + 126*4096/11025.0; // JT65 if(m_modeTx=="JT65") txDuration=1.0 + 126*4096/11025.0; // JT65
if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64
if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR
if(m_modeTx=="FST240" or m_mode=="FST240W") { //FST240, FST240W if(m_modeTx=="FST4" or m_mode=="FST4W") { //FST4, FST4W
if(m_TRperiod==15) txDuration=1.0 + 160*720/12000.0; if(m_TRperiod==15) txDuration=1.0 + 160*720/12000.0;
if(m_TRperiod==30) txDuration=1.0 + 160*1680/12000.0; if(m_TRperiod==30) txDuration=1.0 + 160*1680/12000.0;
if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0; if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0;
@ -3581,7 +3581,7 @@ void MainWindow::guiUpdate()
if((icw[0]>0) and (!m_bFast9)) tx2 += icw[0]*2560.0/48000.0; //Full length including CW ID if((icw[0]>0) and (!m_bFast9)) tx2 += icw[0]*2560.0/48000.0; //Full length including CW ID
if(tx2>m_TRperiod) tx2=m_TRperiod; if(tx2>m_TRperiod) tx2=m_TRperiod;
if(!m_txFirst and m_mode!="WSPR" and m_mode!="FST240W") { if(!m_txFirst and m_mode!="WSPR" and m_mode!="FST4W") {
tx1 += m_TRperiod; tx1 += m_TRperiod;
tx2 += m_TRperiod; tx2 += m_TRperiod;
} }
@ -3602,7 +3602,7 @@ void MainWindow::guiUpdate()
if(m_transmitting) m_bEchoTxed=true; if(m_transmitting) m_bEchoTxed=true;
} }
if(m_mode=="WSPR" or m_mode=="FST240W") { if(m_mode=="WSPR" or m_mode=="FST4W") {
if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx
m_tuneup=false; //This is not an ATU tuneup m_tuneup=false; //This is not an ATU tuneup
if(ui->sbTxPercent->isEnabled () && m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 if(ui->sbTxPercent->isEnabled () && m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0
@ -3615,16 +3615,16 @@ void MainWindow::guiUpdate()
m_ntr=-1; //This says we will have transmitted m_ntr=-1; //This says we will have transmitted
m_txNext=false; m_txNext=false;
ui->pbTxNext->setChecked(false); ui->pbTxNext->setChecked(false);
m_bTxTime=true; //Start a WSPR or FST240W Tx sequence m_bTxTime=true; //Start a WSPR or FST4W Tx sequence
} else { } else {
// This will be a WSPR or FST240W Rx sequence. // This will be a WSPR or FST4W Rx sequence.
m_ntr=1; //This says we will have received m_ntr=1; //This says we will have received
m_bTxTime=false; //Start a WSPR or FST240W Rx sequence m_bTxTime=false; //Start a WSPR or FST4W Rx sequence
} }
} }
} else { } else {
// For all modes other than WSPR and FSt240W // For all modes other than WSPR and Fst4W
m_bTxTime = (t2p >= tx1) and (t2p < tx2); m_bTxTime = (t2p >= tx1) and (t2p < tx2);
if(m_mode=="Echo") m_bTxTime = m_bTxTime and m_bEchoTxOK; if(m_mode=="Echo") m_bTxTime = m_bTxTime and m_bEchoTxOK;
if(m_mode=="FT8" and ui->tx5->currentText().contains("/B ")) { if(m_mode=="FT8" and ui->tx5->currentText().contains("/B ")) {
@ -3677,7 +3677,7 @@ void MainWindow::guiUpdate()
} }
} }
if (m_config.watchdog() && m_mode!="WSPR" && m_mode!="FST240W" if (m_config.watchdog() && m_mode!="WSPR" && m_mode!="FST4W"
&& m_idleMinutes >= m_config.watchdog ()) { && m_idleMinutes >= m_config.watchdog ()) {
tx_watchdog (true); // disable transmit tx_watchdog (true); // disable transmit
} }
@ -3749,19 +3749,19 @@ void MainWindow::guiUpdate()
if(!m_bTxTime and !m_tune) m_btxok=false; //Time to stop transmitting if(!m_bTxTime and !m_tune) m_btxok=false; //Time to stop transmitting
} }
if((m_mode=="WSPR" or m_mode=="FST240W") and if((m_mode=="WSPR" or m_mode=="FST4W") and
((m_ntr==1 and m_rxDone) or (m_ntr==-1 and m_nseq>tx2))) { ((m_ntr==1 and m_rxDone) or (m_ntr==-1 and m_nseq>tx2))) {
if(m_monitoring) { if(m_monitoring) {
m_rxDone=false; m_rxDone=false;
} }
if(m_transmitting) { if(m_transmitting) {
WSPR_history(m_freqNominal,-1); WSPR_history(m_freqNominal,-1);
m_bTxTime=false; //Time to stop a WSPR or FST240W transmission m_bTxTime=false; //Time to stop a WSPR or FST4W transmission
m_btxok=false; m_btxok=false;
} }
else if (m_ntr != -1) { else if (m_ntr != -1) {
WSPR_scheduling (); WSPR_scheduling ();
m_ntr=0; //This WSPR or FST240W Rx sequence is complete m_ntr=0; //This WSPR or FST4W Rx sequence is complete
} }
} }
@ -3823,7 +3823,7 @@ void MainWindow::guiUpdate()
if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast<int *> (itone), if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast<int *> (itone),
22, 22); 22, 22);
if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4" if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4"
or m_modeTx=="FST240" or m_modeTx=="FST240W") { or m_modeTx=="FST4" or m_modeTx=="FST4W") {
char MyCall[6]; char MyCall[6];
char MyGrid[6]; char MyGrid[6];
::memcpy(MyCall, (m_config.my_callsign()+" ").toLatin1(), sizeof MyCall); ::memcpy(MyCall, (m_config.my_callsign()+" ").toLatin1(), sizeof MyCall);
@ -3883,18 +3883,18 @@ void MainWindow::guiUpdate()
gen_ft4wave_(const_cast<int *>(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave, gen_ft4wave_(const_cast<int *>(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave,
foxcom_.wave,&icmplx,&nwave); foxcom_.wave,&icmplx,&nwave);
} }
if(m_modeTx=="FST240" or m_modeTx=="FST240W") { if(m_modeTx=="FST4" or m_modeTx=="FST4W") {
int ichk=0; int ichk=0;
int iwspr=0; int iwspr=0;
char fst240msgbits[101]; char fst4msgbits[101];
QString wmsg; QString wmsg;
if(m_mode=="FST240W") { if(m_mode=="FST4W") {
iwspr = 1; iwspr = 1;
wmsg=WSPR_message(); wmsg=WSPR_message();
ba=wmsg.toLatin1(); ba=wmsg.toLatin1();
ba2msg(ba,message); ba2msg(ba,message);
} }
genfst240_(message,&ichk,msgsent,const_cast<char *> (fst240msgbits), genfst4_(message,&ichk,msgsent,const_cast<char *> (fst4msgbits),
const_cast<int *>(itone), &iwspr, 37, 37); const_cast<int *>(itone), &iwspr, 37, 37);
int hmod=int(pow(2.0,double(m_nSubMode))); int hmod=int(pow(2.0,double(m_nSubMode)));
int nsps=720; int nsps=720;
@ -3911,7 +3911,7 @@ void MainWindow::guiUpdate()
float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq;
int nwave=(nsym+2)*nsps; int nwave=(nsym+2)*nsps;
int icmplx=0; int icmplx=0;
gen_fst240wave_(const_cast<int *>(itone),&nsym,&nsps,&nwave, gen_fst4wave_(const_cast<int *>(itone),&nsym,&nsps,&nwave,
&fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave);
} }
@ -4043,7 +4043,7 @@ void MainWindow::guiUpdate()
} }
if (g_iptt == 1 && m_iptt0 == 0) { if (g_iptt == 1 && m_iptt0 == 0) {
auto const& current_message = QString::fromLatin1 (msgsent); auto const& current_message = QString::fromLatin1 (msgsent);
if(m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W" if(m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST4W"
&& current_message != m_msgSent0) { && current_message != m_msgSent0) {
tx_watchdog (false); // in case we are auto sequencing tx_watchdog (false); // in case we are auto sequencing
m_msgSent0 = current_message; m_msgSent0 = current_message;
@ -4232,7 +4232,7 @@ void MainWindow::startTx2()
ui->signal_meter_widget->setValue(0,0); ui->signal_meter_widget->setValue(0,0);
if(m_mode=="Echo" and !m_tune) m_bTransmittedEcho=true; if(m_mode=="Echo" and !m_tune) m_bTransmittedEcho=true;
if((m_mode=="WSPR" or m_mode=="FST240W") and !m_tune) { if((m_mode=="WSPR" or m_mode=="FST4W") and !m_tune) {
if (m_config.TX_messages ()) { if (m_config.TX_messages ()) {
t = " Transmitting " + m_mode + " ----------------------- " + t = " Transmitting " + m_mode + " ----------------------- " +
m_config.bands ()->find (m_freqNominal); m_config.bands ()->find (m_freqNominal);
@ -4268,7 +4268,7 @@ void MainWindow::stopTx2()
on_stopTxButton_clicked (); on_stopTxButton_clicked ();
m_nTx73 = 0; m_nTx73 = 0;
} }
if(((m_mode=="WSPR" or m_mode=="FST240W") and m_ntr==-1) and !m_tuneup) { if(((m_mode=="WSPR" or m_mode=="FST4W") and m_ntr==-1) and !m_tuneup) {
m_wideGraph->setWSPRtransmitted(); m_wideGraph->setWSPRtransmitted();
WSPR_scheduling (); WSPR_scheduling ();
m_ntr=0; m_ntr=0;
@ -4540,7 +4540,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|| ("JT9" == m_mode && mode != "@") || ("JT9" == m_mode && mode != "@")
|| ("MSK144" == m_mode && !("&" == mode || "^" == mode)) || ("MSK144" == m_mode && !("&" == mode || "^" == mode))
|| ("QRA64" == m_mode && mode.left (1) != ":")) { || ("QRA64" == m_mode && mode.left (1) != ":")) {
return; //Currently we do auto-sequencing only in FT4, FT8, MSK144, and FST240 return; //Currently we do auto-sequencing only in FT4, FT8, MSK144, and FST4
} }
//Skip the rest if no decoded text extracted //Skip the rest if no decoded text extracted
@ -5159,7 +5159,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
int n=rpt.toInt(); int n=rpt.toInt();
rpt = rpt.asprintf("%+2.2d",n); rpt = rpt.asprintf("%+2.2d",n);
if(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4" || m_mode=="FST240") { if(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4" || m_mode=="FST4") {
QString t2,t3; QString t2,t3;
QString sent=rpt; QString sent=rpt;
QString rs,rst; QString rs,rst;
@ -5239,7 +5239,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
} }
t=t0 + (m_send_RR73 ? "RR73" : "RRR"); t=t0 + (m_send_RR73 ? "RR73" : "RRR");
if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST240") { if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST4") {
if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> " + (m_send_RR73 ? "RR73" : "RRR"); if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> " + (m_send_RR73 ? "RR73" : "RRR");
if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " " + (m_send_RR73 ? "RR73" : "RRR"); if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " " + (m_send_RR73 ? "RR73" : "RRR");
} }
@ -5247,7 +5247,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
msgtype(t, ui->tx4); msgtype(t, ui->tx4);
t=t0 + "73"; t=t0 + "73";
if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST240") { if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST4") {
if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> 73"; if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> 73";
if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " 73"; if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " 73";
} }
@ -5263,7 +5263,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
} }
} }
if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="MSK144" || m_mode == "FST240") return; if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="MSK144" || m_mode == "FST4") return;
if (is_compound) { if (is_compound) {
if (is_type_one) { if (is_type_one) {
@ -5823,7 +5823,7 @@ void MainWindow::displayWidgets(qint64 n)
if(i==30) ui->labDXped->setVisible(b); if(i==30) ui->labDXped->setVisible(b);
if(i==31) ui->cbRxAll->setVisible(b); if(i==31) ui->cbRxAll->setVisible(b);
if(i==32) ui->cbCQonly->setVisible(b); if(i==32) ui->cbCQonly->setVisible(b);
if(i==33) ui->sbTR_FST240W->setVisible(b); if(i==33) ui->sbTR_FST4W->setVisible(b);
j=j>>1; j=j>>1;
} }
ui->pbBestSP->setVisible(m_mode=="FT4"); ui->pbBestSP->setVisible(m_mode=="FT4");
@ -5836,12 +5836,12 @@ void MainWindow::displayWidgets(qint64 n)
if(m_mode=="MSK144") b=SpecOp::EU_VHF==m_config.special_op_id(); if(m_mode=="MSK144") b=SpecOp::EU_VHF==m_config.special_op_id();
ui->sbSerialNumber->setVisible(b); ui->sbSerialNumber->setVisible(b);
m_lastCallsign.clear (); // ensures Tx5 is updated for new modes m_lastCallsign.clear (); // ensures Tx5 is updated for new modes
b=m_mode.startsWith("FST240"); b=m_mode.startsWith("FST4");
ui->sbNB->setVisible(b); ui->sbNB->setVisible(b);
genStdMsgs (m_rpt, true); genStdMsgs (m_rpt, true);
} }
void MainWindow::on_actionFST240_triggered() void MainWindow::on_actionFST4_triggered()
{ {
int nsub=m_nSubMode; int nsub=m_nSubMode;
on_actionJT65_triggered(); on_actionJT65_triggered();
@ -5850,9 +5850,9 @@ void MainWindow::on_actionFST240_triggered()
ui->sbSubmode->setMaximum(3); ui->sbSubmode->setMaximum(3);
m_nSubMode=nsub; m_nSubMode=nsub;
ui->sbSubmode->setValue(m_nSubMode); ui->sbSubmode->setValue(m_nSubMode);
m_mode="FST240"; m_mode="FST4";
m_modeTx="FST240"; m_modeTx="FST4";
ui->actionFST240->setChecked(true); ui->actionFST4->setChecked(true);
WSPR_config(false); WSPR_config(false);
bool bVHF=m_config.enable_VHF_features(); bool bVHF=m_config.enable_VHF_features();
// 0123456789012345678901234567890123 // 0123456789012345678901234567890123
@ -5865,18 +5865,18 @@ void MainWindow::on_actionFST240_triggered()
m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setModeTx(m_modeTx);
m_wideGraph->setPeriod(m_TRperiod,6912); m_wideGraph->setPeriod(m_TRperiod,6912);
m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value());
switch_mode (Modes::FST240); switch_mode (Modes::FST4);
m_wideGraph->setMode(m_mode); m_wideGraph->setMode(m_mode);
statusChanged(); statusChanged();
} }
void MainWindow::on_actionFST240W_triggered() void MainWindow::on_actionFST4W_triggered()
{ {
on_actionFST240_triggered(); on_actionFST4_triggered();
m_mode="FST240W"; m_mode="FST4W";
m_modeTx="FST240W"; m_modeTx="FST4W";
WSPR_config(true); WSPR_config(true);
ui->actionFST240W->setChecked(true); ui->actionFST4W->setChecked(true);
// 0123456789012345678901234567890123 // 0123456789012345678901234567890123
displayWidgets(nWidgets("0000000000000000010100000000000001")); displayWidgets(nWidgets("0000000000000000010100000000000001"));
bool bVHF=m_config.enable_VHF_features(); bool bVHF=m_config.enable_VHF_features();
@ -5885,7 +5885,7 @@ void MainWindow::on_actionFST240W_triggered()
ui->sbSubmode->setValue(m_nSubMode); ui->sbSubmode->setValue(m_nSubMode);
ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setChecked(false);
ui->band_hopping_group_box->setVisible(false); ui->band_hopping_group_box->setVisible(false);
on_sbTR_FST240W_valueChanged (ui->sbTR_FST240W->value ()); on_sbTR_FST4W_valueChanged (ui->sbTR_FST4W->value ());
ui->sbSubmode->setMaximum(3); ui->sbSubmode->setMaximum(3);
m_wideGraph->setMode(m_mode); m_wideGraph->setMode(m_mode);
m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setModeTx(m_modeTx);
@ -5893,7 +5893,7 @@ void MainWindow::on_actionFST240W_triggered()
m_wideGraph->setTxFreq(ui->WSPRfreqSpinBox->value()); m_wideGraph->setTxFreq(ui->WSPRfreqSpinBox->value());
ui->sbFtol->setValue(100); ui->sbFtol->setValue(100);
ui->RxFreqSpinBox->setValue(1500); ui->RxFreqSpinBox->setValue(1500);
switch_mode (Modes::FST240W); switch_mode (Modes::FST4W);
statusChanged(); statusChanged();
} }
@ -6125,7 +6125,7 @@ void MainWindow::on_actionJT9_triggered()
ui->decodedTextLabel2->setText(" UTC dB T Freq " + tr ("Message")); ui->decodedTextLabel2->setText(" UTC dB T Freq " + tr ("Message"));
} else { } else {
ui->cbAutoSeq->setChecked(false); ui->cbAutoSeq->setChecked(false);
if (m_mode != "FST240") if (m_mode != "FST4")
{ {
m_TRperiod=60.0; m_TRperiod=60.0;
ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message"));
@ -6186,8 +6186,8 @@ void MainWindow::on_actionJT9_JT65_triggered()
void MainWindow::on_actionJT65_triggered() void MainWindow::on_actionJT65_triggered()
{ {
if(m_mode=="JT4" or m_mode=="WSPR" or m_mode=="FST240W") { if(m_mode=="JT4" or m_mode=="WSPR" or m_mode=="FST4W") {
// If coming from JT4, WSPR, or FST240W mode, pretend temporarily that we're coming // If coming from JT4, WSPR, or FST4W mode, pretend temporarily that we're coming
// from JT9 and click the pbTxMode button // from JT9 and click the pbTxMode button
m_modeTx="JT9"; m_modeTx="JT9";
on_pbTxMode_clicked(); on_pbTxMode_clicked();
@ -6317,8 +6317,8 @@ void MainWindow::on_actionMSK144_triggered()
if("WSPR"==m_mode) ui->actionWSPR->setChecked(true); if("WSPR"==m_mode) ui->actionWSPR->setChecked(true);
if("Echo"==m_mode) ui->actionEcho->setChecked(true); if("Echo"==m_mode) ui->actionEcho->setChecked(true);
if("FreqCal"==m_mode) ui->actionFreqCal->setChecked(true); if("FreqCal"==m_mode) ui->actionFreqCal->setChecked(true);
if("FST240"==m_mode) ui->actionFST240->setChecked(true); if("FST4"==m_mode) ui->actionFST4->setChecked(true);
if("FST240W"==m_mode) ui->actionFST240W->setChecked(true); if("FST4W"==m_mode) ui->actionFST4W->setChecked(true);
// Make sure that MSK144 is not checked. // Make sure that MSK144 is not checked.
ui->actionMSK144->setChecked(false); ui->actionMSK144->setChecked(false);
MessageBox::warning_message (this, tr ("Improper mode"), MessageBox::warning_message (this, tr ("Improper mode"),
@ -6507,9 +6507,9 @@ void MainWindow::WSPR_config(bool b)
ui->logQSOButton->setVisible(!b); ui->logQSOButton->setVisible(!b);
ui->DecodeButton->setEnabled(!b); ui->DecodeButton->setEnabled(!b);
ui->band_hopping_group_box->setVisible(true); ui->band_hopping_group_box->setVisible(true);
ui->RoundRobin->setVisible(m_mode=="FST240W"); ui->RoundRobin->setVisible(m_mode=="FST4W");
ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter); ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter);
if(b and m_mode!="Echo" and m_mode!="FST240W") { if(b and m_mode!="Echo" and m_mode!="FST4W") {
QString t="UTC dB DT Freq Drift Call Grid dBm "; QString t="UTC dB DT Freq Drift Call Grid dBm ";
if(m_config.miles()) t += " mi"; if(m_config.miles()) t += " mi";
if(!m_config.miles()) t += " km"; if(!m_config.miles()) t += " km";
@ -6728,7 +6728,7 @@ void MainWindow::band_changed (Frequency f)
void MainWindow::enable_DXCC_entity (bool on) void MainWindow::enable_DXCC_entity (bool on)
{ {
if (on and m_mode!="WSPR" and m_mode!="FST240W" and m_mode!="Echo") { if (on and m_mode!="WSPR" and m_mode!="FST4W" and m_mode!="Echo") {
//m_logBook.init(); // re-read the log and cty.dat files //m_logBook.init(); // re-read the log and cty.dat files
// ui->gridLayout->setColumnStretch(0,55); // adjust proportions of text displays // ui->gridLayout->setColumnStretch(0,55); // adjust proportions of text displays
// ui->gridLayout->setColumnStretch(1,45); // ui->gridLayout->setColumnStretch(1,45);
@ -7012,7 +7012,7 @@ void MainWindow::setXIT(int n, Frequency base)
void MainWindow::setFreq4(int rxFreq, int txFreq) void MainWindow::setFreq4(int rxFreq, int txFreq)
{ {
if (ui->RxFreqSpinBox->isEnabled ()) ui->RxFreqSpinBox->setValue(rxFreq); if (ui->RxFreqSpinBox->isEnabled ()) ui->RxFreqSpinBox->setValue(rxFreq);
if(m_mode=="WSPR" or m_mode=="FST240W") { if(m_mode=="WSPR" or m_mode=="FST4W") {
ui->WSPRfreqSpinBox->setValue(txFreq); ui->WSPRfreqSpinBox->setValue(txFreq);
} else { } else {
if (ui->TxFreqSpinBox->isEnabled ()) { if (ui->TxFreqSpinBox->isEnabled ()) {
@ -7189,7 +7189,7 @@ void MainWindow::transmit (double snr)
true, false, snr, m_TRperiod); true, false, snr, m_TRperiod);
} }
if (m_modeTx == "FST240" or m_modeTx == "FST240W") { if (m_modeTx == "FST4" or m_modeTx == "FST4W") {
m_dateTimeSentTx3=QDateTime::currentDateTimeUtc(); m_dateTimeSentTx3=QDateTime::currentDateTimeUtc();
toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform.
int nsps=720; int nsps=720;
@ -7203,7 +7203,7 @@ void MainWindow::transmit (double snr)
double dfreq=hmod*12000.0/nsps; double dfreq=hmod*12000.0/nsps;
double f0=ui->WSPRfreqSpinBox->value() - m_XIT; double f0=ui->WSPRfreqSpinBox->value() - m_XIT;
if(!m_tune) f0 += + 1.5*dfreq; if(!m_tune) f0 += + 1.5*dfreq;
Q_EMIT sendMessage (m_mode, NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, Q_EMIT sendMessage (m_mode, NUM_FST4_SYMBOLS,double(nsps),f0,toneSpacing,
m_soundOutput,m_config.audio_output_channel(), m_soundOutput,m_config.audio_output_channel(),
true, false, snr, m_TRperiod); true, false, snr, m_TRperiod);
} }
@ -7395,7 +7395,7 @@ void MainWindow::transmitDisplay (bool transmitting)
ui->pbT2R->setEnabled (QSY_allowed); ui->pbT2R->setEnabled (QSY_allowed);
} }
if (m_mode!="WSPR" and m_mode!="FST240W") { if (m_mode!="WSPR" and m_mode!="FST4W") {
if(m_config.enable_VHF_features ()) { if(m_config.enable_VHF_features ()) {
ui->TxFreqSpinBox->setEnabled (true); ui->TxFreqSpinBox->setEnabled (true);
} else { } else {
@ -7448,14 +7448,14 @@ void::MainWindow::VHF_features_enabled(bool b)
void MainWindow::on_sbTR_valueChanged(int value) void MainWindow::on_sbTR_valueChanged(int value)
{ {
// if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; // if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode;
if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST240" or m_mode=="FST240W") { if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST4" or m_mode=="FST4W") {
m_TRperiod = value; m_TRperiod = value;
if (m_mode == "FST240" || m_mode == "FST240W") if (m_mode == "FST4" || m_mode == "FST4W")
{ {
if (m_TRperiod < 60) if (m_TRperiod < 60)
{ {
ui->decodedTextLabel->setText(" UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel->setText(" UTC dB DT Freq " + tr ("Message"));
if (m_mode != "FST240W") if (m_mode != "FST4W")
{ {
ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message"));
} }
@ -7463,7 +7463,7 @@ void MainWindow::on_sbTR_valueChanged(int value)
else else
{ {
ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message"));
if (m_mode != "FST240W") if (m_mode != "FST4W")
{ {
ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message"));
} }
@ -7485,7 +7485,7 @@ void MainWindow::on_sbTR_valueChanged(int value)
statusUpdate (); statusUpdate ();
} }
void MainWindow::on_sbTR_FST240W_valueChanged(int value) void MainWindow::on_sbTR_FST4W_valueChanged(int value)
{ {
on_sbTR_valueChanged(value); on_sbTR_valueChanged(value);
} }
@ -7965,7 +7965,7 @@ void MainWindow::on_pbTxNext_clicked(bool b)
void MainWindow::WSPR_scheduling () void MainWindow::WSPR_scheduling ()
{ {
QString t=ui->RoundRobin->currentText(); QString t=ui->RoundRobin->currentText();
if(m_mode=="FST240W" and t!="Random") { if(m_mode=="FST4W" and t!="Random") {
int i=t.left (1).toInt () - 1; int i=t.left (1).toInt () - 1;
int n=t.right(1).toInt(); int n=t.right(1).toInt();
@ -8019,7 +8019,7 @@ void MainWindow::WSPR_scheduling ()
band_hopping_label.setText (hop_data.period_name_); band_hopping_label.setText (hop_data.period_name_);
} }
else { else {
m_WSPR_tx_next = m_WSPR_band_hopping.next_is_tx(m_mode=="FST240W"); m_WSPR_tx_next = m_WSPR_band_hopping.next_is_tx(m_mode=="FST4W");
} }
} }
@ -8274,7 +8274,7 @@ void MainWindow::tx_watchdog (bool triggered)
void MainWindow::update_watchdog_label () void MainWindow::update_watchdog_label ()
{ {
if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W") if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST4W")
{ {
watchdog_label.setText (tr ("WD:%1m").arg (m_config.watchdog () - m_idleMinutes)); watchdog_label.setText (tr ("WD:%1m").arg (m_config.watchdog () - m_idleMinutes));
watchdog_label.setVisible (true); watchdog_label.setVisible (true);
@ -8311,7 +8311,7 @@ void MainWindow::on_cbFirst_toggled(bool b)
void MainWindow::on_cbAutoSeq_toggled(bool b) void MainWindow::on_cbAutoSeq_toggled(bool b)
{ {
if(!b) ui->cbFirst->setChecked(false); if(!b) ui->cbFirst->setChecked(false);
ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") and b); ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST4") and b);
} }
void MainWindow::on_measure_check_box_stateChanged (int state) void MainWindow::on_measure_check_box_stateChanged (int state)
@ -9088,8 +9088,8 @@ void MainWindow::on_pbBestSP_clicked()
void MainWindow::set_mode (QString const& mode) void MainWindow::set_mode (QString const& mode)
{ {
if ("FT4" == mode) on_actionFT4_triggered (); if ("FT4" == mode) on_actionFT4_triggered ();
else if ("FST240" == mode) on_actionFST240_triggered (); else if ("FST4" == mode) on_actionFST4_triggered ();
else if ("FST240W" == mode) on_actionFST240W_triggered (); else if ("FST4W" == mode) on_actionFST4W_triggered ();
else if ("FT8" == mode) on_actionFT8_triggered (); else if ("FT8" == mode) on_actionFT8_triggered ();
else if ("JT4" == mode) on_actionJT4_triggered (); else if ("JT4" == mode) on_actionJT4_triggered ();
else if ("JT9" == mode) on_actionJT9_triggered (); else if ("JT9" == mode) on_actionJT9_triggered ();

View File

@ -48,7 +48,7 @@
#define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync #define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync
#define NUM_FT8_SYMBOLS 79 #define NUM_FT8_SYMBOLS 79
#define NUM_FT4_SYMBOLS 105 #define NUM_FT4_SYMBOLS 105
#define NUM_FST240_SYMBOLS 160 //240/2 data + 5*8 sync #define NUM_FST4_SYMBOLS 160 //240/2 data + 5*8 sync
#define NUM_CW_SYMBOLS 250 #define NUM_CW_SYMBOLS 250
#define TX_SAMPLE_RATE 48000 #define TX_SAMPLE_RATE 48000
#define NRING 3456000 #define NRING 3456000
@ -203,8 +203,8 @@ private slots:
void on_actionJT4_triggered(); void on_actionJT4_triggered();
void on_actionFT4_triggered(); void on_actionFT4_triggered();
void on_actionFT8_triggered(); void on_actionFT8_triggered();
void on_actionFST240_triggered(); void on_actionFST4_triggered();
void on_actionFST240W_triggered(); void on_actionFST4W_triggered();
void on_TxFreqSpinBox_valueChanged(int arg1); void on_TxFreqSpinBox_valueChanged(int arg1);
void on_actionSave_decoded_triggered(); void on_actionSave_decoded_triggered();
void on_actionQuickDecode_toggled (bool); void on_actionQuickDecode_toggled (bool);
@ -296,7 +296,7 @@ private slots:
void on_actionErase_reference_spectrum_triggered(); void on_actionErase_reference_spectrum_triggered();
void on_actionMeasure_phase_response_triggered(); void on_actionMeasure_phase_response_triggered();
void on_sbTR_valueChanged (int); void on_sbTR_valueChanged (int);
void on_sbTR_FST240W_valueChanged (int); void on_sbTR_FST4W_valueChanged (int);
void on_sbFtol_valueChanged (int); void on_sbFtol_valueChanged (int);
void on_cbFast9_clicked(bool b); void on_cbFast9_clicked(bool b);
void on_sbCQTxFreq_valueChanged(int n); void on_sbCQTxFreq_valueChanged(int n);

View File

@ -2148,7 +2148,7 @@ list. The list can be maintained in Settings (F2).</string>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="RestrictedSpinBox" name="sbTR_FST240W"> <widget class="RestrictedSpinBox" name="sbTR_FST4W">
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
</property> </property>
@ -2992,8 +2992,8 @@ QLabel[oob=&quot;true&quot;] {
<property name="title"> <property name="title">
<string>Mode</string> <string>Mode</string>
</property> </property>
<addaction name="actionFST240"/> <addaction name="actionFST4"/>
<addaction name="actionFST240W"/> <addaction name="actionFST4W"/>
<addaction name="actionFT4"/> <addaction name="actionFT4"/>
<addaction name="actionFT8"/> <addaction name="actionFT8"/>
<addaction name="actionJT4"/> <addaction name="actionJT4"/>
@ -3610,12 +3610,12 @@ QLabel[oob=&quot;true&quot;] {
<string>FT4</string> <string>FT4</string>
</property> </property>
</action> </action>
<action name="actionFST240"> <action name="actionFST4">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="text"> <property name="text">
<string>FST240</string> <string>FST4</string>
</property> </property>
</action> </action>
<action name="actionFT240W"> <action name="actionFT240W">
@ -3623,15 +3623,15 @@ QLabel[oob=&quot;true&quot;] {
<string>FT240W</string> <string>FT240W</string>
</property> </property>
</action> </action>
<action name="actionFST240W"> <action name="actionFST4W">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="text"> <property name="text">
<string>FST240W</string> <string>FST4W</string>
</property> </property>
</action> </action>
<action name="actionAlso_FST240W"> <action name="actionAlso_FST4W">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@ -3639,7 +3639,7 @@ QLabel[oob=&quot;true&quot;] {
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="text"> <property name="text">
<string>Also FST240W</string> <string>Also FST4W</string>
</property> </property>
</action> </action>
</widget> </widget>

View File

@ -413,7 +413,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
float bw=9.0*12000.0/m_nsps; //JT9 float bw=9.0*12000.0/m_nsps; //JT9
if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ### if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ###
if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8 if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8
if(m_mode.startsWith("FST240")) { if(m_mode.startsWith("FST4")) {
int h=int(pow(2.0,m_nSubMode)); int h=int(pow(2.0,m_nSubMode));
int nsps=800; int nsps=800;
if(m_TRperiod==30) nsps=1680; if(m_TRperiod==30) nsps=1680;
@ -483,7 +483,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
painter0.drawLine(x1,26,x2,26); painter0.drawLine(x1,26,x2,26);
} }
if(m_mode=="FST240W") { if(m_mode=="FST4W") {
x1=XfromFreq(2600); x1=XfromFreq(2600);
x2=XfromFreq(2700); x2=XfromFreq(2700);
painter0.drawLine(x1,26,x2,26); painter0.drawLine(x1,26,x2,26);
@ -502,7 +502,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
int yRxBottom=yTxTop + 2*yh + 4; int yRxBottom=yTxTop + 2*yh + 4;
if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65"
or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4"
or m_mode.startsWith("FST240")) { or m_mode.startsWith("FST4")) {
if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) { if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) {
painter0.setPen(penGreen); painter0.setPen(penGreen);
@ -533,7 +533,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom); painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom);
painter0.drawLine(x1,yRxBottom,x2,yRxBottom); painter0.drawLine(x1,yRxBottom,x2,yRxBottom);
painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom); painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom);
if(m_mode.startsWith("FST240")) { if(m_mode.startsWith("FST4")) {
x1=XfromFreq(m_rxFreq-m_tol); x1=XfromFreq(m_rxFreq-m_tol);
x2=XfromFreq(m_rxFreq+m_tol); x2=XfromFreq(m_rxFreq+m_tol);
painter0.drawLine(x1,26,x2,26); // Mark the Tol range painter0.drawLine(x1,26,x2,26); // Mark the Tol range
@ -543,7 +543,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or
m_mode.mid(0,4)=="WSPR" or m_mode=="QRA64" or m_mode=="FT8" m_mode.mid(0,4)=="WSPR" or m_mode=="QRA64" or m_mode=="FT8"
or m_mode=="FT4" or m_mode.startsWith("FST240")) { or m_mode=="FT4" or m_mode.startsWith("FST4")) {
painter0.setPen(penRed); painter0.setPen(penRed);
x1=XfromFreq(m_txFreq); x1=XfromFreq(m_txFreq);
x2=XfromFreq(m_txFreq+bw); x2=XfromFreq(m_txFreq+bw);
@ -699,7 +699,7 @@ int CPlotter::rxFreq() {return m_rxFreq;} //rxFreq
void CPlotter::mouseReleaseEvent (QMouseEvent * event) void CPlotter::mouseReleaseEvent (QMouseEvent * event)
{ {
if (Qt::LeftButton == event->button () and m_mode!="FST240W") { if (Qt::LeftButton == event->button () and m_mode!="FST4W") {
int x=event->x(); int x=event->x();
if(x<0) x=0; if(x<0) x=0;
if(x>m_Size.width()) x=m_Size.width(); if(x>m_Size.width()) x=m_Size.width();

View File

@ -294,7 +294,7 @@ void WideGraph::setTxFreq(int n) //setTxFreq
void WideGraph::setMode(QString mode) //setMode void WideGraph::setMode(QString mode) //setMode
{ {
m_mode=mode; m_mode=mode;
ui->fSplitSpinBox->setEnabled(m_mode=="JT9+JT65" or m_mode.startsWith("FST240")); ui->fSplitSpinBox->setEnabled(m_mode=="JT9+JT65" or m_mode.startsWith("FST4"));
ui->widePlot->setMode(mode); ui->widePlot->setMode(mode);
ui->widePlot->DrawOverlay(); ui->widePlot->DrawOverlay();
ui->widePlot->update(); ui->widePlot->update();
@ -368,7 +368,7 @@ void WideGraph::setRxBand (QString const& band)
else else
{ {
ui->fSplitSpinBox->setValue (m_fMinPerBand.value (band, 2500).toUInt ()); ui->fSplitSpinBox->setValue (m_fMinPerBand.value (band, 2500).toUInt ());
ui->fSplitSpinBox->setEnabled (m_mode=="JT9+JT65" or m_mode.startsWith("FST240")); ui->fSplitSpinBox->setEnabled (m_mode=="JT9+JT65" or m_mode.startsWith("FST4"));
} }
ui->widePlot->setRxBand(band); ui->widePlot->setRxBand(band);
setRxRange (); setRxRange ();