From 0e3ff2688a6ea6c618a05fc5dfe429e207a4ed0d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 16:59:40 -0400 Subject: [PATCH] Further progress toward activating FST280 and FST280W in the GUI. --- lib/fst280/fst280_params.f90 | 16 ++++---- lib/fst280/ft4s280_params.f90 | 8 ---- widgets/mainwindow.cpp | 71 ++++++++++------------------------- widgets/mainwindow.h | 1 - 4 files changed, 28 insertions(+), 68 deletions(-) delete mode 100644 lib/fst280/ft4s280_params.f90 diff --git a/lib/fst280/fst280_params.f90 b/lib/fst280/fst280_params.f90 index e541beeed..dc1519160 100644 --- a/lib/fst280/fst280_params.f90 +++ b/lib/fst280/fst280_params.f90 @@ -1,8 +1,8 @@ -! FT4S280 -! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols - -parameter (KK=77) !Information bits (77 + CRC24) -parameter (ND=140) !Data symbols -parameter (NS=24) !Sync symbols -parameter (NN=NS+ND) !Sync and data symbols (164) -parameter (NN2=NS+ND+2) !Total channel symbols (166) +! FT4S280 +! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols + +parameter (KK=77) !Information bits (77 + CRC24) +parameter (ND=140) !Data symbols +parameter (NS=24) !Sync symbols +parameter (NN=NS+ND) !Sync and data symbols (164) +parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/lib/fst280/ft4s280_params.f90 b/lib/fst280/ft4s280_params.f90 deleted file mode 100644 index dc1519160..000000000 --- a/lib/fst280/ft4s280_params.f90 +++ /dev/null @@ -1,8 +0,0 @@ -! FT4S280 -! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols - -parameter (KK=77) !Information bits (77 + CRC24) -parameter (ND=140) !Data symbols -parameter (NS=24) !Sync symbols -parameter (NN=NS+ND) !Sync and data symbols (164) -parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 778ca321a..935866bb3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1316,8 +1316,6 @@ void MainWindow::fixStop() m_hsymStop=179; if(m_mode=="WSPR") { m_hsymStop=396; - } else if(m_mode=="WSPR-LF") { - m_hsymStop=813; } else if(m_mode=="Echo") { m_hsymStop=9; } else if (m_mode=="JT4"){ @@ -1533,26 +1531,11 @@ void MainWindow::dataSink(qint64 frames) m_cmndP1 << depth_args << "-a" << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) << m_path; } else { - // if(m_mode=="WSPR-LF") - // { - // m_cmndP1 << degrade << t2 << "-a" - // << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) - // << m_fnameWE + ".wav"; - // } - // else - { - m_cmndP1 << depth_args << "-a" - << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) - << t2 << m_fnameWE + ".wav"; - } + m_cmndP1 << depth_args << "-a" + << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) + << t2 << m_fnameWE + ".wav"; } - // QString t3=cmnd; - // int i1=cmnd.indexOf("/wsprd "); - // cmnd=t3.mid(0,i1+7) + t3.mid(i1+7); - -// if(m_mode=="WSPR-LF") cmnd=cmnd.replace("/wsprd ","/wspr_fsk8d "+degrade+t2); if (ui) ui->DecodeButton->setChecked (true); - // m_cmndP1=QDir::toNativeSeparators(cmnd); p1Timer.start(1000); m_decoderBusy = true; statusUpdate (); @@ -1563,14 +1546,8 @@ void MainWindow::dataSink(qint64 frames) void MainWindow::startP1() { - // if (m_mode=="WSPR-LF") - // { - // p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wspr_fsk8d")), m_cmndP1); - // } - // else - { - p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wsprd")), m_cmndP1); - } + // if(WSPR-LF) ... was here + p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wsprd")), m_cmndP1); } QString MainWindow::save_wave_file (QString const& name, short const * data, int samples, @@ -3561,9 +3538,15 @@ void MainWindow::guiUpdate() if(m_modeTx=="JT4") txDuration=1.0 + 207.0*2520/11025.0; // JT4 if(m_modeTx=="JT9") txDuration=1.0 + 85.0*m_nsps/12000.0; // JT9 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=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR - if(m_modeTx=="WSPR-LF") txDuration=2.0 + 114*24576/12000.0; // WSPR-LF + 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=="FST280" or m_mode=="FST280W") { //FST280, FST280W + if(m_TRperiod==15) txDuration=1.0 + 164*800/12000.0; + if(m_TRperiod==30) txDuration=1.0 + 164*1680/12000.0; + if(m_TRperiod==60) txDuration=1.0 + 164*4000/12000.0; + if(m_TRperiod==120) txDuration=1.0 + 164*8400/12000.0; + if(m_TRperiod==300) txDuration=1.0 + 164*2150500/12000.0; + } if(m_modeTx=="ISCAT" or m_mode=="MSK144" or m_bFast9) { txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144 } @@ -3834,8 +3817,6 @@ void MainWindow::guiUpdate() &m_currentMessageType, 22, 22); if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast (itone), 22, 22); -// if(m_modeTx=="WSPR-LF") genwspr_fsk8_(message, msgsent, const_cast (itone), -// 22, 22); if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4") { char MyCall[6]; char MyGrid[6]; @@ -3896,6 +3877,10 @@ void MainWindow::guiUpdate() gen_ft4wave_(const_cast(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave, foxcom_.wave,&icmplx,&nwave); } + if(m_modeTx=="FST280" or m_modeTx=="FST280W") { + // call genfst280() + // call gen_fst280wave() + } if(SpecOp::EU_VHF==m_config.special_op_id()) { if(m_ntx==2) m_xSent=ui->tx2->text().right(13); @@ -6353,23 +6338,6 @@ void MainWindow::on_actionWSPR_triggered() statusChanged(); } -void MainWindow::on_actionWSPR_LF_triggered() -{ - on_actionWSPR_triggered(); - m_mode="WSPR-LF"; - switch_mode (Modes::WSPR); - m_modeTx="WSPR-LF"; - m_TRperiod=240.0; - m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe - m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe - m_hsymStop=813; - m_toneSpacing=12000.0/24576.0; - setup_status_bar (false); - ui->actionWSPR_LF->setChecked(true); - m_wideGraph->setPeriod(m_TRperiod,m_nsps); - statusChanged(); -} - void MainWindow::on_actionEcho_triggered() { on_actionJT4_triggered(); @@ -9049,7 +9017,8 @@ void MainWindow::set_mode (QString const& mode) else if ("ISCAT" == mode) on_actionISCAT_triggered (); else if ("MSK144" == mode) on_actionMSK144_triggered (); else if ("WSPR" == mode) on_actionWSPR_triggered (); - else if ("WSPR-LF" == mode) on_actionWSPR_LF_triggered (); + else if ("FST280" == mode) on_actionFST280_triggered (); + else if ("FST280W" == mode) on_actionFST280W_triggered (); else if ("Echo" == mode) on_actionEcho_triggered (); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 887e59c15..779d76da4 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -278,7 +278,6 @@ private slots: void networkError (QString const&); void on_ClrAvgButton_clicked(); void on_actionWSPR_triggered(); - void on_actionWSPR_LF_triggered(); void on_syncSpinBox_valueChanged(int n); void on_TxPowerComboBox_currentIndexChanged(int); void on_sbTxPercent_valueChanged(int n);