mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Progress toward full implementation of QRA64 in MAP65.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@7505 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									8475e23906
								
							
						
					
					
						commit
						48505621ae
					
				@ -30,7 +30,7 @@ extern struct {                     //This is "common/datcom/..." in Fortran
 | 
				
			|||||||
  int map65RxLog;                   //Flags to control log files
 | 
					  int map65RxLog;                   //Flags to control log files
 | 
				
			||||||
  int nfsample;                     //Input sample rate
 | 
					  int nfsample;                     //Input sample rate
 | 
				
			||||||
  int nxpol;                        //1 if using xpol antennas, 0 otherwise
 | 
					  int nxpol;                        //1 if using xpol antennas, 0 otherwise
 | 
				
			||||||
  int mode65;                       //JT65 sub-mode: A=1, B=2, C=4
 | 
					  int nmode;                        //nmode = 10*m_modeQRA64 + m_modeJT65
 | 
				
			||||||
  int nfast;                        //1 for sub-modes ABC; 2 for B2, C2
 | 
					  int nfast;                        //1 for sub-modes ABC; 2 for B2, C2
 | 
				
			||||||
  int nsave;                        //Number of s3(64,63) spectra saved
 | 
					  int nsave;                        //Number of s3(64,63) spectra saved
 | 
				
			||||||
  char mycall[12];
 | 
					  char mycall[12];
 | 
				
			||||||
 | 
				
			|||||||
@ -48,13 +48,7 @@ void getfile(QString fname, bool xpol, int dbDgrd, int nfast)
 | 
				
			|||||||
    if(i0<0) i0=fname.indexOf(".iq");
 | 
					    if(i0<0) i0=fname.indexOf(".iq");
 | 
				
			||||||
    datcom_.nutc=0;
 | 
					    datcom_.nutc=0;
 | 
				
			||||||
    if(i0>0) {
 | 
					    if(i0>0) {
 | 
				
			||||||
      if(fname.mid(i0-5,1)=="_") {
 | 
					      datcom_.nutc=100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt();
 | 
				
			||||||
        datcom_.nutc=10000*fname.mid(i0-4,2).toInt() +
 | 
					 | 
				
			||||||
            100*fname.mid(i0-2,2).toInt();
 | 
					 | 
				
			||||||
      } else {
 | 
					 | 
				
			||||||
        datcom_.nutc=10000*fname.mid(i0-6,2).toInt() +
 | 
					 | 
				
			||||||
            100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ subroutine decode0(dd,ss,savg,nstandalone)
 | 
				
			|||||||
  character mycall0*12,hiscall0*12,hisgrid0*6
 | 
					  character mycall0*12,hiscall0*12,hisgrid0*6
 | 
				
			||||||
  common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,                &
 | 
					  common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,                &
 | 
				
			||||||
       ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift,                 &
 | 
					       ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift,                 &
 | 
				
			||||||
       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65,              &
 | 
					       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode,               &
 | 
				
			||||||
       nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
 | 
					       nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
 | 
				
			||||||
  common/tracer/ limtrace,lu
 | 
					  common/tracer/ limtrace,lu
 | 
				
			||||||
  data neme0/-99/,mcall3b/1/
 | 
					  data neme0/-99/,mcall3b/1/
 | 
				
			||||||
@ -54,7 +54,7 @@ subroutine decode0(dd,ss,savg,nstandalone)
 | 
				
			|||||||
  call map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,           &
 | 
					  call map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,           &
 | 
				
			||||||
       mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi,           &
 | 
					       mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi,           &
 | 
				
			||||||
       nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid,          &
 | 
					       nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid,          &
 | 
				
			||||||
       neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,mode65,nfast)
 | 
					       neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,nmode,nfast)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call timer('map65a  ',1)
 | 
					  call timer('map65a  ',1)
 | 
				
			||||||
  call timer('decode0 ',1)
 | 
					  call timer('decode0 ',1)
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ program m65
 | 
				
			|||||||
  common/datcom/dd(4,5760000),ss(4,322,NFFT),savg(4,NFFT),fc0,nutc0,junk(36)
 | 
					  common/datcom/dd(4,5760000),ss(4,322,NFFT),savg(4,NFFT),fc0,nutc0,junk(36)
 | 
				
			||||||
  common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,                &
 | 
					  common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,                &
 | 
				
			||||||
       ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift,                 &
 | 
					       ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift,                 &
 | 
				
			||||||
       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65,              &
 | 
					       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode,               &
 | 
				
			||||||
       nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
 | 
					       nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nargs=iargc()
 | 
					  nargs=iargc()
 | 
				
			||||||
@ -34,9 +34,11 @@ program m65
 | 
				
			|||||||
     call ftnquit
 | 
					     call ftnquit
 | 
				
			||||||
     go to 999
 | 
					     go to 999
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  if(arg(1:1).eq.'A') mode65=1
 | 
					!### These need fixing:
 | 
				
			||||||
  if(arg(1:1).eq.'B') mode65=2
 | 
					  if(arg(1:1).eq.'A') nmode=1
 | 
				
			||||||
  if(arg(1:1).eq.'C') mode65=4
 | 
					  if(arg(1:1).eq.'B') nmode=2
 | 
				
			||||||
 | 
					  if(arg(1:1).eq.'C') nmode=3
 | 
				
			||||||
 | 
					!###
 | 
				
			||||||
  nfast=1
 | 
					  nfast=1
 | 
				
			||||||
  if(arg(2:2).eq.'2') nfast=2
 | 
					  if(arg(2:2).eq.'2') nfast=2
 | 
				
			||||||
  nfsample=96000
 | 
					  nfsample=96000
 | 
				
			||||||
 | 
				
			|||||||
@ -68,7 +68,7 @@ subroutine m65c(dd,ss,savg,nparams0)
 | 
				
			|||||||
  character*20 datetime
 | 
					  character*20 datetime
 | 
				
			||||||
  common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,              &
 | 
					  common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,              &
 | 
				
			||||||
       ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift,               &
 | 
					       ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift,               &
 | 
				
			||||||
       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65,            &
 | 
					       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode,             &
 | 
				
			||||||
       nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
 | 
					       nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
 | 
				
			||||||
  equivalence (nparams,fcenter)
 | 
					  equivalence (nparams,fcenter)
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
					subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			||||||
     mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi,              &
 | 
					     mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi,              &
 | 
				
			||||||
     nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid,              &
 | 
					     nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid,              &
 | 
				
			||||||
     neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,mode65,nfast)
 | 
					     neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,nmode,nfast)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
