mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Progress toward decoding at 41/47/50 buffers. Not yet complete!
This commit is contained in:
		
							parent
							
								
									6773768586
								
							
						
					
					
						commit
						431ec50212
					
				@ -277,12 +277,12 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
 | 
				
			|||||||
! JT65 is not yet producing info for nsynced, ndecoded.
 | 
					! JT65 is not yet producing info for nsynced, ndecoded.
 | 
				
			||||||
800 ndecoded = my_jt4%decoded + my_jt65%decoded + my_jt9%decoded +       &
 | 
					800 ndecoded = my_jt4%decoded + my_jt65%decoded + my_jt9%decoded +       &
 | 
				
			||||||
         my_ft8%decoded + my_ft4%decoded
 | 
					         my_ft8%decoded + my_ft4%decoded
 | 
				
			||||||
  if(params%nmode.eq.8 .and. params%nzhsym.lt.48) ndec8=ndec8+ndecoded
 | 
					  if(params%nmode.eq.8 .and. params%nzhsym.eq.41) ndec41=ndecoded
 | 
				
			||||||
  if(params%nmode.eq.8 .and. params%nzhsym.ge.48) then
 | 
					  if(params%nmode.eq.8 .and. params%nzhsym.eq.47) ndec47=ndecoded
 | 
				
			||||||
     ndecoded=ndec8+ndecoded
 | 
					  if(params%nmode.eq.8 .and. params%nzhsym.eq.50) then
 | 
				
			||||||
     ndec8=0
 | 
					     ndecoded=ndec41+ndec47+ndecoded
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  if(params%nmode.ne.8 .or. params%nzhsym.ge.48 .or.                     &
 | 
					  if(params%nmode.ne.8 .or. params%nzhsym.eq.50 .or.                     &
 | 
				
			||||||
       .not.params%ndiskdat) then
 | 
					       .not.params%ndiskdat) then
 | 
				
			||||||
     write(*,1010) nsynced,ndecoded
 | 
					     write(*,1010) nsynced,ndecoded
 | 
				
			||||||
1010 format('<DecodeFinished>',2i4)
 | 
					1010 format('<DecodeFinished>',2i4)
 | 
				
			||||||
 | 
				
			|||||||
@ -436,9 +436,6 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon,     &
 | 
				
			|||||||
        call subtractft8(dd0,itone,f1,xdt,.false.)
 | 
					        call subtractft8(dd0,itone,f1,xdt,.false.)
 | 
				
			||||||
        call timer('sub_ft8b',1)
 | 
					        call timer('sub_ft8b',1)
 | 
				
			||||||
     endif
 | 
					     endif
 | 
				
			||||||
!     write(21,3001) nzhsym,npasses,nqsoprogress,ipass,iaptype,lsubtract,   &
 | 
					 | 
				
			||||||
!          f1,xdt,msg37(1:22); flush(21)
 | 
					 | 
				
			||||||
!3001 format(5i3,L3,f7.1,f9.4,2x,a22)
 | 
					 | 
				
			||||||
     xsig=0.0
 | 
					     xsig=0.0
 | 
				
			||||||
     xnoi=0.0
 | 
					     xnoi=0.0
 | 
				
			||||||
     do i=1,79
 | 
					     do i=1,79
 | 
				
			||||||
 | 
				
			|||||||
