Multi-decodes and nagain decodes now basically functional. Needs cleanup!

This commit is contained in:
Joe Taylor 2023-01-16 17:45:14 -05:00
parent f4475740c1
commit 6f02c86d9a
7 changed files with 24 additions and 29 deletions

View File

@ -11,7 +11,7 @@ extern struct { //This is "common/datcom/..." in Fortran
float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol
double fcenter; //Center freq from Linrad (MHz) double fcenter; //Center freq from Linrad (MHz)
int nutc; //UTC as integer, HHMM int nutc; //UTC as integer, HHMM
int idphi; //Phase correction for Y pol'n, degrees float fselected; //Selected frequency for nagain decodes
int mousedf; //User-selected DF int mousedf; //User-selected DF
int mousefqso; //User-selected QSO freq (kHz) int mousefqso; //User-selected QSO freq (kHz)
int nagain; //1 ==> decode only at fQSO +/- Tol int nagain; //1 ==> decode only at fQSO +/- Tol
@ -50,7 +50,7 @@ extern struct { //This is "common/datcom/..." in Fortran
float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol
double fcenter; //Center freq from Linrad (MHz) double fcenter; //Center freq from Linrad (MHz)
int nutc; //UTC as integer, HHMM int nutc; //UTC as integer, HHMM
int idphi; //Phase correction for Y pol'n, degrees float fselected; //Selected frequency for nagain decodes
int mousedf; //User-selected DF int mousedf; //User-selected DF
int mousefqso; //User-selected QSO freq (kHz) int mousefqso; //User-selected QSO freq (kHz)
int nagain; //1 ==> decode only at fQSO +/- Tol int nagain; //1 ==> decode only at fQSO +/- Tol

View File

@ -11,7 +11,7 @@ subroutine decode0(dd,ss,savg)
character*60 result character*60 result
common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, & common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, &
nWTransmitting,result(50) nWTransmitting,result(50)
common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, &
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, &
ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime
@ -45,7 +45,7 @@ subroutine decode0(dd,ss,savg)
call q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, & call q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
mousedf,mousefqso,nagain,nfshift,max_drift, & mousedf,mousefqso,nagain,nfshift,max_drift, &
nfcal,mycall,hiscall,hisgrid,nfsample,nmode,ndepth, & nfcal,mycall,hiscall,hisgrid,nfsample,nmode,ndepth, &
datetime,ndop00) datetime,ndop00,fselected)
call timer('q65wa ',1) call timer('q65wa ',1)
return return

View File

@ -19,7 +19,7 @@ subroutine q65c(itimer)
common/datcom2/dd(2,5760000),ss(322,NFFT),savg(NFFT),nparams0 common/datcom2/dd(2,5760000),ss(322,NFFT),savg(NFFT),nparams0
!### 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,idphi,mousedf,mousefqso,nagain, & common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, &
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, &
ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid, & ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid, &
@ -35,21 +35,18 @@ subroutine q65c(itimer)
return return
endif endif
! newdat=1
! nagain=0
write(*,3001) 'aa',newdat,nagain,nfa,nfb,ntol
3001 format(a2,5i6)
datetime(18:20)=':00' datetime(18:20)=':00'
npatience=1 npatience=1
! if(newdat.eq.0 .and. nagain.eq.1) then if(nagain.eq.1) then
! nfa=nint(mousefqso+0.001*mousedf) - 1 !Minimal solution for ! nfa=127
! nfb=nint(mousefqso+0.001*mousedf) + 1 !double-click decodes ! nfb=128
! newdat=1 newdat=1
! nagain=0 ! nagain=0
! endif endif
write(*,3001) 'bb',newdat,nagain,nfa,nfb,ntol write(*,3001) 'aa',newdat,nagain,nfa,nfb,ntol,fselected
3001 format(a2,5i6,f10.3)
write(*,3001) 'bb',newdat,nagain,nfa,nfb,ntol,fselected
call timer('decode0 ',0) call timer('decode0 ',0)
call decode0(dd,ss,savg) call decode0(dd,ss,savg)

View File

