mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Merge branch 'echo-mode' into develop
This commit is contained in:
		
						commit
						00f29458b3
					
				@ -97,7 +97,7 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi
 | 
				
			|||||||
      m_stream->start (sink);
 | 
					      m_stream->start (sink);
 | 
				
			||||||
      checkStream ();
 | 
					      checkStream ();
 | 
				
			||||||
      cummulative_lost_usec_ = -1;
 | 
					      cummulative_lost_usec_ = -1;
 | 
				
			||||||
      LOG_DEBUG ("Selected buffer size (bytes): " << m_stream->bufferSize () << " period size: " << m_stream->periodSize ());
 | 
					//      LOG_DEBUG ("Selected buffer size (bytes): " << m_stream->bufferSize () << " period size: " << m_stream->periodSize ());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
				
			|||||||
@ -111,7 +111,7 @@ void SoundOutput::restart (QIODevice * source)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  m_stream->setCategory ("production");
 | 
					  m_stream->setCategory ("production");
 | 
				
			||||||
  m_stream->start (source);
 | 
					  m_stream->start (source);
 | 
				
			||||||
  LOG_DEBUG ("Selected buffer size (bytes): " << m_stream->bufferSize () << " period size: " << m_stream->periodSize ());
 | 
					//  LOG_DEBUG ("Selected buffer size (bytes): " << m_stream->bufferSize () << " period size: " << m_stream->periodSize ());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void SoundOutput::suspend ()
 | 
					void SoundOutput::suspend ()
 | 
				
			||||||
 | 
				
			|||||||
@ -71,7 +71,7 @@ message (STATUS "******************************************************")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
include (set_build_type)
 | 
					include (set_build_type)
 | 
				
			||||||
# RC 0 or omitted is a development build, GA is a General Availability release build
 | 
					# RC 0 or omitted is a development build, GA is a General Availability release build
 | 
				
			||||||
set_build_type (RC 2)
 | 
					set_build_type (RC 3)
 | 
				
			||||||
set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}")
 | 
					set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
@ -509,6 +509,7 @@ set (wsjt_FSRCS
 | 
				
			|||||||
  lib/refspectrum.f90
 | 
					  lib/refspectrum.f90
 | 
				
			||||||
  lib/savec2.f90
 | 
					  lib/savec2.f90
 | 
				
			||||||
  lib/save_dxbase.f90
 | 
					  lib/save_dxbase.f90
 | 
				
			||||||
 | 
					  lib/save_echo_params.f90
 | 
				
			||||||
  lib/sec0.f90
 | 
					  lib/sec0.f90
 | 
				
			||||||
  lib/sec_midn.f90
 | 
					  lib/sec_midn.f90
 | 
				
			||||||
  lib/setup65.f90
 | 
					  lib/setup65.f90
 | 
				
			||||||
 | 
				
			|||||||
@ -188,7 +188,8 @@ public:
 | 
				
			|||||||
  bool highlight_DXcall () const;
 | 
					  bool highlight_DXcall () const;
 | 
				
			||||||
  bool highlight_DXgrid () const;
 | 
					  bool highlight_DXgrid () const;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
  enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, ARRL_DIGI, FOX, HOUND};
 | 
					//                                      0       1      2         3       4       5      6     7        8
 | 
				
			||||||
 | 
					  enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, FOX, HOUND, ARRL_DIGI};
 | 
				
			||||||
  SpecialOperatingActivity special_op_id () const;
 | 
					  SpecialOperatingActivity special_op_id () const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  struct CalibrationParams
 | 
					  struct CalibrationParams
 | 
				
			||||||
 | 
				
			|||||||
@ -199,6 +199,7 @@
 | 
				
			|||||||
 *       5 -> WW DIGI
 | 
					 *       5 -> WW DIGI
 | 
				
			||||||
 *       6 -> FOX
 | 
					 *       6 -> FOX
 | 
				
			||||||
 *       7 -> HOUND
 | 
					 *       7 -> HOUND
 | 
				
			||||||
 | 
					 *       8 -> ARRL DIGI
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 *    The Frequency Tolerance  and T/R period fields may  have a value
 | 
					 *    The Frequency Tolerance  and T/R period fields may  have a value
 | 
				
			||||||
 *    of  the maximum  quint32 value  which implies  the field  is not
 | 
					 *    of  the maximum  quint32 value  which implies  the field  is not
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
// Status=edited
 | 
					// Status=edited
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Download and execute the package file {win32} (Win 7,
 | 
					Download and execute the package file {win32} (Windows 7 or later,
 | 
				
			||||||
Win 8, Win10, 32-bit) or {win64} (Win 7, Win 8, Win10, 64-bit)
 | 
					32-bit) or {win64} (Windows 7 or later, 64-bit) following these
 | 
				
			||||||
following these instructions:
 | 
					instructions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or `C:\WSJT\WSJTX`, rather than the conventional location `C:\Program
 | 
					* Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or `C:\WSJT\WSJTX`, rather than the conventional location `C:\Program
 | 
				
			||||||
  Files ...\WSJTX`.
 | 
					  Files ...\WSJTX`.
 | 
				
			||||||
 | 
				
			|||||||
