mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-08-21 22:06:34 -04:00
Fix packjt truncation error and text3 null detection. Add additional test messages. Add check message capability to jt65code and jt9code so that comparison confirms expected output. jt65code and jt9code now should always have identical outputs..should allow for automatic regression testing. Thanks to Mike, W9MDB, for this contribution. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7649 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
85 lines
2.4 KiB
Fortran
85 lines
2.4 KiB
Fortran
program jt9code
|
|
|
|
! Generate simulated data for testing of WSJT-X
|
|
|
|
character*22 msg,msgchk,msg0,msg1,decoded,cok*3,bad*1,msgtype*10,expected
|
|
integer*4 i4tone(85) !Channel symbols (values 0-8)
|
|
include 'testmsg.f90'
|
|
include 'jt9sync.f90'
|
|
|
|
nargs=iargc()
|
|
if(nargs.ne.1) then
|
|
print*,'Usage: jt9code "message"'
|
|
print*,' jt9code -t'
|
|
go to 999
|
|
endif
|
|
|
|
call getarg(1,msg)
|
|
nmsg=1
|
|
if(msg(1:2).eq."-t") then
|
|
if (NTEST+5 > MAXTEST) then
|
|
write(*,*) "NTEST exceed MAXTEST"
|
|
endif
|
|
testmsg(NTEST+1)="KA1ABC WB9XYZ EN34 OOO"
|
|
testmsg(NTEST+2)="KA1ABC WB9XYZ OOO"
|
|
testmsg(NTEST+3)="RO"
|
|
testmsg(NTEST+4)="RRR"
|
|
testmsg(NTEST+5)="73"
|
|
testmsgchk(NTEST+1)="KA1ABC WB9XYZ EN34 OOO"
|
|
testmsgchk(NTEST+2)="KA1ABC WB9XYZ OOO"
|
|
testmsgchk(NTEST+3)="RO"
|
|
testmsgchk(NTEST+4)="RRR"
|
|
testmsgchk(NTEST+5)="73"
|
|
nmsg=NTEST+5
|
|
endif
|
|
|
|
write(*,1010)
|
|
1010 format(" Message Decoded Err? Type Expected"/ &
|
|
76("-"))
|
|
do imsg=1,nmsg
|
|
if(nmsg.gt.1) then
|
|
msg=testmsg(imsg)
|
|
msgchk=testmsgchk(imsg)
|
|
endif
|
|
call fmtmsg(msg,iz) !To upper case, collapse multiple blanks
|
|
msg0=msg
|
|
ichk=0
|
|
call chkmsg(msg,cok,nspecial,flip) !See if it includes "OOO" report
|
|
msg1=msg !Message without "OOO"
|
|
|
|
if(nspecial.gt.0) then !or is a shorthand message
|
|
if(nspecial.eq.2) decoded="RO"
|
|
if(nspecial.eq.3) decoded="RRR"
|
|
if(nspecial.eq.4) decoded="73"
|
|
itype=-1
|
|
msgtype="Shorthand"
|
|
go to 10
|
|
endif
|
|
|
|
call gen9(msg,ichk,decoded,i4tone,itype) !Encode message into tone #s
|
|
|
|
msgtype=""
|
|
if(itype.eq.1) msgtype="Std Msg"
|
|
if(itype.eq.2) msgtype="Type 1 pfx"
|
|
if(itype.eq.3) msgtype="Type 1 sfx"
|
|
if(itype.eq.4) msgtype="Type 2 pfx"
|
|
if(itype.eq.5) msgtype="Type 2 sfx"
|
|
if(itype.eq.6) msgtype="Free text"
|
|
|
|
if(cok.eq."OOO") decoded(20:22)=cok
|
|
call fmtmsg(decoded,iz)
|
|
|
|
10 bad=" "
|
|
expected = 'EXACT'
|
|
if (msg0.ne.msgchk) expected = 'TRUNCATED'
|
|
if (nmsg.eq.1) expected = 'UNKNOWN'
|
|
if(decoded.ne.msgchk) bad="*"
|
|
write(*,1020) imsg,msg0,decoded,bad,itype,msgtype,expected
|
|
1020 format(i2,'.',1x,a22,1x,a22,1x,a1,i3,":",a10,2x,a22)
|
|
enddo
|
|
|
|
if(nmsg.eq.1) write(*,1030) i4tone
|
|
1030 format(/'Channel symbols'/(30i2))
|
|
|
|
999 end program jt9code
|