Better support for compound callsigns in DXpedition mode.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8351 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-12-19 20:01:06 +00:00
parent 8d41ba2ce7
commit 5c87f329a0
4 changed files with 24 additions and 21 deletions

View File

@ -438,13 +438,13 @@ contains
integer, intent(in) :: snr
real, intent(in) :: dt
real, intent(in) :: freq
character(len=32), intent(in) :: decoded
character(len=37), intent(in) :: decoded
character c1*12,c2*6,g2*4,w*4
integer i0,i1,i2,i3,i4,i5,n30,nwrap
integer, intent(in) :: nap
real, intent(in) :: qual
character*2 annot
character*32 decoded0
character*37 decoded0
logical isgrid4,first,b0,b1,b2
data first/.true./
save
@ -478,9 +478,9 @@ contains
if(i0.le.0) write(*,1000) params%nutc,snr,dt,nint(freq),decoded0(1:22),annot
1000 format(i6.6,i4,f5.1,i5,' ~ ',1x,a22,1x,a2)
if(i0.gt.0) write(*,1001) params%nutc,snr,dt,nint(freq),decoded0
1001 format(i6.6,i4,f5.1,i5,' ~ ',1x,a32)
1001 format(i6.6,i4,f5.1,i5,' ~ ',1x,a37)
write(13,1002) params%nutc,nint(sync),snr,dt,freq,0,decoded0
1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a32,' FT8')
1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FT8')
i1=index(decoded0,' ')
i2=i1 + index(decoded0(i1+1:),' ')

View File

@ -1,12 +1,12 @@
subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,hiscall12,bcontest, &
sync0,f1,xdt,xbase,apsym,nharderrors,dmin,nbadcrc,ipass,iera,msg32,xsnr)
sync0,f1,xdt,xbase,apsym,nharderrors,dmin,nbadcrc,ipass,iera,msg37,xsnr)
use crc
use timer_module, only: timer
include 'ft8_params.f90'
parameter(NRECENT=10,NP2=2812)
character*32 msg32
character*37 msg37
character message*22,msgsent*22
character*12 mycall12,hiscall12,recent_calls(NRECENT)
character*6 mycall6,mygrid6,hiscall6,c1,c2
@ -412,22 +412,24 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
i2=index(message(i1+1:),' ') + i1
c1=message(1:i1)//' '
c2=message(i1+1:i2)//' '
if(ncrc10.eq.icrc10) msg32=c1//' RR73; '//c2//' <'// &
trim(hiscall6)//'> '
if(ncrc10.ne.icrc10) msg32=c1//' RR73; '//c2//' <...> '
write(msg32(30:32),1010) irpt
if(ncrc10.eq.icrc10) msg37=c1//' RR73; '//c2//' <'// &
trim(hiscall12)//'> '
if(ncrc10.ne.icrc10) msg37=c1//' RR73; '//c2//' <...> '
write(51,*) 'a ',msg37,'|'
write(msg37(35:37),1010) irpt
1010 format(i3.2)
if(msg32(30:30).ne.'-') msg32(30:30)='+'
if(msg37(30:30).ne.'-') msg37(35:35)='+'
write(51,*) 'b ',msg37,'|'
iz=len(trim(msg32))
do iter=1,5 !Collapse multiple blanks into one
ib2=index(msg32(1:iz),' ')
iz=len(trim(msg37))
do iter=1,10 !Collapse multiple blanks into one
ib2=index(msg37(1:iz),' ')
if(ib2.lt.1) exit
msg32=msg32(1:ib2)//msg32(ib2+2:)
msg37=msg37(1:ib2)//msg37(ib2+2:)
iz=iz-1
enddo
else
msg32=message//' '
msg37=message//' '
endif
return

View File

@ -26,6 +26,7 @@ program ft8sim
print*,'Examples: ft8sim "K1ABC W9XYZ EN37" 1500.0 0.0 0.1 1.0 0 10 -18'
print*,' ft8sim "K1ABC W9XYZ EN37" 10 0.0 0.1 1.0 25 10 -18'
print*,' ft8sim "K1ABC W9XYZ EN37" 25 0.0 0.1 1.0 25 10 -18'
print*,' ft8sim "K1ABC RR73; W9XYZ <KH1/KH7Z> -11" 300 0 0 0 25 1 -10'
print*,'Make nfiles negative to invoke 72-bit contest mode.'
go to 999
endif

View File

@ -24,7 +24,7 @@ module ft8_decode
integer, intent(in) :: snr
real, intent(in) :: dt
real, intent(in) :: freq
character(len=32), intent(in) :: decoded
character(len=37), intent(in) :: decoded
integer, intent(in) :: nap
real, intent(in) :: qual
end subroutine ft8_decode_callback
@ -52,7 +52,7 @@ contains
character*6 mygrid6,hisgrid6
integer*2 iwave(15*12000)
integer apsym(KK)
character datetime*13,message*22,msg32*32
character datetime*13,message*22,msg37*37
character*22 allmessages(100)
integer allsnrs(100)
save s,dd
@ -108,8 +108,8 @@ contains
call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon, &
lapcqonly,napwid,lsubtract,nagain,iaptype,mycall12,mygrid6, &
hiscall12,bcontest,sync,f1,xdt,xbase,apsym,nharderrors,dmin, &
nbadcrc,iappass,iera,msg32,xsnr)
message=msg32(1:22) !###
nbadcrc,iappass,iera,msg37,xsnr)
message=msg37(1:22) !###
nsnr=nint(xsnr)
xdt=xdt-0.5
hd=nharderrors+dmin
@ -134,7 +134,7 @@ contains
! flush(81)
if(.not.ldupe .and. associated(this%callback)) then
qual=1.0-(nharderrors+dmin)/60.0 ! scale qual to [0.0,1.0]
call this%callback(sync,nsnr,xdt,f1,msg32,iaptype,qual)
call this%callback(sync,nsnr,xdt,f1,msg37,iaptype,qual)
endif
endif
enddo