mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-05 00:41:19 -05:00
dd1362b69a
Generic message packing and unpacking routines now understand antipode grid contest messages. These messages are now recognized as standard messages in message response processing and dealt with appropriately when contest mode is selected and applicable (currently FT8 and MSK144 only). git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8062 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
67 lines
2.1 KiB
Fortran
67 lines
2.1 KiB
Fortran
program QRA64code
|
|
|
|
! Provides examples of message packing, bit and symbol ordering,
|
|
! QRA (63,12) encoding, and other necessary details of the QRA64
|
|
! protocol.
|
|
|
|
use packjt
|
|
character*22 msg,msg0,msg1,decoded,cok*3,msgtype*10,arg*12
|
|
character*6 mycall
|
|
logical ltext
|
|
integer dgen(12),sent(63),dec(12)
|
|
integer icos7(0:6)
|
|
data icos7/2,5,6,0,4,1,3/ !Defines a 7x7 Costas array
|
|
|
|
include 'testmsg.f90'
|
|
|
|
nargs=iargc()
|
|
if(nargs.lt.1) then
|
|
print*,'Usage: qra64code "message"'
|
|
print*,' qra64code -t'
|
|
go to 999
|
|
endif
|
|
|
|
call getarg(1,msg) !Get message from command line
|
|
nmsg=1
|
|
if(msg(1:2).eq."-t") nmsg=NTEST
|
|
|
|
write(*,1010)
|
|
1010 format(" Message Decoded Err? Type"/74("-"))
|
|
|
|
do imsg=1,nmsg
|
|
if(nmsg.gt.1) msg=testmsg(imsg)
|
|
call fmtmsg(msg,iz) !To upper, collapse mult blanks
|
|
msg0=msg !Input message
|
|
call chkmsg(msg,cok,nspecial,flip) !See if it includes "OOO" report
|
|
msg1=msg !Message without "OOO"
|
|
call packmsg(msg1,dgen,itype,.false.) !Pack message into 12 six-bit bytes
|
|
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"
|
|
|
|
call qra64_enc(dgen,sent) !Encode using QRA64
|
|
|
|
call unpackmsg(dgen,decoded,.false.,' ') !Unpack the user message
|
|
call fmtmsg(decoded,iz)
|
|
ii=imsg
|
|
write(*,1020) ii,msg0,decoded,itype,msgtype
|
|
1020 format(i4,1x,a22,2x,a22,4x,i3,": ",a13)
|
|
enddo
|
|
|
|
if(nmsg.eq.1) then
|
|
write(*,1030) dgen
|
|
1030 format(/'Packed message, 6-bit symbols ',12i3) !Display packed symbols
|
|
|
|
write(*,1040) sent
|
|
1040 format(/'Information-carrying channel symbols'/(i5,29i3))
|
|
|
|
write(*,1050) 10*icos7,sent(1:32),10*icos7,sent(33:63),10*icos7
|
|
1050 format(/'Channel symbols including sync'/(i5,29i3))
|
|
endif
|
|
|
|
999 end program QRA64code
|