mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-12-24 11:40:31 -05:00
Resolve more issues for display of JT4 decodes; improve JT4 sync at low spread.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6679 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
f82ee7c4e3
commit
f5cec462d4
@ -159,27 +159,30 @@ contains
|
|||||||
|
|
||||||
character*2 :: cqual
|
character*2 :: cqual
|
||||||
|
|
||||||
write(*,3101) 'A',is_deep,is_average,qual,decoded
|
|
||||||
3101 format(a1,2L3,f6.1,1x,a22)
|
|
||||||
|
|
||||||
if (have_sync) then
|
if (have_sync) then
|
||||||
if (int(qual).gt.0) then
|
if (int(qual).gt.0) then
|
||||||
write(cqual, '(i2)') int(qual)
|
write(cqual, '(i2)') int(qual)
|
||||||
if (ave.gt.0) then
|
if (ave.gt.0) then
|
||||||
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual, &
|
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual, &
|
||||||
char(ichar('A')+ich-1), ave
|
char(ichar('A')+ich-1),ave
|
||||||
else
|
else
|
||||||
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual, &
|
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual, &
|
||||||
char(ichar('A')+ich-1)
|
char(ichar('A')+ich-1)
|
||||||
end if
|
end if
|
||||||
else
|
else
|
||||||
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,' *', &
|
if (ave.gt.0) then
|
||||||
char(ichar('A')+ich-1)
|
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,'*', &
|
||||||
|
char(ichar('A')+ich-1),ave
|
||||||
|
else
|
||||||
|
write(*,1000) params%nutc,snr,dt,freq,sync,decoded,' *', &
|
||||||
|
char(ichar('A')+ich-1)
|
||||||
|
endif
|
||||||
end if
|
end if
|
||||||
else
|
else
|
||||||
write(*,1000) params%nutc,snr,dt,freq
|
write(*,1000) params%nutc,snr,dt,freq
|
||||||
end if
|
end if
|
||||||
1000 format(i4.4,i4,f5.2,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3)
|
1000 format(i4.4,i4,f5.1,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3)
|
||||||
|
|
||||||
select type(this)
|
select type(this)
|
||||||
type is (counting_jt4_decoder)
|
type is (counting_jt4_decoder)
|
||||||
this%decoded = this%decoded + 1
|
this%decoded = this%decoded + 1
|
||||||
|
@ -7,9 +7,7 @@ module jt4_decode
|
|||||||
procedure, private :: wsjt4, avg4
|
procedure, private :: wsjt4, avg4
|
||||||
end type jt4_decoder
|
end type jt4_decoder
|
||||||
|
|
||||||
!
|
! Callback function to be called with each decode
|
||||||
! Callback function to be called with each decode
|
|
||||||
!
|
|
||||||
abstract interface
|
abstract interface
|
||||||
subroutine jt4_decode_callback (this, snr, dt, freq, have_sync, &
|
subroutine jt4_decode_callback (this, snr, dt, freq, have_sync, &
|
||||||
sync, is_deep, decoded, qual, ich, is_average, ave)
|
sync, is_deep, decoded, qual, ich, is_average, ave)
|
||||||
@ -30,9 +28,7 @@ module jt4_decode
|
|||||||
end subroutine jt4_decode_callback
|
end subroutine jt4_decode_callback
|
||||||
end interface
|
end interface
|
||||||
|
|
||||||
!
|
! Callback function to be called with each average result
|
||||||
! Callback function to be called with each average result
|
|
||||||
!
|
|
||||||
abstract interface
|
abstract interface
|
||||||
subroutine jt4_average_callback (this, used, utc, sync, dt, freq, flip)
|
subroutine jt4_average_callback (this, used, utc, sync, dt, freq, flip)
|
||||||
import jt4_decoder
|
import jt4_decoder
|
||||||
@ -86,13 +82,6 @@ contains
|
|||||||
call lpf1(dd,jz,dat,jz2)
|
call lpf1(dd,jz,dat,jz2)
|
||||||
call timer('lpf1 ',1)
|
call timer('lpf1 ',1)
|
||||||
|
|
||||||
!i=index(MyCall,char(0))
|
|
||||||
!if(i.le.0) i=index(MyCall,' ')
|
|
||||||
!mycall=MyCall(1:i-1)//' '
|
|
||||||
!i=index(HisCall,char(0))
|
|
||||||
!if(i.le.0) i=index(HisCall,' ')
|
|
||||||
!hiscall=HisCall(1:i-1)//' '
|
|
||||||
|
|
||||||
write(cfile6(1:4),1000) nutc
|
write(cfile6(1:4),1000) nutc
|
||||||
1000 format(i4.4)
|
1000 format(i4.4)
|
||||||
cfile6(5:6)=' '
|
cfile6(5:6)=' '
|
||||||
@ -137,7 +126,6 @@ contains
|
|||||||
blank=' '
|
blank=' '
|
||||||
ccfblue=0.
|
ccfblue=0.
|
||||||
ccfred=0.
|
ccfred=0.
|
||||||
!nagain=.false.
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
zz=0.
|
zz=0.
|
||||||
@ -166,7 +154,7 @@ contains
|
|||||||
call timer('sync4 ',1)
|
call timer('sync4 ',1)
|
||||||
|
|
||||||
call timer('zplt ',0)
|
call timer('zplt ',0)
|
||||||
do ich=4,7
|
do ich=1,7
|
||||||
z(1:458,1:65)=zz(274:731,1:65,ich)
|
z(1:458,1:65)=zz(274:731,1:65,ich)
|
||||||
call zplt(z,ich-4,syncz,dtxz,nfreqz,flipz,sync2z,0,emedelay,dttol, &
|
call zplt(z,ich-4,syncz,dtxz,nfreqz,flipz,sync2z,0,emedelay,dttol, &
|
||||||
nfqso,ntol)
|
nfqso,ntol)
|
||||||
@ -178,7 +166,7 @@ contains
|
|||||||
call timer('zplt ',1)
|
call timer('zplt ',1)
|
||||||
|
|
||||||
! Use results from zplt
|
! Use results from zplt
|
||||||
!### NB: JT4 is severely "sync limited" at present...
|
!### NB: JT4 is severely "sync limited" at present... (Maybe not still true???)
|
||||||
|
|
||||||
flip=flipz
|
flip=flipz
|
||||||
sync=syncz
|
sync=syncz
|
||||||
@ -208,7 +196,6 @@ contains
|
|||||||
dtx=dtxz + 0.03*idt
|
dtx=dtxz + 0.03*idt
|
||||||
nfreq=nfreqz + 2*idf
|
nfreq=nfreqz + 2*idf
|
||||||
|
|
||||||
|
|
||||||
! Attempt a single-sequence decode, including deep4 if Fano fails.
|
! Attempt a single-sequence decode, including deep4 if Fano fails.
|
||||||
call timer('decode4 ',0)
|
call timer('decode4 ',0)
|
||||||
call decode4(dat,npts,dtx,nfreq,flip,mode4,ndepth,neme,minw, &
|
call decode4(dat,npts,dtx,nfreq,flip,mode4,ndepth,neme,minw, &
|
||||||
@ -253,7 +240,7 @@ contains
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if(nfanoave.gt.0) then
|
if(nfanoave.gt.0) then
|
||||||
! Fano succeeded: report the message AVG FANO OK
|
! Fano succeeded: report the message AVG FANO OK
|
||||||
if (associated (this%decode_callback)) then
|
if (associated (this%decode_callback)) then
|
||||||
call this%decode_callback(nsnr,dtx,nfreq,.true.,csync, &
|
call this%decode_callback(nsnr,dtx,nfreq,.true.,csync, &
|
||||||
.false.,avemsg,0.,ich,.true.,nfanoave)
|
.false.,avemsg,0.,ich,.true.,nfanoave)
|
||||||
@ -277,6 +264,7 @@ contains
|
|||||||
deepmsg=deepmsg0
|
deepmsg=deepmsg0
|
||||||
ich=ich0
|
ich=ich0
|
||||||
qual=qbest
|
qual=qbest
|
||||||
|
|
||||||
if (associated (this%decode_callback)) then
|
if (associated (this%decode_callback)) then
|
||||||
if(int(qual).ge.nq1) then
|
if(int(qual).ge.nq1) then
|
||||||
call this%decode_callback(nsnr,dtx,nfreqz,.true.,csync,.true., &
|
call this%decode_callback(nsnr,dtx,nfreqz,.true.,csync,.true., &
|
||||||
@ -292,7 +280,8 @@ contains
|
|||||||
deepave=deepave1
|
deepave=deepave1
|
||||||
ich=ich1
|
ich=ich1
|
||||||
qave=qabest
|
qave=qabest
|
||||||
if (associated (this%decode_callback)) then
|
|
||||||
|
if (associated (this%decode_callback) .and. ndeepave.ge.2) then
|
||||||
if(int(qave).ge.nq1) then
|
if(int(qave).ge.nq1) then
|
||||||
call this%decode_callback(nsnr,dtx,nfreq,.true.,csync,.true., &
|
call this%decode_callback(nsnr,dtx,nfreq,.true.,csync,.true., &
|
||||||
deepave,qave,ich,.true.,ndeepave)
|
deepave,qave,ich,.true.,ndeepave)
|
||||||
@ -347,7 +336,7 @@ contains
|
|||||||
do i=1,64
|
do i=1,64
|
||||||
cused(i)='.'
|
cused(i)='.'
|
||||||
if(iutc(i).lt.0) cycle
|
if(iutc(i).lt.0) cycle
|
||||||
if(mod(iutc(i),2).ne.mod(nutc,2)) cycle !Use only same (odd/even) sequence
|
if(mod(iutc(i),2).ne.mod(nutc,2)) cycle !Use only same sequence
|
||||||
if(abs(dtxx-dtsave(i)).gt.dtdiff) cycle !DT must match
|
if(abs(dtxx-dtsave(i)).gt.dtdiff) cycle !DT must match
|
||||||
if(abs(nfreq-nfsave(i)).gt.ntol) cycle !Freq must match
|
if(abs(nfreq-nfsave(i)).gt.ntol) cycle !Freq must match
|
||||||
if(flip.ne.flipsave(i)) cycle !Sync (*/#) must match
|
if(flip.ne.flipsave(i)) cycle !Sync (*/#) must match
|
||||||
@ -412,7 +401,6 @@ contains
|
|||||||
qave=0.
|
qave=0.
|
||||||
|
|
||||||
! Possibly should pass nadd=nused, also ?
|
! Possibly should pass nadd=nused, also ?
|
||||||
! if(ndepth.ge.3) then
|
|
||||||
if(iand(ndepth,32).eq.32) then
|
if(iand(ndepth,32).eq.32) then
|
||||||
flipx=1.0 !Normal flip not relevant for ave msg
|
flipx=1.0 !Normal flip not relevant for ave msg
|
||||||
qbest=0.
|
qbest=0.
|
||||||
|
Loading…
Reference in New Issue
Block a user