mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05:00 
			
		
		
		
	Returd Q65W results to GUI, and some cleanup.
This commit is contained in:
		
							parent
							
								
									61d9d45be1
								
							
						
					
					
						commit
						689d852a49
					
				@ -83,6 +83,12 @@ extern struct {                     //This is "common/datcom/..." in Fortran
 | 
				
			|||||||
  int junk2;
 | 
					  int junk2;
 | 
				
			||||||
} datcom2_;
 | 
					} datcom2_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct {
 | 
				
			||||||
 | 
					  int ndecodes;
 | 
				
			||||||
 | 
					  int ncand;
 | 
				
			||||||
 | 
					  char result[50][60];
 | 
				
			||||||
 | 
					} decodes_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // COMMONS_H
 | 
					#endif // COMMONS_H
 | 
				
			||||||
 | 
				
			|||||||
@ -9,17 +9,17 @@ subroutine decode0(dd,ss,savg,nstandalone)
 | 
				
			|||||||
  logical ldecoded
 | 
					  logical ldecoded
 | 
				
			||||||
  character mycall*12,hiscall*12,mygrid*6,hisgrid*6,datetime*20
 | 
					  character mycall*12,hiscall*12,mygrid*6,hisgrid*6,datetime*20
 | 
				
			||||||
  character mycall0*12,hiscall0*12,hisgrid0*6
 | 
					  character mycall0*12,hiscall0*12,hisgrid0*6
 | 
				
			||||||
 | 
					  character*60 result
 | 
				
			||||||
 | 
					  common/decodes/ndecodes,ncand,result(50)
 | 
				
			||||||
  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,nmode,               &
 | 
					       mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode,               &
 | 
				
			||||||
       ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime
 | 
					       ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime
 | 
				
			||||||
  common/early/nhsym1,nhsym2,ldecoded(32768)
 | 
					  common/early/nhsym1,nhsym2,ldecoded(32768)
 | 
				
			||||||
  common/decodes/ndecodes
 | 
					 | 
				
			||||||
  data neme0/-99/,mcall3b/1/
 | 
					  data neme0/-99/,mcall3b/1/
 | 
				
			||||||
  save
 | 
					  save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call sec0(0,tquick)
 | 
					  call sec0(0,tquick)
 | 
				
			||||||
  ncand=0
 | 
					 | 
				
			||||||
  if(newdat.ne.0) then
 | 
					  if(newdat.ne.0) then
 | 
				
			||||||
     nz=96000*nhsym/5.3833
 | 
					     nz=96000*nhsym/5.3833
 | 
				
			||||||
     hist=0
 | 
					     hist=0
 | 
				
			||||||
@ -56,11 +56,8 @@ subroutine decode0(dd,ss,savg,nstandalone)
 | 
				
			|||||||
       mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift,          &
 | 
					       mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift,          &
 | 
				
			||||||
       nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid,                 &
 | 
					       nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid,                 &
 | 
				
			||||||
       neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample,             &
 | 
					       neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample,             &
 | 
				
			||||||
       ndiskdat,nxpol,nmode,ndop00,ncand)
 | 
					       ndiskdat,nxpol,nmode,ndop00)
 | 
				
			||||||
  call timer('map65a  ',1)
 | 
					  call timer('map65a  ',1)
 | 
				
			||||||
 | 
					 | 
				
			||||||
  if(nhsym.eq.nhsym2) write(*,1012) ndecodes,ncand
 | 
					 | 
				
			||||||
1012 format('<DecodeFinished>',2i4)
 | 
					 | 
				
			||||||
  flush(6)
 | 
					  flush(6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return
 | 
					  return
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
     mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift,             &
 | 
					     mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift,             &
 | 
				
			||||||
     nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid,                    &
 | 
					     nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid,                    &
 | 
				
			||||||
     neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample,                &
 | 
					     neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample,                &
 | 
				
			||||||
     ndiskdat,nxpol,nmode,ndop00,ncand)
 | 
					     ndiskdat,nxpol,nmode,ndop00)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
