mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-17 09:31:59 -05:00
Seems to work, including Auto Mode. Try it on the air!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@447 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
660c040a67
commit
5b0d12fa50
@ -28,7 +28,7 @@ subroutine decode1(iarg)
|
||||
newdat2=0
|
||||
kbuf=1
|
||||
kk=NSMAX
|
||||
kkdone=-1
|
||||
kkdone=0
|
||||
newdat=1
|
||||
endif
|
||||
|
||||
|
@ -38,6 +38,7 @@ subroutine map65a(newdat)
|
||||
|
||||
df=96000.0/NFFT !df = 96000/NFFT = 2.930 Hz
|
||||
ftol=0.020 !Frequency tolerance (kHz)
|
||||
fselect=mousefqso + 1.6
|
||||
nfilt=1
|
||||
dphi=310/57.2957795
|
||||
|
||||
@ -306,8 +307,8 @@ subroutine map65a(newdat)
|
||||
999 nagain=0
|
||||
close(23)
|
||||
if(kbuf.eq.1) kkdone=60*96000
|
||||
if(kbuf.eq.2) kkdone=0
|
||||
if(kbuf.eq.2 .or. ndiskdat.eq.1) kkdone=0
|
||||
kk=kkdone
|
||||
print*,'E ',mod(mid_sec(),60),nutc,kk,kbuf,kkdone,nhsym
|
||||
print*,'E ',mod(mid_sec(),60),nutc,kk,kbuf,kkdone,ndiskdat
|
||||
return
|
||||
end subroutine map65a
|
||||
|
164
recvpkt.F90
164
recvpkt.F90
@ -12,6 +12,7 @@ subroutine recvpkt(iarg)
|
||||
real*8 d8(NSZ)
|
||||
integer*1 userx_no,iusb
|
||||
integer*2 nblock,nblock0
|
||||
integer txnow
|
||||
logical first
|
||||
real*8 center_freq,buf8
|
||||
common/plrscom/center_freq,msec,fqso,iptr,nblock,userx_no,iusb,buf8(174)
|
||||
@ -23,104 +24,99 @@ subroutine recvpkt(iarg)
|
||||
data sqave/0.0/,u/0.001/,rxnoise/0.0/,kbuf/1/
|
||||
save
|
||||
|
||||
! Open a socket to receive multicast data from Linrad
|
||||
call setup_rsocket
|
||||
call setup_rsocket ! Open socket to receive multicast data
|
||||
nreset=-1
|
||||
k=0
|
||||
nsec0=-999
|
||||
|
||||
10 call recv_pkt(center_freq)
|
||||
if(monitoring.eq.1) then
|
||||
lost=nblock-nblock0-1
|
||||
nblock0=nblock
|
||||
|
||||
if(lost.ne.0 .and. .not.first) then
|
||||
! print*,'Lost packets:',nblock,nblock0,lost
|
||||
nlost=nlost + lost ! Insert zeros for the lost data.
|
||||
do i=1,174*lost
|
||||
k=k+1
|
||||
d8(k)=0
|
||||
enddo
|
||||
endif
|
||||
first=.false.
|
||||
isec=mid_sec()
|
||||
imin=isec/60
|
||||
if((monitoring.eq.0) .or. (lauto.eq.1 .and. mod(imin,2).eq.(1-TxFirst))) then
|
||||
first=.true.
|
||||
go to 10
|
||||
endif
|
||||
|
||||
nsec=msec/1000
|
||||
if(mod(nsec,60).eq.1) nreset=1
|
||||
if(mod(nsec,60).eq.0 .and. nreset.eq.1) then
|
||||
lost=nblock-nblock0-1
|
||||
nblock0=nblock
|
||||
|
||||
if(lost.ne.0 .and. .not.first) then
|
||||
! print*,'Lost packets:',nblock,nblock0,lost
|
||||
nlost=nlost + lost ! Insert zeros for the lost data.
|
||||
do i=1,174*lost
|
||||
k=k+1
|
||||
d8(k)=0
|
||||
enddo
|
||||
endif
|
||||
first=.false.
|
||||
|
||||
nsec=msec/1000
|
||||
if(mod(nsec,60).eq.1) nreset=1
|
||||
if(mod(nsec,60).eq.0 .and. nreset.eq.1) then
|
||||
! This is the start of a new minute, switch buffers
|
||||
nreset=0
|
||||
kb=3-kb
|
||||
k=0
|
||||
if(kb.eq.2) k=NSMAX
|
||||
nlost=0
|
||||
nreset=0
|
||||
kb=3-kb
|
||||
k=0
|
||||
if(kb.eq.2) k=NSMAX
|
||||
nlost=0
|
||||
endif
|
||||
|
||||
if(kb.eq.1 .and. (k+174).gt.NSMAX) go to 20
|
||||
if(kb.eq.2 .and. (k+174).gt.2*NSMAX) go to 20
|
||||
|
||||
sq=0.
|
||||
do i=1,174
|
||||
k=k+1
|
||||
d8(k)=buf8(i)
|
||||
sq=sq + float(int(id(1,k,1)))**2 + float(int(id(1,k,1)))**2 + &
|
||||
float(int(id(1,k,1)))**2 + float(int(id(1,k,1)))**2
|
||||
enddo
|
||||
sqave=sqave + u*(sq-sqave)
|
||||
rxnoise=10.0*log10(sqave) - 48.0
|
||||
|
||||
if(mode.eq.'Measur') then
|
||||
npkt=npkt+1
|
||||
if(npkt.ge.551) then
|
||||
npkt=0
|
||||
nw=nw+1
|
||||
write(11,1000) nw,rxnoise
|
||||
1000 format(i6,f8.2)
|
||||
call flushqqq(11)
|
||||
ndecdone=1
|
||||
write(24,1000) nw,rxnoise
|
||||
endif
|
||||
else
|
||||
nw=0
|
||||
endif
|
||||
|
||||
if(kb.eq.1 .and. (k+174).gt.NSMAX) go to 20
|
||||
if(kb.eq.2 .and. (k+174).gt.2*NSMAX) go to 20
|
||||
if(k.lt.1 .or. k.gt.NSZ) then
|
||||
print*,'Error in recvpkt: ',k,NSZ,NSMAX
|
||||
stop
|
||||
endif
|
||||
|
||||
if(transmitting.eq.0) then
|
||||
sq=0.
|
||||
do i=1,174
|
||||
k=k+1
|
||||
d8(k)=buf8(i)
|
||||
sq=sq + float(int(id(1,k,1)))**2 + float(int(id(1,k,1)))**2 + &
|
||||
float(int(id(1,k,1)))**2 + float(int(id(1,k,1)))**2
|
||||
enddo
|
||||
sqave=sqave + u*(sq-sqave)
|
||||
rxnoise=10.0*log10(sqave) - 48.0
|
||||
20 if(nsec.ne.nsec0) then
|
||||
mutch=nsec/3600
|
||||
mutcm=mod(nsec/60,60)
|
||||
mutc=100*mutch + mutcm
|
||||
ns=mod(nsec,60)
|
||||
nsec0=nsec
|
||||
ntx=ntx+transmitting
|
||||
print*,ns,kb,kbuf,k,kk,kkdone
|
||||
|
||||
if(mode.eq.'Measur') then
|
||||
npkt=npkt+1
|
||||
if(npkt.ge.551) then
|
||||
npkt=0
|
||||
nw=nw+1
|
||||
write(11,1000) nw,rxnoise
|
||||
1000 format(i6,f8.2)
|
||||
call flushqqq(11)
|
||||
ndecdone=1
|
||||
write(24,1000) nw,rxnoise
|
||||
endif
|
||||
else
|
||||
nw=0
|
||||
endif
|
||||
|
||||
else
|
||||
! We're transmitting, zero out this packet.
|
||||
do i=1,174
|
||||
k=k+1
|
||||
d8(k)=0.d0
|
||||
enddo
|
||||
if(ns.eq.48) then
|
||||
nutc=mutc
|
||||
kbuf=kb
|
||||
kk=k
|
||||
print*,'A1',mod(mid_sec(),60),nutc,kk,kbuf,kkdone
|
||||
endif
|
||||
if(k.lt.1 .or. k.gt.NSZ) then
|
||||
print*,'Error in recvpkt: ',k,NSZ,NSMAX
|
||||
stop
|
||||
if(ns.eq.52) then
|
||||
nutc=mutc
|
||||
kbuf=kb
|
||||
kk=k
|
||||
ndiskdat=0
|
||||
print*,'A2',mod(mid_sec(),60),nutc,kk,kbuf,kkdone
|
||||
endif
|
||||
|
||||
20 if(nsec.ne.nsec0) then
|
||||
mutch=nsec/3600
|
||||
mutcm=mod(nsec/60,60)
|
||||
mutc=100*mutch + mutcm
|
||||
ns=mod(nsec,60)
|
||||
nsec0=nsec
|
||||
ntx=ntx+transmitting
|
||||
!###
|
||||
! kk=k
|
||||
! kbuf=kb
|
||||
!###
|
||||
if(ns.eq.48) then
|
||||
nutc=mutc
|
||||
kbuf=kb
|
||||
kk=k
|
||||
print*,'A1',mod(mid_sec(),60),nutc,kk,kbuf,kkdone
|
||||
endif
|
||||
if(ns.eq.52) then
|
||||
nutc=mutc
|
||||
kbuf=kb
|
||||
kk=k
|
||||
print*,'A2',mod(mid_sec(),60),nutc,kk,kbuf,kkdone
|
||||
endif
|
||||
endif
|
||||
|
||||
endif
|
||||
go to 10
|
||||
|
||||
|
@ -300,7 +300,7 @@ def update():
|
||||
df_mark()
|
||||
nmark0=nmark.get()
|
||||
|
||||
if newspec: Audio.gcom2.ndiskdat=0
|
||||
# if newspec: Audio.gcom2.ndiskdat=0
|
||||
Audio.gcom2.nlines=0
|
||||
Audio.gcom2.nflat=nflat.get()
|
||||
frange=nfr.get()*2000
|
||||
|
@ -19,7 +19,7 @@ subroutine symspec(id,kbuf,kk,kkdone,nutc,t00,newdat)
|
||||
ntot=322 !Half symbols per transmission
|
||||
! ntot=279 !Half symbols in 51.8 sec
|
||||
|
||||
if(kbuf.ne.kbuf0 .or. kkdone.eq.-1) then
|
||||
if(kbuf.ne.kbuf0 .or. ndiskdat.eq.1) then
|
||||
kkdone=0
|
||||
kbuf0=kbuf
|
||||
ts=1.d0 - hsym
|
||||
|
Loading…
Reference in New Issue
Block a user