A few more fixups for QRA65. Not finished, yet!

This commit is contained in:
Joe Taylor 2020-09-25 15:38:20 -04:00
parent 443aee5355
commit acd6253373
8 changed files with 20 additions and 14 deletions

View File

@ -1338,6 +1338,9 @@ target_link_libraries (qra64sim wsjt_fort wsjt_cxx)
add_executable (qra65sim lib/qra/qra65/qra65sim.f90 wsjtx.rc) add_executable (qra65sim lib/qra/qra65/qra65sim.f90 wsjtx.rc)
target_link_libraries (qra65sim wsjt_fort wsjt_cxx) 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) add_executable (jt49sim lib/jt49sim.f90 wsjtx.rc)
target_link_libraries (jt49sim wsjt_fort wsjt_cxx) target_link_libraries (jt49sim wsjt_fort wsjt_cxx)

View File

@ -70,7 +70,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=="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 if(mode=="FT4") delay_ms=300; //FT4
// noise generator parameters // noise generator parameters

View File

@ -11,7 +11,7 @@ JT9+JT65 1110100000011110000100000000000010
JT65 1110100000001110000100000000000010 JT65 1110100000001110000100000000000010
JT65/VHF 1111100100001101101011000100000000 JT65/VHF 1111100100001101101011000100000000
QRA64 1111100101101101100000000010000000 QRA64 1111100101101101100000000010000000
QRA66 1111110101101101000100000011000000 QRA65 1111110101101101000100000011000000
ISCAT 1001110000000001100000000000000000 ISCAT 1001110000000001100000000000000000
MSK144 1011111101000000000100010000000000 MSK144 1011111101000000000100010000000000
WSPR 0000000000000000010100000000000000 WSPR 0000000000000000010100000000000000

View File

@ -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.16000) jadd=3
if(nsps.ge.41472) jadd=1 if(nsps.ge.41472) jadd=1
dt4=nsps/(NSTEP*12000.0) !1/4 of symbol duration dt4=nsps/(NSTEP*12000.0) !1/4 of symbol duration
! print*,'DT range +/-',15*dt4
! j0=0.5/dt4 ! j0=0.5/dt4
! if(nsps.ge.7680) j0=1.0/dt4 ! if(nsps.ge.7680) j0=1.0/dt4

View File

@ -1,17 +1,16 @@
program test_qra66 program test_qra65
character*70 cmd1,cmd2,line character*70 cmd1,cmd2,line
character*22 msg character*22 msg
character*8 arg character*8 arg
integer nretcode(0:11) integer nretcode(0:11)
integer fDop integer fDop
real fspread
logical decok logical decok
nargs=iargc() nargs=iargc()
if(nargs.ne.7) then if(nargs.ne.7) then
print*,'Usage: test_qra66 "msg" ndepth freq DT fDop nfiles SNR' print*,'Usage: test_qra65 "msg" ndepth freq DT fDop nfiles SNR'
print*,'Example: test_qra66 "K1ABC W9XYZ EN37" 3 1500 0.0 5 100 0' print*,'Example: test_qra65 "K1ABC W9XYZ EN37" 3 1500 0.0 5 100 0'
print*,' SNR = 0 to loop over all relevant SNRs' print*,' SNR = 0 to loop over all relevant SNRs'
go to 999 go to 999
endif endif
@ -31,7 +30,7 @@ program test_qra66
! 1 2 3 4 5 6 ! 1 2 3 4 5 6
! 1234567890123456789012345678901234567890123456789012345678901234' ! 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' cmd2='jt9 -3 -p 15 -L 300 -H 3000 -d 1 *.wav > junk'
write(cmd1(10:33),'(a)') '"'//msg//'"' write(cmd1(10:33),'(a)') '"'//msg//'"'
@ -96,7 +95,7 @@ program test_qra66
flush(12) flush(12)
enddo enddo
999 end program test_qra66 999 end program test_qra65
include 'sec0.f90' include 'sec0.f90'

View File

@ -26,7 +26,8 @@ namespace
"FT8", "FT8",
"FT4", "FT4",
"FST4", "FST4",
"FST4W" "FST4W",
"QRA65"
}; };
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

@ -52,6 +52,7 @@ public:
FT4, FT4,
FST4, FST4,
FST4W, FST4W,
QRA65,
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

@ -6330,16 +6330,17 @@ void MainWindow::on_actionQRA65_triggered()
m_mode="QRA65"; m_mode="QRA65";
m_modeTx="QRA65"; m_modeTx="QRA65";
ui->actionQRA65->setChecked(true); ui->actionQRA65->setChecked(true);
switch_mode (Modes::QRA64); switch_mode(Modes::QRA65);
setup_status_bar (false); setup_status_bar(true);
m_hsymStop=49; m_hsymStop=49;
ui->sbTR->values ({15, 30, 60, 120, 300}); ui->sbTR->values ({15, 30, 60, 120, 300});
on_sbTR_valueChanged (ui->sbTR->value()); 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->setModeTx(m_modeTx);
m_wideGraph->setPeriod(m_TRperiod,6912); m_wideGraph->setPeriod(m_TRperiod,6912);
m_wideGraph->setTol(ui->sbFtol->value());
// 0123456789012345678901234567890123 // 0123456789012345678901234567890123
//displayWidgets(nWidgets("1111100001001100000100000001000000"));
displayWidgets(nWidgets("1111110101101101000100000011000000")); displayWidgets(nWidgets("1111110101101101000100000011000000"));
statusChanged();} statusChanged();}
@ -7523,7 +7524,7 @@ void MainWindow::on_sbTR_FST4W_valueChanged(int value)
QChar MainWindow::current_submode () const QChar MainWindow::current_submode () const
{ {
QChar submode {0}; 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)) && (m_config.enable_VHF_features () || "JT4" == m_mode || "ISCAT" == m_mode))
{ {
submode = m_nSubMode + 65; submode = m_nSubMode + 65;