@ -68,14 +68,15 @@ contains
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    call ft8apset(mycall12,hiscall12,ncontest,apsym2,aph10)
 | 
					    call ft8apset(mycall12,hiscall12,ncontest,apsym2,aph10)
 | 
				
			||||||
    dd=iwave
 | 
					    dd=iwave
 | 
				
			||||||
    if(nzhsym.lt.50) then
 | 
					    if(nzhsym.eq.41) then
 | 
				
			||||||
       ndecodes=0
 | 
					       ndecodes=0
 | 
				
			||||||
       allmessages='                                     '
 | 
					       allmessages='                                     '
 | 
				
			||||||
       allsnrs=0
 | 
					       allsnrs=0
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
       ndecodes=ndec_early
 | 
					       ndecodes=ndec_early
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if(nzhsym.eq.50 .and. ndec_early.ge.1) then
 | 
					    if(nzhsym.gt.41 .and. ndec_early.ge.1) then
 | 
				
			||||||
 | 
					!       print*,'AAA',nzhsym,ndec_early
 | 
				
			||||||
       call timer('sub_ft8a',0)
 | 
					       call timer('sub_ft8a',0)
 | 
				
			||||||
       do i=1,ndec_early
 | 
					       do i=1,ndec_early
 | 
				
			||||||
          call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.)
 | 
					          call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.)
 | 
				
			||||||
@ -156,6 +157,7 @@ contains
 | 
				
			|||||||
   enddo
 | 
					   enddo
 | 
				
			||||||
   ndec_early=0
 | 
					   ndec_early=0
 | 
				
			||||||
   if(nzhsym.lt.50) ndec_early=ndecodes
 | 
					   if(nzhsym.lt.50) ndec_early=ndecodes
 | 
				
			||||||
 | 
					!   print*,'BBB',nzhsym,ndecodes
 | 
				
			||||||
   
 | 
					   
 | 
				
			||||||
  return
 | 
					  return
 | 
				
			||||||
end subroutine decode
 | 
					end subroutine decode
 | 
				
			||||||
 | 
				
			|||||||
@ -303,7 +303,7 @@ program jt9
 | 
				
			|||||||
     shared_data%params%datetime=transfer(datetime,shared_data%params%datetime)
 | 
					     shared_data%params%datetime=transfer(datetime,shared_data%params%datetime)
 | 
				
			||||||
     if(mode.eq.9 .and. fsplit.ne.2700) shared_data%params%nfa=fsplit
 | 
					     if(mode.eq.9 .and. fsplit.ne.2700) shared_data%params%nfa=fsplit
 | 
				
			||||||
     if(mode.eq.8) then
 | 
					     if(mode.eq.8) then
 | 
				
			||||||
! "Early" decoding pass, FT8 only
 | 
					! "Early" decoding pass, FT8 only, when jt9 reads data from disk
 | 
				
			||||||
        nearly=41
 | 
					        nearly=41
 | 
				
			||||||
        shared_data%params%nzhsym=nearly
 | 
					        shared_data%params%nzhsym=nearly
 | 
				
			||||||
        id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
 | 
					        id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
 | 
				
			||||||
 | 
				
			|||||||
@ -63,12 +63,17 @@ subroutine jt9a()
 | 
				
			|||||||
  call flush(6)
 | 
					  call flush(6)
 | 
				
			||||||
  call timer('decoder ',0)
 | 
					  call timer('decoder ',0)
 | 
				
			||||||
  if(local_params%nmode.eq.8 .and. local_params%ndiskdat) then
 | 
					  if(local_params%nmode.eq.8 .and. local_params%ndiskdat) then
 | 
				
			||||||
! "Early" decoding pass for data read from disk: FT8 only
 | 
					! Early decoding pass, FT8 only, when wsjtx reads from disk
 | 
				
			||||||
     nearly=41
 | 
					     nearly=41
 | 
				
			||||||
     local_params%nzhsym=nearly
 | 
					     local_params%nzhsym=nearly
 | 
				
			||||||
     id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
 | 
					     id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
 | 
				
			||||||
     id2a(nearly*3456+1:)=0
 | 
					     id2a(nearly*3456+1:)=0
 | 
				
			||||||
     call multimode_decoder(shared_data%ss,id2a,local_params,12000)
 | 
					     call multimode_decoder(shared_data%ss,id2a,local_params,12000)
 | 
				
			||||||
 | 
					     nearly=47
 | 
				
			||||||
 | 
					     local_params%nzhsym=nearly
 | 
				
			||||||
 | 
					     id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
 | 
				
			||||||
 | 
					     id2a(nearly*3456+1:)=0
 | 
				
			||||||
 | 
					     call multimode_decoder(shared_data%ss,id2a,local_params,12000)
 | 
				
			||||||
     local_params%nzhsym=50
 | 
					     local_params%nzhsym=50
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
! Normal decoding pass
 | 
					! Normal decoding pass
 | 
				
			||||||
 | 
				
			|||||||
