Do only AP1 (CQ ??? ???) if we are processing live data and haven't

transmitted, or enabled Tune, for 10 minutes or more.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8282 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Steven Franke 2017-12-04 00:46:19 +00:00
parent 9f1c070c65
commit 20a19fb3e3
6 changed files with 38 additions and 18 deletions

View File

@ -42,6 +42,7 @@ extern struct dec_data {
bool nagain;
int ndepth;
bool lft8apon;
bool lapcqonly;
bool ljt65apon;
int napwid;
int ntxmode;

View File

@ -76,8 +76,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
call my_ft8%decode(ft8_decoded,id2,params%nQSOProgress,params%nfqso, &
params%nftx,newdat,params%nutc,params%nfa,params%nfb, &
params%nexp_decode,params%ndepth,logical(params%nagain), &
logical(params%lft8apon),params%napwid,params%mycall, &
params%mygrid,params%hiscall,params%hisgrid)
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
params%mycall,params%mygrid,params%hiscall,params%hisgrid)
call timer('decft8 ',1)
n15min=minval(n15fox(1:nfox))
n15max=maxval(n15fox(1:nfox))

View File

@ -1,6 +1,6 @@
subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, &
lsubtract,nagain,iaptype,mygrid6,bcontest,sync0,f1,xdt,xbase,apsym, &
nharderrors,dmin,nbadcrc,ipass,iera,message,xsnr)
subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
napwid,lsubtract,nagain,iaptype,mygrid6,bcontest,sync0,f1,xdt,xbase, &
apsym,nharderrors,dmin,nbadcrc,ipass,iera,message,xsnr)
use timer_module, only: timer
include 'ft8_params.f90'
@ -27,7 +27,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, &
complex cd0(3200)
complex ctwk(32)
complex csymb(32)
logical first,newdat,lsubtract,lapon,nagain
logical first,newdat,lsubtract,lapon,lapcqonly,nagain
equivalence (s1,s1sort)
data icos7/2,5,6,0,4,1,3/
data mcq/1,1,1,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1/
@ -66,7 +66,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, &
naptypes(2,1:4)=(/2,3,0,0/)
naptypes(3,1:4)=(/3,4,5,6/)
naptypes(4,1:4)=(/3,4,5,6/)
naptypes(5,1:4)=(/3,1,2,0/) !?
naptypes(5,1:4)=(/3,1,2,0/)
first=.false.
endif
@ -265,7 +265,11 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, &
! 7 ap pass 4, etc.
if(lapon) then
npasses=4+nappasses(nQSOProgress)
if(.not.lapcqonly) then
npasses=4+nappasses(nQSOProgress)
else
npasses=5
endif
else
npasses=4
endif
@ -283,7 +287,11 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, &
endif
if(ipass .gt. 4) then
iaptype=naptypes(nQSOProgress,ipass-4)
if(.not.lapcqonly) then
iaptype=naptypes(nQSOProgress,ipass-4)
else
iaptype=1
endif
if(iaptype.ge.3 .and. (abs(f1-nfqso).gt.napwid .and. abs(f1-nftx).gt.napwid) ) cycle
if(iaptype.eq.1 .or. iaptype.eq.2 ) then ! AP,???,???
apmask=0

View File

@ -32,9 +32,9 @@ module ft8_decode
contains
subroutine decode(this,callback,iwave,nQSOProgress,nfqso,nftx,newdat, &
nutc,nfa,nfb,nexp_decode,ndepth,nagain,lft8apon,napwid,mycall12, &
mygrid6,hiscall12,hisgrid6)
subroutine decode(this,callback,iwave,nQSOProgress,nfqso,nftx,newdat, &
nutc,nfa,nfb,nexp_decode,ndepth,nagain,lft8apon,lapcqonly,napwid, &
mycall12,mygrid6,hiscall12,hisgrid6)
! use wavhdr
use timer_module, only: timer
include 'ft8/ft8_params.f90'
@ -46,7 +46,7 @@ contains
real sbase(NH1)
real candidate(3,200)
real dd(15*12000)
logical, intent(in) :: lft8apon,nagain
logical, intent(in) :: lft8apon,lapcqonly,nagain
logical newdat,lsubtract,ldupe,bcontest
character*12 mycall12, hiscall12
character*6 mygrid6,hisgrid6
@ -105,9 +105,9 @@ contains
xbase=10.0**(0.1*(sbase(nint(f1/3.125))-40.0))
nsnr0=min(99,nint(10.0*log10(sync) - 25.5)) !### empirical ###
call timer('ft8b ',0)
call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon,napwid, &
lsubtract,nagain,iaptype,mygrid6,bcontest,sync,f1,xdt,xbase, &
apsym,nharderrors,dmin,nbadcrc,iappass,iera,message,xsnr)
call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon,lapcqonly, &
napwid,lsubtract,nagain,iaptype,mygrid6,bcontest,sync,f1,xdt, &
xbase,apsym,nharderrors,dmin,nbadcrc,iappass,iera,message,xsnr)
nsnr=nint(xsnr)
xdt=xdt-0.5
hd=nharderrors+dmin

View File

@ -24,6 +24,7 @@
logical(c_bool) :: nagain
integer(c_int) :: ndepth
logical(c_bool) :: lft8apon
logical(c_bool) :: lapcqonly
logical(c_bool) :: ljt65apon
integer(c_int) :: napwid
integer(c_int) :: ntxmode

View File

@ -2517,11 +2517,21 @@ void MainWindow::msgAvgDecode2()
void MainWindow::decode() //decode()
{
QDateTime now = QDateTime::currentDateTime();
if( m_dateTimeLastTX.isValid () ) {
QDateTime now = QDateTime::currentDateTime();
qint64 isecs_since_tx = m_dateTimeLastTX.secsTo(now);
// QTextStream(stdout) << "The last TX was " << isecs_since_tx << "seconds ago" << endl;
dec_data.params.lapcqonly= (isecs_since_tx > 600);
// QTextStream(stdout) << "last tx " << isecs_since_tx << endl;
} else {
m_dateTimeLastTX = now.addSecs(-900);
dec_data.params.lapcqonly=true;
}
if( m_diskData ) {
dec_data.params.lapcqonly=false;
}
// QTextStream(stdout) << " lapcqonly is " << dec_data.params.lapcqonly << endl;
m_msec0=QDateTime::currentMSecsSinceEpoch();
if(!m_dataAvailable or m_TRperiod==0) return;
ui->DecodeButton->setChecked (true);