@ -79,13 +79,14 @@ contains
 | 
				
			|||||||
         ih,im,is,AzSun8,ElSun8,                                        &
 | 
					         ih,im,is,AzSun8,ElSun8,                                        &
 | 
				
			||||||
         ih,im,is,AzAux,ElAux,                                          &
 | 
					         ih,im,is,AzAux,ElAux,                                          &
 | 
				
			||||||
         nfreq,doppler,dfdt,doppler00,dfdt0,c1
 | 
					         nfreq,doppler,dfdt,doppler00,dfdt0,c1
 | 
				
			||||||
    if (azel_extra_lines.ge.1) write(15, 1020, err=10) poloffset8,xnr8,Dgrd8
 | 
					    if (azel_extra_lines.ge.1) write(15, 1020, err=10) poloffset8,      &
 | 
				
			||||||
 | 
					         xnr8,Dgrd8,width1,width2
 | 
				
			||||||
1010 format(                                                          &
 | 
					1010 format(                                                          &
 | 
				
			||||||
         i2.2,':',i2.2,':',i2.2,',',f5.1,',',f5.1,',Moon'/               &
 | 
					         i2.2,':',i2.2,':',i2.2,',',f5.1,',',f5.1,',Moon'/               &
 | 
				
			||||||
         i2.2,':',i2.2,':',i2.2,',',f5.1,',',f5.1,',Sun'/                &
 | 
					         i2.2,':',i2.2,':',i2.2,',',f5.1,',',f5.1,',Sun'/                &
 | 
				
			||||||
         i2.2,':',i2.2,':',i2.2,',',f5.1,',',f5.1,',Source'/             &
 | 
					         i2.2,':',i2.2,':',i2.2,',',f5.1,',',f5.1,',Source'/             &
 | 
				
			||||||
         i5,',',f8.1,',',f8.2,',',f8.1,',',f8.2,',Doppler, ',a1)
 | 
					         i5,',',f8.1,',',f8.2,',',f8.1,',',f8.2,',Doppler, ',a1)
 | 
				
			||||||
1020 format(f8.1,','f8.1,',',f8.1,',Pol')
 | 
					1020 format(f8.1,',',f8.1,',',f8.1,',',f8.1,',',f8.1,',Pol')
 | 
				
			||||||
10  close(15)
 | 
					10  close(15)
 | 
				
			||||||
    go to 999
 | 
					    go to 999
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
subroutine avecho(id2,ndop,nfrit,nauto,nqual,f1,xlevel,snrdb,db_err,  &
 | 
					subroutine avecho(id2,ndop,nfrit,nauto,nqual,f1,xlevel,snrdb,db_err,  &
 | 
				
			||||||
     dfreq,width)
 | 
					     dfreq,width,bDiskData)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  integer TXLENGTH
 | 
					  integer TXLENGTH
 | 
				
			||||||
  parameter (TXLENGTH=27648)           !27*1024
 | 
					  parameter (TXLENGTH=27648)           !27*1024
 | 
				
			||||||
@ -15,6 +15,7 @@ subroutine avecho(id2,ndop,nfrit,nauto,nqual,f1,xlevel,snrdb,db_err,  &
 | 
				
			|||||||
  real x(NFFT)
 | 
					  real x(NFFT)
 | 
				
			||||||
  integer ipkv(1)
 | 
					  integer ipkv(1)
 | 
				
			||||||
  logical ex
 | 
					  logical ex
 | 
				
			||||||
 | 
					  logical*1 bDiskData
 | 
				
			||||||
  complex c(0:NH)
 | 
					  complex c(0:NH)
 | 
				
			||||||
  equivalence (x,c),(ipk,ipkv)
 | 
					  equivalence (x,c),(ipk,ipkv)
 | 
				
			||||||
  common/echocom/nclearave,nsum,blue(NZ),red(NZ)
 | 
					  common/echocom/nclearave,nsum,blue(NZ),red(NZ)
 | 
				
			||||||
@ -22,6 +23,7 @@ subroutine avecho(id2,ndop,nfrit,nauto,nqual,f1,xlevel,snrdb,db_err,  &
 | 
				
			|||||||
  save dop0,sa,sb
 | 
					  save dop0,sa,sb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fspread=fspread_dx                !### Use the predicted Doppler spread ###
 | 
					  fspread=fspread_dx                !### Use the predicted Doppler spread ###
 | 
				
			||||||
 | 
					  if(bDiskData) fspread=width
 | 
				
			||||||
  if(nauto.eq.1) fspread=fspread_self
 | 
					  if(nauto.eq.1) fspread=fspread_self
 | 
				
			||||||
  inquire(file='fspread.txt',exist=ex)
 | 
					  inquire(file='fspread.txt',exist=ex)
 | 
				
			||||||
  if(ex) then
 | 
					  if(ex) then
 | 
				
			||||||
@ -57,8 +59,13 @@ subroutine avecho(id2,ndop,nfrit,nauto,nqual,f1,xlevel,snrdb,db_err,  &
 | 
				
			|||||||
  fnominal=1500.0           !Nominal audio frequency w/o doppler or dither
 | 
					  fnominal=1500.0           !Nominal audio frequency w/o doppler or dither
 | 
				
			||||||
  ia=nint((fnominal+dop0-nfrit)/df)
 | 
					  ia=nint((fnominal+dop0-nfrit)/df)
 | 
				
			||||||
  ib=nint((f1+dop-nfrit)/df)
 | 
					  ib=nint((f1+dop-nfrit)/df)
 | 
				
			||||||
  if(ia.lt.600 .or. ib.lt.600) go to 900
 | 
					  if(ia.lt.2048 .or. ib.lt.2048 .or. ia.gt.6144 .or. ib.gt.6144) then
 | 
				
			||||||
  if(ia.gt.7590 .or. ib.gt.7590) go to 900
 | 
					     xlevel=0.
 | 
				
			||||||
 | 
					     snrdb=0.
 | 
				
			||||||
 | 
					     db_err=0.
 | 
				
			||||||
 | 
					     dfreq=0.
 | 
				
			||||||
 | 
					     go to 900
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nsum=nsum+1
 | 
					  nsum=nsum+1
 | 
				
			||||||
  do i=1,NZ
 | 
					  do i=1,NZ
 | 
				
			||||||
 | 
				
			|||||||
@ -108,11 +108,11 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
 | 
				
			|||||||
  nfail=0
 | 
					  nfail=0
 | 
				
			||||||
10 if (params%nagain) then
 | 
					10 if (params%nagain) then
 | 
				
			||||||
     open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown',            &
 | 
					     open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown',            &
 | 
				
			||||||
          position='append',iostat=ios)
 | 
					          position='append',iostat=ios13)
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
     open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown',iostat=ios)
 | 
					     open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown',iostat=ios13)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  if(ios.ne.0) then
 | 
					  if(ios13.ne.0) then
 | 
				
			||||||
     nfail=nfail+1
 | 
					     nfail=nfail+1
 | 
				
			||||||
     if(nfail.le.3) then
 | 
					     if(nfail.le.3) then
 | 
				
			||||||
        call sleep_msec(10)
 | 
					        call sleep_msec(10)
 | 
				
			||||||
@ -523,8 +523,8 @@ contains
 | 
				
			|||||||
       write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags
 | 
					       write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags
 | 
				
			||||||
1010   format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3)
 | 
					1010   format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift,    &
 | 
					    if(ios13.eq.0) write(13,1012) params%nutc,nint(sync),snr,dt,    &
 | 
				
			||||||
         decoded,ft,nsum,nsmo
 | 
					         float(freq),drift,decoded,ft,nsum,nsmo
 | 
				
			||||||
