mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-03 06:32:26 -04:00
Separate sfox_assemble.f90 from foxgen2.f90.
This commit is contained in:
parent
16346c0c1b
commit
b495531f78
@ -429,6 +429,7 @@ set (wsjt_FSRCS
|
|||||||
lib/ft8/foxfilt.f90
|
lib/ft8/foxfilt.f90
|
||||||
lib/ft8/foxgen.f90
|
lib/ft8/foxgen.f90
|
||||||
lib/superfox/foxgen2.f90
|
lib/superfox/foxgen2.f90
|
||||||
|
lib/superfox/sfox_assemble.f90
|
||||||
lib/ft8/foxgen_wrap.f90
|
lib/ft8/foxgen_wrap.f90
|
||||||
lib/freqcal.f90
|
lib/freqcal.f90
|
||||||
lib/ft8/ft8apset.f90
|
lib/ft8/ft8apset.f90
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
subroutine foxgen2(nslots,cmsg)
|
subroutine foxgen2(nslots,cmsg)
|
||||||
|
|
||||||
|
! Called from foxgen() when it's time to encode a SuperFox message and
|
||||||
|
! generate the waveform to be transmitted. We need to parse the old-style
|
||||||
|
! Fox messages and extract the necessary pieces.
|
||||||
|
|
||||||
use packjt77
|
use packjt77
|
||||||
character*40 cmsg(5)
|
character*40 cmsg(5) !Old-style Fox messages are here
|
||||||
character*37 msg
|
character*37 msg
|
||||||
character*22 sfmsg
|
character*22 sfmsg
|
||||||
character*12 mycall
|
character*12 mycall
|
||||||
@ -70,71 +74,3 @@ subroutine foxgen2(nslots,cmsg)
|
|||||||
|
|
||||||
return
|
return
|
||||||
end subroutine foxgen2
|
end subroutine foxgen2
|
||||||
|
|
||||||
subroutine sfox_assemble(ntype,k,msg,mycall0,mygrid0)
|
|
||||||
|
|
||||||
character*22 msg
|
|
||||||
character*22 msg0,msg1,msg2(10),msg3(5)
|
|
||||||
character*12 mycall0,mycall
|
|
||||||
character*4 mygrid0,mygrid
|
|
||||||
integer ntype !Message type: 0 Free Text
|
|
||||||
! 1 CQ MyCall MyGrid
|
|
||||||
! 2 Call_1 MyCall RR73
|
|
||||||
! 3 Call_1 MyCall rpt
|
|
||||||
integer nmsg(0:3) !Number of messages of type ntype
|
|
||||||
data nmsg/0,0,0,0/,nbits/0/,ntx/0/
|
|
||||||
save
|
|
||||||
! save mycall,mygrid,nmsg,nbits,ntx
|
|
||||||
|
|
||||||
if(mycall0(1:1).ne.' ') mycall=mycall0
|
|
||||||
if(mygrid0(1:1).ne.' ') mygrid=mygrid0
|
|
||||||
if(k.le.10) then
|
|
||||||
if(ntype.eq.0) then
|
|
||||||
if(nbits.le.262) then
|
|
||||||
nmsg(ntype)=nmsg(ntype)+1
|
|
||||||
nbits=nbits+71
|
|
||||||
msg0=msg
|
|
||||||
endif
|
|
||||||
else if(ntype.eq.1) then
|
|
||||||
if(nbits.le.290) then
|
|
||||||
nmsg(ntype)=nmsg(ntype)+1
|
|
||||||
nbits=nbits+43
|
|
||||||
msg1=msg
|
|
||||||
endif
|
|
||||||
else if(ntype.eq.2) then
|
|
||||||
if(nbits.le.305) then
|
|
||||||
nmsg(ntype)=nmsg(ntype)+1
|
|
||||||
nbits=nbits+28
|
|
||||||
j=nmsg(ntype)
|
|
||||||
msg2(j)=msg
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
if(nbits.le.300) then
|
|
||||||
nmsg(ntype)=nmsg(ntype)+1
|
|
||||||
nbits=nbits+33
|
|
||||||
j=nmsg(ntype)
|
|
||||||
msg3(j)=msg
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if(k.ge.11) then
|
|
||||||
ntx=ntx+1 !Transmission number
|
|
||||||
write(*,3002) ntx,ntype,nmsg(0:3),nbits
|
|
||||||
3002 format(i3,i5,2x,4i3,i6)
|
|
||||||
if(nmsg(0).ge.1) write(*,3010) ntx,msg0
|
|
||||||
3010 format(i3,2x,a22)
|
|
||||||
if(nmsg(1).ge.1) write(*,3010) ntx,msg1
|
|
||||||
do i=1,nmsg(2)
|
|
||||||
write(*,3010) ntx,msg2(i)
|
|
||||||
enddo
|
|
||||||
do i=1,nmsg(3)
|
|
||||||
write(*,3010) ntx,msg3(i)
|
|
||||||
enddo
|
|
||||||
nmsg=0
|
|
||||||
nbits=0
|
|
||||||
endif
|
|
||||||
|
|
||||||
return
|
|
||||||
end subroutine sfox_assemble
|
|
||||||
|
71
lib/superfox/sfox_assemble.f90
Normal file
71
lib/superfox/sfox_assemble.f90
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
subroutine sfox_assemble(ntype,k,msg,mycall0,mygrid0)
|
||||||
|
|
||||||
|
! In subsequent calls, assemble all necessary information for a SuperFox
|
||||||
|
! transmission.
|
||||||
|
|
||||||
|
character*22 msg
|
||||||
|
character*22 msg0,msg1,msg2(10),msg3(5)
|
||||||
|
character*12 mycall0,mycall
|
||||||
|
character*4 mygrid0,mygrid
|
||||||
|
integer ntype !Message type: 0 Free Text
|
||||||
|
! 1 CQ MyCall MyGrid
|
||||||
|
! 2 Call_1 MyCall RR73
|
||||||
|
! 3 Call_1 MyCall rpt
|
||||||
|
integer nmsg(0:3) !Number of messages of type ntype
|
||||||
|
data nmsg/0,0,0,0/,nbits/0/,ntx/0/
|
||||||
|
save
|
||||||
|
|
||||||
|
if(mycall0(1:1).ne.' ') mycall=mycall0
|
||||||
|
if(mygrid0(1:1).ne.' ') mygrid=mygrid0
|
||||||
|
if(k.le.10) then
|
||||||
|
if(ntype.eq.0) then
|
||||||
|
if(nbits.le.191) then !Enough room for a free text message?
|
||||||
|
nmsg(ntype)=nmsg(ntype)+1
|
||||||
|
nbits=nbits+142
|
||||||
|
msg0=msg
|
||||||
|
endif
|
||||||
|
else if(ntype.eq.1) then
|
||||||
|
if(nbits.le.290) then
|
||||||
|
nmsg(ntype)=nmsg(ntype)+1
|
||||||
|
nbits=nbits+43
|
||||||
|
msg1=msg
|
||||||
|
endif
|
||||||
|
else if(ntype.eq.2) then
|
||||||
|
if(nbits.le.305) then
|
||||||
|
nmsg(ntype)=nmsg(ntype)+1
|
||||||
|
nbits=nbits+28
|
||||||
|
j=nmsg(ntype)
|
||||||
|
msg2(j)=msg
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if(nbits.le.300) then
|
||||||
|
nmsg(ntype)=nmsg(ntype)+1
|
||||||
|
nbits=nbits+33
|
||||||
|
j=nmsg(ntype)
|
||||||
|
msg3(j)=msg
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if(k.ge.11) then
|
||||||
|
! All necessary pieces are in place. Now encode the SuperFox message and
|
||||||
|
! generate the waveform to be transmitted.
|
||||||
|
ntx=ntx+1 !Transmission number
|
||||||
|
write(*,3002) ntx,ntype,nmsg(0:3),nbits
|
||||||
|
3002 format(i3,i5,2x,4i3,i6)
|
||||||
|
if(nmsg(0).ge.1) write(*,3010) ntx,msg0
|
||||||
|
3010 format(i3,2x,a22)
|
||||||
|
if(nmsg(1).ge.1) write(*,3010) ntx,msg1
|
||||||
|
do i=1,nmsg(2)
|
||||||
|
write(*,3010) ntx,msg2(i)
|
||||||
|
enddo
|
||||||
|
do i=1,nmsg(3)
|
||||||
|
write(*,3010) ntx,msg3(i)
|
||||||
|
enddo
|
||||||
|
nmsg=0
|
||||||
|
nbits=0
|
||||||
|
endif
|
||||||
|
|
||||||
|
return
|
||||||
|
end subroutine sfox_assemble
|
Loading…
x
Reference in New Issue
Block a user