Send parameters for experience-based decoding to jt9[.exe].

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6181 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2015-11-25 20:09:57 +00:00
parent 155118076c
commit b557035d0c
11 changed files with 33 additions and 20 deletions

View File

@ -37,7 +37,8 @@ extern struct FortranCommon {
int nranera;
int naggressive;
int nrobust;
int nspare[10];
int nexp_decode;
int nspare[9];
char datetime[20];
char mycall[12];
char mygrid[6];

View File

@ -1,5 +1,5 @@
subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, &
naggressive,ndepth,sync2,a,dt,nsf,nhist,decoded)
naggressive,ndepth,nexp_decode,sync2,a,dt,nsf,nhist,decoded)
! Apply AFC corrections to a candidate JT65 signal, then decode it.
@ -73,8 +73,8 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, &
call timer('sh_ffts ',1)
call timer('dec65b ',0)
call decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nqd,nsf, &
nhist,decoded)
call decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nexp_decode, &
nqd,nsf,nhist,decoded)
dt=dtbest !return new, improved estimate of dt
call timer('dec65b ',1)

View File

@ -1,5 +1,5 @@
subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nqd, &
nsf,nhist,decoded)
subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nexp_decode, &
nqd,nsf,nhist,decoded)
real s2(66,126)
real s3(64,63)
@ -23,8 +23,8 @@ subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth,nqd, &
enddo
nadd=mode65
call extract(s3,nadd,nqd,ntrials,naggressive,ndepth,ncount,nhist, &
decoded,ltext,nsf) !Extract the message
call extract(s3,nadd,nqd,ntrials,naggressive,ndepth,nexp_decode, &
ncount,nhist,decoded,ltext,nsf) !Extract the message
! Suppress "birdie messages" and other garbage decodes:
if(decoded(1:7).eq.'000AAA ') ncount=-1

View File

@ -12,7 +12,7 @@ subroutine decoder(ss,id2,nfsample)
common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, &
ntol,kin,nzhsym,nsubmode,nagain,ndepth,ntxmode,nmode,minw,nclearave, &
minsync,emedelay,dttol,nlist,listutc(10),n2pass,nranera,naggressive, &
nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid
nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid,hiscall,hisgrid
common/tracer/limtrace,lu
integer onlevel(0:10)
common/tracer_priv/level,onlevel
@ -70,7 +70,8 @@ subroutine decoder(ss,id2,nfsample)
nf2=nfb
call timer('jt65a ',0)
call jt65a(dd,npts65,newdat65,nutc,nf1,nf2,nfqso,ntol65,nsubmode, &
minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth,ndecoded)
minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth, &
nexp_decode,ndecoded)
call timer('jt65a ',1)
else if(nmode.eq.9 .or. (nmode.eq.(65+9) .and. ntxmode.eq.9)) then
@ -89,7 +90,8 @@ subroutine decoder(ss,id2,nfsample)
nf2=nfb
call timer('jt65a ',0)
call jt65a(dd,npts65,newdat65,nutc,nf1,nf2,nfqso,ntol65,nsubmode, &
minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth,ndecoded)
minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth, &
nexp_decode,ndecoded)
call timer('jt65a ',1)
else
call timer('decjt9 ',0)

View File

@ -1,4 +1,5 @@
subroutine exp_decode65(mrsym,mrprob,mr2sym,nhard,nsoft,nbest,correct)
subroutine exp_decode65(mrsym,mrprob,mr2sym,nexp_decode,nhard,nsoft,nbest, &
correct)
use packjt
use prog_args

View File

@ -1,5 +1,5 @@
subroutine extract(s3,nadd,nqd,ntrials,naggressive,ndepth,ncount,nhist, &
decoded,ltext,nsf)
subroutine extract(s3,nadd,nqd,ntrials,naggressive,ndepth,nexp_decode, &
ncount,nhist,decoded,ltext,nsf)
! Input:
! s3 64-point spectra for each of 63 data symbols
@ -74,7 +74,8 @@ subroutine extract(s3,nadd,nqd,ntrials,naggressive,ndepth,ncount,nhist, &
if(nhard.lt.0 .and. ndepth.ge.5) then
call timer('exp_deco',0)
call exp_decode65(mrsym,mrprob,mr2sym,nhard,nsoft,nbest,correct)
call exp_decode65(mrsym,mrprob,mr2sym,nexp_decode,nhard,nsoft,nbest, &
correct)
if(nbest.gt.72+2*naggressive) then
nhard=-1
endif

View File

@ -6,7 +6,7 @@ subroutine fillcom(nutc0,ndepth0,nrxfreq,mode,tx9,flow,fsplit,fhigh)
common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, &
ntol,kin,nzhsym,nsubmode,nagain,ndepth,ntxmode,nmode,minw,nclearave, &
minsync,emedelay,dttol,nlist,listutc(10),n2pass,nranera,naggressive, &
nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid
nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid,hiscall,hisgrid
save
nutc=nutc0

View File

@ -1,5 +1,6 @@
subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, &
minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth,ndecoded)
minsync,nagain,n2pass,nrobust,ntrials,naggressive,ndepth, &
nexp_decode,ndecoded)
! Process dd0() data to find and decode JT65 signals.
@ -91,7 +92,7 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, &
if(ipass.eq.2) ntry65b=ntry65b + 1
call timer('decod65a',0)
call decode65a(dd,npts,newdat,nqd,freq,nflip,mode65,nvec, &
naggressive,ndepth,sync2,a,dtx,nsf,nhist,decoded)
naggressive,ndepth,nexp_decode,sync2,a,dtx,nsf,nhist,decoded)
call timer('decod65a',1)
!write(*,*) icand,freq+a(1),dtx,sync1,sync2
if(decoded.eq.decoded0) cycle !Don't display dupes

View File

@ -54,7 +54,7 @@ program jt9
ntr,mousefqso,newdat,npts8a,nfa,nfsplit,nfb,ntol,kin,nzhsym, &
nsubmode,nagain,ndepth,ntxmode,nmode,minw,nclearave,minsync, &
emedelay,dttol,nlist,listutc(10),n2pass,nranera,naggressive, &
nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid
nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid,hiscall,hisgrid
common/tracer/limtrace,lu
common/patience/npatience,nthreads

View File

@ -9,7 +9,8 @@ subroutine jt9c(ss,savg,id2,nparams0)
common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, &
ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,minw,nclearave, &
minsync,emedelay,dttol,nlist,listutc(10),n2pass,nranera, &
naggressive,nrobust,nspare(10),datetime,mycall,mygrid,hiscall,hisgrid
naggressive,nrobust,nexp_decode,nspare(9),datetime,mycall,mygrid, &
hiscall,hisgrid
common/patience/npatience,nthreads
equivalence (nparams,nutc)

View File

@ -1697,6 +1697,12 @@ void MainWindow::decode() //decode()
jt9com_.emedelay=0.0;
if(m_bEME) jt9com_.emedelay=2.5;
jt9com_.minSync=m_minSync;
jt9com_.nexp_decode=0;
if(m_config.MyDx()) jt9com_.nexp_decode += 1;
if(m_config.CQMyN()) jt9com_.nexp_decode += 2;
if(m_config.NDxG()) jt9com_.nexp_decode += 4;
if(m_config.NN()) jt9com_.nexp_decode += 8;
if(m_config.EMEonly()) jt9com_.nexp_decode += 16;
strncpy(jt9com_.datetime, m_dateTime.toLatin1(), 20);
strncpy(jt9com_.mycall, (m_config.my_callsign()+" ").toLatin1(),12);