1012 format(i4.4,i4,i5,f6.2,f8.0,i4,3x,a22,' JT65',3i3)
 | 
					1012 format(i4.4,i4,i5,f6.2,f8.0,i4,3x,a22,' JT65',3i3)
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -550,7 +550,8 @@ contains
 | 
				
			|||||||
    !$omp critical(decode_results)
 | 
					    !$omp critical(decode_results)
 | 
				
			||||||
    write(*,1000) params%nutc,snr,dt,nint(freq),decoded
 | 
					    write(*,1000) params%nutc,snr,dt,nint(freq),decoded
 | 
				
			||||||
1000 format(i4.4,i4,f5.1,i5,1x,'@ ',1x,a22)
 | 
					1000 format(i4.4,i4,f5.1,i5,1x,'@ ',1x,a22)
 | 
				
			||||||
    write(13,1002) params%nutc,nint(sync),snr,dt,freq,drift,decoded
 | 
					    if(ios13.eq.0) write(13,1002) params%nutc,nint(sync),snr,dt,freq,  &
 | 
				
			||||||
 | 
					         drift,decoded
 | 
				
			||||||
1002 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT9')
 | 
					1002 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT9')
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
    !$omp end critical(decode_results)
 | 
					    !$omp end critical(decode_results)
 | 
				
			||||||
@ -614,8 +615,9 @@ contains
 | 
				
			|||||||
1000 format(i6.6,i4,f5.1,i5,' ~ ',1x,a22,1x,a2)
 | 
					1000 format(i6.6,i4,f5.1,i5,' ~ ',1x,a22,1x,a2)
 | 
				
			||||||
    if(i0.gt.0) write(*,1001) params%nutc,snr,dt,nint(freq),decoded0,annot
 | 
					    if(i0.gt.0) write(*,1001) params%nutc,snr,dt,nint(freq),decoded0,annot
 | 
				
			||||||
1001 format(i6.6,i4,f5.1,i5,' ~ ',1x,a37,1x,a2)
 | 
					1001 format(i6.6,i4,f5.1,i5,' ~ ',1x,a37,1x,a2)
 | 
				
			||||||
    write(13,1002) params%nutc,nint(sync),snr,dt,freq,0,decoded0
 | 
					    if(ios13.eq.0) write(13,1002) params%nutc,nint(sync),snr,dt,freq,0,decoded0
 | 
				
			||||||
1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FT8')
 | 
					1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FT8')
 | 
				
			||||||
 | 
					    print*,'A',ios13
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(ncontest.eq.6) then
 | 
					    if(ncontest.eq.6) then
 | 
				
			||||||
       i1=index(decoded0,' ')
 | 
					       i1=index(decoded0,' ')
 | 
				
			||||||
@ -651,7 +653,7 @@ contains
 | 
				
			|||||||
    endif
 | 
					    endif
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
    call flush(13)
 | 
					    if(ios13.eq.0) call flush(13)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    select type(this)
 | 
					    select type(this)
 | 
				
			||||||
    type is (counting_ft8_decoder)
 | 
					    type is (counting_ft8_decoder)
 | 
				
			||||||
