From acd6253373765587813f7119efd003cb35dc75a7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 25 Sep 2020 15:38:20 -0400 Subject: [PATCH] A few more fixups for QRA65. Not finished, yet! --- CMakeLists.txt | 3 +++ Modulator/Modulator.cpp | 2 +- displayWidgets.txt | 2 +- lib/sync_qra65.f90 | 1 + lib/{test_qra66.f90 => test_qra65.f90} | 11 +++++------ models/Modes.cpp | 3 ++- models/Modes.hpp | 1 + widgets/mainwindow.cpp | 11 ++++++----- 8 files changed, 20 insertions(+), 14 deletions(-) rename lib/{test_qra66.f90 => test_qra65.f90} (90%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a14535141..712e176ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1338,6 +1338,9 @@ target_link_libraries (qra64sim wsjt_fort wsjt_cxx) add_executable (qra65sim lib/qra/qra65/qra65sim.f90 wsjtx.rc) target_link_libraries (qra65sim wsjt_fort wsjt_cxx) +add_executable (test_qra65 lib/test_qra65.f90 wsjtx.rc) +target_link_libraries (test_qra65 wsjt_fort wsjt_cxx) + add_executable (jt49sim lib/jt49sim.f90 wsjtx.rc) target_link_libraries (jt49sim wsjt_fort wsjt_cxx) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index f391b1ffd..328b5b3ab 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -70,7 +70,7 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym m_bFastMode=fastMode; m_TRperiod=TRperiod; unsigned delay_ms=1000; - if(mode=="FT8" or (mode=="FST4" and m_nsps==720) or mode=="QRA66") delay_ms=500; //FT8, FST4-15, QRA66 + if(mode=="FT8" or (mode=="FST4" and m_nsps==720) or mode=="QRA65") delay_ms=500; //FT8, FST4-15, QRA65 if(mode=="FT4") delay_ms=300; //FT4 // noise generator parameters diff --git a/displayWidgets.txt b/displayWidgets.txt index 912b19f01..23e02480f 100644 --- a/displayWidgets.txt +++ b/displayWidgets.txt @@ -11,7 +11,7 @@ JT9+JT65 1110100000011110000100000000000010 JT65 1110100000001110000100000000000010 JT65/VHF 1111100100001101101011000100000000 QRA64 1111100101101101100000000010000000 -QRA66 1111110101101101000100000011000000 +QRA65 1111110101101101000100000011000000 ISCAT 1001110000000001100000000000000000 MSK144 1011111101000000000100010000000000 WSPR 0000000000000000010100000000000000 diff --git a/lib/sync_qra65.f90 b/lib/sync_qra65.f90 index 09681262b..1a7859cb1 100644 --- a/lib/sync_qra65.f90 +++ b/lib/sync_qra65.f90 @@ -73,6 +73,7 @@ subroutine sync_qra65(iwave,nmax,mode65,nsps,nfqso,ntol,xdt,f0,snr1) if(nsps.ge.16000) jadd=3 if(nsps.ge.41472) jadd=1 dt4=nsps/(NSTEP*12000.0) !1/4 of symbol duration +! print*,'DT range +/-',15*dt4 ! j0=0.5/dt4 ! if(nsps.ge.7680) j0=1.0/dt4 diff --git a/lib/test_qra66.f90 b/lib/test_qra65.f90 similarity index 90% rename from lib/test_qra66.f90 rename to lib/test_qra65.f90 index 8ff97829c..67af7a720 100644 --- a/lib/test_qra66.f90 +++ b/lib/test_qra65.f90 @@ -1,17 +1,16 @@ -program test_qra66 +program test_qra65 character*70 cmd1,cmd2,line character*22 msg character*8 arg integer nretcode(0:11) integer fDop - real fspread logical decok nargs=iargc() if(nargs.ne.7) then - print*,'Usage: test_qra66 "msg" ndepth freq DT fDop nfiles SNR' - print*,'Example: test_qra66 "K1ABC W9XYZ EN37" 3 1500 0.0 5 100 0' + print*,'Usage: test_qra65 "msg" ndepth freq DT fDop nfiles SNR' + print*,'Example: test_qra65 "K1ABC W9XYZ EN37" 3 1500 0.0 5 100 0' print*,' SNR = 0 to loop over all relevant SNRs' go to 999 endif @@ -31,7 +30,7 @@ program test_qra66 ! 1 2 3 4 5 6 ! 1234567890123456789012345678901234567890123456789012345678901234' - cmd1='qra66sim "K1ABC W9XYZ EN37 " A 1500 5.0 0.0 100 -10 > junk0' + cmd1='qra65sim "K1ABC W9XYZ EN37 " A 1500 5.0 0.0 100 -10 > junk0' cmd2='jt9 -3 -p 15 -L 300 -H 3000 -d 1 *.wav > junk' write(cmd1(10:33),'(a)') '"'//msg//'"' @@ -96,7 +95,7 @@ program test_qra66 flush(12) enddo -999 end program test_qra66 +999 end program test_qra65 include 'sec0.f90' diff --git a/models/Modes.cpp b/models/Modes.cpp index 2de1f7c90..deaa2a0f6 100644 --- a/models/Modes.cpp +++ b/models/Modes.cpp @@ -26,7 +26,8 @@ namespace "FT8", "FT4", "FST4", - "FST4W" + "FST4W", + "QRA65" }; std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]); } diff --git a/models/Modes.hpp b/models/Modes.hpp index ac57ba4ad..2f3bf60f7 100644 --- a/models/Modes.hpp +++ b/models/Modes.hpp @@ -52,6 +52,7 @@ public: FT4, FST4, FST4W, + QRA65, MODES_END_SENTINAL_AND_COUNT // this must be last }; Q_ENUM (Mode) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c2231eb5e..1cd40b1fe 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6330,16 +6330,17 @@ void MainWindow::on_actionQRA65_triggered() m_mode="QRA65"; m_modeTx="QRA65"; ui->actionQRA65->setChecked(true); - switch_mode (Modes::QRA64); - setup_status_bar (false); + switch_mode(Modes::QRA65); + setup_status_bar(true); m_hsymStop=49; ui->sbTR->values ({15, 30, 60, 120, 300}); on_sbTR_valueChanged (ui->sbTR->value()); - m_wideGraph->setMode(m_mode); + ui->sbSubmode->setMaximum(3); + ui->sbSubmode->setValue(m_nSubMode); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); + m_wideGraph->setTol(ui->sbFtol->value()); // 0123456789012345678901234567890123 -//displayWidgets(nWidgets("1111100001001100000100000001000000")); displayWidgets(nWidgets("1111110101101101000100000011000000")); statusChanged();} @@ -7523,7 +7524,7 @@ void MainWindow::on_sbTR_FST4W_valueChanged(int value) QChar MainWindow::current_submode () const { QChar submode {0}; - if (m_mode.contains (QRegularExpression {R"(^(JT65|JT9|JT4|ISCAT|QRA64)$)"}) + if (m_mode.contains (QRegularExpression {R"(^(JT65|JT9|JT4|ISCAT|QRA64|QRA65)$)"}) && (m_config.enable_VHF_features () || "JT4" == m_mode || "ISCAT" == m_mode)) { submode = m_nSubMode + 65;