Fix measure mode (and make its label yellow).

Enlarge the system packet buffersize.
Include executable plrr.exe


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@475 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2007-07-06 16:28:58 +00:00
parent 60dd05bf9a
commit d98baf2573
6 changed files with 68 additions and 14 deletions

View File

@ -992,7 +992,10 @@ def update():
i=g.rfnd(t,".")
t=t[:i]
if mode.get() != g.mode or first:
msg1.configure(bg='#00FFFF')
if mode.get()[:4]=='JT65':
msg1.configure(bg='#00FFFF')
elif mode.get()=='Measure':
msg1.configure(bg='yellow')
g.mode=mode.get()
first=0

View File

@ -24,7 +24,7 @@ subroutine map65a(newdat)
pctlost=nlost/331.03
if(ndebug.eq.2) write(*,3001) nutc,mod(int(sec_midn()),60),nlost,pctlost
3001 format('mod65a 1:',i5.4,i3.2,i8,f6.1,' %')
3001 format('mod65a 1:',i5.4,i3.2,i8,f7.2,' %')
rewind 11
rewind 12
@ -328,8 +328,9 @@ subroutine map65a(newdat)
t3=sec_midn()
if(ndebug.eq.2) write(*,3003) mod(int(t3),60)
3003 format('mod65a 3:'i8.2)
if(ndebug.eq.1) write(*,3004) nutc,mod(t2,60.0),mod(t3,60.0),pctlost
3004 format('mod65a:',i5.4,1x,2f6.1,f8.2,' %')
if(ndebug.eq.1) write(*,3004) nutc,mod(t2,60.0),mod(t3,60.0), &
nlost,pctlost
3004 format('mod65a:',i5.4,1x,2f6.1,i6,f8.2,' %')
endif
nagain=0

BIN
plrr.exe Normal file

Binary file not shown.

View File

@ -3,20 +3,54 @@ program plrr
! Pseudo-Linrad "Receive" program
integer*1 userx_no,iusb
integer*2 nblock
integer*2 nblock,nblock0
real*8 center_freq,buf8
logical first
common/plrscom/center_freq,msec,fselect,iptr,nblock,userx_no,iusb,buf8(174)
data first/.true./
call setup_rsocket
ns0=-99
nlost=0
10 call recv_pkt(center_freq)
lost=nblock-nblock0-1
if(lost.ne.0 .and. .not.first) then
nb=nblock
if(nb.lt.0) nb=nb+65536
nb0=nblock0
if(nb0.lt.0) nb0=nb0+65536
print*,'Lost packets:',nb,nb0,lost
nlost=nlost + lost ! Insert zeros for the lost data.
! do i=1,174*lost
! k=k+1
! d8(k)=0
! enddo
first=.false.
nlost=nlost+lost
endif
nblock0=nblock
ns=mod(msec/1000,60)
if(ns.ne.ns0) write(*,1010) ns,center_freq,0.001*msec,sec_midn()
1010 format('ns:',i3,' f0:',f10.3,' t1:',f10.3,' t2:',f10.3)
if(ns.ne.ns0) write(*,1010) ns,center_freq,0.001*msec,sec_midn(),nlost
1010 format('ns:',i3,' f0:',f10.3,' t1:',f10.3,' t2:',f10.3,i8)
ns0=ns
go to 10
end program plrr
! To compile: % gfortran -o plrr plrr.f90 plrr_subs.c
real function sec_midn()
real*8 sec8,hrtime
sec_midn=secnds(0.0)
return
end function sec_midn
subroutine sleep_msec(n)
use dflib
call sleepqq(n)
return
end subroutine sleep_msec

View File

@ -15,6 +15,7 @@ void setup_rsocket_(void)
{
struct ip_mreq mreq;
u_int yes=1;
int sndsize;
// Make sure that we have compatible Winsock support
WORD wVersionRequested;
@ -75,6 +76,15 @@ void setup_rsocket_(void)
perror("setsockopt");
exit(1);
}
err=getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&sndsize,
(int)sizeof(sndsize));
printf("sndsize: %d %d\n",sndsize,err);
sndsize=65536;
err=setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&sndsize,
(int)sizeof(sndsize));
err=getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&sndsize,
(int)sizeof(sndsize));
printf("sndsize: %d %d\n",sndsize,err);
}
//void __stdcall RECV_PKT(char buf[])

View File

@ -21,7 +21,7 @@ subroutine recvpkt(iarg)
include 'gcom2.f90'
equivalence (id,d8)
data nblock0/0/,first/.true./,kb/1/,ntx/0/,npkt/0/,nw/0/
data sqave/0.0/,u/0.001/,rxnoise/0.0/,kbuf/1/
data sqave/0.0/,u/0.001/,rxnoise/0.0/,kbuf/1/,lost_tot/0/
save
call setup_rsocket ! Open socket to receive multicast data
@ -39,17 +39,19 @@ subroutine recvpkt(iarg)
endif
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.
nb=nblock
if(nb.lt.0) nb=nb+65536
nb0=nblock0
if(nb0.lt.0) nb0=nb0+65536
if(ndebug.eq.2) print*,'Lost packets:',nb0,nb,lost
lost_tot=lost_tot + lost ! Insert zeros for the lost data.
do i=1,174*lost
k=k+1
d8(k)=0
enddo
endif
first=.false.
nblock0=nblock
nsec=msec/1000
if(mod(nsec,60).eq.1) nreset=1
@ -59,7 +61,7 @@ subroutine recvpkt(iarg)
kb=3-kb
k=0
if(kb.eq.2) k=NSMAX
nlost=0
lost_tot=0
endif
if(kb.eq.1 .and. (k+174).gt.NSMAX) go to 20
@ -80,8 +82,10 @@ subroutine recvpkt(iarg)
if(npkt.ge.551) then
npkt=0
nw=nw+1
rewind 11
write(11,1000) nw,rxnoise
1000 format(i6,f8.2)
write(11,*) '$EOF'
call flushqqq(11)
ndecdone=1
write(24,1000) nw,rxnoise
@ -115,8 +119,10 @@ subroutine recvpkt(iarg)
kk=k
if(ndebug.eq.2) write(*,3002) nutc,mod(int(sec_midn()),60),ns
3002 format('recvpkt 2:',i5.4,2i3.2)
nlost=lost_tot ! Save stats for printout
endif
endif
first=.false.
go to 10
end subroutine recvpkt