mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Allow Fox to work Hounds with compound calls. Needs more testing!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8650 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									242cc9c6ab
								
							
						
					
					
						commit
						1f9b538232
					
				@ -453,7 +453,7 @@ contains
 | 
			
		||||
    real, intent(in) :: dt
 | 
			
		||||
    real, intent(in) :: freq
 | 
			
		||||
    character(len=37), intent(in) :: decoded
 | 
			
		||||
    character c1*12,c2*6,g2*4,w*4,ctmp*12
 | 
			
		||||
    character c1*12,c2*12,g2*4,w*4,ctmp*12
 | 
			
		||||
    integer i0,i1,i2,i3,i4,i5,i6,n30,nwrap
 | 
			
		||||
    integer, intent(in) :: nap 
 | 
			
		||||
    real, intent(in) :: qual 
 | 
			
		||||
@ -504,13 +504,7 @@ contains
 | 
			
		||||
       c2=decoded0(i1+1:i2-1)
 | 
			
		||||
       g2=decoded0(i2+1:i3-1)
 | 
			
		||||
       b0=c1.eq.params%mycall
 | 
			
		||||
       ctmp=decoded0(i1+1:i2-1)
 | 
			
		||||
       i6=index(ctmp,'/')
 | 
			
		||||
       if(c1(1:3).eq.'DE ' .or. i6.gt.0) then
 | 
			
		||||
          b0=.true.
 | 
			
		||||
          if(i6.ge.2 .and. i6.lt.len(trim(ctmp))/2) c2=ctmp(i6+1:)
 | 
			
		||||
          if(i6.ge.len(trim(ctmp))/2) c2=ctmp(:i6-1)
 | 
			
		||||
       endif
 | 
			
		||||
       if(c1(1:3).eq.'DE ' .and. index(c2,'/').ge.2) b0=.true.
 | 
			
		||||
       if(len(trim(c1)).ne.len(trim(params%mycall))) then
 | 
			
		||||
          i4=index(trim(c1),trim(params%mycall))
 | 
			
		||||
          i5=index(trim(params%mycall),trim(c1))
 | 
			
		||||
 | 
			
		||||
@ -7481,7 +7481,7 @@ void MainWindow::selectHound(QString line)
 | 
			
		||||
  QString t2=rpt;
 | 
			
		||||
  if(rpt.mid(0,1) != "-" and rpt.mid(0,1) != "+") t2="+" + rpt;
 | 
			
		||||
  if(t2.length()==2) t2=t2.mid(0,1) + "0" + t2.mid(1,1);
 | 
			
		||||
  t1=t1.mid(0,7) + t2;
 | 
			
		||||
  t1=t1.mid(0,12) + t2;
 | 
			
		||||
  ui->textBrowser4->displayFoxToBeCalled(t1,"#ffffff");  // Add hound call and rpt to tb4
 | 
			
		||||
  t1=t1 + " " + houndGrid;                               // Append the grid
 | 
			
		||||
  m_houndQueue.enqueue(t1);                              // Put this hound into the queue
 | 
			
		||||