@ -686,11 +688,12 @@ contains
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    write(*,1001) params%nutc,snr,dt,nint(freq),decoded0,annot
 | 
					    write(*,1001) params%nutc,snr,dt,nint(freq),decoded0,annot
 | 
				
			||||||
1001 format(i6.6,i4,f5.1,i5,' + ',1x,a37,1x,a2)
 | 
					1001 format(i6.6,i4,f5.1,i5,' + ',1x,a37,1x,a2)
 | 
				
			||||||
    write(13,1002) params%nutc,nint(sync),snr,dt,freq,0,decoded0
 | 
					    if(ios13.eq.0) write(13,1002) params%nutc,nint(sync),snr,dt,  &
 | 
				
			||||||
 | 
					         freq,0,decoded0
 | 
				
			||||||
1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FT4')
 | 
					1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FT4')
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
    call flush(13)
 | 
					    if(ios13.eq.0) call flush(13)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    select type(this)
 | 
					    select type(this)
 | 
				
			||||||
    type is (counting_ft4_decoder)
 | 
					    type is (counting_ft4_decoder)
 | 
				
			||||||
@ -734,12 +737,12 @@ contains
 | 
				
			|||||||
    if(ntrperiod.lt.60) then
 | 
					    if(ntrperiod.lt.60) then
 | 
				
			||||||
       write(line,1001) nutc,nsnr,dt,nint(freq),decoded0,annot
 | 
					       write(line,1001) nutc,nsnr,dt,nint(freq),decoded0,annot
 | 
				
			||||||
1001   format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2)
 | 
					1001   format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2)
 | 
				
			||||||
       write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0
 | 
					       if(ios13.eq.0) write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0
 | 
				
			||||||
1002   format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST4')
 | 
					1002   format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST4')
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
       write(line,1003) nutc,nsnr,dt,nint(freq),decoded0,annot
 | 
					       write(line,1003) nutc,nsnr,dt,nint(freq),decoded0,annot
 | 
				
			||||||
1003   format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2,2f7.3)
 | 
					1003   format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2,2f7.3)
 | 
				
			||||||
       write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0
 | 
					       if(ios13.eq.0) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0
 | 
				
			||||||
1004   format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST4')
 | 
					1004   format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST4')
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -752,7 +755,7 @@ contains
 | 
				
			|||||||
1005 format(a70)
 | 
					1005 format(a70)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
    call flush(13)
 | 
					    if(ios13.eq.0) call flush(13)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    select type(this)
 | 
					    select type(this)
 | 
				
			||||||
    type is (counting_fst4_decoder)
 | 
					    type is (counting_fst4_decoder)
 | 
				
			||||||
@ -790,17 +793,17 @@ contains
 | 
				
			|||||||
    if(ntrperiod.lt.60) then
 | 
					    if(ntrperiod.lt.60) then
 | 
				
			||||||
       write(*,1001) nutc,nsnr,dt,nint(freq),decoded,cflags
 | 
					       write(*,1001) nutc,nsnr,dt,nint(freq),decoded,cflags
 | 
				
			||||||
1001   format(i6.6,i4,f5.1,i5,' : ',1x,a37,1x,a3)
 | 
					1001   format(i6.6,i4,f5.1,i5,' : ',1x,a37,1x,a3)
 | 
				
			||||||
    write(13,1002) nutc,nint(snr1),nsnr,dt,freq,0,decoded
 | 
					    if(ios13.eq.0) write(13,1002) nutc,nint(snr1),nsnr,dt,freq,0,decoded
 | 
				
			||||||
1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' Q65')
 | 
					1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' Q65')
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
       write(*,1003) nutc,nsnr,dt,nint(freq),decoded,cflags
 | 
					       write(*,1003) nutc,nsnr,dt,nint(freq),decoded,cflags
 | 
				
			||||||
1003   format(i4.4,i4,f5.1,i5,' : ',1x,a37,1x,a3)
 | 
					1003   format(i4.4,i4,f5.1,i5,' : ',1x,a37,1x,a3)
 | 
				
			||||||
       write(13,1004) nutc,nint(snr1),nsnr,dt,freq,0,decoded
 | 
					       if(ios13.eq.0) write(13,1004) nutc,nint(snr1),nsnr,dt,freq,0,decoded
 | 
				
			||||||