@ -1,6 +1,6 @@
subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, & subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
mousedf,mousefqso,nagain,nfshift,max_drift,nfcal,mycall, & mousedf,mousefqso,nagain,nfshift,max_drift,nfcal,mycall, &
hiscall,hisgrid,nfsample,nmode,ndepth,datetime,ndop00) hiscall,hisgrid,nfsample,nmode,ndepth,datetime,ndop00,fselected)
! Processes timf2 data received from Linrad to find and decode Q65 signals. ! Processes timf2 data received from Linrad to find and decode Q65 signals.
@ -55,13 +55,18 @@ subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
do icand=1,ncand !Attempt to decode each candidate do icand=1,ncand !Attempt to decode each candidate
f0=cand(icand)%f f0=cand(icand)%f
! if(f0-mfa.lt.0.0 .or. f0-mfb.gt.0.0) cycle
print*,'cc',nagain,ntol,fselected,f0+nkhz_center-48.0
if(nagain.eq.1 .and. abs(f0+nkhz_center-48.0 - fselected).gt.0.001*ntol) cycle
nagain2=0
print*,'dd',nagain,ntol,fselected,f0+nkhz_center-48.0
freq=cand(icand)%f+nkhz_center-48.0-1.27046 freq=cand(icand)%f+nkhz_center-48.0-1.27046
ikhz=nint(freq) ikhz=nint(freq)
idec=-1 idec=-1
call timer('q65b ',0) call timer('q65b ',0)
call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, & call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
mycall,hiscall,hisgrid,mode_q65,f0,fqso,nkhz_center,newdat, & mycall,hiscall,hisgrid,mode_q65,f0,fqso,nkhz_center,newdat, &
nagain,max_drift,ndepth,datetime,ndop00,idec) nagain2,max_drift,ndepth,datetime,ndop00,idec)
call timer('q65b ',1) call timer('q65b ',1)
tsec=sec_midn() - tsec0 tsec=sec_midn() - tsec0
if(tsec.gt.30.0) exit !Don't start another decode attempt after t=30 s. if(tsec.gt.30.0) exit !Don't start another decode attempt after t=30 s.

View File