!  Processes timf2 data from Linrad to find and decode JT65 signals.
 | 
					!  Processes timf2 data from Linrad to find and decode JT65 signals.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -17,7 +17,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
  real*8 fcenter
 | 
					  real*8 fcenter
 | 
				
			||||||
  character*22 msg(MAXMSG)
 | 
					  character*22 msg(MAXMSG)
 | 
				
			||||||
  character*3 shmsg0(4)
 | 
					  character*3 shmsg0(4)
 | 
				
			||||||
  character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1
 | 
					  character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1,cm*1
 | 
				
			||||||
  integer indx(MAXMSG),nsiz(MAXMSG)
 | 
					  integer indx(MAXMSG),nsiz(MAXMSG)
 | 
				
			||||||
  logical done(MAXMSG)
 | 
					  logical done(MAXMSG)
 | 
				
			||||||
  logical xpol,bqra64
 | 
					  logical xpol,bqra64
 | 
				
			||||||
@ -27,13 +27,16 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
  common/c3com/ mcall3a
 | 
					  common/c3com/ mcall3a
 | 
				
			||||||
  common/testcom/ifreq
 | 
					  common/testcom/ifreq
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  data blank/'                      '/
 | 
					  data blank/'                      '/,cm/'#'/
 | 
				
			||||||
  data shmsg0/'ATT','RO ','RRR','73 '/
 | 
					  data shmsg0/'ATT','RO ','RRR','73 '/
 | 
				
			||||||
  data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/
 | 
					  data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/
 | 
				
			||||||
  save
 | 
					  save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bqra64=nfast.ge.100  
 | 
					  mode65=mod(nmode,10)
 | 
				
			||||||
  nfast=mod(nfast,100)
 | 
					  if(mode65.eq.3) mode65=4
 | 
				
			||||||
 | 
					  modeqra64=nmode/10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  bqra64=modeqra64.gt.0
 | 
				
			||||||
  mcall3a=mcall3b
 | 
					  mcall3a=mcall3b
 | 
				
			||||||
  mousefqso0=mousefqso
 | 
					  mousefqso0=mousefqso
 | 
				
			||||||
  xpol=(nxpol.ne.0)
 | 
					  xpol=(nxpol.ne.0)
 | 
				
			||||||
@ -222,7 +225,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
                 if(nqd.eq.2) then
 | 
					                 if(nqd.eq.2) then
 | 
				
			||||||
                    call timer('qra64   ',0)
 | 
					                    call timer('qra64   ',0)
 | 
				
			||||||
                    call qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall,   &
 | 
					                    call qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall,   &
 | 
				
			||||||
                         hiscall,hisgrid)
 | 
					                         hiscall,hisgrid,nwrite_qra64)
 | 
				
			||||||
                    call timer('qra64   ',1)
 | 
					                    call timer('qra64   ',1)
 | 
				
			||||||
                    cycle
 | 
					                    cycle
 | 
				
			||||||
                 endif
 | 
					                 endif
 | 
				
			||||||
@ -323,22 +326,22 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
              if(ndphi.eq.0) then
 | 
					              if(ndphi.eq.0) then
 | 
				
			||||||
                 write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2,    &
 | 
					                 write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2,    &
 | 
				
			||||||
                      decoded,nkv,nqual,ntxpol,cp
 | 
					                      cm,decoded,nkv,nqual,ntxpol,cp
 | 
				
			||||||
1010             format('!',i3,i5,i4,i7.6,f5.1,i4,2x,a22,i2,i5,i5,1x,a1)
 | 
					1010             format('!',i3,i5,i4,i6.4,1x,f5.1,i4,a1,1x,a22,i2,i5,i5,1x,a1)
 | 
				
			||||||
              else
 | 
					              else
 | 
				
			||||||
                 if(iloop.ge.1) qphi(iloop)=sig(k,10)
 | 
					                 if(iloop.ge.1) qphi(iloop)=sig(k,10)
 | 
				
			||||||
                 write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2,    &
 | 
					                 write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2,    &
 | 
				
			||||||
                      decoded,nkv,nqual,30*iloop
 | 
					                      cm,decoded,nkv,nqual,30*iloop
 | 
				
			||||||
                 write(27,1011) 30*iloop,nkHz,ndf,npol,nutc,  &
 | 
					                 write(27,1011) 30*iloop,nkHz,ndf,npol,nutc,  &
 | 
				
			||||||
                      dt,sync2,nkv,nqual,decoded
 | 
					                      dt,sync2,nkv,nqual,cm,decoded
 | 
				
			||||||
1011             format(i3,i4,i5,i4,i7.6,f5.1,f7.1,i3,i5,2x,a22)
 | 
					1011             format(i3,i4,i5,i4,i6.4,1x,f5.1,f7.1,i3,i5,a1,1x,a22)
 | 
				
			||||||
              endif
 | 
					              endif
 | 
				
			||||||
           endif
 | 
					           endif
 | 
				
			||||||
        enddo
 | 
					        enddo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(nwrite.eq.0) then
 | 
					        if(nwrite.eq.0 .and. nwrite_qra64.eq.0) then
 | 
				
			||||||
           write(*,1012) mousefqso,nutc
 | 
					           write(*,1012) mousefqso,nutc
 | 
				
			||||||
1012       format('!',i3,9x,i7.6,' ')
 | 
					1012       format('!',i3,9x,i6.4,'  ')
 | 
				
			||||||
        endif
 | 
					        endif
 | 
				
			||||||
   
 | 
					   
 | 
				
			||||||
     endif
 | 
					     endif
 | 
				
			||||||
