Do not use sfox_1.dat and sfox_2.dat; pass some args in common/foxcom3/.

This commit is contained in:
Joe Taylor 2024-09-17 12:50:30 -04:00
parent 11749ebef9
commit 3c4450cdc2
3 changed files with 10 additions and 25 deletions

View File

@ -19,7 +19,7 @@ subroutine foxgen(bSuperFox,fname)
parameter (NFFT=614400,NH=NFFT/2) parameter (NFFT=614400,NH=NFFT/2)
logical*1 bSuperFox,bMoreCQs,bSendMsg logical*1 bSuperFox,bMoreCQs,bSendMsg
character*(*) fname character*(*) fname
character*40 cmsg character*40 cmsg,cmsg2
character*26 textMsg character*26 textMsg
character*37 msg,msgsent character*37 msg,msgsent
integer itone(79) integer itone(79)
@ -31,6 +31,7 @@ subroutine foxgen(bSuperFox,fname)
common/foxcom/wave(NWAVE),nslots,nfreq,i3bit(5),cmsg(5),mycall(12), & common/foxcom/wave(NWAVE),nslots,nfreq,i3bit(5),cmsg(5),mycall(12), &
textMsg,bMoreCQs,bSendMsg textMsg,bMoreCQs,bSendMsg
common/foxcom2/itone2(NN),msgbits2(77) common/foxcom2/itone2(NN),msgbits2(77)
common/foxcom3/nslots2,cmsg2(5),itone3(151)
equivalence (x,cx),(y,cy) equivalence (x,cx),(y,cy)
if(bSuperFox) then if(bSuperFox) then
@ -42,9 +43,8 @@ subroutine foxgen(bSuperFox,fname)
cmsg(n)(39:39)='1' !Set flag for text message cmsg(n)(39:39)='1' !Set flag for text message
nslots=n nslots=n
endif endif
open(25,file=fname,status='unknown') nslots2=nslots
write(25,'(a40)') cmsg(1:n) cmsg2=cmsg
close(25)
go to 999 go to 999
endif endif

View File

@ -10,6 +10,7 @@ subroutine sfox_wave_gfsk(fname)
parameter (NPTS=(NSYM+2)*NSPS) parameter (NPTS=(NSYM+2)*NSPS)
parameter (BT=8) parameter (BT=8)
character*(*) fname character*(*) fname
character*40 cmsg2
integer itone(151) integer itone(151)
real*8 dt,twopi,f0,baud,phi,dphi_peak real*8 dt,twopi,f0,baud,phi,dphi_peak
real*8 dphi(0:NPTS-1) real*8 dphi(0:NPTS-1)
@ -17,6 +18,7 @@ subroutine sfox_wave_gfsk(fname)
logical first/.true./ logical first/.true./
common/foxcom/wave(NWAVE) common/foxcom/wave(NWAVE)
common/foxcom3/nslots2,cmsg2(5),itone3(151)
save first,twopi,dt,hmod,dphi_peak,pulse save first,twopi,dt,hmod,dphi_peak,pulse
if(first) then if(first) then
@ -33,9 +35,7 @@ subroutine sfox_wave_gfsk(fname)
endif endif
wave=0. wave=0.
open(25,file=trim(fname),status='unknown',err=999) itone=itone3
read(25,'(20i4)',err=999,end=999) itone
close(25)
if(itone(1).lt.0 .or. itone(1).gt.128) go to 999 if(itone(1).lt.0 .or. itone(1).gt.128) go to 999
! Generate the SuperFox waveform. ! Generate the SuperFox waveform.

View File

@ -15,7 +15,7 @@ subroutine sftx_sub(fname,foxcall0,ckey0)
use sfox_mod use sfox_mod
character*(*) fname !Corrected path for sfox_1.dat character*(*) fname !Corrected path for sfox_1.dat
character*120 line !List of SuperFox message pieces character*120 line !List of SuperFox message pieces
character*40 cmsg(5) !Old-style Fox messages character*40 cmsg !Old-style Fox messages
character*26 freeTextMsg character*26 freeTextMsg
character*2 arg character*2 arg
character*(*) ckey0 character*(*) ckey0
@ -26,7 +26,6 @@ subroutine sftx_sub(fname,foxcall0,ckey0)
logical crc_ok logical crc_ok
real py(0:127,0:127) !Probabilities for received synbol values real py(0:127,0:127) !Probabilities for received synbol values
integer*8 n47 integer*8 n47
integer itone(151) !SuperFox channel-symbol values
integer*1 xin(0:49) !Packed message as 7-bit symbols integer*1 xin(0:49) !Packed message as 7-bit symbols
integer*1 xdec(0:49) !Decoded message integer*1 xdec(0:49) !Decoded message
integer*1 y(0:127) !Encoded symbols as i*1 integers integer*1 y(0:127) !Encoded symbols as i*1 integers
@ -35,6 +34,7 @@ subroutine sftx_sub(fname,foxcall0,ckey0)
integer chansym0(127) !Transmitted symbols, data only integer chansym0(127) !Transmitted symbols, data only
integer chansym(127) !Received symbols, data only integer chansym(127) !Received symbols, data only
integer isync(24) !Symbol numbers for sync tones integer isync(24) !Symbol numbers for sync tones
common/foxcom3/nslots,cmsg(5),itone(151)
data isync/1,2,4,7,11,16,22,29,37,39,42,43,45,48,52,57,63,70,78,80, & data isync/1,2,4,7,11,16,22,29,37,39,42,43,45,48,52,57,63,70,78,80, &
83,84,86,89/ 83,84,86,89/
@ -42,14 +42,6 @@ subroutine sftx_sub(fname,foxcall0,ckey0)
fsample=12000.0 fsample=12000.0
call sfox_init(7,127,50,'no',fspread,delay,fsample,24) call sfox_init(7,127,50,'no',fspread,delay,fsample,24)
open(25,file=trim(fname),status='unknown')
do i=1,5
read(25,1000,end=10) cmsg(i)
1000 format(a40)
enddo
i=6
10 close(25)
nslots=i-1
freeTextMsg=' ' freeTextMsg=' '
bMoreCQs=cmsg(1)(40:40).eq.'1' bMoreCQs=cmsg(1)(40:40).eq.'1'
bSendMsg=cmsg(nslots)(39:39).eq.'1' bSendMsg=cmsg(nslots)(39:39).eq.'1'
@ -80,11 +72,4 @@ subroutine sftx_sub(fname,foxcall0,ckey0)
endif endif
enddo enddo
100 i1=max(index(fname,'sfox_1'),1) end subroutine sftx_sub
fname(i1:i1+9)='sfox_2.dat'
open(25,file=trim(fname),status='unknown')
write(25,1100) itone
1100 format(20i4)
close(25)
999 end subroutine sftx_sub