mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-04 09:01:46 -04:00
FST4W: Add -Y option to jt9, which is like -W except that 22-bit hash values are printed for type 3 decodes.
This commit is contained in:
parent
0a139e5acd
commit
cbe674bedd
@ -44,6 +44,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
||||
|
||||
real ss(184,NSMAX)
|
||||
logical baddata,newdat65,newdat9,single_decode,bVHF,bad0,newdat,ex
|
||||
logical lprinthash22
|
||||
integer*2 id2(NTMAX*12000)
|
||||
type(params_block) :: params
|
||||
real*4 dd(NTMAX*12000)
|
||||
@ -221,27 +222,30 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
||||
! We're in FST4 mode
|
||||
ndepth=iand(params%ndepth,3)
|
||||
iwspr=0
|
||||
lprinthash22=.false.
|
||||
params%nsubmode=0
|
||||
call timer('dec_fst4',0)
|
||||
call my_fst4%decode(fst4_decoded,id2,params%nutc, &
|
||||
params%nQSOProgress,params%nfa,params%nfb, &
|
||||
params%nfqso,ndepth,params%ntr,params%nexp_decode, &
|
||||
params%ntol,params%emedelay,logical(params%nagain), &
|
||||
logical(params%lapcqonly),mycall,hiscall,iwspr)
|
||||
logical(params%lapcqonly),mycall,hiscall,iwspr,lprinthash22)
|
||||
call timer('dec_fst4',1)
|
||||
go to 800
|
||||
endif
|
||||
|
||||
if(params%nmode.eq.241) then
|
||||
if(params%nmode.eq.241 .or. params%nmode.eq.242) then
|
||||
! We're in FST4W mode
|
||||
ndepth=iand(params%ndepth,3)
|
||||
iwspr=1
|
||||
lprinthash22=.false.
|
||||
if(params%nmode.eq.242) lprinthash22=.true.
|
||||
call timer('dec_fst4',0)
|
||||
call my_fst4%decode(fst4_decoded,id2,params%nutc, &
|
||||
params%nQSOProgress,params%nfa,params%nfb, &
|
||||
params%nfqso,ndepth,params%ntr,params%nexp_decode, &
|
||||
params%ntol,params%emedelay,logical(params%nagain), &
|
||||
logical(params%lapcqonly),mycall,hiscall,iwspr)
|
||||
logical(params%lapcqonly),mycall,hiscall,iwspr,lprinthash22)
|
||||
call timer('dec_fst4',1)
|
||||
go to 800
|
||||
endif
|
||||
@ -705,7 +709,7 @@ contains
|
||||
end subroutine ft4_decoded
|
||||
|
||||
subroutine fst4_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, &
|
||||
qual,ntrperiod,lwspr,fmid,w50)
|
||||
qual,ntrperiod,fmid,w50)
|
||||
|
||||
use fst4_decode
|
||||
implicit none
|
||||
@ -720,7 +724,6 @@ contains
|
||||
integer, intent(in) :: nap
|
||||
real, intent(in) :: qual
|
||||
integer, intent(in) :: ntrperiod
|
||||
logical, intent(in) :: lwspr
|
||||
real, intent(in) :: fmid
|
||||
real, intent(in) :: w50
|
||||
|
||||
|
@ -8,7 +8,7 @@ module fst4_decode
|
||||
|
||||
abstract interface
|
||||
subroutine fst4_decode_callback (this,nutc,sync,nsnr,dt,freq, &
|
||||
decoded,nap,qual,ntrperiod,lwspr,fmid,w50)
|
||||
decoded,nap,qual,ntrperiod,fmid,w50)
|
||||
import fst4_decoder
|
||||
implicit none
|
||||
class(fst4_decoder), intent(inout) :: this
|
||||
@ -21,7 +21,6 @@ module fst4_decode
|
||||
integer, intent(in) :: nap
|
||||
real, intent(in) :: qual
|
||||
integer, intent(in) :: ntrperiod
|
||||
logical, intent(in) :: lwspr
|
||||
real, intent(in) :: fmid
|
||||
real, intent(in) :: w50
|
||||
end subroutine fst4_decode_callback
|
||||
@ -31,7 +30,7 @@ contains
|
||||
|
||||
subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, &
|
||||
ndepth,ntrperiod,nexp_decode,ntol,emedelay,lagain,lapcqonly,mycall, &
|
||||
hiscall,iwspr)
|
||||
hiscall,iwspr,lprinthash22)
|
||||
|
||||
use prog_args
|
||||
use timer_module, only: timer
|
||||
@ -67,9 +66,10 @@ contains
|
||||
integer mcq(29),mrrr(19),m73(19),mrr73(19)
|
||||
|
||||
logical badsync,unpk77_success,single_decode
|
||||
logical first,nohiscall,lwspr
|
||||
logical first,nohiscall
|
||||
logical new_callsign,plotspec_exists,wcalls_exists,do_k50_decode
|
||||
logical decdata_exists
|
||||
logical lprinthash22
|
||||
|
||||
integer*2 iwave(30*60*12000)
|
||||
|
||||
@ -88,7 +88,8 @@ contains
|
||||
dxcall13=hiscall ! initialize for use in packjt77
|
||||
mycall13=mycall
|
||||
|
||||
if(iwspr.ne.0.and.iwspr.ne.1) return
|
||||
if(iwspr.ne.0 .and. iwspr.ne.1) return
|
||||
|
||||
if(lagain) continue ! use lagain to keep compiler happy
|
||||
|
||||
if(first) then
|
||||
@ -503,6 +504,13 @@ contains
|
||||
write(c77,'(50i1)') message74(1:50)
|
||||
c77(51:77)='000000000000000000000110000'
|
||||
call unpack77(c77,1,msg,unpk77_success)
|
||||
if(lprinthash22 .and. unpk77_success .and. index(msg,'<...>').gt.0) then
|
||||
read(c77,'(b22.22)') n22tmp
|
||||
i1=index(msg,' ')
|
||||
wpart=trim(msg(i1+1:))
|
||||
write(msg,'(a1,i7.7,a1)') '<',n22tmp,'>'
|
||||
msg=trim(msg)//' '//trim(wpart)
|
||||
endif
|
||||
if(unpk77_success .and. do_k50_decode) then
|
||||
! If decode was obtained with Keff=66, save call/grid in fst4w_calls.txt if not there already.
|
||||
i1=index(msg,' ')
|
||||
@ -626,8 +634,7 @@ contains
|
||||
close(21)
|
||||
endif
|
||||
call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, &
|
||||
iaptype,qual,ntrperiod,lwspr,fmid,w50)
|
||||
! if(iwspr.eq.0 .and. nb.lt.0) go to 900
|
||||
iaptype,qual,ntrperiod,fmid,w50)
|
||||
goto 800
|
||||
endif
|
||||
enddo ! metrics
|
||||
|
18
lib/jt9.f90
18
lib/jt9.f90
@ -27,7 +27,7 @@ program jt9
|
||||
logical :: read_files = .true., tx9 = .false., display_help = .false., &
|
||||
bLowSidelobes = .false., nexp_decode_set = .false., &
|
||||
have_ntol = .false.
|
||||
type (option) :: long_options(31) = [ &
|
||||
type (option) :: long_options(32) = [ &
|
||||
option ('help', .false., 'h', 'Display this help message', ''), &
|
||||
option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), &
|
||||
option ('tr-period', .true., 'p', 'Tx/Rx period, default SECONDS=60', &
|
||||
@ -60,6 +60,7 @@ program jt9
|
||||
option ('jt65', .false.,'6', 'JT65 mode', ''), &
|
||||
option ('fst4', .false., '7', 'FST4 mode', ''), &
|
||||
option ('fst4w', .false., 'W', 'FST4W mode', ''), &
|
||||
option ('fst4w', .false., 'Y', 'FST4W mode, print hash22 values', ''), &
|
||||
option ('ft8', .false., '8', 'FT8 mode', ''), &
|
||||
option ('jt9', .false., '9', 'JT9 mode', ''), &
|
||||
option ('qra64', .false., 'q', 'QRA64 mode', ''), &
|
||||
@ -85,13 +86,12 @@ program jt9
|
||||
common/decstats/ntry65a,ntry65b,n65a,n65b,num9,numfano
|
||||
data npatience/1/,nthreads/1/,wisfile/' '/
|
||||
|
||||
iwspr=0
|
||||
nsubmode = 0
|
||||
ntol = 20
|
||||
TRperiod=60.d0
|
||||
|
||||
do
|
||||
call getopt('hs:e:a:b:r:m:p:d:f:F:w:t:9876543WqTL:S:H:c:G:x:g:X:Q:', &
|
||||
call getopt('hs:e:a:b:r:m:p:d:f:F:w:t:9876543WYqTL:S:H:c:G:x:g:X:Q:', &
|
||||
long_options,c,optarg,arglen,stat,offset,remain,.true.)
|
||||
if (stat .ne. 0) then
|
||||
exit
|
||||
@ -141,7 +141,6 @@ program jt9
|
||||
if (mode.lt.65) mode = mode + 65
|
||||
case ('7')
|
||||
mode = 240
|
||||
iwspr=0
|
||||
case ('8')
|
||||
mode = 8
|
||||
case ('9')
|
||||
@ -152,7 +151,8 @@ program jt9
|
||||
read (optarg(:arglen), *) npatience
|
||||
case ('W')
|
||||
mode = 241
|
||||
iwspr=1
|
||||
case ('Y')
|
||||
mode = 242
|
||||
case ('c')
|
||||
read (optarg(:arglen), *) mycall
|
||||
case ('G')
|
||||
@ -212,7 +212,7 @@ program jt9
|
||||
hisgrid=' '
|
||||
endif
|
||||
|
||||
if (mode .eq. 241) then
|
||||
if (mode .eq. 241 .or. mode .eq. 242) then
|
||||
ntol = min (ntol, 100)
|
||||
else if (mode .eq. 65 + 9 .and. .not. have_ntol) then
|
||||
ntol = 20
|
||||
@ -222,7 +222,7 @@ program jt9
|
||||
ntol = min (ntol, 1000)
|
||||
end if
|
||||
if (.not. nexp_decode_set) then
|
||||
if (mode .eq. 240 .or. mode .eq. 241) then
|
||||
if (mode .eq. 240 .or. mode .eq. 241 .or. mode .eq. 242) then
|
||||
nexp_decode = 3 * 256 ! single decode off and nb=0
|
||||
end if
|
||||
end if
|
||||
@ -277,7 +277,8 @@ program jt9
|
||||
call timer('symspec ',1)
|
||||
endif
|
||||
nhsym0=nhsym
|
||||
if(nhsym.ge.181 .and. mode.ne.240 .and. mode.ne.241 .and. mode.ne.66) exit
|
||||
if(nhsym.ge.181 .and. mode.ne.240 .and. mode.ne.241 .and. &
|
||||
mode.ne.242 .and. mode.ne.66) exit
|
||||
endif
|
||||
enddo
|
||||
close(unit=wav%lun)
|
||||
@ -294,7 +295,6 @@ program jt9
|
||||
shared_data%params%kin=64800
|
||||
if(mode.eq.240) shared_data%params%kin=720000 !### 60 s periods ###
|
||||
shared_data%params%nzhsym=nhsym
|
||||
if(mode.eq.240 .and. iwspr.eq.1) ndepth=ior(ndepth,128)
|
||||
shared_data%params%ndepth=ndepth
|
||||
shared_data%params%lft8apon=.true.
|
||||
shared_data%params%ljt65apon=.true.
|
||||
|
Loading…
Reference in New Issue
Block a user