@ -457,14 +460,14 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
                nsync2,nutc,decoded,cp,cmode
 | 
					                nsync2,nutc,decoded,cp,cmode
 | 
				
			||||||
           write(21,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1,       &
 | 
					           write(21,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1,       &
 | 
				
			||||||
                nsync2,nutc,decoded,cp,cmode
 | 
					                nsync2,nutc,decoded,cp,cmode
 | 
				
			||||||
1014       format(f8.3,i5,3i3,f5.1,i4,i3,i4,i7.6,2x,a22,2x,a1,3x,a2)
 | 
					1014       format(f8.3,i5,3i3,f5.1,i4,i3,i4,i5.4,4x,a22,2x,a1,3x,a2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        endif
 | 
					        endif
 | 
				
			||||||
     endif
 | 
					     endif
 | 
				
			||||||
     j=j+nsiz(n)
 | 
					     j=j+nsiz(n)
 | 
				
			||||||
  enddo
 | 
					  enddo
 | 
				
			||||||
  write(26,1015) nutc
 | 
					  write(26,1015) nutc
 | 
				
			||||||
1015 format(39x,i6.6)
 | 
					1015 format(38x,i6.4,' ')
 | 
				
			||||||
  call flush(21)
 | 
					  call flush(21)
 | 
				
			||||||
  call flush(26)
 | 
					  call flush(26)
 | 
				
			||||||
  call display(nkeep,ftol)
 | 
					  call display(nkeep,ftol)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12,   &
 | 
					subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12,   &
 | 
				
			||||||
     hisgrid_6)
 | 
					     hisgrid_6,nwrite_qra64)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  parameter (NFFT1=5376000)              !56*96000
 | 
					  parameter (NFFT1=5376000)              !56*96000
 | 
				
			||||||
  parameter (NFFT2=336000)               !56*6000 (downsampled by 1/16)
 | 
					  parameter (NFFT2=336000)               !56*6000 (downsampled by 1/16)
 | 
				
			||||||
@ -28,7 +28,7 @@ subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12,   &
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
!  write(67) nutc,cx,cy
 | 
					!  write(67) nutc,cx,cy
 | 
				
			||||||
  call qra64c(cx,cy,nutc,nqd,ikhz,mousedf,ntol,xplo,mycall_12,    &
 | 
					  call qra64c(cx,cy,nutc,nqd,ikhz,mousedf,ntol,xplo,mycall_12,    &
 | 
				
			||||||
       hiscall_12,hisgrid_6)
 | 
					       hiscall_12,hisgrid_6,nwrite_qra64)
 | 
				
			||||||
  close(17)
 | 
					  close(17)
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  return
 | 
					  return
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12,     &
 | 
					subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12,     &
 | 
				
			||||||
     hiscall_12,hisgrid_6)
 | 
					     hiscall_12,hisgrid_6,nwrite_qra64)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  use packjt
 | 
					  use packjt
 | 
				
			||||||
  parameter (NFFT2=336000)               !56*6000 (downsampled by 1/16)
 | 
					  parameter (NFFT2=336000)               !56*6000 (downsampled by 1/16)
 | 
				
			||||||
@ -13,7 +13,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12,     &
 | 
				
			|||||||
  character*12 mycall_12,hiscall_12
 | 
					  character*12 mycall_12,hiscall_12
 | 
				
			||||||
  character*6 mycall,hiscall,hisgrid_6
 | 
					  character*6 mycall,hiscall,hisgrid_6
 | 
				
			||||||
  character*4 hisgrid
 | 
					  character*4 hisgrid
 | 
				
			||||||
  character*1 cp
 | 
					  character*1 cp,cmode
 | 
				
			||||||
  logical xpol,ltext
 | 
					  logical xpol,ltext
 | 
				
			||||||
  complex cx(0:NFFT2-1),cy(0:NFFT2-1)
 | 
					  complex cx(0:NFFT2-1),cy(0:NFFT2-1)
 | 
				
			||||||
  complex c00(0:720000)                      !Complex spectrum of dd()
 | 
					  complex c00(0:720000)                      !Complex spectrum of dd()
 | 
				
			||||||
@ -24,7 +24,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12,     &
 | 
				
			|||||||
  integer dat4(12)                           !Decoded message (as 12 integers)
 | 
					  integer dat4(12)                           !Decoded message (as 12 integers)
 | 
				
			||||||
  integer dat4x(12)
 | 
					  integer dat4x(12)
 | 
				
			||||||
  integer nap(0:11)
 | 
					  integer nap(0:11)
 | 
				
			||||||
  data nap/0,2,3,2,3,4,2,3,6,4,6,6/
 | 
					  data nap/0,2,3,2,3,4,2,3,6,4,6,6/,cmode/'$'/
 | 
				
			||||||
  data nc1z/-1/,nc2z/-1/,ng2z/-1/,maxaptypez/-1/
 | 
					  data nc1z/-1/,nc2z/-1/,ng2z/-1/,maxaptypez/-1/
 | 
				
			||||||
  save
 | 
					  save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -37,6 +37,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12,     &
 | 
				
			|||||||
  emedelay=2.5
 | 
					  emedelay=2.5
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  irc=-1
 | 
					  irc=-1
 | 
				
			||||||
 | 
					  nwrite_qra64=0
 | 
				
			||||||
  decoded='                      '
 | 
					  decoded='                      '
 | 
				
			||||||
  nft=99
 | 
					  nft=99
 | 
				
			||||||
  mycall=mycall_12(1:6)
 | 
					  mycall=mycall_12(1:6)
 | 
				
			||||||
@ -160,22 +161,17 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12,     &
 | 
				
			|||||||
     if(nSubmode.eq.4) nsnr=nint(10.0*log10(sy)-24.0)   !E
 | 
					     if(nSubmode.eq.4) nsnr=nint(10.0*log10(sy)-24.0)   !E
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
!  write(*,1011) nutc/100,nsnr,dtx,nfreq,decoded
 | 
					 | 
				
			||||||
!1011 format(i4.4,i4,f5.1,i5,1x,2x,1x,a22)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  npol=0
 | 
					  npol=0
 | 
				
			||||||
  cp='H'
 | 
					  cp='H'
 | 
				
			||||||
  ntxpol=0
 | 
					  ntxpol=0
 | 
				
			||||||
  if(irc.ge.0) then
 | 
					  if(irc.ge.0) then
 | 
				
			||||||
     write(*,1010) ikHz,nfreq,npol,nutc/100,dtx,nsnr,decoded,irc,ntxpol,cp
 | 
					     write(*,1010) ikHz,nfreq,npol,nutc,dtx,nsnr,cmode,decoded,irc,ntxpol,cp
 | 
				
			||||||
!1010 format('!',i3,i5,i4,i7.6,f5.1,i4,2x,a22,i2,i5,i5,1x,a1)
 | 
					1010 format('!',i3,i5,i4,i6.4,f5.1,i5,a1,1x,a22,i2,i5,1x,a1)
 | 
				
			||||||