@ -7513,7 +7513,8 @@ void MainWindow::houndCallers()
 | 
			
		||||
    while(!s.atEnd()) {
 | 
			
		||||
      line=s.readLine();
 | 
			
		||||
      nTotal++;
 | 
			
		||||
      houndCall=line.mid(0,6).trimmed();
 | 
			
		||||
      int i0=line.indexOf(" ");
 | 
			
		||||
      houndCall=line.mid(0,i0);
 | 
			
		||||
      paddedHoundCall=houndCall + " ";
 | 
			
		||||
      //Don't list a hound already in the queue
 | 
			
		||||
      if(!ui->textBrowser4->toPlainText().contains(paddedHoundCall)) {
 | 
			
		||||
@ -7662,7 +7663,8 @@ list1Done:
 | 
			
		||||
  while(!m_houndQueue.isEmpty()) {
 | 
			
		||||
    //Start QSO with a new Hound
 | 
			
		||||
    t=m_houndQueue.dequeue();             //Fetch new hound from queue
 | 
			
		||||
    hc=t.mid(0,6).trimmed();              //hound call
 | 
			
		||||
    int i0=t.indexOf(" ");
 | 
			
		||||
    hc=t.mid(0,i0);                       //hound call
 | 
			
		||||
    list2 << hc;                          //Add new Hound to list2
 | 
			
		||||
    m_foxQSOinProgress.enqueue(hc);       //Put him in the QSO queue
 | 
			
		||||
    m_foxQSO[hc].grid=t.mid(11,4);        //hound grid
 | 
			
		||||
@ -7687,12 +7689,15 @@ list2Done:
 | 
			
		||||
    fm="";
 | 
			
		||||
    if(i<n1 and i<n2) {
 | 
			
		||||
      hc1=list1.at(i);
 | 
			
		||||
      if(hc1.indexOf("/")>0) hc1=Radio::base_callsign(hc1);
 | 
			
		||||
      hc2=list2.at(i);
 | 
			
		||||
      if(hc2.indexOf("/")>0) hc2=Radio::base_callsign(hc2);
 | 
			
		||||
      m_foxQSO[hc2].ncall++;
 | 
			
		||||
      fm = hc1 + " RR73; " + hc2 + " <" + m_config.my_callsign() + "> " + m_foxQSO[hc2].sent;
 | 
			
		||||
    }
 | 
			
		||||
    if(i<n1 and i>=n2) {
 | 
			
		||||
      hc1=list1.at(i);
 | 
			
		||||
      if(hc1.indexOf("/")>0) hc1=Radio::base_callsign(hc1);
 | 
			
		||||
      fm = hc1 + " " + m_baseCall + " RR73";                 //Standard FT8 message
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -7716,6 +7721,7 @@ list2Done:
 | 
			
		||||
 | 
			
		||||
    if(i<n2 and fm=="") {
 | 
			
		||||
      hc2=list2.at(i);
 | 
			
		||||
      if(hc2.indexOf("/")>0) hc2=Radio::base_callsign(hc2);
 | 
			
		||||
      m_foxQSO[hc2].ncall++;
 | 
			
		||||
      fm = hc2 + " " + m_baseCall + " " + m_foxQSO[hc2].sent; //Standard FT8 message
 | 
			
		||||
    }
 | 
			
		||||
@ -7752,9 +7758,6 @@ Transmit:
 | 
			
		||||
    bool b3=(m_foxQSO[hc].ncall >= m_maxStrikes+m_maxFoxWait);
 | 
			
		||||
    bool b4=(m_foxQSO[hc].nRR73 >= m_maxStrikes);
 | 
			
		||||
    if(b1 or b2 or b3 or b4) {
 | 
			
		||||
//      qDebug() << m_tFoxTx << "Rem:" << hc << m_foxQSO[hc].tFoxRrpt
 | 
			
		||||
//               << m_foxQSO[hc].tFoxTxRR73 << m_foxQSO[hc].ncall << m_foxQSO[hc].nRR73
 | 
			
		||||
//               << m_maxFoxWait << b1 << b2 << b3 << b4;
 | 
			
		||||
      m_foxQSO.remove(hc);
 | 
			
		||||
      m_foxQSOinProgress.removeOne(hc);
 | 
			
		||||
    }
 | 
			
		||||
@ -7912,7 +7915,6 @@ void MainWindow::foxTest()
 | 
			
		||||
                m_foxQSOinProgress.count(),m_foxQSO.count(),
 | 
			
		||||
                m_loggedByFox.count(),m_tFoxTx);
 | 
			
		||||
      sdiag << t << line.mid(37).trimmed() << "\n";
 | 
			
		||||
      //    qDebug() << "aa " << t << line.mid(37).trimmed();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user