mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-16 09:01:59 -05:00
Cleaned up and simplified AP decoding. Enabled AP decoding for ncontest=0 and ncontest=4 (RU) so far. Missing MyCall or DxCall or nonstandard calls will disable AP passes that wouldn't make sense.
This commit is contained in:
parent
77bb49e9ac
commit
b5cc35e430
@ -1,22 +1,43 @@
|
|||||||
subroutine ft8apset_174_91(mycall12,hiscall12,ncontest,apsym)
|
subroutine ft8apset_174_91(mycall12,hiscall12,apsym)
|
||||||
parameter(NAPM=4,KK=91)
|
use packjt77
|
||||||
character*37 msg,msgsent
|
character*77 c77
|
||||||
|
character*37 msg
|
||||||
character*12 mycall12,hiscall12,hiscall
|
character*12 mycall12,hiscall12,hiscall
|
||||||
integer apsym(77)
|
integer apsym(58)
|
||||||
integer*1 msgbits(77)
|
integer*1 msgbits(77)
|
||||||
integer itone(KK)
|
logical nohiscall
|
||||||
|
|
||||||
|
if(len(trim(mycall12)).eq.0) then
|
||||||
|
apsym=0
|
||||||
|
apsym(1)=99
|
||||||
|
apsym(30)=99
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
nohiscall=.false.
|
||||||
hiscall=hiscall12
|
hiscall=hiscall12
|
||||||
if(len(trim(hiscall)).eq.0) hiscall="K9ABC"
|
if(len(trim(hiscall)).eq.0) then
|
||||||
if(ncontest.eq.0) then
|
hiscall="K9ABC"
|
||||||
msg=trim(mycall12)//' '//trim(hiscall)//' RRR'
|
nohiscall=.true.
|
||||||
elseif(ncontest.eq.4) then
|
endif
|
||||||
msg=trim(mycall12)//' '//trim(hiscall)//' 599 NJ'
|
|
||||||
endif
|
! Encode a dummy standard message: i3=1, 28 1 28 1 1 15
|
||||||
! write(*,*) 'apset msg ',msg
|
!
|
||||||
call genft8_174_91(msg,i3,n3,msgsent,msgbits,itone)
|
msg=trim(mycall12)//' '//trim(hiscall)//' RRR'
|
||||||
! write(*,*) 'apset msg sent',msgsent
|
call pack77(msg,i3,n3,c77)
|
||||||
apsym=2*msgbits-1
|
if(i3.ne.1) then
|
||||||
! write(*,'(29i1,1x,29i1,1x,19i1)') (apsym(1:77)+1)/2
|
apsym=0
|
||||||
|
apsym(1)=99
|
||||||
|
apsym(30)=99
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
read(c77,'(58i1)',err=1) apsym(1:58)
|
||||||
|
if(nohiscall) apsym(30)=99
|
||||||
|
return
|
||||||
|
|
||||||
|
1 apsym=0
|
||||||
|
apsym(1)=99
|
||||||
|
apsym(30)=99
|
||||||
return
|
return
|
||||||
end subroutine ft8apset_174_91
|
end subroutine ft8apset_174_91
|
||||||
|
@ -22,8 +22,7 @@ subroutine ft8b_2(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
|
|||||||
real llral(174),llrbl(174),llrcl(174) !Soft symbols
|
real llral(174),llrbl(174),llrcl(174) !Soft symbols
|
||||||
real dd0(15*12000)
|
real dd0(15*12000)
|
||||||
integer*1 message77(77),apmask(174),cw(174)
|
integer*1 message77(77),apmask(174),cw(174)
|
||||||
integer*1 msgbits(77)
|
integer apsym(58)
|
||||||
integer apsym(77)
|
|
||||||
integer mcq(29),mcqru(29),mrrr(19),m73(19),mrr73(19)
|
integer mcq(29),mcqru(29),mrrr(19),m73(19),mrr73(19)
|
||||||
integer itone(NN)
|
integer itone(NN)
|
||||||
integer icos7(0:6),ip(1)
|
integer icos7(0:6),ip(1)
|
||||||
@ -253,7 +252,6 @@ subroutine ft8b_2(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
|
|||||||
npasses=3
|
npasses=3
|
||||||
endif
|
endif
|
||||||
|
|
||||||
write(*,*) apmag,lapon,lapcqonly,npasses,nQSOProgress
|
|
||||||
do ipass=1,npasses
|
do ipass=1,npasses
|
||||||
llrd=llra
|
llrd=llra
|
||||||
if(ipass.eq.2) llrd=llrb
|
if(ipass.eq.2) llrd=llrb
|
||||||
@ -270,7 +268,11 @@ write(*,*) apmag,lapon,lapcqonly,npasses,nQSOProgress
|
|||||||
else
|
else
|
||||||
iaptype=1
|
iaptype=1
|
||||||
endif
|
endif
|
||||||
|
if(iaptype.ge.2 .and. apsym(1).gt.1) cycle ! no mycall was entered
|
||||||
|
if(iaptype.ge.3 .and. apsym(30).gt.1) cycle ! no, or nonstandard dxcall
|
||||||
if(iaptype.ge.3 .and. (abs(f1-nfqso).gt.napwid .and. abs(f1-nftx).gt.napwid) ) cycle
|
if(iaptype.ge.3 .and. (abs(f1-nfqso).gt.napwid .and. abs(f1-nftx).gt.napwid) ) cycle
|
||||||
|
apsym=2*apsym-1
|
||||||
|
|
||||||
if(iaptype.eq.1) then ! CQ,???,??? or CQ RU,???,???
|
if(iaptype.eq.1) then ! CQ,???,??? or CQ RU,???,???
|
||||||
apmask=0
|
apmask=0
|
||||||
apmask(1:29)=1
|
apmask(1:29)=1
|
||||||
@ -291,32 +293,35 @@ write(*,*) apmag,lapon,lapcqonly,npasses,nQSOProgress
|
|||||||
llrd(77)=apmag*(+1)
|
llrd(77)=apmag*(+1)
|
||||||
else if(ncontest.eq.4) then
|
else if(ncontest.eq.4) then
|
||||||
apmask(2:29)=1
|
apmask(2:29)=1
|
||||||
llrd(2:29)=apmag*apsym(2:29)
|
llrd(2:29)=apmag*apsym(1:28)
|
||||||
apmask(75:77)=1
|
apmask(75:77)=1
|
||||||
llrd(75)=apmag*(-1)
|
llrd(75)=apmag*(-1)
|
||||||
llrd(76:77)=apmag*(+1)
|
llrd(76:77)=apmag*(+1)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if(iaptype.eq.3) then ! MyCall,DxCall,???
|
if(iaptype.eq.3) then ! MyCall,DxCall,???
|
||||||
apmask=0
|
apmask=0
|
||||||
if(ncontest.eq.0) then
|
if(ncontest.eq.0) then
|
||||||
apmask(1:58)=1
|
apmask(1:58)=1
|
||||||
llrd(1:58)=apmag*apsym(1:58)
|
llrd(1:58)=apmag*apsym
|
||||||
apmask(75:77)=1
|
apmask(75:77)=1
|
||||||
llrd(75:76)=apmag*(-1)
|
llrd(75:76)=apmag*(-1)
|
||||||
llrd(77)=apmag*(+1)
|
llrd(77)=apmag*(+1)
|
||||||
else if(ncontest.eq.4) then
|
else if(ncontest.eq.4) then
|
||||||
apmask(2:57)=1
|
apmask(2:57)=1
|
||||||
llrd(2:57)=apmag*apsym(2:57)
|
llrd(2:29)=apmag*apsym(1:28)
|
||||||
|
llrd(30:57)=apmag*apsym(30:57)
|
||||||
apmask(75:77)=1
|
apmask(75:77)=1
|
||||||
llrd(75)=apmag*(-1)
|
llrd(75)=apmag*(-1)
|
||||||
llrd(76:77)=apmag*(+1)
|
llrd(76:77)=apmag*(+1)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype.eq.6) then
|
if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype.eq.6) then
|
||||||
apmask=0
|
apmask=0
|
||||||
apmask(1:77)=1 ! mycall, hiscall, RRR|73|RR73
|
apmask(1:77)=1 ! mycall, hiscall, RRR|73|RR73
|
||||||
llrd(1:58)=apmag*apsym(1:58)
|
llrd(1:58)=apmag*apsym
|
||||||
if(iaptype.eq.4) llrd(59:77)=apmag*mrrr
|
if(iaptype.eq.4) llrd(59:77)=apmag*mrrr
|
||||||
if(iaptype.eq.5) llrd(59:77)=apmag*m73
|
if(iaptype.eq.5) llrd(59:77)=apmag*m73
|
||||||
if(iaptype.eq.6) llrd(59:77)=apmag*mrr73
|
if(iaptype.eq.6) llrd(59:77)=apmag*mrr73
|
||||||
@ -375,7 +380,7 @@ write(*,*) apmag,lapon,lapcqonly,npasses,nQSOProgress
|
|||||||
if(arg.gt.0.1) xsnr2=arg
|
if(arg.gt.0.1) xsnr2=arg
|
||||||
xsnr=10.0*log10(xsnr)-27.0
|
xsnr=10.0*log10(xsnr)-27.0
|
||||||
xsnr2=10.0*log10(xsnr2)-27.0
|
xsnr2=10.0*log10(xsnr2)-27.0
|
||||||
write(87,'(f10.1,2x,f10.1)') xsnr,xsnr2
|
!write(87,'(f10.1,2x,f10.1)') xsnr,xsnr2
|
||||||
if(.not.nagain) then
|
if(.not.nagain) then
|
||||||
xsnr=xsnr2
|
xsnr=xsnr2
|
||||||
endif
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user