@ -1411,7 +1411,8 @@ void MainWindow::dataSink(qint64 frames)
 | 
				
			|||||||
    m_dialFreqRxWSPR=m_freqNominal;
 | 
					    m_dialFreqRxWSPR=m_freqNominal;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if(m_ihsym==m_hsymStop or (m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData)) {
 | 
					  if(m_ihsym==m_hsymStop or (m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) or
 | 
				
			||||||
 | 
					     (m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData)) {
 | 
				
			||||||
    if(m_mode=="Echo") {
 | 
					    if(m_mode=="Echo") {
 | 
				
			||||||
      float snr=0;
 | 
					      float snr=0;
 | 
				
			||||||
      int nfrit=0;
 | 
					      int nfrit=0;
 | 
				
			||||||
@ -1449,10 +1450,11 @@ void MainWindow::dataSink(qint64 frames)
 | 
				
			|||||||
    dec_data.params.nagain=0;
 | 
					    dec_data.params.nagain=0;
 | 
				
			||||||
    dec_data.params.nzhsym=m_hsymStop;
 | 
					    dec_data.params.nzhsym=m_hsymStop;
 | 
				
			||||||
    if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) dec_data.params.nzhsym=m_earlyDecode;
 | 
					    if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) dec_data.params.nzhsym=m_earlyDecode;
 | 
				
			||||||
 | 
					    if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) dec_data.params.nzhsym=m_earlyDecode2;
 | 
				
			||||||
    QDateTime now {QDateTime::currentDateTimeUtc ()};
 | 
					    QDateTime now {QDateTime::currentDateTimeUtc ()};
 | 
				
			||||||
    m_dateTime = now.toString ("yyyy-MMM-dd hh:mm");
 | 
					    m_dateTime = now.toString ("yyyy-MMM-dd hh:mm");
 | 
				
			||||||
    if(!m_mode.startsWith ("WSPR")) decode(); //Start decoder
 | 
					    if(!m_mode.startsWith ("WSPR")) decode(); //Start decoder
 | 
				
			||||||
    if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) return;
 | 
					    if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(!m_diskData) {                        //Always save; may delete later
 | 
					    if(!m_diskData) {                        //Always save; may delete later
 | 
				
			||||||
      if(m_mode=="FT8" or m_mode=="FT4") {
 | 
					      if(m_mode=="FT8" or m_mode=="FT4") {
 | 
				
			||||||
@ -2845,6 +2847,7 @@ void MainWindow::decode()                                       //decode()
 | 
				
			|||||||
      if(m_mode=="FT4") ms=1000.0*(2.0-m_TRperiod);
 | 
					      if(m_mode=="FT4") ms=1000.0*(2.0-m_TRperiod);
 | 
				
			||||||
      //Adjust for FT8 early decode:
 | 
					      //Adjust for FT8 early decode:
 | 
				
			||||||
      if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288;
 | 
					      if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288;
 | 
				
			||||||
 | 
					      if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288;
 | 
				
			||||||
      QDateTime t=QDateTime::currentDateTimeUtc().addMSecs(ms);
 | 
					      QDateTime t=QDateTime::currentDateTimeUtc().addMSecs(ms);
 | 
				
			||||||
      ihr=t.toString("hh").toInt();
 | 
					      ihr=t.toString("hh").toInt();
 | 
				
			||||||
      imin=t.toString("mm").toInt();
 | 
					      imin=t.toString("mm").toInt();
 | 
				
			||||||
@ -3045,14 +3048,16 @@ void MainWindow::decodeDone ()
 | 
				
			|||||||
  m_RxLog=0;
 | 
					  m_RxLog=0;
 | 
				
			||||||
  m_blankLine=true;
 | 
					  m_blankLine=true;
 | 
				
			||||||
  if(m_mode=="FT8" and dec_data.params.nzhsym==m_earlyDecode) m_blankLine=false;
 | 
					  if(m_mode=="FT8" and dec_data.params.nzhsym==m_earlyDecode) m_blankLine=false;
 | 
				
			||||||
 | 
					  if(m_mode=="FT8" and dec_data.params.nzhsym==m_earlyDecode2) m_blankLine=false;
 | 
				
			||||||
  if(SpecOp::FOX == m_config.special_op_id()) houndCallers();
 | 
					  if(SpecOp::FOX == m_config.special_op_id()) houndCallers();
 | 
				
			||||||
 | 
					  qDebug() << "cc" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") << "decodeDone()";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::readFromStdout()                             //readFromStdout
 | 
					void MainWindow::readFromStdout()                             //readFromStdout
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  while(proc_jt9.canReadLine()) {
 | 
					  while(proc_jt9.canReadLine()) {
 | 
				
			||||||
    auto line_read = proc_jt9.readLine ();
 | 
					    auto line_read = proc_jt9.readLine ();
 | 
				
			||||||
//    qDebug() << "cc" << line_read;
 | 
					//    qDebug() << "aa" << line_read;
 | 
				
			||||||
    if (auto p = std::strpbrk (line_read.constData (), "\n\r"))
 | 
					    if (auto p = std::strpbrk (line_read.constData (), "\n\r"))
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        // truncate before line ending chars
 | 
					        // truncate before line ending chars
 | 
				
			||||||
@ -3066,6 +3071,7 @@ void MainWindow::readFromStdout()                             //readFromStdout
 | 
				
			|||||||
    bool bAvgMsg=false;
 | 
					    bool bAvgMsg=false;
 | 
				
			||||||
    int navg=0;
 | 
					    int navg=0;
 | 
				
			||||||
    if(line_read.indexOf("<DecodeFinished>") >= 0) {
 | 
					    if(line_read.indexOf("<DecodeFinished>") >= 0) {
 | 
				
			||||||
 | 
					//      qDebug() << "bb" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") << line_read;
 | 
				
			||||||
      if(m_mode=="QRA64") m_wideGraph->drawRed(0,0);
 | 
					      if(m_mode=="QRA64") m_wideGraph->drawRed(0,0);
 | 
				
			||||||
      m_bDecoded = line_read.mid(20).trimmed().toInt() > 0;
 | 
					      m_bDecoded = line_read.mid(20).trimmed().toInt() > 0;
 | 
				
			||||||
      int mswait=750.0*m_TRperiod;
 | 
					      int mswait=750.0*m_TRperiod;
 | 
				
			||||||
 | 
				
			|||||||
@ -468,6 +468,7 @@ private:
 | 
				
			|||||||
  qint32  m_nSentFoxRrpt=0;    //Serial number for next R+rpt Hound will send to Fox
 | 
					  qint32  m_nSentFoxRrpt=0;    //Serial number for next R+rpt Hound will send to Fox
 | 
				
			||||||
  qint32  m_kin0=0;
 | 
					  qint32  m_kin0=0;
 | 
				
			||||||
  qint32  m_earlyDecode=41;
 | 
					  qint32  m_earlyDecode=41;
 | 
				
			||||||
 | 
					  qint32  m_earlyDecode2=47;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool    m_btxok;		//True if OK to transmit
 | 
					  bool    m_btxok;		//True if OK to transmit
 | 
				
			||||||
  bool    m_diskData;
 | 
					  bool    m_diskData;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user