mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Fix a number of minor bugs in FT8 DXpedition mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8340 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									28c9bde5a5
								
							
						
					
					
						commit
						8f7ca2851c
					
				@ -1,6 +1,6 @@
 | 
				
			|||||||
subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,           &
 | 
					subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,   &
 | 
				
			||||||
     napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,bcontest,sync0,f1,xdt,xbase,   &
 | 
					     napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,hiscall12,bcontest,    &
 | 
				
			||||||
     apsym,nharderrors,dmin,nbadcrc,ipass,iera,msg32,xsnr)  
 | 
					     sync0,f1,xdt,xbase,apsym,nharderrors,dmin,nbadcrc,ipass,iera,msg32,xsnr)  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  use crc
 | 
					  use crc
 | 
				
			||||||
  use timer_module, only: timer
 | 
					  use timer_module, only: timer
 | 
				
			||||||
@ -8,8 +8,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
 | 
				
			|||||||
  parameter(NRECENT=10,NP2=2812)
 | 
					  parameter(NRECENT=10,NP2=2812)
 | 
				
			||||||
  character*32 msg32
 | 
					  character*32 msg32
 | 
				
			||||||
  character message*22,msgsent*22
 | 
					  character message*22,msgsent*22
 | 
				
			||||||
  character*12 mycall12,recent_calls(NRECENT)
 | 
					  character*12 mycall12,hiscall12,recent_calls(NRECENT)
 | 
				
			||||||
  character*6 mycall6,mygrid6,c1,c2
 | 
					  character*6 mycall6,mygrid6,hiscall6,c1,c2
 | 
				
			||||||
  character*87 cbits
 | 
					  character*87 cbits
 | 
				
			||||||
  logical bcontest
 | 
					  logical bcontest
 | 
				
			||||||
  real a(5)
 | 
					  real a(5)
 | 
				
			||||||
@ -25,9 +25,9 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
 | 
				
			|||||||
  integer itone(NN)
 | 
					  integer itone(NN)
 | 
				
			||||||
  integer indxs1(8*ND)
 | 
					  integer indxs1(8*ND)
 | 
				
			||||||
  integer icos7(0:6),ip(1)
 | 
					  integer icos7(0:6),ip(1)
 | 
				
			||||||
  integer nappasses(0:5)  ! the number of decoding passes to use for each QSO state
 | 
					  integer nappasses(0:5)  !Number of decoding passes to use for each QSO state
 | 
				
			||||||
  integer naptypes(0:5,4) ! (nQSOProgress, decoding pass)  maximum of 4 passes for now
 | 
					  integer naptypes(0:5,4) ! (nQSOProgress, decoding pass)  maximum of 4 passes for now
 | 
				
			||||||
  integer*1, target:: i1mycall(6)
 | 
					  integer*1, target:: i1hiscall(6)
 | 
				
			||||||
  complex cd0(3200)
 | 
					  complex cd0(3200)
 | 
				
			||||||
  complex ctwk(32)
 | 
					  complex ctwk(32)
 | 
				
			||||||
  complex csymb(32)
 | 
					  complex csymb(32)
 | 
				
			||||||
@ -398,11 +398,11 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
 | 
				
			|||||||
        if(xsnr .lt. -24.0) xsnr=-24.0
 | 
					        if(xsnr .lt. -24.0) xsnr=-24.0
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        if(i3bit.eq.1) then
 | 
					        if(i3bit.eq.1) then
 | 
				
			||||||
           mycall6=mycall12(1:6)
 | 
					           hiscall6=hiscall12(1:6)
 | 
				
			||||||
           do i=1,6
 | 
					           do i=1,6
 | 
				
			||||||
              i1mycall(i)=ichar(mycall6(i:i))
 | 
					              i1hiscall(i)=ichar(hiscall6(i:i))
 | 
				
			||||||
           enddo
 | 
					           enddo
 | 
				
			||||||
           icrc10=crc10(c_loc(i1mycall),6)
 | 
					           icrc10=crc10(c_loc(i1hiscall),6)
 | 
				
			||||||
           write(cbits,1001) decoded
 | 
					           write(cbits,1001) decoded
 | 
				
			||||||
