Save f0 and msg for the most recent 100 decodes. Subsequent double-click on waterfall will look up "hiscall" (and possibly "hisgrid") from the list.

This commit is contained in:
Joe Taylor 2021-03-18 16:33:46 -04:00
parent d2b4fdad5f
commit ac2954ed0d
2 changed files with 53 additions and 3 deletions

View File

@ -98,6 +98,10 @@ contains
allocate (c00(0:nfft1-1))
allocate (c0(0:nfft1-1))
if(lagain) then
call q65_hist(nfqso,dxcall=hiscall,dxgrid=hisgrid)
endif
nsps=1800
if(ntrperiod.eq.30) then
nsps=3600
@ -235,7 +239,7 @@ contains
nsnr=nint(snr2)
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, &
idec,nused,ntrperiod)
! if(iand(ndepth,128).ne.0) call q65_clravg !AutoClrAvg after decode
call q65_hist(nint(f0dec),msg0=decoded)
if(iand(ndepth,128).ne.0 .and. .not.lagain .and. &
int(abs(f0dec-nfqso)).le.ntol ) call q65_clravg !AutoClrAvg
call sec0(1,tdecode)
@ -312,7 +316,7 @@ contains
nsnr=nint(snr2)
call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, &
idec,nused,ntrperiod)
! if(iand(ndepth,128).ne.0) call q65_clravg !AutoClrAvg after decode
call q65_hist(nint(f0dec),msg0=decoded)
if(iand(ndepth,128).ne.0 .and. .not.lagain .and. &
int(abs(f0dec-nfqso)).le.ntol ) call q65_clravg !AutoClrAvg
call sec0(1,tdecode)

View File

@ -701,4 +701,50 @@ subroutine q65_snr(dat4,dtdec,f0dec,mode_q65,nused,snr2)
return
end subroutine q65_snr
subroutine q65_hist(if0,msg0,dxcall,dxgrid)
parameter (MAXHIST=100)
integer,intent(in) :: if0
character(len=37),intent(in),optional :: msg0
character(len=12),intent(out),optional :: dxcall
character(len=6),intent(out),optional :: dxgrid
character*6 g1
character*37 msg(MAXHIST)
integer nf0(MAXHIST)
logical isgrid
data nhist/0/
save nhist,nf0,msg
isgrid(g1)=g1(1:1).ge.'A' .and. g1(1:1).le.'R' .and. g1(2:2).ge.'A' .and. &
g1(2:2).le.'R' .and. g1(3:3).ge.'0' .and. g1(3:3).le.'9' .and. &
g1(4:4).ge.'0' .and. g1(4:4).le.'9' .and. g1(1:4).ne.'RR73'
if(present(dxcall)) go to 100
if(nhist.eq.MAXHIST) then
nf0(1:MAXHIST-1)=nf0(2:MAXHIST)
msg(1:MAXHIST-1)=msg(2:MAXHIST)
nhist=MAXHIST-1
endif
nhist=nhist+1
nf0(nhist)=if0
msg(nhist)=msg0
go to 900
100 dxcall=' '
dxgrid=' '
do i=1,nhist
if(abs(nf0(i)-if0).gt.10) cycle
i1=index(msg(i),' ')
if(i1.ge.4 .and. i1.le.13) then
i2=index(msg(i)(i1+1:),' ') + i1
dxcall=msg(i)(i1+1:i2-1)
g1=msg(i)(i2+1:i2+4)
if(isgrid(g1)) dxgrid=g1(1:4)
endif
enddo
900 return
end subroutine q65_hist
end module q65