1004   format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' Q65')
 | 
					1004   format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' Q65')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    call flush(6)
 | 
					    call flush(6)
 | 
				
			||||||
    call flush(13)
 | 
					    if(ios13.eq.0) call flush(13)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    select type(this)
 | 
					    select type(this)
 | 
				
			||||||
    type is (counting_q65_decoder)
 | 
					    type is (counting_q65_decoder)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										27
									
								
								lib/save_echo_params.f90
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								lib/save_echo_params.f90
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					subroutine save_echo_params(nDop,nfrit,f1,fspread,id2,idir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  integer*2 id2(10)
 | 
				
			||||||
 | 
					  integer*2 id2a(10)
 | 
				
			||||||
 | 
					  real*8 fspread,fspread0
 | 
				
			||||||
 | 
					  equivalence (nDop0,id2a(1))
 | 
				
			||||||
 | 
					  equivalence (nfrit0,id2a(3))
 | 
				
			||||||
 | 
					  equivalence (f10,id2a(5))
 | 
				
			||||||
 | 
					  equivalence (fspread0,id2a(7))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(idir.gt.0) then
 | 
				
			||||||
 | 
					     nDop0=nDop
 | 
				
			||||||
 | 
					     nfrit0=nfrit
 | 
				
			||||||
 | 
					     f10=f1
 | 
				
			||||||
 | 
					     fspread0=fspread
 | 
				
			||||||
 | 
					     id2=id2a
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					     id2a=id2
 | 
				
			||||||
 | 
					     id2(1:10)=0
 | 
				
			||||||
 | 
					     nDop=nDop0
 | 
				
			||||||
 | 
					     nfrit=nfrit0
 | 
				
			||||||
 | 
					     f1=f10
 | 
				
			||||||
 | 
					     fspread=fspread0
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return
 | 
				
			||||||
 | 
					end subroutine save_echo_params
 | 
				
			||||||
@ -92,7 +92,7 @@ void Astro::write_settings ()
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const& hisgrid, Frequency freq,
 | 
					auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const& hisgrid, Frequency freq,
 | 
				
			||||||
                        bool dx_is_self, bool bTx, bool no_tx_QSY, double TR_period) -> Correction
 | 
					                        bool bEchoMode, bool bTx, bool bAuto, bool no_tx_QSY, double TR_period) -> Correction
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Frequency freq_moon {freq};
 | 
					  Frequency freq_moon {freq};
 | 
				
			||||||
  double azsun,elsun,azmoon,elmoon,azmoondx,elmoondx;
 | 
					  double azsun,elsun,azmoon,elmoon,azmoondx,elmoondx;
 | 
				
			||||||
@ -121,6 +121,7 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
           AzElFileName.toLocal8Bit ().constData (),
 | 
					           AzElFileName.toLocal8Bit ().constData (),
 | 
				
			||||||
           jpleph.toLocal8Bit ().constData ());
 | 
					           jpleph.toLocal8Bit ().constData ());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//  qDebug() << "AA1" << m_dop00 << m_dop << width1 << width2;
 | 
				
			||||||
  QString message;
 | 
					  QString message;
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    QTextStream out {&message};
 | 
					    QTextStream out {&message};
 | 
				
			||||||
@ -136,14 +137,14 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
      << "Az:     " << azmoon << "\n"
 | 
					      << "Az:     " << azmoon << "\n"
 | 
				
			||||||
      "El:     " << elmoon << "\n"
 | 
					      "El:     " << elmoon << "\n"
 | 
				
			||||||
      "SelfDop:" << m_dop00 << "\n"
 | 
					      "SelfDop:" << m_dop00 << "\n"
 | 
				
			||||||
      "Width:  " << int(width1) << "\n"
 | 
					      "Width:  " << int(width1+0.5) << "\n"
 | 
				
			||||||
      << qSetRealNumberPrecision (2)
 | 
					      << qSetRealNumberPrecision (2)
 | 
				
			||||||
      << "Delay:  " << techo << "\n"
 | 
					      << "Delay:  " << techo << "\n"
 | 
				
			||||||
      << qSetRealNumberPrecision (1)
 | 
					      << qSetRealNumberPrecision (1)
 | 
				
			||||||
      << "DxAz:   " << azmoondx << "\n"
 | 
					      << "DxAz:   " << azmoondx << "\n"
 | 
				
			||||||
      "DxEl:   " << elmoondx << "\n"
 | 
					      "DxEl:   " << elmoondx << "\n"
 | 
				
			||||||
      "DxDop:  " << m_dop << "\n"
 | 
					      "DxDop:  " << m_dop << "\n"
 | 
				
			||||||
      "DxWid:  " << int(width2) << "\n"
 | 
					      "DxWid:  " << int(width2+0.5) << "\n"
 | 
				
			||||||
      "Dec:    " << decmoon << "\n"
 | 
					      "Dec:    " << decmoon << "\n"
 | 
				
			||||||
      "SunAz:  " << azsun << "\n"
 | 
					      "SunAz:  " << azsun << "\n"
 | 
				
			||||||
      "SunEl:  " << elsun << "\n"
 | 
					      "SunEl:  " << elsun << "\n"
 | 
				
			||||||