1001       format(87i1)
 | 
					1001       format(87i1)
 | 
				
			||||||
           read(cbits,1002) ncrc10,nrpt
 | 
					           read(cbits,1002) ncrc10,nrpt
 | 
				
			||||||
@ -412,7 +412,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
 | 
				
			|||||||
           i2=index(message(i1+1:),' ') + i1
 | 
					           i2=index(message(i1+1:),' ') + i1
 | 
				
			||||||
           c1=message(1:i1)//'   '
 | 
					           c1=message(1:i1)//'   '
 | 
				
			||||||
           c2=message(i1+1:i2)//'   '
 | 
					           c2=message(i1+1:i2)//'   '
 | 
				
			||||||
           if(ncrc10.eq.icrc10) msg32=c1//' RR73; '//c2//' <'//trim(mycall6)//'>    '
 | 
					           if(ncrc10.eq.icrc10) msg32=c1//' RR73; '//c2//' <'//         &
 | 
				
			||||||
 | 
					                trim(hiscall6)//'>    '
 | 
				
			||||||
           if(ncrc10.ne.icrc10) msg32=c1//' RR73; '//c2//' <...>    '
 | 
					           if(ncrc10.ne.icrc10) msg32=c1//' RR73; '//c2//' <...>    '
 | 
				
			||||||
           write(msg32(30:32),1010) irpt
 | 
					           write(msg32(30:32),1010) irpt
 | 
				
			||||||
1010       format(i3.2)
 | 
					1010       format(i3.2)
 | 
				
			||||||
 | 
				
			|||||||
@ -105,9 +105,10 @@ contains
 | 
				
			|||||||
        xbase=10.0**(0.1*(sbase(nint(f1/3.125))-40.0))
 | 
					        xbase=10.0**(0.1*(sbase(nint(f1/3.125))-40.0))
 | 
				
			||||||
        nsnr0=min(99,nint(10.0*log10(sync) - 25.5))    !### empirical ###
 | 
					        nsnr0=min(99,nint(10.0*log10(sync) - 25.5))    !### empirical ###
 | 
				
			||||||
        call timer('ft8b    ',0)
 | 
					        call timer('ft8b    ',0)
 | 
				
			||||||
        call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon,lapcqonly,       &
 | 
					        call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon,       &
 | 
				
			||||||
             napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,bcontest,sync,f1,xdt,  &
 | 
					             lapcqonly,napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,   &
 | 
				
			||||||
             xbase,apsym,nharderrors,dmin,nbadcrc,iappass,iera,msg32,xsnr)
 | 
					             hiscall12,bcontest,sync,f1,xdt,xbase,apsym,nharderrors,dmin,  &
 | 
				
			||||||
 | 
					             nbadcrc,iappass,iera,msg32,xsnr)
 | 
				
			||||||
        message=msg32(1:22)   !###
 | 
					        message=msg32(1:22)   !###
 | 
				
			||||||
        nsnr=nint(xsnr) 
 | 
					        nsnr=nint(xsnr) 
 | 
				
			||||||
        xdt=xdt-0.5
 | 
					        xdt=xdt-0.5
 | 
				
			||||||
 | 
				
			|||||||