!  Processes timf2 data from Linrad to find and decode JT65 and Q65 signals.
 | 
					!  Processes timf2 data from Linrad to find and decode JT65 and Q65 signals.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -30,11 +30,11 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
  real short(3,NFFT)                 !SNR dt ipol for potential shorthands
 | 
					  real short(3,NFFT)                 !SNR dt ipol for potential shorthands
 | 
				
			||||||
  real qphi(12)
 | 
					  real qphi(12)
 | 
				
			||||||
  type(candidate) :: cand(MAX_CANDIDATES)
 | 
					  type(candidate) :: cand(MAX_CANDIDATES)
 | 
				
			||||||
  
 | 
					  character*60 result
 | 
				
			||||||
 | 
					  common/decodes/ndecodes,ncand,result(50)
 | 
				
			||||||
  common/c3com/ mcall3a
 | 
					  common/c3com/ mcall3a
 | 
				
			||||||
  common/testcom/ifreq
 | 
					  common/testcom/ifreq
 | 
				
			||||||
  common/early/nhsym1,nhsym2,ldecoded(32768)
 | 
					  common/early/nhsym1,nhsym2,ldecoded(32768)
 | 
				
			||||||
  common/decodes/ndecodes
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  data blank/'                      '/,cm/'#'/
 | 
					  data blank/'                      '/,cm/'#'/
 | 
				
			||||||
  data shmsg0/'ATT','RO ','RRR','73 '/
 | 
					  data shmsg0/'ATT','RO ','RRR','73 '/
 | 
				
			||||||
@ -42,7 +42,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
				
			|||||||
  save
 | 
					  save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rewind 12
 | 
					  rewind 12
 | 
				
			||||||
  ndecodes=0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
! Clean start for Q65 at early decode
 | 
					! Clean start for Q65 at early decode
 | 
				
			||||||
  if(nhsym.eq.nhsym1 .or. nagain.ne.0) ldecoded=.false.
 | 
					  if(nhsym.eq.nhsym1 .or. nagain.ne.0) ldecoded=.false.
 | 
				
			||||||
 | 
				
			|||||||
@ -33,9 +33,10 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, &
 | 
				
			|||||||
  character*80 line
 | 
					  character*80 line
 | 
				
			||||||
  character*80 wsjtx_dir
 | 
					  character*80 wsjtx_dir
 | 
				
			||||||
  character*1 cp,cmode*2
 | 
					  character*1 cp,cmode*2
 | 
				
			||||||
 | 
					  character*60 result
 | 
				
			||||||
 | 
					  common/decodes/ndecodes,ncand,result(50)
 | 
				
			||||||
  common/cacb/ca,cb
 | 
					  common/cacb/ca,cb
 | 
				
			||||||
  common/early/nhsym1,nhsym2,ldecoded(32768)
 | 
					  common/early/nhsym1,nhsym2,ldecoded(32768)
 | 
				
			||||||
  common/decodes/ndecodes
 | 
					 | 
				
			||||||
  data nutc00/-1/,msg00/'                            '/
 | 
					  data nutc00/-1/,msg00/'                            '/
 | 
				
			||||||
  save
 | 
					  save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -189,10 +190,13 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, &
 | 
				
			|||||||
        freq1_00=freq1
 | 
					        freq1_00=freq1
 | 
				
			||||||
        frx=0.001*k0*df+nkhz_center-48.0+1.0 - 0.001*nfcal
 | 
					        frx=0.001*k0*df+nkhz_center-48.0+1.0 - 0.001*nfcal
 | 
				
			||||||
        fsked=frx - 0.001*ndop00/2.0 - 1.5
 | 
					        fsked=frx - 0.001*ndop00/2.0 - 1.5
 | 
				
			||||||
 | 
					        write(result(ndecodes),1120) nutc,fsked,xdt0,nsnr0,trim(msg0)
 | 
				
			||||||
        write(12,1120) nutc,fsked,xdt0,nsnr0,trim(msg0)
 | 
					        write(12,1120) nutc,fsked,xdt0,nsnr0,trim(msg0)
 | 
				
			||||||
