mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	Much code cleanup: remove unised variables and code.
Include # channels in audio device offerings. Start implementing "msgsent" correctly. (Not finished!) Include Date in UTC display. Use the properly computer snrdb. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2718 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									508009db5e
								
							
						
					
					
						commit
						5d030bd413
					
				| @ -13,7 +13,6 @@ extern struct { | |||||||
|   int ndiskdat;                     //1 ==> data read from *.wav file
 |   int ndiskdat;                     //1 ==> data read from *.wav file
 | ||||||
|   int ntrperiod;                    //TR period (seconds)
 |   int ntrperiod;                    //TR period (seconds)
 | ||||||
|   int nfqso;                        //User-selected QSO freq (kHz)
 |   int nfqso;                        //User-selected QSO freq (kHz)
 | ||||||
|   int nagain;                       //1 ==> decode only at fQSO +/- Tol
 |  | ||||||
|   int newdat;                       //1 ==> new data, must do long FFT
 |   int newdat;                       //1 ==> new data, must do long FFT
 | ||||||
|   int npts8;                        //npts for c0() array
 |   int npts8;                        //npts for c0() array
 | ||||||
|   int nfb;                          //High decode limit (kHz)
 |   int nfb;                          //High decode limit (kHz)
 | ||||||
|  | |||||||
							
								
								
									
										23
									
								
								devsetup.cpp
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								devsetup.cpp
									
									
									
									
									
								
							| @ -30,26 +30,11 @@ void DevSetup::initDlg() | |||||||
|   char pa_device_name[128]; |   char pa_device_name[128]; | ||||||
|   char pa_device_hostapi[128]; |   char pa_device_hostapi[128]; | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|   getDev(&numDevices,hostAPI_DeviceName,minChan,maxChan,minSpeed,maxSpeed); |  | ||||||
|   k=0; |  | ||||||
|   for(id=0; id<numDevices; id++)  { |  | ||||||
|     if(48000 >= minSpeed[id] && 48000 <= maxSpeed[id]) { |  | ||||||
|       m_inDevList[k]=id; |  | ||||||
|       k++; |  | ||||||
|       sprintf(s,"%2d   %d  %-49s",id,maxChan[id],hostAPI_DeviceName[id]); |  | ||||||
|       QString t(s); |  | ||||||
|       ui.comboBoxSndIn->addItem(t); |  | ||||||
|       valid_devices++; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
|   k=0; |   k=0; | ||||||
|   for(id=0; id<numDevices; id++ )  { |   for(id=0; id<numDevices; id++ )  { | ||||||
|     pdi=Pa_GetDeviceInfo(id); |     pdi=Pa_GetDeviceInfo(id); | ||||||
|     nchin=pdi->maxInputChannels; |     nchin=pdi->maxInputChannels; | ||||||
|     if(nchin>=2) { |     if(nchin>0) { | ||||||
|       m_inDevList[k]=id; |       m_inDevList[k]=id; | ||||||
|       k++; |       k++; | ||||||
|       sprintf((char*)(pa_device_name),"%s",pdi->name); |       sprintf((char*)(pa_device_name),"%s",pdi->name); | ||||||
| @ -68,7 +53,7 @@ void DevSetup::initDlg() | |||||||
|       p=strstr(pa_device_hostapi,"WDM-KS"); |       p=strstr(pa_device_hostapi,"WDM-KS"); | ||||||
|       if(p!=NULL) p1=(char*)"WDM-KS"; |       if(p!=NULL) p1=(char*)"WDM-KS"; | ||||||
| 
 | 
 | ||||||
|       sprintf(p2,"%2d   %-8s  %-39s",id,p1,pa_device_name); |       sprintf(p2,"%2d   %d   %-8s  %-39s",id,nchin,p1,pa_device_name); | ||||||
|       QString t(p2); |       QString t(p2); | ||||||
|       ui.comboBoxSndIn->addItem(t); |       ui.comboBoxSndIn->addItem(t); | ||||||
|     } |     } | ||||||
| @ -78,7 +63,7 @@ void DevSetup::initDlg() | |||||||
|   for(id=0; id<numDevices; id++ )  { |   for(id=0; id<numDevices; id++ )  { | ||||||
|     pdi=Pa_GetDeviceInfo(id); |     pdi=Pa_GetDeviceInfo(id); | ||||||
|     nchout=pdi->maxOutputChannels; |     nchout=pdi->maxOutputChannels; | ||||||
|     if(nchout>=2) { |     if(nchout>0) { | ||||||
|       m_outDevList[k]=id; |       m_outDevList[k]=id; | ||||||
|       k++; |       k++; | ||||||
|       sprintf((char*)(pa_device_name),"%s",pdi->name); |       sprintf((char*)(pa_device_name),"%s",pdi->name); | ||||||
| @ -97,7 +82,7 @@ void DevSetup::initDlg() | |||||||
|       p=strstr(pa_device_hostapi,"WDM-KS"); |       p=strstr(pa_device_hostapi,"WDM-KS"); | ||||||
|       if(p!=NULL) p1=(char*)"WDM-KS"; |       if(p!=NULL) p1=(char*)"WDM-KS"; | ||||||
| 
 | 
 | ||||||
|       sprintf(p2,"%2d   %-8s  %-39s",id,p1,pa_device_name); |       sprintf(p2,"%2d   %d   %-8s  %-39s",id,nchout,p1,pa_device_name); | ||||||
|       QString t(p2); |       QString t(p2); | ||||||
|       ui.comboBoxSndOut->addItem(t); |       ui.comboBoxSndOut->addItem(t); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -29,7 +29,7 @@ | |||||||
|          <x>10</x> |          <x>10</x> | ||||||
|          <y>34</y> |          <y>34</y> | ||||||
|          <width>421</width> |          <width>421</width> | ||||||
|          <height>216</height> |          <height>221</height> | ||||||
|         </rect> |         </rect> | ||||||
|        </property> |        </property> | ||||||
|        <layout class="QVBoxLayout" name="verticalLayout_8"> |        <layout class="QVBoxLayout" name="verticalLayout_8"> | ||||||
| @ -320,6 +320,13 @@ | |||||||
|           </property> |           </property> | ||||||
|          </spacer> |          </spacer> | ||||||
|         </item> |         </item> | ||||||
|  |         <item> | ||||||
|  |          <widget class="QLabel" name="label_8"> | ||||||
|  |           <property name="text"> | ||||||
|  |            <string>                  Dev Ch API      Name</string> | ||||||
|  |           </property> | ||||||
|  |          </widget> | ||||||
|  |         </item> | ||||||
|         <item> |         <item> | ||||||
|          <layout class="QVBoxLayout" name="verticalLayout_6"> |          <layout class="QVBoxLayout" name="verticalLayout_6"> | ||||||
|           <item> |           <item> | ||||||
|  | |||||||
| @ -6,7 +6,6 @@ | |||||||
| #include "commons.h" | #include "commons.h" | ||||||
| 
 | 
 | ||||||
| void getfile(QString fname, int ntrperiod); | void getfile(QString fname, int ntrperiod); | ||||||
| void savetf2(QString fname, int ntrperiod); |  | ||||||
| float gran(); | float gran(); | ||||||
| int ptt(int* nport, int* ntx, int* iptt); | int ptt(int* nport, int* ntx, int* iptt); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,8 +1,6 @@ | |||||||
| subroutine decoder(ntrSeconds,ndepth,nRxLog,c00) | subroutine decoder(ntrSeconds,ndepth,nRxLog,c00) | ||||||
| 
 | 
 | ||||||
| ! Decoder for JT9.  Can run stand-alone, reading data from *.wav files; | ! Decoder for JT9.   | ||||||
| ! or as the back end of wsjt-x, with data placed in a shared memory region. |  | ||||||
| 
 |  | ||||||
| ! NB: For unknown reason, ***MUST*** be compiled by g95 with -O0 !!! | ! NB: For unknown reason, ***MUST*** be compiled by g95 with -O0 !!! | ||||||
| 
 | 
 | ||||||
|   parameter (NMAX=1800*12000)        !Total sample intervals per 30 minutes |   parameter (NMAX=1800*12000)        !Total sample intervals per 30 minutes | ||||||
| @ -15,7 +13,7 @@ subroutine decoder(ntrSeconds,ndepth,nRxLog,c00) | |||||||
|   integer*2 id2 |   integer*2 id2 | ||||||
|   complex c0(NDMAX),c00(NDMAX) |   complex c0(NDMAX),c00(NDMAX) | ||||||
|   common/jt9com/ss0(184,NSMAX),savg(NSMAX),id2(NMAX),nutc0,ndiskdat,    & |   common/jt9com/ss0(184,NSMAX),savg(NSMAX),id2(NMAX),nutc0,ndiskdat,    & | ||||||
|        ntr,nfqso,nagain,newdat,npts80,nfb,ntol,kin,nsynced,ndecoded |        ntr,nfqso,newdat,npts80,nfb,ntol,kin,nsynced,ndecoded | ||||||
|   common/jt9comB/ss(184,NSMAX),c0 |   common/jt9comB/ss(184,NSMAX),c0 | ||||||
|   logical first |   logical first | ||||||
|   data first/.true./ |   data first/.true./ | ||||||
| @ -55,12 +53,10 @@ subroutine decoder(ntrSeconds,ndepth,nRxLog,c00) | |||||||
|   endif |   endif | ||||||
|   if(nsps.eq.0) stop 'Error: bad TRperiod'    !Better: return an error code### |   if(nsps.eq.0) stop 'Error: bad TRperiod'    !Better: return an error code### | ||||||
| 
 | 
 | ||||||
| ! Now do the decoding |  | ||||||
|   kstep=nsps/2 |   kstep=nsps/2 | ||||||
|   tstep=kstep/12000.0 |   tstep=kstep/12000.0 | ||||||
| 
 | 
 | ||||||
| ! Get sync, approx freq |   call sync9(ss,tstep,df3,ntol,nfqso,ccfred,ia,ib,ipk)  ! Get sync, approx freq | ||||||
|   call sync9(ss,tstep,df3,ntol,nfqso,ccfred,ia,ib,ipk) |  | ||||||
| 
 | 
 | ||||||
|   open(13,file='decoded.txt',status='unknown') |   open(13,file='decoded.txt',status='unknown') | ||||||
|   rewind 13 |   rewind 13 | ||||||
| @ -81,7 +77,8 @@ subroutine decoder(ntrSeconds,ndepth,nRxLog,c00) | |||||||
|      if((i.eq.ipk .or. ccfred(i).ge.3.0) .and. f.gt.fgood+10.0*df8) then |      if((i.eq.ipk .or. ccfred(i).ge.3.0) .and. f.gt.fgood+10.0*df8) then | ||||||
|         call spec9(c0,npts8,nsps,f,fpk,xdt,snrdb,i1SoftSymbols) |         call spec9(c0,npts8,nsps,f,fpk,xdt,snrdb,i1SoftSymbols) | ||||||
|         call decode9(i1SoftSymbols,limit,nlim,msg) |         call decode9(i1SoftSymbols,limit,nlim,msg) | ||||||
|         snr=10.0*log10(ccfred(i)) - 10.0*log10(2500.0/df3) + 2.0 | !        snr=10.0*log10(ccfred(i)) - 10.0*log10(2500.0/df3) + 2.0 | ||||||
|  |         snr=snrdb | ||||||
|         sync=ccfred(i) - 2.0 |         sync=ccfred(i) - 2.0 | ||||||
|         if(sync.lt.0.0) sync=0.0 |         if(sync.lt.0.0) sync=0.0 | ||||||
|         nsync=sync |         nsync=sync | ||||||
|  | |||||||
| @ -23,6 +23,7 @@ subroutine genjt9(message,msgsent,i4tone) | |||||||
| 
 | 
 | ||||||
|   call packmsg(message,i4Msg6BitWords)    !Pack message into 12 6-bit bytes |   call packmsg(message,i4Msg6BitWords)    !Pack message into 12 6-bit bytes | ||||||
|   call unpackmsg(i4Msg6BitWords,msgsent)  !Unpack to get msgsent |   call unpackmsg(i4Msg6BitWords,msgsent)  !Unpack to get msgsent | ||||||
|  |   if(i4tone(1).eq.-99) go to 999 | ||||||
|   call entail(i4Msg6BitWords,i1Msg8BitBytes)  !Add tail, convert to 8-bit bytes |   call entail(i4Msg6BitWords,i1Msg8BitBytes)  !Add tail, convert to 8-bit bytes | ||||||
|   nsym2=206 |   nsym2=206 | ||||||
|   call encode232(i1Msg8BitBytes,nsym2,i1EncodedBits)   !Encode K=32, r=1/2 |   call encode232(i1Msg8BitBytes,nsym2,i1EncodedBits)   !Encode K=32, r=1/2 | ||||||
| @ -41,5 +42,5 @@ subroutine genjt9(message,msgsent,i4tone) | |||||||
|      endif |      endif | ||||||
|   enddo |   enddo | ||||||
| 
 | 
 | ||||||
|   return | 999 return | ||||||
| end subroutine genjt9 | end subroutine genjt9 | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ program jt9 | |||||||
|   integer*2 id2 |   integer*2 id2 | ||||||
|   complex c0(NDMAX) |   complex c0(NDMAX) | ||||||
|   common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat,    & |   common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat,    & | ||||||
|        ntr,mousefqso,nagain,newdat,nfa,nfb,ntol,kin |        ntr,mousefqso,newdat,nfa,nfb,ntol,kin | ||||||
| 
 | 
 | ||||||
|   nargs=iargc() |   nargs=iargc() | ||||||
|   if(nargs.lt.1) then |   if(nargs.lt.1) then | ||||||
|  | |||||||
| @ -74,7 +74,7 @@ subroutine m65c(dd,ss,savg,nparams0) | |||||||
|   character*12 mycall,hiscall |   character*12 mycall,hiscall | ||||||
|   character*6 mygrid,hisgrid |   character*6 mygrid,hisgrid | ||||||
|   character*20 datetime |   character*20 datetime | ||||||
|   common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain,              & |   common/npar/fcenter,nutc,idphi,mousedf,mousefqso,                     & | ||||||
|        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,mode65,            & | ||||||
|        mycall,mygrid,hiscall,hisgrid,datetime |        mycall,mygrid,hiscall,hisgrid,datetime | ||||||
|  | |||||||
| @ -1,19 +1,11 @@ | |||||||
|   integer ii(16)                       !Locations of sync symbols |   integer ii(16)                       !Locations of sync symbols | ||||||
| !  data ii/1,6,11,16,21,26,31,39,45,51,57,63,69,75,81,85/ |  | ||||||
|   data ii/ 1,2,5,10,16,23,33,35,51,52,55,60,66,73,83,85/ |   data ii/ 1,2,5,10,16,23,33,35,51,52,55,60,66,73,83,85/ | ||||||
| 
 | 
 | ||||||
|   integer ii2(16)                      !Locations of sync half-symbols |   integer ii2(16)                      !Locations of sync half-symbols | ||||||
| !  data ii2/1,11,21,31,41,51,61,77,89,101,113,125,137,149,161,169/ |  | ||||||
|   data ii2/1,3,9,19,31,45,65,69,101,103,109,119,131,145,165,169/ |   data ii2/1,3,9,19,31,45,65,69,101,103,109,119,131,145,165,169/ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   integer isync(85)                    !Sync vector |   integer isync(85)                    !Sync vector | ||||||
| !  data isync/                                    & |  | ||||||
| !       1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,  & |  | ||||||
| !       1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,  & |  | ||||||
| !       0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,  & |  | ||||||
| !       0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,  & |  | ||||||
| !       1,0,0,0,1/ |  | ||||||
|   data isync/                                     & |   data isync/                                     & | ||||||
|        1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,   & |        1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,   & | ||||||
|        0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,   & |        0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,   & | ||||||
|  | |||||||
| @ -84,10 +84,9 @@ subroutine spec9(c0,npts8,nsps,fpk0,fpk,xdt,snrdb,i1SoftSymbols) | |||||||
|   ave=sum/(69*7) |   ave=sum/(69*7) | ||||||
|   ssym=ssym/ave |   ssym=ssym/ave | ||||||
|   sig=sig/69. |   sig=sig/69. | ||||||
|   snr=sig/ave |  | ||||||
|   df8=1500.0/nsps8 |   df8=1500.0/nsps8 | ||||||
|   snrdb=db(snr) - db(2500.0/df8) |   t=max(1.0,sig/ave - 1.0) | ||||||
| !  print*,ave,sig,snr,df8,snrdb |   snrdb=db(t) - db(2500.0/df8) | ||||||
|       |       | ||||||
|   m0=3 |   m0=3 | ||||||
|   ntones=8 |   ntones=8 | ||||||
|  | |||||||
| @ -33,7 +33,7 @@ subroutine symspec(k,ntrperiod,nsps,ingain,nb,nbslider,pxdb,s,red,    & | |||||||
|   integer*2 id2 |   integer*2 id2 | ||||||
|   complex c0(NDMAX) |   complex c0(NDMAX) | ||||||
|   common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat,    & |   common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat,    & | ||||||
|        ntr,mousefqso,nagain,newdat,nfa,nfb,ntol,kin |        ntr,mousefqso,newdat,nfa,nfb,ntol,kin | ||||||
|   data rms/999.0/,k0/99999999/,ntrperiod0/0/,nfft3z/0/ |   data rms/999.0/,k0/99999999/,ntrperiod0/0/,nfft3z/0/ | ||||||
|   save |   save | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -86,13 +86,11 @@ MainWindow::MainWindow(QWidget *parent) : | |||||||
| 
 | 
 | ||||||
|   m_auto=false; |   m_auto=false; | ||||||
|   m_waterfallAvg = 1; |   m_waterfallAvg = 1; | ||||||
|   m_network = true; |  | ||||||
|   m_txFirst=false; |   m_txFirst=false; | ||||||
|   m_txMute=false; |   m_txMute=false; | ||||||
|   btxok=false; |   btxok=false; | ||||||
|   m_restart=false; |   m_restart=false; | ||||||
|   m_transmitting=false; |   m_transmitting=false; | ||||||
|   m_killAll=false; |  | ||||||
|   m_widebandDecode=false; |   m_widebandDecode=false; | ||||||
|   m_ntx=1; |   m_ntx=1; | ||||||
|   m_myCall="K1JT"; |   m_myCall="K1JT"; | ||||||
| @ -322,7 +320,7 @@ void MainWindow::readSettings() | |||||||
| //-------------------------------------------------------------- dataSink()
 | //-------------------------------------------------------------- dataSink()
 | ||||||
| void MainWindow::dataSink(int k) | void MainWindow::dataSink(int k) | ||||||
| { | { | ||||||
|   static float s[NSMAX],red[NSMAX],splot[NSMAX]; |   static float s[NSMAX],red[NSMAX]; | ||||||
|   static int n=0; |   static int n=0; | ||||||
|   static int ihsym=0; |   static int ihsym=0; | ||||||
|   static int nzap=0; |   static int nzap=0; | ||||||
| @ -354,7 +352,7 @@ void MainWindow::dataSink(int k) | |||||||
|            &df3, &ihsym, &nzap, &slimit, lstrong, c0, &npts8); |            &df3, &ihsym, &nzap, &slimit, lstrong, c0, &npts8); | ||||||
|   if(ihsym <=0) return; |   if(ihsym <=0) return; | ||||||
|   QString t; |   QString t; | ||||||
|   m_pctZap=nzap/178.3; |   m_pctZap=nzap*100.0/m_nsps; | ||||||
|   t.sprintf(" Rx noise: %5.1f  %5.1f %% ",px,m_pctZap); |   t.sprintf(" Rx noise: %5.1f  %5.1f %% ",px,m_pctZap); | ||||||
|   lab3->setText(t); |   lab3->setText(t); | ||||||
|   ui->xThermo->setValue((double)px);   //Update the thermometer
 |   ui->xThermo->setValue((double)px);   //Update the thermometer
 | ||||||
| @ -362,38 +360,11 @@ void MainWindow::dataSink(int k) | |||||||
|     g_pWideGraph->dataSink2(s,red,df3,ihsym,m_diskData,lstrong); |     g_pWideGraph->dataSink2(s,red,df3,ihsym,m_diskData,lstrong); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   //Average over specified number of spectra
 |  | ||||||
|   if (n==0) { |  | ||||||
|     for (int i=0; i<NSMAX; i++) |  | ||||||
|       splot[i]=s[i]; |  | ||||||
|   } else { |  | ||||||
|     for (int i=0; i<NSMAX; i++) |  | ||||||
|       splot[i] += s[i]; |  | ||||||
|   } |  | ||||||
|   n++; |  | ||||||
| 
 |  | ||||||
|   if (n>=m_waterfallAvg) { |  | ||||||
|     for (int i=0; i<NSMAX; i++) { |  | ||||||
|         splot[i] /= n;                           //Normalize the average
 |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| // Time according to this computer
 |  | ||||||
|     qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; |  | ||||||
|     int ntr = (ms/1000) % m_TRperiod; |  | ||||||
|     if((m_diskData && ihsym <= m_waterfallAvg) || (!m_diskData && ntr<ntr0)) { |  | ||||||
|       for (int i=0; i<NSMAX; i++) { |  | ||||||
|         splot[i] = 1.e30; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     ntr0=ntr; |  | ||||||
|     n=0; |  | ||||||
|   } |  | ||||||
|   // This is a bit strange.  Why do we need the "-3" ???
 |   // This is a bit strange.  Why do we need the "-3" ???
 | ||||||
|   if(ihsym == m_hsymStop-3) { |   if(ihsym == m_hsymStop-3) { | ||||||
|     m_dataAvailable=true; |     m_dataAvailable=true; | ||||||
|     jt9com_.npts8=(ihsym*m_nsps)/16; |     jt9com_.npts8=(ihsym*m_nsps)/16; | ||||||
|     jt9com_.newdat=1; |     jt9com_.newdat=1; | ||||||
|     jt9com_.nagain=0; |  | ||||||
|     QDateTime t = QDateTime::currentDateTimeUtc(); |     QDateTime t = QDateTime::currentDateTimeUtc(); | ||||||
|     m_dateTime=t.toString("yyyy-MMM-dd hh:mm"); |     m_dateTime=t.toString("yyyy-MMM-dd hh:mm"); | ||||||
|     decode();                                           //Start the decoder
 |     decode();                                           //Start the decoder
 | ||||||
| @ -620,7 +591,6 @@ void MainWindow::closeEvent(QCloseEvent*) | |||||||
| void MainWindow::OnExit() | void MainWindow::OnExit() | ||||||
| { | { | ||||||
|   g_pWideGraph->saveSettings(); |   g_pWideGraph->saveSettings(); | ||||||
|   m_killAll=true; |  | ||||||
|   qApp->exit(0);                                      // Exit the event loop
 |   qApp->exit(0);                                      // Exit the event loop
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -731,7 +701,8 @@ void MainWindow::diskDat()                                   //diskDat() | |||||||
|     k=(n+1)*kstep; |     k=(n+1)*kstep; | ||||||
|     jt9com_.npts8=k/8; |     jt9com_.npts8=k/8; | ||||||
|     dataSink(k); |     dataSink(k); | ||||||
|     if(n%10 == 1 or n == m_hsymStop) qApp->processEvents();   //Keep GUI responsive
 |     if(n%10 == 1 or n == m_hsymStop) | ||||||
|  |         qApp->processEvents();                   //Keep GUI responsive
 | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -839,7 +810,6 @@ void MainWindow::on_DecodeButton_clicked()                    //Decode request | |||||||
| { | { | ||||||
|   if(!m_decoderBusy) { |   if(!m_decoderBusy) { | ||||||
|     jt9com_.newdat=0; |     jt9com_.newdat=0; | ||||||
|     jt9com_.nagain=1; |  | ||||||
|     decode(); |     decode(); | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -849,7 +819,6 @@ void MainWindow::freezeDecode(int n)                          //freezeDecode() | |||||||
|   static int ntol[] = {1,2,5,10,20,50,100,200,500,1000}; |   static int ntol[] = {1,2,5,10,20,50,100,200,500,1000}; | ||||||
|   if(!m_decoderBusy) { |   if(!m_decoderBusy) { | ||||||
|     jt9com_.newdat=0; |     jt9com_.newdat=0; | ||||||
|     jt9com_.nagain=1; |  | ||||||
|     int i; |     int i; | ||||||
|     if(m_mode=="JT9-1") i=4; |     if(m_mode=="JT9-1") i=4; | ||||||
|     if(m_mode=="JT9-2") i=4; |     if(m_mode=="JT9-2") i=4; | ||||||
| @ -869,7 +838,7 @@ void MainWindow::decode()                                       //decode() | |||||||
|   decodeBusy(true); |   decodeBusy(true); | ||||||
|   ui->DecodeButton->setStyleSheet(m_pbdecoding_style1); |   ui->DecodeButton->setStyleSheet(m_pbdecoding_style1); | ||||||
| 
 | 
 | ||||||
|   if(jt9com_.nagain==0 && (!m_diskData)) { |   if(!m_diskData) { | ||||||
|     qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; |     qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; | ||||||
|     int imin=ms/60000; |     int imin=ms/60000; | ||||||
|     int ihr=imin/60; |     int ihr=imin/60; | ||||||
| @ -927,7 +896,7 @@ void MainWindow::guiUpdate() | |||||||
|   int nsec=ms/1000; |   int nsec=ms/1000; | ||||||
|   double tsec=0.001*ms; |   double tsec=0.001*ms; | ||||||
|   double t2p=fmod(tsec,2*m_TRperiod); |   double t2p=fmod(tsec,2*m_TRperiod); | ||||||
|   bool bTxTime = t2p >= tx1 && t2p < tx2; |   bool bTxTime = (t2p >= tx1) && (t2p < tx2); | ||||||
| 
 | 
 | ||||||
|   if(m_auto) { |   if(m_auto) { | ||||||
| 
 | 
 | ||||||
| @ -969,10 +938,10 @@ void MainWindow::guiUpdate() | |||||||
|     if(m_ntx == 6) ba=ui->tx6->text().toLocal8Bit(); |     if(m_ntx == 6) ba=ui->tx6->text().toLocal8Bit(); | ||||||
| 
 | 
 | ||||||
|     ba2msg(ba,message); |     ba2msg(ba,message); | ||||||
|     ba2msg(ba,msgsent); | //    ba2msg(ba,msgsent);
 | ||||||
|     int len1=22; |     int len1=22; | ||||||
|     int len2=22; |     genjt9_(message,msgsent,itone,len1,len1); | ||||||
|     genjt9_(message,msgsent,itone,len1,len2); |     msgsent[22]=0; | ||||||
|     if(m_restart) { |     if(m_restart) { | ||||||
|       QFile f("wsjtx_tx.log"); |       QFile f("wsjtx_tx.log"); | ||||||
|       f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append); |       f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append); | ||||||
| @ -989,7 +958,7 @@ void MainWindow::guiUpdate() | |||||||
|   if(iptt==1 && iptt0==0) nc1=-9;    // TxDelay = 0.8 s
 |   if(iptt==1 && iptt0==0) nc1=-9;    // TxDelay = 0.8 s
 | ||||||
|   if(nc1 <= 0) nc1++; |   if(nc1 <= 0) nc1++; | ||||||
|   if(nc1 == 0) { |   if(nc1 == 0) { | ||||||
|     ui->xThermo->setValue(0.0);   //Set the Thermos to zero
 |     ui->xThermo->setValue(0.0);   //Set Thermo to zero
 | ||||||
|     m_monitoring=false; |     m_monitoring=false; | ||||||
|     soundInThread.setMonitoring(false); |     soundInThread.setMonitoring(false); | ||||||
|     btxok=true; |     btxok=true; | ||||||
| @ -1062,7 +1031,8 @@ void MainWindow::guiUpdate() | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     m_setftx=0; |     m_setftx=0; | ||||||
|     QString utc = " " + t.time().toString() + " "; |     QString utc = t.date().toString("yyyy MMM dd") + "\n " + | ||||||
|  |             t.time().toString() + " "; | ||||||
|     ui->labUTC->setText(utc); |     ui->labUTC->setText(utc); | ||||||
|     if(!m_monitoring and !m_diskData) { |     if(!m_monitoring and !m_diskData) { | ||||||
|       ui->xThermo->setValue(0.0); |       ui->xThermo->setValue(0.0); | ||||||
| @ -1340,6 +1310,7 @@ void MainWindow::msgtype(QString t, QLineEdit* tx)                //msgtype() | |||||||
|   char message[23]; |   char message[23]; | ||||||
|   char msgsent[23]; |   char msgsent[23]; | ||||||
|   int len1=22; |   int len1=22; | ||||||
|  |   int jtone[1]; | ||||||
|   double samfac=1.0; |   double samfac=1.0; | ||||||
|   int nsendingsh=0; |   int nsendingsh=0; | ||||||
|   int mwave; |   int mwave; | ||||||
| @ -1347,7 +1318,8 @@ void MainWindow::msgtype(QString t, QLineEdit* tx)                //msgtype() | |||||||
|   int i1=t.indexOf(" OOO"); |   int i1=t.indexOf(" OOO"); | ||||||
|   QByteArray s=t.toUpper().toLocal8Bit(); |   QByteArray s=t.toUpper().toLocal8Bit(); | ||||||
|   ba2msg(s,message); |   ba2msg(s,message); | ||||||
| //  gen65_(message,&mode65,&samfac,&nsendingsh,msgsent,iwave,&mwave,len1,len1);
 |   jtone[0]=-99; | ||||||
|  |   genjt9_(message,msgsent,jtone,len1,len1); | ||||||
|   nsendingsh=0; |   nsendingsh=0; | ||||||
|   QPalette p(tx->palette()); |   QPalette p(tx->palette()); | ||||||
|   if(nsendingsh==1) { |   if(nsendingsh==1) { | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								mainwindow.h
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								mainwindow.h
									
									
									
									
									
								
							| @ -1,16 +1,11 @@ | |||||||
| #ifndef MAINWINDOW_H | #ifndef MAINWINDOW_H | ||||||
| #define MAINWINDOW_H | #define MAINWINDOW_H | ||||||
| #include <QtGui> | #include <QtGui> | ||||||
| #include <QLabel> |  | ||||||
| #include <QTimer> | #include <QTimer> | ||||||
| #include <QDateTime> | #include <QDateTime> | ||||||
| #include <QHash> |  | ||||||
| #include "soundin.h" | #include "soundin.h" | ||||||
| #include "soundout.h" | #include "soundout.h" | ||||||
| #include "commons.h" | #include "commons.h" | ||||||
| #include "sleep.h" |  | ||||||
| 
 |  | ||||||
| #define NFFT 32768 |  | ||||||
| 
 | 
 | ||||||
| //--------------------------------------------------------------- MainWindow
 | //--------------------------------------------------------------- MainWindow
 | ||||||
| namespace Ui { | namespace Ui { | ||||||
| @ -24,7 +19,6 @@ class MainWindow : public QMainWindow | |||||||
| public: | public: | ||||||
|   explicit MainWindow(QWidget *parent = 0); |   explicit MainWindow(QWidget *parent = 0); | ||||||
|   ~MainWindow(); |   ~MainWindow(); | ||||||
|   bool m_network; |  | ||||||
| 
 | 
 | ||||||
| public slots: | public slots: | ||||||
|   void showSoundInError(const QString& errorMsg); |   void showSoundInError(const QString& errorMsg); | ||||||
| @ -149,7 +143,6 @@ private: | |||||||
|     bool    m_auto; |     bool    m_auto; | ||||||
|     bool    m_txMute; |     bool    m_txMute; | ||||||
|     bool    m_restart; |     bool    m_restart; | ||||||
|     bool    m_killAll; |  | ||||||
|     bool    m_startAnother; |     bool    m_startAnother; | ||||||
|     bool    m_saveSynced; |     bool    m_saveSynced; | ||||||
|     bool    m_saveDecoded; |     bool    m_saveDecoded; | ||||||
| @ -159,31 +152,22 @@ private: | |||||||
|     bool    m_NB; |     bool    m_NB; | ||||||
|     bool    m_call3Modified; |     bool    m_call3Modified; | ||||||
|     bool    m_dataAvailable; |     bool    m_dataAvailable; | ||||||
| 
 |  | ||||||
|     char    m_decoded[80]; |     char    m_decoded[80]; | ||||||
| 
 |  | ||||||
|     float   m_pctZap; |     float   m_pctZap; | ||||||
| 
 |  | ||||||
|     QRect   m_wideGraphGeom; |     QRect   m_wideGraphGeom; | ||||||
| 
 |  | ||||||
|     QLabel* lab1;                            // labels in status bar
 |     QLabel* lab1;                            // labels in status bar
 | ||||||
|     QLabel* lab2; |     QLabel* lab2; | ||||||
|     QLabel* lab3; |     QLabel* lab3; | ||||||
|     QLabel* lab4; |     QLabel* lab4; | ||||||
|     QLabel* lab5; |     QLabel* lab5; | ||||||
|     QLabel* lab6; |     QLabel* lab6; | ||||||
| 
 |  | ||||||
|     QMessageBox msgBox0; |     QMessageBox msgBox0; | ||||||
| 
 |  | ||||||
|     QFuture<void>* future1; |     QFuture<void>* future1; | ||||||
|     QFuture<void>* future2; |     QFuture<void>* future2; | ||||||
|     QFuture<void>* future3; |     QFuture<void>* future3; | ||||||
|     QFutureWatcher<void>* watcher1; |     QFutureWatcher<void>* watcher1; | ||||||
|     QFutureWatcher<void>* watcher2; |     QFutureWatcher<void>* watcher2; | ||||||
|     QFutureWatcher<void>* watcher3; |     QFutureWatcher<void>* watcher3; | ||||||
| 
 |  | ||||||
|     QProcess proc_m65; |  | ||||||
| 
 |  | ||||||
|     QString m_path; |     QString m_path; | ||||||
|     QString m_pbdecoding_style1; |     QString m_pbdecoding_style1; | ||||||
|     QString m_pbmonitor_style; |     QString m_pbmonitor_style; | ||||||
|  | |||||||
| @ -491,12 +491,12 @@ p, li { white-space: pre-wrap; } | |||||||
|            <property name="maximumSize"> |            <property name="maximumSize"> | ||||||
|             <size> |             <size> | ||||||
|              <width>150</width> |              <width>150</width> | ||||||
|              <height>40</height> |              <height>60</height> | ||||||
|             </size> |             </size> | ||||||
|            </property> |            </property> | ||||||
|            <property name="font"> |            <property name="font"> | ||||||
|             <font> |             <font> | ||||||
|              <pointsize>20</pointsize> |              <pointsize>16</pointsize> | ||||||
|             </font> |             </font> | ||||||
|            </property> |            </property> | ||||||
|            <property name="frameShape"> |            <property name="frameShape"> | ||||||
| @ -505,6 +505,9 @@ p, li { white-space: pre-wrap; } | |||||||
|            <property name="text"> |            <property name="text"> | ||||||
|             <string> 01:23:45 </string> |             <string> 01:23:45 </string> | ||||||
|            </property> |            </property> | ||||||
|  |            <property name="alignment"> | ||||||
|  |             <set>Qt::AlignCenter</set> | ||||||
|  |            </property> | ||||||
|           </widget> |           </widget> | ||||||
|          </item> |          </item> | ||||||
|         </layout> |         </layout> | ||||||
|  | |||||||
| @ -73,8 +73,6 @@ void CPlotter::resizeEvent(QResizeEvent* )                    //resizeEvent() | |||||||
| 
 | 
 | ||||||
| void CPlotter::paintEvent(QPaintEvent *)                    // paintEvent()
 | void CPlotter::paintEvent(QPaintEvent *)                    // paintEvent()
 | ||||||
| { | { | ||||||
|   static int x00=-99; |  | ||||||
| 
 |  | ||||||
|   if(m_paintEventBusy) return; |   if(m_paintEventBusy) return; | ||||||
|   m_paintEventBusy=true; |   m_paintEventBusy=true; | ||||||
|   QPainter painter(this); |   QPainter painter(this); | ||||||
|  | |||||||
| @ -14,7 +14,6 @@ extern struct { | |||||||
|   int ndiskdat;                     //1 ==> data read from *.wav file
 |   int ndiskdat;                     //1 ==> data read from *.wav file
 | ||||||
|   int ntrperiod;                    //TR period (seconds)
 |   int ntrperiod;                    //TR period (seconds)
 | ||||||
|   int mousefqso;                    //User-selected QSO freq (kHz)
 |   int mousefqso;                    //User-selected QSO freq (kHz)
 | ||||||
|   int nagain;                       //1 ==> decode only at fQSO +/- Tol
 |  | ||||||
|   int newdat;                       //1 ==> new data, must do long FFT
 |   int newdat;                       //1 ==> new data, must do long FFT
 | ||||||
|   int npts8;                        //npts in c0() array
 |   int npts8;                        //npts in c0() array
 | ||||||
|   int nfb;                          //High decode limit (kHz)
 |   int nfb;                          //High decode limit (kHz)
 | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| [Setup] | [Setup] | ||||||
| AppName=wsjtx | AppName=wsjtx | ||||||
| AppVerName=wsjtx Version 0.2 r2713 | AppVerName=wsjtx Version 0.3 r2717 | ||||||
| AppCopyright=Copyright (C) 2001-2012 by Joe Taylor, K1JT | AppCopyright=Copyright (C) 2001-2012 by Joe Taylor, K1JT | ||||||
| DefaultDirName=c:\wsjtx | DefaultDirName=c:\wsjtx | ||||||
| DefaultGroupName=wsjtx | DefaultGroupName=wsjtx | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user