@ -2933,19 +2933,21 @@ void MainWindow::readFromStdout()                             //readFromStdout
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          QStringList w=decodedtext.string().mid(24).split(" ",QString::SkipEmptyParts);
 | 
					          QStringList w=decodedtext.string().mid(24).split(" ",QString::SkipEmptyParts);
 | 
				
			||||||
          QString foxCall=w.at(1);
 | 
					          if(w.size()==3) {
 | 
				
			||||||
          if(w.at(0)==m_config.my_callsign()) {
 | 
					            QString foxCall=w.at(1);
 | 
				
			||||||
            if(w.at(2)=="RR73") {
 | 
					            if(w.at(0)==m_config.my_callsign()) {
 | 
				
			||||||
              auto_tx_mode(false);
 | 
					              if(w.at(2)=="RR73") {
 | 
				
			||||||
              on_logQSOButton_clicked();
 | 
					                auto_tx_mode(false);
 | 
				
			||||||
            } else {
 | 
					                on_logQSOButton_clicked();
 | 
				
			||||||
              int fRx=decodedtext.string().mid(15,5).toInt();
 | 
					              } else {
 | 
				
			||||||
              m_rptRcvd=w.at(2);
 | 
					                int fRx=decodedtext.string().mid(15,5).toInt();
 | 
				
			||||||
              m_rptSent=decodedtext.string().mid(7,3);
 | 
					                m_rptRcvd=w.at(2);
 | 
				
			||||||
              //### Select TX3, and set TxFreq = fRx + 350 Hz, and Force Auto ON. ###
 | 
					                m_rptSent=decodedtext.string().mid(7,3);
 | 
				
			||||||
              ui->txrb3->setChecked(true);
 | 
					                //### Select TX3, and set TxFreq = fRx + 350 Hz, and Force Auto ON. ###
 | 
				
			||||||
              ui->TxFreqSpinBox->setValue(fRx+350);
 | 
					                ui->txrb3->setChecked(true);
 | 
				
			||||||
              if(!m_auto) auto_tx_mode(true);
 | 
					                ui->TxFreqSpinBox->setValue(fRx+350);
 | 
				
			||||||
 | 
					                if(!m_auto) auto_tx_mode(true);
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -3858,6 +3860,7 @@ void MainWindow::on_txb1_clicked()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void MainWindow::on_txb1_doubleClicked()
 | 
					void MainWindow::on_txb1_doubleClicked()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  if(m_mode=="FT8" and m_config.bHound()) return;
 | 
				
			||||||
  // skip Tx1, only allowed if not a type 1 compound callsign
 | 
					  // skip Tx1, only allowed if not a type 1 compound callsign
 | 
				
			||||||
  auto const& my_callsign = m_config.my_callsign ();
 | 
					  auto const& my_callsign = m_config.my_callsign ();
 | 
				
			||||||
  auto is_compound = my_callsign != m_baseCall;
 | 
					  auto is_compound = my_callsign != m_baseCall;
 | 
				
			||||||
@ -3998,7 +4001,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
 | 
				
			|||||||
  if (message.isTX()) {
 | 
					  if (message.isTX()) {
 | 
				
			||||||
    if (!m_config.enable_VHF_features()) {
 | 
					    if (!m_config.enable_VHF_features()) {
 | 
				
			||||||
      if(!shift) ui->RxFreqSpinBox->setValue(frequency); //Set Rx freq
 | 
					      if(!shift) ui->RxFreqSpinBox->setValue(frequency); //Set Rx freq
 | 
				
			||||||
      if((ctrl or shift) and !m_holdTxFreq) ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq
 | 
					      if((ctrl or shift) and !m_holdTxFreq) {
 | 
				
			||||||
 | 
					        ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -4086,7 +4091,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
 | 
				
			|||||||
         && firstcall != m_config.my_callsign () && firstcall != m_baseCall
 | 
					         && firstcall != m_config.my_callsign () && firstcall != m_baseCall
 | 
				
			||||||
         && firstcall != "DE")
 | 
					         && firstcall != "DE")
 | 
				
			||||||
        || "CQ" == firstcall || "QRZ" == firstcall || ctrl || shift) {
 | 
					        || "CQ" == firstcall || "QRZ" == firstcall || ctrl || shift) {
 | 
				
			||||||
      if (!m_holdTxFreq or shift or ctrl) ui->TxFreqSpinBox->setValue(frequency);
 | 
					      if (!m_holdTxFreq and (shift or ctrl)) {
 | 
				
			||||||
 | 
					        ui->TxFreqSpinBox->setValue(frequency);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") &&
 | 
					      if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") &&
 | 
				
			||||||
         m_mode != "QRA64" && m_mode!="FT8") {
 | 
					         m_mode != "QRA64" && m_mode!="FT8") {
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user