!1010 format(i3,i5,i4,i5.4,f5.1,i5,2x,a22,i2,i5,1x,a1)
 | 
					     nwrite_qra64=nwrite_qra64+1
 | 
				
			||||||
1010 format('!',i3,i5,i4,i6.4,f5.1,i5,2x,a22,i2,i5,1x,a1)
 | 
					 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
     write(*,1010) ikHz,nfreq,npol,nutc/100,dtx,nsnr
 | 
					     write(*,1010) ikHz,nfreq,npol,nutc,dtx,nsnr,cmode
 | 
				
			||||||
 | 
					     nwrite_qra64=nwrite_qra64+1
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
!  goto 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
999 return
 | 
					999 return
 | 
				
			||||||
end subroutine qra64c
 | 
					end subroutine qra64c
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										117
									
								
								mainwindow.cpp
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								mainwindow.cpp
									
									
									
									
									
								
							@ -61,11 +61,18 @@ MainWindow::MainWindow(QWidget *parent) :
 | 
				
			|||||||
  ui->actionBlue->setActionGroup(paletteGroup);
 | 
					  ui->actionBlue->setActionGroup(paletteGroup);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QActionGroup* modeGroup = new QActionGroup(this);
 | 
					  QActionGroup* modeGroup = new QActionGroup(this);
 | 
				
			||||||
 | 
					  ui->actionNoJT65->setActionGroup(modeGroup);
 | 
				
			||||||
  ui->actionJT65A->setActionGroup(modeGroup);
 | 
					  ui->actionJT65A->setActionGroup(modeGroup);
 | 
				
			||||||
  ui->actionJT65B->setActionGroup(modeGroup);
 | 
					  ui->actionJT65B->setActionGroup(modeGroup);
 | 
				
			||||||
  ui->actionJT65C->setActionGroup(modeGroup);
 | 
					  ui->actionJT65C->setActionGroup(modeGroup);
 | 
				
			||||||
  ui->actionJT65B2->setActionGroup(modeGroup);
 | 
					
 | 
				
			||||||
  ui->actionJT65C2->setActionGroup(modeGroup);
 | 
					  QActionGroup* modeGroup2 = new QActionGroup(this);
 | 
				
			||||||
 | 
					  ui->actionNoQRA64->setActionGroup(modeGroup2);
 | 
				
			||||||
 | 
					  ui->actionQRA64A->setActionGroup(modeGroup2);
 | 
				
			||||||
 | 
					  ui->actionQRA64B->setActionGroup(modeGroup2);
 | 
				
			||||||
 | 
					  ui->actionQRA64C->setActionGroup(modeGroup2);
 | 
				
			||||||
 | 
					  ui->actionQRA64D->setActionGroup(modeGroup2);
 | 
				
			||||||
 | 
					  ui->actionQRA64E->setActionGroup(modeGroup2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QActionGroup* saveGroup = new QActionGroup(this);
 | 
					  QActionGroup* saveGroup = new QActionGroup(this);
 | 
				
			||||||
  ui->actionSave_all->setActionGroup(saveGroup);
 | 
					  ui->actionSave_all->setActionGroup(saveGroup);
 | 
				
			||||||
@ -152,7 +159,8 @@ MainWindow::MainWindow(QWidget *parent) :
 | 
				
			|||||||
  m_colors="000066ff0000ffff00969696646464";
 | 
					  m_colors="000066ff0000ffff00969696646464";
 | 
				
			||||||
  m_nfast=1;
 | 
					  m_nfast=1;
 | 
				
			||||||
  m_nsave=0;
 | 
					  m_nsave=0;
 | 
				
			||||||
  m_bQRA64=false;
 | 
					  m_modeJT65=0;
 | 
				
			||||||
 | 
					  m_modeQRA64=0;
 | 
				
			||||||
  bTune=false;
 | 
					  bTune=false;
 | 
				
			||||||
  txPower=100;
 | 
					  txPower=100;
 | 
				
			||||||
  iqAmp=0;
 | 
					  iqAmp=0;
 | 
				
			||||||
@ -219,9 +227,6 @@ MainWindow::MainWindow(QWidget *parent) :
 | 
				
			|||||||
  if(m_mode=="JT65A") on_actionJT65A_triggered();
 | 
					  if(m_mode=="JT65A") on_actionJT65A_triggered();
 | 
				
			||||||
  if(m_mode=="JT65B") on_actionJT65B_triggered();
 | 
					  if(m_mode=="JT65B") on_actionJT65B_triggered();
 | 
				
			||||||
  if(m_mode=="JT65C") on_actionJT65C_triggered();
 | 
					  if(m_mode=="JT65C") on_actionJT65C_triggered();
 | 
				
			||||||
  if(m_mode=="JT65B2") on_actionJT65B2_triggered();
 | 
					 | 
				
			||||||
  if(m_mode=="JT65C2") on_actionJT65C2_triggered();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  future1 = new QFuture<void>;
 | 
					  future1 = new QFuture<void>;
 | 
				
			||||||
  watcher1 = new QFutureWatcher<void>;
 | 
					  watcher1 = new QFutureWatcher<void>;
 | 
				
			||||||
  connect(watcher1, SIGNAL(finished()),this,SLOT(diskDat()));
 | 
					  connect(watcher1, SIGNAL(finished()),this,SLOT(diskDat()));
 | 
				
			||||||
@ -367,12 +372,13 @@ void MainWindow::writeSettings()
 | 
				
			|||||||
  settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked());
 | 
					  settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked());
 | 
				
			||||||
  settings.setValue("PaletteBlue",ui->actionBlue->isChecked());
 | 
					  settings.setValue("PaletteBlue",ui->actionBlue->isChecked());
 | 
				
			||||||
  settings.setValue("Mode",m_mode);
 | 
					  settings.setValue("Mode",m_mode);
 | 
				
			||||||
 | 
					  settings.setValue("nModeJT65",m_modeJT65);
 | 
				
			||||||
 | 
					  settings.setValue("nModeQRA64",m_modeQRA64);
 | 
				
			||||||
  settings.setValue("SaveNone",ui->actionNone->isChecked());
 | 
					  settings.setValue("SaveNone",ui->actionNone->isChecked());
 | 
				
			||||||
  settings.setValue("SaveAll",ui->actionSave_all->isChecked());
 | 
					  settings.setValue("SaveAll",ui->actionSave_all->isChecked());
 | 
				
			||||||
  settings.setValue("NDepth",m_ndepth);
 | 
					  settings.setValue("NDepth",m_ndepth);
 | 
				
			||||||
  settings.setValue("NEME",m_onlyEME);
 | 
					  settings.setValue("NEME",m_onlyEME);
 | 
				
			||||||
  settings.setValue("KB8RQ",m_kb8rq);
 | 
					  settings.setValue("KB8RQ",m_kb8rq);
 | 
				
			||||||
  settings.setValue("DecodeQRA64",m_bQRA64);
 | 
					 | 
				
			||||||
  settings.setValue("NB",m_NB);
 | 
					  settings.setValue("NB",m_NB);
 | 
				
			||||||
  settings.setValue("NBslider",m_NBslider);
 | 
					  settings.setValue("NBslider",m_NBslider);
 | 
				
			||||||
  settings.setValue("GainX",(double)m_gainx);
 | 
					  settings.setValue("GainX",(double)m_gainx);
 | 
				
			||||||
