mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
Multi-decodes and nagain decodes now basically functional. Needs cleanup!
This commit is contained in:
parent
f4475740c1
commit
6f02c86d9a
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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.
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user