@ -159,7 +160,14 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
  ui_->text_label->setText(message);
 | 
					  ui_->text_label->setText(message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Correction correction;
 | 
					  Correction correction;
 | 
				
			||||||
 | 
					  correction.dop=m_dop00;
 | 
				
			||||||
 | 
					  correction.width=width1;
 | 
				
			||||||
 | 
					  if(hisgrid!="" and !bAuto) {
 | 
				
			||||||
 | 
					    correction.dop=m_dop;
 | 
				
			||||||
 | 
					    correction.width=width2;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  if (ui_->cbDopplerTracking->isChecked ()) {
 | 
					  if (ui_->cbDopplerTracking->isChecked ()) {
 | 
				
			||||||
 | 
					    ui_->sbRIT->setEnabled(m_DopplerMethod==0);
 | 
				
			||||||
    switch (m_DopplerMethod)
 | 
					    switch (m_DopplerMethod)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
      case 1: // All Doppler correction done here; DX station stays at nominal dial frequency.
 | 
					      case 1: // All Doppler correction done here; DX station stays at nominal dial frequency.
 | 
				
			||||||
@ -170,7 +178,7 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
        break;
 | 
					        break;
 | 
				
			||||||
        //case 5: // All Doppler correction done here; DX station stays at nominal dial frequency.
 | 
					        //case 5: // All Doppler correction done here; DX station stays at nominal dial frequency.
 | 
				
			||||||
      case 3: // Both stations do full correction on Rx and none on Tx
 | 
					      case 3: // Both stations do full correction on Rx and none on Tx
 | 
				
			||||||
        //correction.rx = dx_is_self ? m_dop00 : m_dop;
 | 
					        //correction.rx = bEchoMode ? m_dop00 : m_dop;
 | 
				
			||||||
        correction.rx =  m_dop00; // Now always sets RX to *own* echo freq
 | 
					        correction.rx =  m_dop00; // Now always sets RX to *own* echo freq
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 2:
 | 
					      case 2:
 | 
				
			||||||
@ -195,7 +203,7 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    //if (3 != m_DopplerMethod || 4 != m_DopplerMethod) correction.tx = -correction.rx;
 | 
					    //if (3 != m_DopplerMethod || 4 != m_DopplerMethod) correction.tx = -correction.rx;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if(dx_is_self && m_DopplerMethod == 1) correction.rx = 0;
 | 
					    if(bEchoMode && m_DopplerMethod == 1) correction.rx = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (no_tx_QSY && 3 != m_DopplerMethod && 0 != m_DopplerMethod)
 | 
					    if (no_tx_QSY && 3 != m_DopplerMethod && 0 != m_DopplerMethod)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
@ -229,7 +237,7 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
          {
 | 
					          {
 | 
				
			||||||
          case 1:
 | 
					          case 1:
 | 
				
			||||||
            // All Doppler correction done here; DX station stays at nominal dial frequency.
 | 
					            // All Doppler correction done here; DX station stays at nominal dial frequency.
 | 
				
			||||||
            offset = dx_is_self ? m_dop00 : m_dop;
 | 
					            offset = bEchoMode ? m_dop00 : m_dop;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          case 2:
 | 
					          case 2:
 | 
				
			||||||
@ -250,11 +258,14 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const
 | 
				
			|||||||
        //qDebug () << "correction.tx (no tx qsy):" << correction.tx;
 | 
					        //qDebug () << "correction.tx (no tx qsy):" << correction.tx;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//  qDebug() << "AA0" << m_DopplerMethod << bAuto << correction.tx << correction.rx << correction.width;
 | 
				
			||||||
  return correction;
 | 
					  return correction;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Astro::check_split ()
 | 
					void Astro::check_split ()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  /*  TEMPORARILY DISABLE
 | 
				
			||||||
  if (doppler_tracking () && !configuration_->split_mode ())
 | 
					  if (doppler_tracking () && !configuration_->split_mode ())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      MessageBox::warning_message (this, tr ("Doppler Tracking Error"),
 | 
					      MessageBox::warning_message (this, tr ("Doppler Tracking Error"),
 | 
				
			||||||
@ -262,6 +273,7 @@ void Astro::check_split ()
 | 
				
			|||||||
                                   tr ("Go to \"Menu->File->Settings->Radio\" to enable split operation"));
 | 
					                                   tr ("Go to \"Menu->File->Settings->Radio\" to enable split operation"));
 | 
				
			||||||
      ui_->rbNoDoppler->click ();
 | 
					      ui_->rbNoDoppler->click ();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Astro::on_rbFullTrack_clicked(bool)
 | 
					void Astro::on_rbFullTrack_clicked(bool)
 | 
				
			||||||
@ -331,3 +343,27 @@ void Astro::hideEvent (QHideEvent * e)
 | 
				
			|||||||
  Q_EMIT tracking_update ();
 | 
					  Q_EMIT tracking_update ();
 | 
				
			||||||
  QWidget::hideEvent (e);
 | 
					  QWidget::hideEvent (e);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool Astro::bDither()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return ui_->cbDither->isChecked();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Astro::selectOwnEcho()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  ui_->rbOwnEcho->click();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Astro::selectOnDxEcho()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  ui_->rbOnDxEcho->click();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qint32 Astro::nfRIT()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if(m_DopplerMethod==0) {
 | 
				
			||||||
 | 
					    return ui_->sbRIT->value();
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -32,6 +32,8 @@ public:
 | 
				
			|||||||
    Correction ()
 | 
					    Correction ()
 | 
				
			||||||
      : rx {0}
 | 
					      : rx {0}
 | 
				
			||||||
      , tx {0}
 | 
					      , tx {0}
 | 
				
			||||||
 | 
					      , dop {0}
 | 
				
			||||||
 | 
					      , width {0}
 | 
				
			||||||
    {}
 | 
					    {}
 | 
				
			||||||
    Correction (Correction const&) = default;
 | 
					    Correction (Correction const&) = default;
 | 
				
			||||||
    Correction& operator = (Correction const&) = default;
 | 
					    Correction& operator = (Correction const&) = default;
 | 
				
			||||||
@ -45,6 +47,8 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    FrequencyDelta rx;
 | 
					    FrequencyDelta rx;
 | 
				
			||||||
    FrequencyDelta tx;
 | 
					    FrequencyDelta tx;
 | 
				
			||||||
 | 
					    double dop;
 | 
				
			||||||
 | 
					    double width;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Correction astroUpdate(QDateTime const& t,
 | 
					  Correction astroUpdate(QDateTime const& t,
 | 
				
			||||||
@ -53,10 +57,16 @@ public:
 | 
				
			|||||||
                         Frequency frequency,
 | 
					                         Frequency frequency,
 | 
				
			||||||
                         bool dx_is_self,
 | 
					                         bool dx_is_self,
 | 
				
			||||||
                         bool bTx,
 | 
					                         bool bTx,
 | 
				
			||||||
 | 
					                         bool bAuto,
 | 
				
			||||||
                         bool no_tx_QSY,
 | 
					                         bool no_tx_QSY,
 | 
				
			||||||
                         double TR_period);
 | 
					                         double TR_period);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool doppler_tracking () const;
 | 
					  bool doppler_tracking () const;
 | 
				
			||||||
 | 
					  bool bDither();
 | 
				
			||||||
 | 
					  void selectOwnEcho();
 | 
				
			||||||
 | 
					  void selectOnDxEcho();
 | 
				
			||||||
 | 
					  qint32 nfRIT();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Q_SLOT void nominal_frequency (Frequency rx, Frequency tx);
 | 
					  Q_SLOT void nominal_frequency (Frequency rx, Frequency tx);
 | 
				
			||||||
  Q_SIGNAL void tracking_update () const;
 | 
					  Q_SIGNAL void tracking_update () const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -67,8 +77,8 @@ protected:
 | 
				
			|||||||
private slots:
 | 
					private slots:
 | 
				
			||||||
  void on_rbConstFreqOnMoon_clicked(bool);
 | 
					  void on_rbConstFreqOnMoon_clicked(bool);
 | 
				
			||||||
  void on_rbFullTrack_clicked(bool);
 | 
					  void on_rbFullTrack_clicked(bool);
 | 
				
			||||||
  void on_rbOwnEcho_clicked(bool);
 | 
					 | 
				
			||||||
  void on_rbNoDoppler_clicked(bool);
 | 
					  void on_rbNoDoppler_clicked(bool);
 | 
				
			||||||
 | 
					  void on_rbOwnEcho_clicked(bool);
 | 
				
			||||||
  void on_rbOnDxEcho_clicked(bool);
 | 
					  void on_rbOnDxEcho_clicked(bool);
 | 
				
			||||||
  void on_rbCallDx_clicked(bool);
 | 
					  void on_rbCallDx_clicked(bool);
 | 
				
			||||||
  void on_cbDopplerTracking_toggled(bool);
 | 
					  void on_cbDopplerTracking_toggled(bool);
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@
 | 
				
			|||||||
    <x>0</x>
 | 
					    <x>0</x>
 | 
				
			||||||
    <y>0</y>
 | 
					    <y>0</y>
 | 
				
			||||||
    <width>359</width>
 | 
					    <width>359</width>
 | 
				
			||||||
    <height>342</height>
 | 
					    <height>401</height>
 | 
				
			||||||
   </rect>
 | 
					   </rect>
 | 
				
			||||||
  </property>
 | 
					  </property>
 | 
				
			||||||
  <property name="sizePolicy">
 | 
					  <property name="sizePolicy">
 | 
				
			||||||
@ -70,7 +70,7 @@
 | 
				
			|||||||
           </property>
 | 
					           </property>
 | 
				
			||||||
          </widget>
 | 
					          </widget>
 | 
				
			||||||
         </item>
 | 
					         </item>
 | 
				
			||||||
		 <item>
 | 
					         <item>
 | 
				
			||||||
          <widget class="QRadioButton" name="rbOnDxEcho">
 | 
					          <widget class="QRadioButton" name="rbOnDxEcho">
 | 
				
			||||||
           <property name="toolTip">
 | 
					           <property name="toolTip">
 | 
				
			||||||
            <string><html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html></string>
 | 
					            <string><html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html></string>
 | 
				
			||||||
@ -83,7 +83,7 @@
 | 
				
			|||||||
           </property>
 | 
					           </property>
 | 
				
			||||||
          </widget>
 | 
					          </widget>
 | 
				
			||||||
         </item>
 | 
					         </item>
 | 
				
			||||||
          <item>
 | 
					         <item>
 | 
				
			||||||
          <widget class="QRadioButton" name="rbCallDx">
 | 
					          <widget class="QRadioButton" name="rbCallDx">
 | 
				
			||||||
           <property name="toolTip">
 | 
					           <property name="toolTip">
 | 
				
			||||||
            <string><html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html></string>
 | 
					            <string><html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html></string>
 | 
				
			||||||
@ -109,7 +109,7 @@
 | 
				
			|||||||
           </property>
 | 
					           </property>
 | 
				
			||||||
          </widget>
 | 
					          </widget>
 | 
				
			||||||
         </item>
 | 
					         </item>
 | 
				
			||||||
       </layout>
 | 
					        </layout>
 | 
				
			||||||
       </widget>
 | 
					       </widget>
 | 
				
			||||||
      </item>
 | 
					      </item>
 | 
				
			||||||
      <item>
 | 
					      <item>
 | 
				
			||||||
@ -202,6 +202,76 @@
 | 
				
			|||||||
        </layout>
 | 
					        </layout>
 | 
				
			||||||
       </widget>
 | 
					       </widget>
 | 
				
			||||||
      </item>
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="QGroupBox" name="groupBox_2">
 | 
				
			||||||
 | 
					        <property name="minimumSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>0</width>
 | 
				
			||||||
 | 
					          <height>50</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="title">
 | 
				
			||||||
 | 
					         <string>Echo Mode</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <widget class="QWidget" name="">
 | 
				
			||||||
 | 
					         <property name="geometry">
 | 
				
			||||||
 | 
					          <rect>
 | 
				
			||||||
 | 
					           <x>20</x>
 | 
				
			||||||
 | 
					           <y>20</y>
 | 
				
			||||||
 | 
					           <width>164</width>
 | 
				
			||||||
 | 
					           <height>22</height>
 | 
				
			||||||
 | 
					          </rect>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					         <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <widget class="QSpinBox" name="sbRIT">
 | 
				
			||||||
 | 
					            <property name="enabled">
 | 
				
			||||||
 | 
					             <bool>false</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="alignment">
 | 
				
			||||||
 | 
					             <set>Qt::AlignCenter</set>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="suffix">
 | 
				
			||||||
 | 
					             <string>  Hz</string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="prefix">
 | 
				
			||||||
 | 
					             <string>RIT  </string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="minimum">
 | 
				
			||||||
 | 
					             <number>-20000</number>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="maximum">
 | 
				
			||||||
 | 
					             <number>20000</number>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="singleStep">
 | 
				
			||||||
 | 
					             <number>100</number>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <spacer name="horizontalSpacer">
 | 
				
			||||||
 | 
					            <property name="orientation">
 | 
				
			||||||
 | 
					             <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					             <size>
 | 
				
			||||||
 | 
					              <width>40</width>
 | 
				
			||||||
 | 
					              <height>20</height>
 | 
				
			||||||
 | 
					             </size>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </spacer>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <widget class="QCheckBox" name="cbDither">
 | 
				
			||||||
 | 
					            <property name="text">
 | 
				
			||||||
 | 
					             <string>Dither</string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					         </layout>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
      <item>
 | 
					      <item>
 | 
				
			||||||
       <spacer name="verticalSpacer_2">
 | 
					       <spacer name="verticalSpacer_2">
 | 
				
			||||||
        <property name="orientation">
 | 
					        <property name="orientation">
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -105,6 +105,7 @@ public:
 | 
				
			|||||||
  using Frequency = Radio::Frequency;
 | 
					  using Frequency = Radio::Frequency;
 | 
				
			||||||
  using FrequencyDelta = Radio::FrequencyDelta;
 | 
					  using FrequencyDelta = Radio::FrequencyDelta;
 | 
				
			||||||
  using Mode = Modes::Mode;
 | 
					  using Mode = Modes::Mode;
 | 
				
			||||||
 | 
					  using SpecOp = Configuration::SpecialOperatingActivity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  explicit MainWindow(QDir const& temp_directory, bool multiple, MultiSettings *,
 | 
					  explicit MainWindow(QDir const& temp_directory, bool multiple, MultiSettings *,
 | 
				
			||||||
                      QSharedMemory *shdmem, unsigned downSampleFactor,
 | 
					                      QSharedMemory *shdmem, unsigned downSampleFactor,
 | 
				
			||||||
@ -432,6 +433,10 @@ private:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  double  m_tRemaining;
 | 
					  double  m_tRemaining;
 | 
				
			||||||
  double  m_TRperiod;
 | 
					  double  m_TRperiod;
 | 
				
			||||||
 | 
					  double  m_fSpread;
 | 
				
			||||||
 | 
					  double  m_s6;
 | 
				
			||||||
 | 
					  double  m_fDither;
 | 
				
			||||||
 | 
					  double  m_fAudioShift;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float   m_DTtol;
 | 
					  float   m_DTtol;
 | 
				
			||||||
  float   m_t0;
 | 
					  float   m_t0;
 | 
				
			||||||
@ -500,6 +505,7 @@ private:
 | 
				
			|||||||
  qint32  m_latestDecodeTime=-1;
 | 
					  qint32  m_latestDecodeTime=-1;
 | 
				
			||||||
  qint32  m_points=-99;
 | 
					  qint32  m_points=-99;
 | 
				
			||||||
  qint32  m_score=0;
 | 
					  qint32  m_score=0;
 | 
				
			||||||
 | 
					  qint32  m_fDop=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool    m_btxok;		//True if OK to transmit
 | 
					  bool    m_btxok;		//True if OK to transmit
 | 
				
			||||||
  bool    m_diskData;
 | 
					  bool    m_diskData;
 | 
				
			||||||
@ -557,6 +563,8 @@ private:
 | 
				
			|||||||
  bool    m_bOK_to_chk=false;
 | 
					  bool    m_bOK_to_chk=false;
 | 
				
			||||||
  bool    m_bSentReport=false;
 | 
					  bool    m_bSentReport=false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SpecOp  m_specOp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  enum
 | 
					  enum
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      CALLING,
 | 
					      CALLING,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user