mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-02 13:17:49 -04:00
Basically operational with save_qm called in the decoder thread. Needs testing!
This commit is contained in:
parent
4af9c58bb0
commit
2f46104140
@ -29,9 +29,9 @@ extern struct { //This is "common/datcom/..." in Fortran
|
||||
int n60; //nsecs%60
|
||||
int junk4; //
|
||||
int nfsample; //Input sample rate
|
||||
int junk3; //
|
||||
int ndop58; //EME Self Doppler at t=58
|
||||
int nBaseSubmode; //Base submode for Q65-60x (aka m_modeQ65)
|
||||
int ndop00; //EME Self Doppler
|
||||
int ndop00; //EME Self Doppler at t=0
|
||||
int nsave; //0=None, 1=SaveDecoded, 2=SaveAll
|
||||
int max_drift; //Maximum Q65 drift: units symbol_rate/TxT
|
||||
int offset; //Offset in Hz
|
||||
@ -70,9 +70,9 @@ extern struct { //This is "common/datcom/..." in Fortran
|
||||
int n60; //nsecs%60
|
||||
int junk4; //
|
||||
int nfsample; //Input sample rate
|
||||
int junk3; //
|
||||
int ndop58; //EME Self Doppler at t=58
|
||||
int nBaseSubmode; //Base submode for Q65-60x (aka m_modeQ65)
|
||||
int ndop00; //EME Self Doppler
|
||||
int ndop00; //EME Self Doppler at t=0
|
||||
int nsave; //0=None, 1=SaveDecoded, 2=SaveAll
|
||||
int max_drift; //Maximum Q65 drift: units symbol_rate/TxT
|
||||
int offset; //Offset in Hz
|
||||
|
@ -15,7 +15,7 @@ subroutine decode0(dd,ss,savg)
|
||||
nWTransmitting,result(50)
|
||||
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
|
||||
ndepth,ndiskdat,ntx60,newdat,nfa,nfb,nfcal,nfshift, &
|
||||
ntx30a,ntx30b,ntol,n60,nCFOM,nfsample,nxpol,nmode, &
|
||||
ntx30a,ntx30b,ntol,n60,nCFOM,nfsample,ndop58,nmode, &
|
||||
ndop00,nsave,max_drift,offset,nhsym,mycall,mygrid, &
|
||||
hiscall,hisgrid,datetime,junk1,junk2,bAlso30
|
||||
save
|
||||
|
@ -1,4 +1,4 @@
|
||||
subroutine q65c(fname,revision)
|
||||
subroutine q65c(fname0,revision0)
|
||||
|
||||
use timer_module, only: timer
|
||||
use timer_impl, only: fini_timer !, limtrace
|
||||
@ -12,9 +12,12 @@ subroutine q65c(fname,revision)
|
||||
real*8 fcenter
|
||||
real*4 pdb(4)
|
||||
integer nparams0(NJUNK+3),nparams(NJUNK+3)
|
||||
integer values(8)
|
||||
logical first
|
||||
logical*1 bAlso30
|
||||
character*(*) fname,revision
|
||||
character*(*) fname0,revision0
|
||||
character*120 fname
|
||||
character*22 revision
|
||||
character*12 mycall,hiscall
|
||||
character*6 mygrid,hisgrid
|
||||
character*20 datetime
|
||||
@ -25,19 +28,26 @@ subroutine q65c(fname,revision)
|
||||
!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ###
|
||||
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
|
||||
ndepth,ndiskdat,ntx60,newdat,nn1,nn2,nfcal,nfshift, &
|
||||
ntx30a,ntx30b,ntol,n60,nCFOM,nfsample,nxpol,nmode, &
|
||||
ntx30a,ntx30b,ntol,n60,nCFOM,nfsample,ndop58,nmode, &
|
||||
ndop00,nsave,nn3,nn4,nhsym,mycall,mygrid,hiscall,hisgrid, &
|
||||
datetime,junk1,junk2,bAlso30
|
||||
equivalence (nparams,fcenter)
|
||||
data first/.true./
|
||||
save first
|
||||
|
||||
fname=fname0
|
||||
revision=revision0
|
||||
nparams=nparams0 !Copy parameters into common/npar/
|
||||
datetime(12:)='00 '
|
||||
|
||||
npatience=1
|
||||
newdat=1 !Always on ??
|
||||
|
||||
if(ndiskdat.eq.0) then
|
||||
if(nhsym.eq.200 .and. n60.ne.30) go to 999
|
||||
if(nhsym.eq.330 .and. n60.ne.49) go to 999
|
||||
if(nhsym.eq.390 .and. n60.ne.58) go to 999
|
||||
endif
|
||||
|
||||
if(ndiskdat.eq.1) then
|
||||
call chkstat(dd,nhsym,pdb)
|
||||
if((abs(pdb(1)-pdb(2)).gt.3.0 .and. pdb(1).gt.1.0) .or. &
|
||||
@ -48,9 +58,6 @@ subroutine q65c(fname,revision)
|
||||
ntx30a=0 !Older 56s files have no Tx
|
||||
ntx30b=0 !Older 56s files have no Tx
|
||||
endif
|
||||
|
||||
! write(*,3001) nutc,nhsym,pdb,ntx30a,ntx30b
|
||||
!3001 format(i4.4,i6,4f7.1,2i6)
|
||||
endif
|
||||
|
||||
if(ntx30a.gt.5) then
|
||||
@ -72,10 +79,21 @@ subroutine q65c(fname,revision)
|
||||
call decode0(dd,ss,savg)
|
||||
call timer('decode0 ',1)
|
||||
|
||||
write(*,3001) n60,datetime(1:11),nutc,newdat,nsave,ntx30a,ntx30b,ndecodes
|
||||
3001 format('A',i3,1x,a11,i6.4,5i5)
|
||||
call date_and_time(VALUES=values)
|
||||
n60b=values(7)
|
||||
nd=n60b-n60
|
||||
if(nd.lt.0) nd=nd+60
|
||||
write(*,3002) nutc,nagain,nhsym,n60,n60b,nd,ntx30a,ntx30b,ndecodes,revision
|
||||
3002 format('A',i5.4,8i5,2x,a22)
|
||||
|
||||
return
|
||||
if(nsave.eq.2 .or. (nsave.eq.1 .and. ndecodes.ge.1)) then
|
||||
call timer('save_qm ',0)
|
||||
call save_qm(fname,revision,mycall,mygrid,dd,ntx30a,ntx30b,fcenter, &
|
||||
nutc,ndop00,ndop58)
|
||||
call timer('save_qm ',1)
|
||||
endif
|
||||
|
||||
999 return
|
||||
end subroutine q65c
|
||||
|
||||
subroutine all_done
|
||||
|
@ -1,9 +1,11 @@
|
||||
subroutine save_qm(fname,prog_id,mycall,mygrid,dd,ntx30a,ntx30b,fcenter, &
|
||||
subroutine save_qm(fname,revision,mycall,mygrid,dd,ntx30a,ntx30b,fcenter, &
|
||||
nutc,ndop00,ndop58)
|
||||
|
||||
parameter(NMAX=60*96000)
|
||||
character*(*) fname,prog_id,mycall,mygrid
|
||||
character prog_id_24*24,mycall_12*12,mygrid_6*6
|
||||
character*120 fname
|
||||
character*22 revision
|
||||
character*12 mycall
|
||||
character*6 mygrid
|
||||
real*4 dd(2,NMAX)
|
||||
real*8 fcenter
|
||||
integer nxtra(15) !For possible future additions
|
||||
@ -49,11 +51,8 @@ subroutine save_qm(fname,prog_id,mycall,mygrid,dd,ntx30a,ntx30b,fcenter, &
|
||||
if(ib.eq.30*96000) id1(1:2,ib+1:60*96000)=0
|
||||
|
||||
open(29,file=trim(fname),status='unknown',access='stream')
|
||||
prog_id_24=prog_id//" "
|
||||
mycall_12=mycall
|
||||
mygrid_6=mygrid
|
||||
nxtra=0
|
||||
write(29) prog_id_24,mycall_12,mygrid_6,fcenter,nutc,ntx30a,ntx30b, &
|
||||
write(29) revision//' ',mycall_12,mygrid_6,fcenter,nutc,ntx30a,ntx30b, &
|
||||
ndop00,ndop58,ia,ib,fac0,nxtra !Write header to disk
|
||||
write(29) id1(1:2,ia:ib) !Write 8-bit data to disk
|
||||
close(29)
|
||||
|
@ -900,6 +900,8 @@ void MainWindow::decode() //decode()
|
||||
datcom_.junk1=1234; //Check for these values in m65
|
||||
datcom_.junk2=5678;
|
||||
datcom_.bAlso30=m_bAlso30;
|
||||
datcom_.ndop00=m_dop00;
|
||||
datcom_.ndop58=m_dop58;
|
||||
|
||||
char *to = (char*) datcom2_.d4;
|
||||
char *from = (char*) datcom_.d4;
|
||||
|
Loading…
x
Reference in New Issue
Block a user