QMAP work in progress: cleaning up the enabling of Q65-30x decodes.

This commit is contained in:
Joe Taylor 2024-01-01 09:46:09 -05:00
parent 1d21dff93f
commit 673f74e67b
5 changed files with 24 additions and 28 deletions

View File

@ -17,14 +17,14 @@ extern struct { //This is "common/datcom/..." in Fortran
int nagain; //1 ==> decode only at fQSO +/- Tol int nagain; //1 ==> decode only at fQSO +/- Tol
int ndepth; //How much hinted decoding to do? int ndepth; //How much hinted decoding to do?
int ndiskdat; //1 ==> data read from *.iq file int ndiskdat; //1 ==> data read from *.iq file
int neme; //Hinted decoding tries only for EME calls int ntx60; //Number of seconds transmitted in Q65-60x
int newdat; //1 ==> new data, must do long FFT int newdat; //1 ==> new data, must do long FFT
int nfa; //Low decode limit (kHz) int nfa; //Low decode limit (kHz)
int nfb; //High decode limit (kHz) int nfb; //High decode limit (kHz)
int nfcal; //Frequency correction, for calibration (Hz) int nfcal; //Frequency correction, for calibration (Hz)
int nfshift; //Shift of displayed center freq (kHz) int nfshift; //Shift of displayed center freq (kHz)
int mcall3; //1 ==> CALL3.TXT has been modified int ntx30a; //Number of seconds transmitted in first half minute , Q65-30x
int ntimeout; //Max for timeouts in Messages and BandMap int ntx30b; //Number of seconds transmitted in second half minute, Q65-30x
int ntol; //+/- decoding range around fQSO (Hz) int ntol; //+/- decoding range around fQSO (Hz)
int nxant; //1 ==> add 45 deg to measured pol angle int nxant; //1 ==> add 45 deg to measured pol angle
int nCFOM; //1 ==> CFOM already done, 0 otherwise int nCFOM; //1 ==> CFOM already done, 0 otherwise
@ -58,14 +58,14 @@ extern struct { //This is "common/datcom/..." in Fortran
int nagain; //1 ==> decode only at fQSO +/- Tol int nagain; //1 ==> decode only at fQSO +/- Tol
int ndepth; //How much hinted decoding to do? int ndepth; //How much hinted decoding to do?
int ndiskdat; //1 ==> data read from *.iq file int ndiskdat; //1 ==> data read from *.iq file
int neme; //Hinted decoding tries only for EME calls int ntx60; //Number of seconds transmitted in Q65-60x
int newdat; //1 ==> new data, must do long FFT int newdat; //1 ==> new data, must do long FFT
int nfa; //Low decode limit (kHz) int nfa; //Low decode limit (kHz)
int nfb; //High decode limit (kHz) int nfb; //High decode limit (kHz)
int nfcal; //Frequency correction, for calibration (Hz) int nfcal; //Frequency correction, for calibration (Hz)
int nfshift; //Shift of displayed center freq (kHz) int nfshift; //Shift of displayed center freq (kHz)
int mcall3; //1 ==> CALL3.TXT has been modified int ntx30a; //Number of seconds transmitted in first half minute , Q65-30x
int ntimeout; //Max for timeouts in Messages and BandMap int ntx30b; //Number of seconds transmitted in second half minute, Q65-30x
int ntol; //+/- decoding range around fQSO (Hz) int ntol; //+/- decoding range around fQSO (Hz)
int nxant; //1 ==> add 45 deg to measured pol angle int nxant; //1 ==> add 45 deg to measured pol angle
int nCFOM; //1 ==> CFOM already done, 0 otherwise int nCFOM; //1 ==> CFOM already done, 0 otherwise

View File

@ -14,11 +14,10 @@ subroutine decode0(dd,ss,savg)
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, & common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
nWTransmitting,result(50) nWTransmitting,result(50)
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, & common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & ndepth,ndiskdat,ntx60,newdat,nfa,nfb,nfcal,nfshift, &
mcall3,nkeep,ntol,nxant,nCFOM,nfsample,nxpol,nmode, & ntx30a,ntx30b,ntol,nxant,nCFOM,nfsample,nxpol,nmode, &
ndop00,nsave,max_drift,offset,nhsym,mycall,mygrid, & ndop00,nsave,max_drift,offset,nhsym,mycall,mygrid, &
hiscall,hisgrid,datetime,junk1,junk2,bAlso30 hiscall,hisgrid,datetime,junk1,junk2,bAlso30
data neme0/-99/
save save
nQDecoderDone=0 nQDecoderDone=0
@ -42,7 +41,6 @@ subroutine decode0(dd,ss,savg)
mycall0=mycall mycall0=mycall
hiscall0=hiscall hiscall0=hiscall
hisgrid0=hisgrid hisgrid0=hisgrid
neme0=neme
call timer('qmapa ',0) call timer('qmapa ',0)
call qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, & call qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &

View File

@ -21,8 +21,8 @@ subroutine q65c(itimer)
!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ### !### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ###
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, & common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
ndepth,ndiskdat,neme,newdat,nn1,nn2,nfcal,nfshift, & ndepth,ndiskdat,ntx60,newdat,nn1,nn2,nfcal,nfshift, &
mcall3,nkeep,ntol,nxant,nCFOM,nfsample,nxpol,nmode, & ntx30a,ntx30b,ntol,nxant,nCFOM,nfsample,nxpol,nmode, &
ndop00,nsave,nn3,nn4,max_nhsym,mycall,mygrid,hiscall,hisgrid, & ndop00,nsave,nn3,nn4,max_nhsym,mycall,mygrid,hiscall,hisgrid, &
datetime,junk1,junk2,bAlso30 datetime,junk1,junk2,bAlso30
equivalence (nparams,fcenter) equivalence (nparams,fcenter)
@ -38,9 +38,11 @@ subroutine q65c(itimer)
return return
endif endif
print*,'A',max_nhsym,ntx30a,ntx30b,ntx60,junk1,junk2,bAlso30
npatience=1 npatience=1
newdat=1 !Always on ?? newdat=1 !Always on ??
! call chkstat(dd,max_nhsym,ntx30a,ntx30b,ntx60,bSkip)
call chkstat(dd,max_nhsym,bSkip) call chkstat(dd,max_nhsym,bSkip)
if(bSkip .and. nagain.eq.0) return if(bSkip .and. nagain.eq.0) return

View File

@ -242,8 +242,6 @@ void MainWindow::writeSettings()
settings.setValue("SaveNone",ui->actionNone->isChecked()); settings.setValue("SaveNone",ui->actionNone->isChecked());
settings.setValue("SaveAll",ui->actionSave_all->isChecked()); settings.setValue("SaveAll",ui->actionSave_all->isChecked());
settings.setValue("ContinuousWaterfall",ui->continuous_waterfall->isChecked()); settings.setValue("ContinuousWaterfall",ui->continuous_waterfall->isChecked());
settings.setValue("NEME",m_onlyEME);
settings.setValue("KB8RQ",m_kb8rq);
settings.setValue("NB",m_NB); settings.setValue("NB",m_NB);
settings.setValue("NBslider",m_NBslider); settings.setValue("NBslider",m_NBslider);
settings.setValue("MaxDrift",ui->sbMaxDrift->value()); settings.setValue("MaxDrift",ui->sbMaxDrift->value());
@ -296,9 +294,6 @@ void MainWindow::readSettings()
ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool()); ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool());
ui->continuous_waterfall->setChecked(settings.value("ContinuousWaterfall",false).toBool()); ui->continuous_waterfall->setChecked(settings.value("ContinuousWaterfall",false).toBool());
m_saveAll=ui->actionSave_all->isChecked(); m_saveAll=ui->actionSave_all->isChecked();
m_onlyEME=settings.value("NEME",false).toBool();
ui->actionOnly_EME_calls->setChecked(m_onlyEME);
m_kb8rq=settings.value("KB8RQ",false).toBool();
m_NB=settings.value("NB",false).toBool(); m_NB=settings.value("NB",false).toBool();
ui->NBcheckBox->setChecked(m_NB); ui->NBcheckBox->setChecked(m_NB);
ui->sbMaxDrift->setValue(settings.value("MaxDrift",0).toInt()); ui->sbMaxDrift->setValue(settings.value("MaxDrift",0).toInt());
@ -423,7 +418,7 @@ void MainWindow::dataSink(int k)
*future2 = QtConcurrent::run(save_iq, fname, m_bCFOM); *future2 = QtConcurrent::run(save_iq, fname, m_bCFOM);
watcher2->setFuture(*future2); watcher2->setFuture(*future2);
} }
if(ihsym==200) m_nTx30=0; if(ihsym==200) m_nTx30b=0;
if(ihsym==m_hsymStop) m_nTx60=0; if(ihsym==m_hsymStop) m_nTx60=0;
} }
soundInThread.m_dataSinkBusy=false; soundInThread.m_dataSinkBusy=false;
@ -847,8 +842,6 @@ void MainWindow::decode() //decode()
fname=m_path.mid(i0-11,11); fname=m_path.mid(i0-11,11);
} }
} }
datcom_.neme=0;
if(ui->actionOnly_EME_calls->isChecked()) datcom_.neme=1;
int ispan=int(m_wide_graph_window->fSpan()); int ispan=int(m_wide_graph_window->fSpan());
if(ispan%2 == 1) ispan++; if(ispan%2 == 1) ispan++;
@ -861,9 +854,6 @@ void MainWindow::decode() //decode()
datcom_.nfb=nfb; datcom_.nfb=nfb;
datcom_.nfcal=m_fCal; datcom_.nfcal=m_fCal;
datcom_.nfshift=nfshift; datcom_.nfshift=nfshift;
datcom_.mcall3=0;
if(m_call3Modified) datcom_.mcall3=1;
datcom_.ntimeout=m_timeout;
datcom_.ntol=m_tol; datcom_.ntol=m_tol;
datcom_.nxant=0; datcom_.nxant=0;
m_nutc0=datcom_.nutc; m_nutc0=datcom_.nutc;
@ -887,6 +877,9 @@ void MainWindow::decode() //decode()
} else { } else {
memcpy(datcom_.datetime, m_dateTime.toLatin1(), 11); memcpy(datcom_.datetime, m_dateTime.toLatin1(), 11);
} }
datcom_.ntx30a=m_nTx30a;
datcom_.ntx30b=m_nTx30b;
datcom_.ntx60=m_nTx60;
datcom_.junk1=1234; //Check for these values in m65 datcom_.junk1=1234; //Check for these values in m65
datcom_.junk2=5678; datcom_.junk2=5678;
datcom_.bAlso30=m_bAlso30; datcom_.bAlso30=m_bAlso30;
@ -905,7 +898,7 @@ void MainWindow::decode() //decode()
} }
decodes_.ncand=0; decodes_.ncand=0;
decodes_.nQDecoderDone=0; decodes_.nQDecoderDone=0;
if(m_nTx30<5) { if(m_nTx30a<5 or m_nTx30b<5 ) {
watcher3.setFuture(QtConcurrent::run (std::bind (q65c_, &m_zero))); watcher3.setFuture(QtConcurrent::run (std::bind (q65c_, &m_zero)));
decodeBusy(true); decodeBusy(true);
} }
@ -998,17 +991,19 @@ void MainWindow::guiUpdate()
if(itest[4]>0) { if(itest[4]>0) {
m_WSJTX_TRperiod=itest[4]; m_WSJTX_TRperiod=itest[4];
m_bWTransmitting=true; m_bWTransmitting=true;
if(m_WSJTX_TRperiod==30) m_nTx30++; if(m_WSJTX_TRperiod==30 and n60<30) m_nTx30a++;
if(m_WSJTX_TRperiod==30 and n60>=30) m_nTx30b++;
if(m_WSJTX_TRperiod==60) m_nTx60++; if(m_WSJTX_TRperiod==60) m_nTx60++;
} else { } else {
m_bWTransmitting=false; m_bWTransmitting=false;
} }
// qDebug() << "AAA" << n60 << m_bWTransmitting << m_nTx60 << m_nTx30 // qDebug() << "AAA" << n60 << m_bWTransmitting << m_nTx60 << m_nTx30a << m_nTx30b
// << itest[0] << itest[1] << itest[2] << itest[3] << itest[4]; // << itest[0] << itest[1] << itest[2] << itest[3] << itest[4];
if(n60<n60z) { if(n60<n60z) {
m_nTx30=0; m_nTx30a=0;
m_nTx30b=0;
m_nTx60=0; m_nTx60=0;
} }

View File

@ -117,7 +117,8 @@ private:
qint32 m_dB; qint32 m_dB;
qint32 m_fetched=0; qint32 m_fetched=0;
qint32 m_hsymStop=390; //390*0.15 = 58.5 s qint32 m_hsymStop=390; //390*0.15 = 58.5 s
qint32 m_nTx30=0; qint32 m_nTx30a=0;
qint32 m_nTx30b=0;
qint32 m_nTx60=0; qint32 m_nTx60=0;
qint32 m_nDoubleClicked=0; qint32 m_nDoubleClicked=0;
qint32 m_nline=0; qint32 m_nline=0;