1120    format(i4.4,f9.3,f7.2,i5,2x,a,i6)
 | 
					1120    format(i4.4,f9.3,f7.2,i5,2x,a,i6)
 | 
				
			||||||
        write(*,1121) nutc,fsked,xdt0,nsnr0,trim(msg0)
 | 
					!        print*,ndecodes,result(ndecodes)
 | 
				
			||||||
1121    format('~',i4.4,f9.3,f7.2,i5,2x,a,i6)
 | 
					        result(ndecodes)=trim(result(ndecodes))//char(0)
 | 
				
			||||||
 | 
					!        write(*,1121) nutc,fsked,xdt0,nsnr0,trim(msg0)
 | 
				
			||||||
 | 
					!1121    format('~',i4.4,f9.3,f7.2,i5,2x,a,i6)
 | 
				
			||||||
     endif
 | 
					     endif
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
				
			|||||||
@ -75,7 +75,7 @@ MainWindow::MainWindow(QWidget *parent) :
 | 
				
			|||||||
  connect(&soundInThread, SIGNAL(status(QString)), this, SLOT(showStatusMessage(QString)));
 | 
					  connect(&soundInThread, SIGNAL(status(QString)), this, SLOT(showStatusMessage(QString)));
 | 
				
			||||||
  createStatusBar();
 | 
					  createStatusBar();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  connect(&proc_m65, SIGNAL(readyReadStandardOutput()), this, SLOT(readFromStdout()));
 | 
					//  connect(&proc_m65, SIGNAL(readyReadStandardOutput()), this, SLOT(readFromStdout()));
 | 
				
			||||||
  connect(&proc_m65, &QProcess::errorOccurred, this, &MainWindow::m65_error);
 | 
					  connect(&proc_m65, &QProcess::errorOccurred, this, &MainWindow::m65_error);
 | 
				
			||||||
  connect(&proc_m65, static_cast<void (QProcess::*) (int, QProcess::ExitStatus)> (&QProcess::finished),
 | 
					  connect(&proc_m65, static_cast<void (QProcess::*) (int, QProcess::ExitStatus)> (&QProcess::finished),
 | 
				
			||||||
          [this] (int exitCode, QProcess::ExitStatus status) {
 | 
					          [this] (int exitCode, QProcess::ExitStatus status) {
 | 
				
			||||||
@ -499,8 +499,6 @@ void MainWindow::dataSink(int k)
 | 
				
			|||||||
    n=0;
 | 
					    n=0;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//  qDebug() << "aa" << ihsym << k << px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if(ihsym==302) {   //Decode at t=56 s (for Q65 and data from disk)
 | 
					  if(ihsym==302) {   //Decode at t=56 s (for Q65 and data from disk)
 | 
				
			||||||
    m_RxState=2;
 | 
					    m_RxState=2;
 | 
				
			||||||
    datcom_.newdat=1;
 | 
					    datcom_.newdat=1;
 | 
				
			||||||
@ -861,6 +859,10 @@ void MainWindow::decoderFinished()                      //diskWriteFinished
 | 
				
			|||||||
  m_startAnother=m_loopall;
 | 
					  m_startAnother=m_loopall;
 | 
				
			||||||
  ui->DecodeButton->setStyleSheet("");
 | 
					  ui->DecodeButton->setStyleSheet("");
 | 
				
			||||||
  decodeBusy(false);
 | 
					  decodeBusy(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QString t1;
 | 
				
			||||||
 | 
					  t1=t1.asprintf(" %3d/%d  ",decodes_.ndecodes,decodes_.ncand);
 | 
				
			||||||
 | 
					  lab5->setText(t1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Delete ../save/*.tf2
 | 
					//Delete ../save/*.tf2
 | 
				
			||||||
@ -1036,6 +1038,9 @@ void MainWindow::decode()                                       //decode()
 | 
				
			|||||||
//  QFile lockFile(m_appDir + "/.lock");       // Allow m65 to start
 | 
					//  QFile lockFile(m_appDir + "/.lock");       // Allow m65 to start
 | 
				
			||||||
//  lockFile.remove();
 | 
					//  lockFile.remove();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  decodes_.ndecodes=0;
 | 
				
			||||||
 | 
					  decodes_.ncand=0;
 | 
				
			||||||
 | 
					  m_fetched=0;
 | 
				
			||||||
  int itimer=0;
 | 
					  int itimer=0;
 | 
				
			||||||
  watcher3.setFuture(QtConcurrent::run (std::bind (m65c_, &itimer)));
 | 
					  watcher3.setFuture(QtConcurrent::run (std::bind (m65c_, &itimer)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1070,6 +1075,7 @@ void MainWindow::m65_error (QProcess::ProcessError)
 | 
				
			|||||||
  QTimer::singleShot (0, this, SLOT (close ()));
 | 
					  QTimer::singleShot (0, this, SLOT (close ()));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
void MainWindow::readFromStdout()                             //readFromStdout
 | 
					void MainWindow::readFromStdout()                             //readFromStdout
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  while(proc_m65.canReadLine())
 | 
					  while(proc_m65.canReadLine())
 | 
				
			||||||
@ -1099,6 +1105,7 @@ void MainWindow::readFromStdout()                             //readFromStdout
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::on_EraseButton_clicked()
 | 
					void MainWindow::on_EraseButton_clicked()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -1140,8 +1147,16 @@ void MainWindow::guiUpdate()
 | 
				
			|||||||
    on_actionOpen_next_in_directory_triggered();
 | 
					    on_actionOpen_next_in_directory_triggered();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(decodes_.ndecodes>m_fetched) {
 | 
				
			||||||
 | 
					    while(m_fetched<decodes_.ndecodes) {
 | 
				
			||||||
 | 
					      QString t=QString::fromLatin1(decodes_.result[m_fetched]);
 | 
				
			||||||
 | 
					      ui->decodedTextBrowser->append(t.trimmed());
 | 
				
			||||||
 | 
					      m_fetched++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if(nsec != m_sec0) {                                     //Once per second
 | 
					  if(nsec != m_sec0) {                                     //Once per second
 | 
				
			||||||
//    qDebug() << "AAA" << nsec%60 << m_TRperiod;
 | 
					//    qDebug() << "AAA" << nsec%60 << decodes_.ndecodes << decodes_.ncand;
 | 
				
			||||||
    soundInThread.setForceCenterFreqMHz(m_wide_graph_window->m_dForceCenterFreq);
 | 
					    soundInThread.setForceCenterFreqMHz(m_wide_graph_window->m_dForceCenterFreq);
 | 
				
			||||||
    soundInThread.setForceCenterFreqBool(m_wide_graph_window->m_bForceCenterFreq);
 | 
					    soundInThread.setForceCenterFreqBool(m_wide_graph_window->m_bForceCenterFreq);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -44,7 +44,7 @@ public slots:
 | 
				
			|||||||
  void diskWriteFinished();
 | 
					  void diskWriteFinished();
 | 
				
			||||||
  void decoderFinished();
 | 
					  void decoderFinished();
 | 
				
			||||||
  void freezeDecode(int n);
 | 
					  void freezeDecode(int n);
 | 
				
			||||||
  void readFromStdout();
 | 
					//  void readFromStdout();
 | 
				
			||||||
  void m65_error (QProcess::ProcessError);
 | 
					  void m65_error (QProcess::ProcessError);
 | 
				
			||||||
  void guiUpdate();
 | 
					  void guiUpdate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -133,6 +133,7 @@ private:
 | 
				
			|||||||
  qint32  m_modeQ65;
 | 
					  qint32  m_modeQ65;
 | 
				
			||||||
  qint32  m_RxState;
 | 
					  qint32  m_RxState;
 | 
				
			||||||
  qint32  m_dB;
 | 
					  qint32  m_dB;
 | 
				
			||||||
 | 
					  qint32  m_fetched=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  double  m_fAdd;
 | 
					  double  m_fAdd;
 | 
				
			||||||
  double  m_xavg;
 | 
					  double  m_xavg;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user