@ -229,7 +229,6 @@ void MainWindow::writeSettings()
settings.setValue("SaveDir",m_saveDir); settings.setValue("SaveDir",m_saveDir);
settings.setValue("AzElDir",m_azelDir); settings.setValue("AzElDir",m_azelDir);
settings.setValue("Timeout",m_timeout); settings.setValue("Timeout",m_timeout);
settings.setValue("dPhi",m_dPhi);
settings.setValue("Fcal",m_fCal); settings.setValue("Fcal",m_fCal);
settings.setValue("Fadd",m_fAdd); settings.setValue("Fadd",m_fAdd);
settings.setValue("NetworkInput", m_network); settings.setValue("NetworkInput", m_network);
@ -277,7 +276,6 @@ void MainWindow::readSettings()
m_saveDir=settings.value("SaveDir",m_appDir + "/save").toString(); m_saveDir=settings.value("SaveDir",m_appDir + "/save").toString();
m_azelDir=settings.value("AzElDir",m_appDir).toString(); m_azelDir=settings.value("AzElDir",m_appDir).toString();
m_timeout=settings.value("Timeout",20).toInt(); m_timeout=settings.value("Timeout",20).toInt();
m_dPhi=settings.value("dPhi",0).toInt();
m_fCal=settings.value("Fcal",0).toInt(); m_fCal=settings.value("Fcal",0).toInt();
m_fAdd=settings.value("FAdd",0).toDouble(); m_fAdd=settings.value("FAdd",0).toDouble();
soundInThread.setFadd(m_fAdd); soundInThread.setFadd(m_fAdd);
@ -456,7 +454,6 @@ void MainWindow::on_actionSettings_triggered()
dlg.m_saveDir=m_saveDir; dlg.m_saveDir=m_saveDir;
dlg.m_azelDir=m_azelDir; dlg.m_azelDir=m_azelDir;
dlg.m_timeout=m_timeout; dlg.m_timeout=m_timeout;
dlg.m_dPhi=m_dPhi;
dlg.m_fCal=m_fCal; dlg.m_fCal=m_fCal;
dlg.m_fAdd=m_fAdd; dlg.m_fAdd=m_fAdd;
dlg.m_network=m_network; dlg.m_network=m_network;
@ -474,7 +471,6 @@ void MainWindow::on_actionSettings_triggered()
m_saveDir=dlg.m_saveDir; m_saveDir=dlg.m_saveDir;
m_azelDir=dlg.m_azelDir; m_azelDir=dlg.m_azelDir;
m_timeout=dlg.m_timeout; m_timeout=dlg.m_timeout;
m_dPhi=dlg.m_dPhi;
m_fCal=dlg.m_fCal; m_fCal=dlg.m_fCal;
m_fAdd=dlg.m_fAdd; m_fAdd=dlg.m_fAdd;
m_wide_graph_window->setFcal(m_fCal); m_wide_graph_window->setFcal(m_fCal);
@ -841,10 +837,8 @@ void MainWindow::freezeDecode(int n) //freezeDecode()
void MainWindow::decode() //decode() void MainWindow::decode() //decode()
{ {
//Don't attempt to decode if decoder is already busy, or if we transmitted for 10 s or more. //Don't attempt to decode if decoder is already busy, or if we transmitted for 10 s or more.
if(m_decoderBusy or m_nTransmitted>10) return; if(m_decoderBusy or m_nTransmitted>10) return;
QString fname=" "; QString fname=" ";
ui->DecodeButton->setStyleSheet(m_pbdecoding_style1); ui->DecodeButton->setStyleSheet(m_pbdecoding_style1);
@ -856,9 +850,9 @@ void MainWindow::decode() //decode()
datcom_.nutc=100*ihr + imin; datcom_.nutc=100*ihr + imin;
} }
datcom_.idphi=m_dPhi;
datcom_.mousedf=m_wide_graph_window->DF(); datcom_.mousedf=m_wide_graph_window->DF();
datcom_.mousefqso=m_wide_graph_window->QSOfreq(); datcom_.mousefqso=m_wide_graph_window->QSOfreq();
datcom_.fselected=datcom_.mousefqso + 0.001*datcom_.mousedf;
datcom_.ndepth=m_ndepth+1; datcom_.ndepth=m_ndepth+1;
datcom_.ndiskdat=0; datcom_.ndiskdat=0;
if(m_diskData) { if(m_diskData) {
@ -891,7 +885,7 @@ void MainWindow::decode() //decode()
datcom_.nfa=nfa; datcom_.nfa=nfa;
datcom_.nfb=nfb; datcom_.nfb=nfb;
qDebug() << "bbb" << datcom_.fcenter << datcom_.nfa << datcom_.nfb; qDebug() << "bbb" << datcom_.fcenter << datcom_.nfa << datcom_.nfb << datcom_.fselected;
datcom_.nfcal=m_fCal; datcom_.nfcal=m_fCal;
datcom_.nfshift=nfshift; datcom_.nfshift=nfshift;
datcom_.mcall3=0; datcom_.mcall3=0;

View File

@ -103,7 +103,6 @@ private:
qint32 m_QSOfreq0; qint32 m_QSOfreq0;
qint32 m_astroFont; qint32 m_astroFont;
qint32 m_timeout; qint32 m_timeout;
qint32 m_dPhi;
qint32 m_fCal; qint32 m_fCal;
qint32 m_txFreq; qint32 m_txFreq;
qint32 m_setftx; qint32 m_setftx;
@ -130,7 +129,7 @@ private:
bool m_monitoring; bool m_monitoring;
bool m_diskData; bool m_diskData;
bool m_loopall; bool m_loopall;
bool m_decoderBusy; bool m_decoderBusy=false;
bool m_restart; bool m_restart;
bool m_call3Modified; bool m_call3Modified;
bool m_startAnother; bool m_startAnother;

View File

@ -19,7 +19,7 @@ extern "C"
float savg[NFFT]; float savg[NFFT];
double fcenter; double fcenter;
int nutc; int nutc;
int idphi; //Phase correction for Y pol'n, degrees float fselected; //Selected frequency for nagain decodes
int mousedf; //User-selected DF int mousedf; //User-selected DF
int mousefqso; //User-selected QSO freq (kHz) int mousefqso; //User-selected QSO freq (kHz)
int nagain; //1 ==> decode only at fQSO +/- Tol int nagain; //1 ==> decode only at fQSO +/- Tol