@ -451,11 +457,16 @@ void MainWindow::readSettings()
 | 
				
			|||||||
                                  "PaletteCuteSDR",true).toBool());
 | 
					                                  "PaletteCuteSDR",true).toBool());
 | 
				
			||||||
  ui->actionLinrad->setChecked(settings.value(
 | 
					  ui->actionLinrad->setChecked(settings.value(
 | 
				
			||||||
                                 "PaletteLinrad",false).toBool());
 | 
					                                 "PaletteLinrad",false).toBool());
 | 
				
			||||||
  ui->actionAFMHot->setChecked(settings.value(
 | 
					 | 
				
			||||||
                                 "PaletteAFMHot",false).toBool());
 | 
					 | 
				
			||||||
  ui->actionBlue->setChecked(settings.value(
 | 
					 | 
				
			||||||
                                 "PaletteBlue",false).toBool());
 | 
					 | 
				
			||||||
  m_mode=settings.value("Mode","JT65B").toString();
 | 
					  m_mode=settings.value("Mode","JT65B").toString();
 | 
				
			||||||
 | 
					  m_modeJT65=settings.value("nModeJT65",2).toInt();
 | 
				
			||||||
 | 
					  m_modeQRA64=settings.value("nModeQRA64",2).toInt();
 | 
				
			||||||
 | 
					  if(m_modeQRA64==0) ui->actionNoQRA64->setChecked(true);
 | 
				
			||||||
 | 
					  if(m_modeQRA64==1) ui->actionQRA64A->setChecked(true);
 | 
				
			||||||
 | 
					  if(m_modeQRA64==2) ui->actionQRA64B->setChecked(true);
 | 
				
			||||||
 | 
					  if(m_modeQRA64==3) ui->actionQRA64C->setChecked(true);
 | 
				
			||||||
 | 
					  if(m_modeQRA64==4) ui->actionQRA64D->setChecked(true);
 | 
				
			||||||
 | 
					  if(m_modeQRA64==5) ui->actionQRA64E->setChecked(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui->actionNone->setChecked(settings.value("SaveNone",true).toBool());
 | 
					  ui->actionNone->setChecked(settings.value("SaveNone",true).toBool());
 | 
				
			||||||
  ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool());
 | 
					  ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool());
 | 
				
			||||||
  m_saveAll=ui->actionSave_all->isChecked();
 | 
					  m_saveAll=ui->actionSave_all->isChecked();
 | 
				
			||||||
@ -464,8 +475,6 @@ void MainWindow::readSettings()
 | 
				
			|||||||
  ui->actionOnly_EME_calls->setChecked(m_onlyEME);
 | 
					  ui->actionOnly_EME_calls->setChecked(m_onlyEME);
 | 
				
			||||||
  m_kb8rq=settings.value("KB8RQ",false).toBool();
 | 
					  m_kb8rq=settings.value("KB8RQ",false).toBool();
 | 
				
			||||||
  ui->actionF4_sets_Tx6->setChecked(m_kb8rq);
 | 
					  ui->actionF4_sets_Tx6->setChecked(m_kb8rq);
 | 
				
			||||||
  m_bQRA64=settings.value("DecodeQRA64",false).toBool();
 | 
					 | 
				
			||||||
  ui->actionDecode_QRA64_near_QSO_frequency->setChecked(m_bQRA64);
 | 
					 | 
				
			||||||
  m_NB=settings.value("NB",false).toBool();
 | 
					  m_NB=settings.value("NB",false).toBool();
 | 
				
			||||||
  ui->NBcheckBox->setChecked(m_NB);
 | 
					  ui->NBcheckBox->setChecked(m_NB);
 | 
				
			||||||
  m_NBslider=settings.value("NBslider",40).toInt();
 | 
					  m_NBslider=settings.value("NBslider",40).toInt();
 | 
				
			||||||
