Always use "&" for MSK144 decodes. Add single digit at end of line to indicate number of frames coherently averaged. THIS REVISION IS NOT INTENDED FOR USE ON THE AIR.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7146 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-10-03 20:28:27 +00:00
parent d9e4b7eede
commit a852efc33f
2 changed files with 12 additions and 7 deletions

View File

@ -1,5 +1,5 @@
subroutine msk144spd(cbig,n,ntol,nsuccess,msgreceived,fc,fret,tret) subroutine msk144spd(cbig,n,ntol,nsuccess,msgreceived,fc,fret,tret,iavg_decoded)
! msk144 short-ping-decoder ! MSK144 short-ping-decoder
use timer_module, only: timer use timer_module, only: timer
@ -182,7 +182,7 @@ subroutine msk144spd(cbig,n,ntol,nsuccess,msgreceived,fc,fret,tret)
if( ndecodesuccess .gt. 0 ) then if( ndecodesuccess .gt. 0 ) then
tret=(nstart(icand)+NSPM/2)/fs tret=(nstart(icand)+NSPM/2)/fs
fret=fest fret=fest
!write(*,*) icand, iav, ipk, is, tret, fret, msgreceived iavg_decoded=iav
nsuccess=1 nsuccess=1
return return
endif endif

View File

@ -24,6 +24,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
integer iavmask(8) integer iavmask(8)
integer iavpatterns(8,NPATTERNS) integer iavpatterns(8,NPATTERNS)
integer npkloc(10) integer npkloc(10)
integer navgd(10)
real d(NFFT1) real d(NFFT1)
real pow(8) real pow(8)
@ -36,6 +37,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
1,1,1,1,1,0,0,0, & 1,1,1,1,1,0,0,0, &
1,1,1,1,1,1,1,0/ 1,1,1,1,1,1,1,0/
data xmc/2.0,4.5,2.5,3.5/ !Used to label decode with time at center of averaging mask data xmc/2.0,4.5,2.5,3.5/ !Used to label decode with time at center of averaging mask
data navgd/1,1,1,2,2,3,4,4,5,7/
!###### TEMPORARY !###### TEMPORARY
data mycall/'K9AN'/ data mycall/'K9AN'/
data hiscall/'K1JT'/ data hiscall/'K1JT'/
@ -89,7 +91,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
! center a 3-frame analysis window and attempts to decode each of the ! center a 3-frame analysis window and attempts to decode each of the
! 3 frames along with 2- and 3-frame averages. ! 3 frames along with 2- and 3-frame averages.
np=8*NSPM np=8*NSPM
call msk144spd(cdat,np,ntol,nsuccess,msgreceived,fc,fest,tdec) call msk144spd(cdat,np,ntol,nsuccess,msgreceived,fc,fest,tdec,iavg_decoded)
!############################################################ !############################################################
!##### hardwired for testing - need to bring in Sh box status !##### hardwired for testing - need to bring in Sh box status
@ -110,6 +112,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
! Normal - try 4-frame averages ! Normal - try 4-frame averages
! Deep - try 4-, 5- and 7-frame averages. ! Deep - try 4-, 5- and 7-frame averages.
npat=NPATTERNS npat=NPATTERNS
iavg_decoded=0
if( ndepth .eq. 1 ) npat=0 if( ndepth .eq. 1 ) npat=0
if( ndepth .eq. 2 ) npat=2 if( ndepth .eq. 2 ) npat=2
do iavg=1,npat do iavg=1,npat
@ -130,7 +133,8 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
call msk144decodeframe(ct,msgreceived,ndecodesuccess) call msk144decodeframe(ct,msgreceived,ndecodesuccess)
if(ndecodesuccess .gt. 0) then if(ndecodesuccess .gt. 0) then
tdec=tsec+xmc(iavg)*tframe tdec=tsec+xmc(iavg)*tframe
decsym=' ^ ' decsym=' & '
iavg_decoded=iavg+6
goto 900 goto 900
endif endif
enddo !Slicer dither enddo !Slicer dither
@ -165,8 +169,9 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
nsnrlast=nsnr nsnrlast=nsnr
if( nsnr .lt. -8 ) nsnr=-8 if( nsnr .lt. -8 ) nsnr=-8
if( nsnr .gt. 24 ) nsnr=24 if( nsnr .gt. 24 ) nsnr=24
write(line,1020) nutc0,nsnr,tdec,nint(fest),decsym,msgreceived,char(0) write(line,1020) nutc0,nsnr,tdec,nint(fest),decsym,msgreceived, &
1020 format(i6.6,i4,f5.1,i5,a3,a22,a1) navgd(iavg_decoded),char(0)
1020 format(i6.6,i4,f5.1,i5,a3,a22,i2,a1)
endif endif
999 tsec0=tsec 999 tsec0=tsec