@ -591,13 +600,6 @@ void MainWindow::dataSink(int k)
 | 
				
			|||||||
    if(m_saveAll and !m_diskData) {
 | 
					    if(m_saveAll and !m_diskData) {
 | 
				
			||||||
      QString fname=m_saveDir + "/" + t.date().toString("yyMMdd") + "_" +
 | 
					      QString fname=m_saveDir + "/" + t.date().toString("yyMMdd") + "_" +
 | 
				
			||||||
          t.time().toString("hhmm");
 | 
					          t.time().toString("hhmm");
 | 
				
			||||||
      if(m_nfast==2) {
 | 
					 | 
				
			||||||
        if(t.time().second() < 30) {
 | 
					 | 
				
			||||||
          fname += "00";
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
          fname += "30";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if(m_xpol) fname += ".tf2";
 | 
					      if(m_xpol) fname += ".tf2";
 | 
				
			||||||
      if(!m_xpol) fname += ".iq";
 | 
					      if(!m_xpol) fname += ".iq";
 | 
				
			||||||
      *future2 = QtConcurrent::run(savetf2, fname, m_xpol, m_nfast);
 | 
					      *future2 = QtConcurrent::run(savetf2, fname, m_xpol, m_nfast);
 | 
				
			||||||
@ -1034,14 +1036,11 @@ void MainWindow::on_actionOpen_next_in_directory_triggered()   //Open Next
 | 
				
			|||||||
  QStringList list;
 | 
					  QStringList list;
 | 
				
			||||||
  if(m_xpol) {
 | 
					  if(m_xpol) {
 | 
				
			||||||
      list= fi.dir().entryList().filter(".tf2");
 | 
					      list= fi.dir().entryList().filter(".tf2");
 | 
				
			||||||
//      len=15;
 | 
					 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
      list= fi.dir().entryList().filter(".iq");
 | 
					      list= fi.dir().entryList().filter(".iq");
 | 
				
			||||||
//      len=14;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  for (i = 0; i < list.size()-1; ++i) {
 | 
					  for (i = 0; i < list.size()-1; ++i) {
 | 
				
			||||||
    if(i==list.size()-2) m_loopall=false;
 | 
					    if(i==list.size()-2) m_loopall=false;
 | 
				
			||||||
//    qDebug() << len << i << list.at(i) << list.at(i).length();
 | 
					 | 
				
			||||||
    len=list.at(i).length();
 | 
					    len=list.at(i).length();
 | 
				
			||||||
    if(list.at(i)==m_path.right(len)) {
 | 
					    if(list.at(i)==m_path.right(len)) {
 | 
				
			||||||
      int n=m_path.length();
 | 
					      int n=m_path.length();
 | 
				
			||||||
@ -1222,9 +1221,7 @@ void MainWindow::decode()                                       //decode()
 | 
				
			|||||||
    int imin=ms/60000;
 | 
					    int imin=ms/60000;
 | 
				
			||||||
    int ihr=imin/60;
 | 
					    int ihr=imin/60;
 | 
				
			||||||
    imin=imin % 60;
 | 
					    imin=imin % 60;
 | 
				
			||||||
    int isec=(ms/1000) % 60;
 | 
					    datcom_.nutc=100*ihr + imin;
 | 
				
			||||||
    datcom_.nutc=100*(100*ihr + imin);
 | 
					 | 
				
			||||||
    if((m_mode=="JT65B2" or m_mode=="JT65C2") and isec>30) datcom_.nutc += 30;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  datcom_.idphi=m_dPhi;
 | 
					  datcom_.idphi=m_dPhi;
 | 
				
			||||||
@ -1260,9 +1257,8 @@ void MainWindow::decode()                                       //decode()
 | 
				
			|||||||
  if(!m_fs96000) datcom_.nfsample=95238;
 | 
					  if(!m_fs96000) datcom_.nfsample=95238;
 | 
				
			||||||
  datcom_.nxpol=0;
 | 
					  datcom_.nxpol=0;
 | 
				
			||||||
  if(m_xpol) datcom_.nxpol=1;
 | 
					  if(m_xpol) datcom_.nxpol=1;
 | 
				
			||||||
  datcom_.mode65=m_mode65;
 | 
					  datcom_.nmode=10*m_modeQRA64 + m_modeJT65;
 | 
				
			||||||
  datcom_.nfast=m_nfast;
 | 
					  datcom_.nfast=m_nfast;
 | 
				
			||||||
  if(m_bQRA64) datcom_.nfast += 100;
 | 
					 | 
				
			||||||
  datcom_.nsave=m_nsave;
 | 
					  datcom_.nsave=m_nsave;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString mcall=(m_myCall+"            ").mid(0,12);
 | 
					  QString mcall=(m_myCall+"            ").mid(0,12);
 | 
				
			||||||
@ -1330,7 +1326,7 @@ void MainWindow::readFromStdout()                             //readFromStdout
 | 
				
			|||||||
      QString t2;
 | 
					      QString t2;
 | 
				
			||||||
      t2.sprintf("Avg: %d",m_nsum);
 | 
					      t2.sprintf("Avg: %d",m_nsum);
 | 
				
			||||||
      lab6->setText(t2);
 | 
					      lab6->setText(t2);
 | 
				
			||||||
      if(m_bQRA64) g_pWideGraph->setDecodeFinished();
 | 
					      if(m_modeQRA64>0) g_pWideGraph->setDecodeFinished();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if(t.indexOf("<DecodeFinished>") >= 0) {
 | 
					    if(t.indexOf("<DecodeFinished>") >= 0) {
 | 
				
			||||||
      if(m_widebandDecode) {
 | 
					      if(m_widebandDecode) {
 | 
				
			||||||
@ -1543,7 +1539,6 @@ void MainWindow::guiUpdate()
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if(nsec != m_sec0) {                                     //Once per second
 | 
					  if(nsec != m_sec0) {                                     //Once per second
 | 
				
			||||||
//    qDebug() << txPower << iqAmp << iqPhase;
 | 
					 | 
				
			||||||
//    qDebug() << "B" << bTune << bTxTime << btxok;
 | 
					//    qDebug() << "B" << bTune << bTxTime << btxok;
 | 
				
			||||||
    soundInThread.setForceCenterFreqMHz(g_pWideGraph->m_dForceCenterFreq);
 | 
					    soundInThread.setForceCenterFreqMHz(g_pWideGraph->m_dForceCenterFreq);
 | 
				
			||||||
    soundInThread.setForceCenterFreqBool(g_pWideGraph->m_bForceCenterFreq);
 | 
					    soundInThread.setForceCenterFreqBool(g_pWideGraph->m_bForceCenterFreq);
 | 
				
			||||||
@ -2048,9 +2043,14 @@ void MainWindow::on_actionErase_map65_tx_log_triggered()     //Erase Tx log
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::on_actionNoJT65_triggered()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  m_modeJT65=0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
void MainWindow::on_actionJT65A_triggered()
 | 
					void MainWindow::on_actionJT65A_triggered()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_mode="JT65A";
 | 
					  m_mode="JT65A";
 | 
				
			||||||
 | 
					  m_modeJT65=1;
 | 
				
			||||||
  m_mode65=1;
 | 
					  m_mode65=1;
 | 
				
			||||||
  m_nfast=1;
 | 
					  m_nfast=1;
 | 
				
			||||||
  m_TRperiod=60;
 | 
					  m_TRperiod=60;
 | 
				
			||||||
@ -2066,6 +2066,7 @@ void MainWindow::on_actionJT65A_triggered()
 | 
				
			|||||||
void MainWindow::on_actionJT65B_triggered()
 | 
					void MainWindow::on_actionJT65B_triggered()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_mode="JT65B";
 | 
					  m_mode="JT65B";
 | 
				
			||||||
 | 
					  m_modeJT65=2;
 | 
				
			||||||
  m_mode65=2;
 | 
					  m_mode65=2;
 | 
				
			||||||
  m_nfast=1;
 | 
					  m_nfast=1;
 | 
				
			||||||
  m_TRperiod=60;
 | 
					  m_TRperiod=60;
 | 
				
			||||||
@ -2081,6 +2082,7 @@ void MainWindow::on_actionJT65B_triggered()
 | 
				
			|||||||
void MainWindow::on_actionJT65C_triggered()
 | 
					void MainWindow::on_actionJT65C_triggered()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_mode="JT65C";
 | 
					  m_mode="JT65C";
 | 
				
			||||||
 | 
					  m_modeJT65=3;
 | 
				
			||||||
  m_mode65=4;
 | 
					  m_mode65=4;
 | 
				
			||||||
  m_nfast=1;
 | 
					  m_nfast=1;
 | 
				
			||||||
  m_TRperiod=60;
 | 
					  m_TRperiod=60;
 | 
				
			||||||
@ -2093,36 +2095,38 @@ void MainWindow::on_actionJT65C_triggered()
 | 
				
			|||||||
  ui->actionJT65C->setChecked(true);
 | 
					  ui->actionJT65C->setChecked(true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::on_actionJT65B2_triggered()
 | 
					void MainWindow::on_actionNoQRA64_triggered()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_mode="JT65B2";
 | 
					  m_modeQRA64=0;
 | 
				
			||||||
  m_mode65=2;
 | 
					 | 
				
			||||||
  m_nfast=2;
 | 
					 | 
				
			||||||
  m_TRperiod=30;
 | 
					 | 
				
			||||||
  soundInThread.setPeriod(m_TRperiod);
 | 
					 | 
				
			||||||
  soundOutThread.setPeriod(m_TRperiod);
 | 
					 | 
				
			||||||
  g_pWideGraph->setMode65(m_mode65);
 | 
					 | 
				
			||||||
  g_pWideGraph->setPeriod(m_TRperiod);
 | 
					 | 
				
			||||||
  lab5->setStyleSheet("QLabel{background-color: #7fff00}");
 | 
					 | 
				
			||||||
  lab5->setText(m_mode);
 | 
					 | 
				
			||||||
  ui->actionJT65B2->setChecked(true);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::on_actionJT65C2_triggered()
 | 
					void MainWindow::on_actionQRA64A_triggered()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_mode="JT65C2";
 | 
					  m_modeQRA64=1;
 | 
				
			||||||
  m_mode65=4;
 | 
					 | 
				
			||||||
  m_nfast=2;
 | 
					 | 
				
			||||||
  m_TRperiod=30;
 | 
					 | 
				
			||||||
  soundInThread.setPeriod(m_TRperiod);
 | 
					 | 
				
			||||||
  soundOutThread.setPeriod(m_TRperiod);
 | 
					 | 
				
			||||||
  g_pWideGraph->setMode65(m_mode65);
 | 
					 | 
				
			||||||
  g_pWideGraph->setPeriod(m_TRperiod);
 | 
					 | 
				
			||||||
  lab5->setStyleSheet("QLabel{background-color: #97ffff}");
 | 
					 | 
				
			||||||
  lab5->setText(m_mode);
 | 
					 | 
				
			||||||
  ui->actionJT65C2->setChecked(true);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::on_actionQRA64B_triggered()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  m_modeQRA64=2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::on_actionQRA64C_triggered()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  m_modeQRA64=3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::on_actionQRA64D_triggered()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  m_modeQRA64=4;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::on_actionQRA64E_triggered()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  m_modeQRA64=5;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::on_NBcheckBox_toggled(bool checked)
 | 
					void MainWindow::on_NBcheckBox_toggled(bool checked)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_NB=checked;
 | 
					  m_NB=checked;
 | 
				
			||||||
@ -2165,8 +2169,3 @@ void MainWindow::on_actionTx_Tune_triggered()
 | 
				
			|||||||
  g_pTxTune->set_txPower(txPower);
 | 
					  g_pTxTune->set_txPower(txPower);
 | 
				
			||||||
  g_pTxTune->show();
 | 
					  g_pTxTune->show();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
void MainWindow::on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  m_bQRA64=b;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										13
									
								
								mainwindow.h
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								mainwindow.h
									
									
									
									
									
								
							@ -124,11 +124,15 @@ private slots:
 | 
				
			|||||||
  void on_actionAFMHot_triggered();
 | 
					  void on_actionAFMHot_triggered();
 | 
				
			||||||
  void on_actionBlue_triggered();
 | 
					  void on_actionBlue_triggered();
 | 
				
			||||||
  void on_actionFUNcube_Dongle_triggered();
 | 
					  void on_actionFUNcube_Dongle_triggered();
 | 
				
			||||||
  void on_actionJT65B2_triggered();
 | 
					 | 
				
			||||||
  void on_actionJT65C2_triggered();
 | 
					 | 
				
			||||||
  void on_actionEdit_wsjt_log_triggered();
 | 
					  void on_actionEdit_wsjt_log_triggered();
 | 
				
			||||||
  void on_actionTx_Tune_triggered();
 | 
					  void on_actionTx_Tune_triggered();
 | 
				
			||||||
  void on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b);
 | 
					  void on_actionQRA64A_triggered();
 | 
				
			||||||
 | 
					  void on_actionQRA64B_triggered();
 | 
				
			||||||
 | 
					  void on_actionNoJT65_triggered();
 | 
				
			||||||
 | 
					  void on_actionNoQRA64_triggered();
 | 
				
			||||||
 | 
					  void on_actionQRA64C_triggered();
 | 
				
			||||||
 | 
					  void on_actionQRA64D_triggered();
 | 
				
			||||||
 | 
					  void on_actionQRA64E_triggered();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    Ui::MainWindow *ui;
 | 
					    Ui::MainWindow *ui;
 | 
				
			||||||
@ -166,6 +170,8 @@ private:
 | 
				
			|||||||
    qint32  m_nsum;
 | 
					    qint32  m_nsum;
 | 
				
			||||||
    qint32  m_nsave;
 | 
					    qint32  m_nsave;
 | 
				
			||||||
    qint32  m_TRperiod;
 | 
					    qint32  m_TRperiod;
 | 
				
			||||||
 | 
					    qint32  m_modeJT65;
 | 
				
			||||||
 | 
					    qint32  m_modeQRA64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    double  m_fAdd;
 | 
					    double  m_fAdd;
 | 
				
			||||||
//    double  m_IQamp;
 | 
					//    double  m_IQamp;
 | 
				
			||||||
@ -197,7 +203,6 @@ private:
 | 
				
			|||||||
    bool    m_10db;
 | 
					    bool    m_10db;
 | 
				
			||||||
    bool    m_initIQplus;
 | 
					    bool    m_initIQplus;
 | 
				
			||||||
    bool    m_bIQxt;
 | 
					    bool    m_bIQxt;
 | 
				
			||||||
    bool    m_bQRA64;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    float   m_gainx;
 | 
					    float   m_gainx;
 | 
				
			||||||
    float   m_gainy;
 | 
					    float   m_gainy;
 | 
				
			||||||
 | 
				
			|||||||
@ -59,7 +59,7 @@
 | 
				
			|||||||
         </size>
 | 
					         </size>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
        <property name="title">
 | 
					        <property name="title">
 | 
				
			||||||
         <string>   Freq        DF      Pol         UTC           DT       dB                                                                    KV       DS          TxPol</string>
 | 
					         <string>   Freq        DF      Pol         UTC           DT       dB</string>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
        <layout class="QVBoxLayout" name="verticalLayout_9">
 | 
					        <layout class="QVBoxLayout" name="verticalLayout_9">
 | 
				
			||||||
         <item>
 | 
					         <item>
 | 
				
			||||||
@ -1164,11 +1164,17 @@ p, li { white-space: pre-wrap; }
 | 
				
			|||||||
    <property name="title">
 | 
					    <property name="title">
 | 
				
			||||||
     <string>Mode</string>
 | 
					     <string>Mode</string>
 | 
				
			||||||
    </property>
 | 
					    </property>
 | 
				
			||||||
 | 
					    <addaction name="actionNoJT65"/>
 | 
				
			||||||
    <addaction name="actionJT65A"/>
 | 
					    <addaction name="actionJT65A"/>
 | 
				
			||||||
    <addaction name="actionJT65B"/>
 | 
					    <addaction name="actionJT65B"/>
 | 
				
			||||||
    <addaction name="actionJT65C"/>
 | 
					    <addaction name="actionJT65C"/>
 | 
				
			||||||
    <addaction name="actionJT65B2"/>
 | 
					    <addaction name="separator"/>
 | 
				
			||||||
    <addaction name="actionJT65C2"/>
 | 
					    <addaction name="actionNoQRA64"/>
 | 
				
			||||||
 | 
					    <addaction name="actionQRA64A"/>
 | 
				
			||||||
 | 
					    <addaction name="actionQRA64B"/>
 | 
				
			||||||
 | 
					    <addaction name="actionQRA64C"/>
 | 
				
			||||||
 | 
					    <addaction name="actionQRA64D"/>
 | 
				
			||||||
 | 
					    <addaction name="actionQRA64E"/>
 | 
				
			||||||
   </widget>
 | 
					   </widget>
 | 
				
			||||||
   <addaction name="menuFile"/>
 | 
					   <addaction name="menuFile"/>
 | 
				
			||||||
   <addaction name="menuSetup"/>
 | 
					   <addaction name="menuSetup"/>
 | 
				
			||||||
@ -1512,22 +1518,6 @@ p, li { white-space: pre-wrap; }
 | 
				
			|||||||
    <string>FUNcube Dongle Settings</string>
 | 
					    <string>FUNcube Dongle Settings</string>
 | 
				
			||||||
   </property>
 | 
					   </property>
 | 
				
			||||||
  </action>
 | 
					  </action>
 | 
				
			||||||
  <action name="actionJT65B2">
 | 
					 | 
				
			||||||
   <property name="checkable">
 | 
					 | 
				
			||||||
    <bool>true</bool>
 | 
					 | 
				
			||||||
   </property>
 | 
					 | 
				
			||||||
   <property name="text">
 | 
					 | 
				
			||||||
    <string>JT65B2</string>
 | 
					 | 
				
			||||||
   </property>
 | 
					 | 
				
			||||||
  </action>
 | 
					 | 
				
			||||||
  <action name="actionJT65C2">
 | 
					 | 
				
			||||||
   <property name="checkable">
 | 
					 | 
				
			||||||
    <bool>true</bool>
 | 
					 | 
				
			||||||
   </property>
 | 
					 | 
				
			||||||
   <property name="text">
 | 
					 | 
				
			||||||
    <string>JT65C2</string>
 | 
					 | 
				
			||||||
   </property>
 | 
					 | 
				
			||||||
  </action>
 | 
					 | 
				
			||||||
  <action name="actionEdit_wsjt_log">
 | 
					  <action name="actionEdit_wsjt_log">
 | 
				
			||||||
   <property name="text">
 | 
					   <property name="text">
 | 
				
			||||||
    <string>Edit wsjt.log</string>
 | 
					    <string>Edit wsjt.log</string>
 | 
				
			||||||
@ -1552,6 +1542,65 @@ p, li { white-space: pre-wrap; }
 | 
				
			|||||||
    <string>Decode QRA64 near QSO frequency</string>
 | 
					    <string>Decode QRA64 near QSO frequency</string>
 | 
				
			||||||
   </property>
 | 
					   </property>
 | 
				
			||||||
  </action>
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionQRA64A">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>QRA64A</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionQRA64B">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>QRA64B</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionNoJT65">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>No JT65</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionNoQRA64">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="checked">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>No QRA64</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionQRA64C">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>QRA64C</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionQRA64D">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>QRA64D</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 | 
					  <action name="actionQRA64E">
 | 
				
			||||||
 | 
					   <property name="checkable">
 | 
				
			||||||
 | 
					    <bool>true</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="text">
 | 
				
			||||||
 | 
					    <string>QRA64E</string>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </action>
 | 
				
			||||||
 </widget>
 | 
					 </widget>
 | 
				
			||||||
 <layoutdefault spacing="6" margin="11"/>
 | 
					 <layoutdefault spacing="6" margin="11"/>
 | 
				
			||||||
 <customwidgets>
 | 
					 <customwidgets>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user