mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Working on Fox-mode code. Another intermediate commit -- much still TBD.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8292 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									cac7b7c363
								
							
						
					
					
						commit
						eb9a0d5e67
					
				
							
								
								
									
										123
									
								
								mainwindow.cpp
									
									
									
									
									
								
							
							
						
						
									
										123
									
								
								mainwindow.cpp
									
									
									
									
									
								
							@ -2872,7 +2872,7 @@ void MainWindow::readFromStdout()                             //readFromStdout
 | 
			
		||||
            //          int snr=decodedtext.string().mid(6,4).toInt();
 | 
			
		||||
            m_bDoubleClicked=true;
 | 
			
		||||
            m_bAutoReply = true;
 | 
			
		||||
            processMessage (decodedtext);
 | 
			
		||||
            if(!m_config.bFox()) processMessage (decodedtext);
 | 
			
		||||
            ui->cbFirst->setStyleSheet("");
 | 
			
		||||
          } else {
 | 
			
		||||
//###            if(m_config.bFox() and for_us and (audioFreq<1000)) bDisplayRight=true;
 | 
			
		||||
@ -3534,7 +3534,7 @@ void MainWindow::guiUpdate()
 | 
			
		||||
  }
 | 
			
		||||
  m_iptt0=g_iptt;
 | 
			
		||||
  m_btxok0=m_btxok;
 | 
			
		||||
}               //End of GUIupdate
 | 
			
		||||
}               //End of guiUpdate
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void MainWindow::startTx2()
 | 
			
		||||
@ -7023,6 +7023,10 @@ void MainWindow::on_pbFoxReset_clicked()
 | 
			
		||||
{
 | 
			
		||||
  ui->textBrowser3->setText("");
 | 
			
		||||
  ui->textBrowser4->setText("");
 | 
			
		||||
  for(int i=0; i<m_Nslots; i++) {
 | 
			
		||||
    m_foxMsgSent[i]="";
 | 
			
		||||
    m_foxMsgToBeSent[i]="";
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_comboBoxHoundSort_activated(int index)
 | 
			
		||||
@ -7036,11 +7040,11 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB)
 | 
			
		||||
/* Called from "houndCallers()" to sort the list of calling stations by
 | 
			
		||||
 * specified criteria.
 | 
			
		||||
 * QString "t" contains a list of Hound callers read from file "houndcallers.txt".
 | 
			
		||||
 *    isort=0: random (shuffled) order
 | 
			
		||||
 *    isort=0: random    (shuffled order)
 | 
			
		||||
 *          1: call
 | 
			
		||||
 *          2: grid
 | 
			
		||||
 *          3: SNR (top down)
 | 
			
		||||
 *          4: distance (top down)
 | 
			
		||||
 *          3: SNR       (reverse order)
 | 
			
		||||
 *          4: distance  (reverse order)
 | 
			
		||||
*/
 | 
			
		||||
  QMap<QString,QString> map;
 | 
			
		||||
  QStringList lines,lines2;
 | 
			
		||||
@ -7209,85 +7213,94 @@ void MainWindow::houndCallers()
 | 
			
		||||
 | 
			
		||||
void MainWindow::foxRxSequencer(QString houndCall, QString houndGrid)
 | 
			
		||||
{
 | 
			
		||||
// Called from "readFromStdOut()" for decoded messages of the form "MyCall HoundCall R+rpt"
 | 
			
		||||
/* Called from "readFromStdOut()" to process decoded messages of the form
 | 
			
		||||
 * "myCall houndCall R+rpt".  If houndCall matches a callsign in one of
 | 
			
		||||
 * our active QSO slots, we prepare to send "houndCall RR73" to that caller.
 | 
			
		||||
 * If no suitable message appears for slot i, we queue its message to be
 | 
			
		||||
 * repeated.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
  QString inQSOmessages=ui->textBrowser3->toPlainText();
 | 
			
		||||
  if(inQSOmessages.contains(" " + houndCall + " ")) {
 | 
			
		||||
    qDebug() << "Received:" << houndCall << houndGrid;
 | 
			
		||||
    QStringList inQSOmessagesList=inQSOmessages.split("\n");
 | 
			
		||||
  ui->textBrowser3->setText("");
 | 
			
		||||
    for (int i=0; i<inQSOmessagesList.length(); i++) {
 | 
			
		||||
      QString t=inQSOmessagesList.at(i);
 | 
			
		||||
      if(t.contains(" " + houndCall + " ")) {
 | 
			
		||||
  for(int i=0; i<m_Nslots; i++) {
 | 
			
		||||
    if(m_foxMsgSent[i].contains(houndCall + " ")) {
 | 
			
		||||
      m_houndRptRcvd[i]=houndGrid.mid(1);
 | 
			
		||||
        int i1=qMax(t.indexOf("+"), t.indexOf("-"));
 | 
			
		||||
        qDebug() << "yy" << i << i1 << m_houndRptRcvd[i] << t.trimmed();
 | 
			
		||||
        m_bSendRR73[i]=true;
 | 
			
		||||
        t=t.mid(0,i1-1) + " RR73";
 | 
			
		||||
        ui->textBrowser3->displayFoxToBeCalled(t,"#ff99ff");
 | 
			
		||||
      int i1=qMax(m_foxMsgSent[i].indexOf("+"), m_foxMsgSent[i].indexOf("-"));
 | 
			
		||||
      m_foxMsgToBeSent[i]=m_foxMsgSent[i].mid(0,i1-1) + " RR73";
 | 
			
		||||
      qDebug() << "Rx:" << i << houndCall << houndGrid;
 | 
			
		||||
    } else {
 | 
			
		||||
        ui->textBrowser3->displayFoxToBeCalled(t,"#ffffff");
 | 
			
		||||
      }
 | 
			
		||||
      m_foxMsgToBeSent[i]=m_foxMsgSent[i];
 | 
			
		||||
    }
 | 
			
		||||
    ui->textBrowser3->displayFoxToBeCalled(m_foxMsgToBeSent[i],"#ffffff");
 | 
			
		||||
  }
 | 
			
		||||
  qDebug() << " ";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::foxTxSequencer()
 | 
			
		||||
{
 | 
			
		||||
  QString msg[5];
 | 
			
		||||
  QString inQSO="";
 | 
			
		||||
/* Called from guiUpdate at the point where an FT8 Fox-mode transmission
 | 
			
		||||
 * is to be started.  Here we determine what the Tx message(s) will be,
 | 
			
		||||
 * and then call foxgen() to generate the corresponding waveform.
 | 
			
		||||
*/
 | 
			
		||||
  QString allQSOtext="";
 | 
			
		||||
  QString nextTxMessages=ui->textBrowser3->toPlainText();
 | 
			
		||||
//  int islots=nextTxMessages.split("\n").size() - 1;
 | 
			
		||||
  for(int i=0; i<m_Nslots; i++) {
 | 
			
		||||
    msg[i]="";
 | 
			
		||||
    int iz=nextTxMessages.split("\n").size();
 | 
			
		||||
    qDebug() << "A" << i << iz << nextTxMessages.length();
 | 
			
		||||
    if(i<iz and nextTxMessages.length() > 10) {
 | 
			
		||||
      QString txMsg=nextTxMessages.split("\n").at(i);
 | 
			
		||||
      m_houndCall[i]=txMsg.mid(0,7);
 | 
			
		||||
      qDebug() << "A1" << txMsg;
 | 
			
		||||
      int i1=qMax(txMsg.indexOf('+'),txMsg.indexOf('-'));
 | 
			
		||||
      msg[i]= m_houndCall[i] + " " + m_config.my_callsign() + txMsg.mid(i1-1,4);
 | 
			
		||||
    }
 | 
			
		||||
    qDebug() << "B" << i << msg[i];
 | 
			
		||||
    if(msg[i]=="") {
 | 
			
		||||
    QString fm=m_foxMsgToBeSent[i];         //Fox message to be transmitted in this slot
 | 
			
		||||
    if(fm=="") {
 | 
			
		||||
      if(!m_houndQueue.isEmpty()) {
 | 
			
		||||
        QString t=m_houndQueue.dequeue();
 | 
			
		||||
        m_houndCall[i]=t.mid(0,6);
 | 
			
		||||
        QString rpt=t.mid(7,3);
 | 
			
		||||
        msg[i]= m_houndCall[i] + " " + m_config.my_callsign() + " " + rpt;
 | 
			
		||||
        m_bSendRR73[i]=false;
 | 
			
		||||
        fm= m_houndCall[i] + " " + m_config.my_callsign() + " " + rpt;
 | 
			
		||||
        QString tb4=ui->textBrowser4->toPlainText();
 | 
			
		||||
        tb4=tb4.remove(t+"\n");
 | 
			
		||||
        ui->textBrowser4->setText(tb4);
 | 
			
		||||
      } else {
 | 
			
		||||
      msg[i]=ui->comboBoxCQ->currentText() + " " + m_config.my_callsign() +
 | 
			
		||||
      fm=ui->comboBoxCQ->currentText() + " " + m_config.my_callsign() +
 | 
			
		||||
        " " + m_config.my_grid().mid(0,4);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    qDebug() << "C" << i << msg[i];
 | 
			
		||||
    msg[i] += "                                ";
 | 
			
		||||
    msg[i]=msg[i].mid(0,32);
 | 
			
		||||
    ui->decodedTextBrowser2->displayTransmittedText(msg[i], m_modeTx,
 | 
			
		||||
 | 
			
		||||
    if(fm.contains(" RR73")) {
 | 
			
		||||
      qDebug() << "Logged:" << i << fm << m_houndCall[i] << m_houndRptSent[i] << m_houndRptRcvd[i];
 | 
			
		||||
      if(!m_houndQueue.isEmpty()) {
 | 
			
		||||
        QString t=m_houndQueue.dequeue();         //Fetch next hound call
 | 
			
		||||
        m_houndCall[i]=t.mid(0,6);
 | 
			
		||||
        QString rpt=t.mid(7,3);
 | 
			
		||||
        fm=fm.mid(0,7) + "RR73; " + m_houndCall[i] + " <" + m_config.my_callsign() +
 | 
			
		||||
            "> " + rpt;
 | 
			
		||||
 | 
			
		||||
        QString tb4=ui->textBrowser4->toPlainText();  //Remove popped call from tb4
 | 
			
		||||
        tb4=tb4.remove(t+"\n");
 | 
			
		||||
        ui->textBrowser4->setText(tb4);
 | 
			
		||||
 | 
			
		||||
        //In case we might need to send a repeat:
 | 
			
		||||
        m_foxMsgToBeSent[i]=m_houndCall[i] + " " + m_config.my_callsign() + " " + rpt;
 | 
			
		||||
 | 
			
		||||
      } else {
 | 
			
		||||
        fm=m_houndCall[i] + " " + m_config.my_callsign() + " RR73";
 | 
			
		||||
        qDebug() << "a2" << i << fm;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fm += "                                ";
 | 
			
		||||
    fm=fm.mid(0,32);
 | 
			
		||||
    ui->decodedTextBrowser2->displayTransmittedText(fm, m_modeTx,
 | 
			
		||||
          300+60*i,m_config.color_TxMsg(),m_bFastMode);
 | 
			
		||||
    foxcom_.i3bit[i]=0;
 | 
			
		||||
    if(msg[i].indexOf("<")>0) foxcom_.i3bit[i]=1;
 | 
			
		||||
    qDebug() << "Transmitted:" << i << foxcom_.i3bit[i] << msg[i].trimmed();
 | 
			
		||||
    strncpy(&foxcom_.cmsg[i][0], msg[i].toLatin1(),32);
 | 
			
		||||
    int i1=qMax(msg[i].indexOf("+"),msg[i].indexOf("-"));
 | 
			
		||||
    if(fm.indexOf("<")>0) foxcom_.i3bit[i]=1;
 | 
			
		||||
    strncpy(&foxcom_.cmsg[i][0], fm.toLatin1(),32);   //Copy this message into cmsg[i]
 | 
			
		||||
    m_foxMsgSent[i]=fm.trimmed();                     //What was actually sent
 | 
			
		||||
    qDebug() << "Tx:" << i << foxcom_.i3bit[i] << m_foxMsgSent[i] << m_foxMsgToBeSent[i];
 | 
			
		||||
 | 
			
		||||
    int i1=qMax(fm.indexOf("+"),fm.indexOf("-"));
 | 
			
		||||
    if(i1>6) {
 | 
			
		||||
      m_houndRptSent[i]=msg[i].mid(i1,3);
 | 
			
		||||
      qDebug() << "zz" << i << m_houndCall[i] << m_houndRptSent[i] << m_houndRptRcvd[i];
 | 
			
		||||
      m_houndRptSent[i]=fm.mid(i1,3);             //Active hound call for slot i
 | 
			
		||||
    }
 | 
			
		||||
    if(m_bSendRR73[i]) {
 | 
			
		||||
      qDebug() << "Logged:" << m_houndCall[i] << m_houndRptSent[i] << m_houndRptRcvd[i];
 | 
			
		||||
      msg[i]="CQ";
 | 
			
		||||
      m_bSendRR73[i]=false;
 | 
			
		||||
    allQSOtext += (fm + "\n");
 | 
			
		||||
  }
 | 
			
		||||
    inQSO += (msg[i] + "\n");
 | 
			
		||||
  }
 | 
			
		||||
//  qDebug() << "TxSeq:" << inQSO;
 | 
			
		||||
  ui->textBrowser3->setText(inQSO);
 | 
			
		||||
  qDebug() << " ";
 | 
			
		||||
  ui->textBrowser3->setText(allQSOtext);
 | 
			
		||||
  foxcom_.nslots=m_Nslots;
 | 
			
		||||
  foxgen_();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -475,7 +475,6 @@ private:
 | 
			
		||||
  bool    m_bAutoReply;
 | 
			
		||||
  bool    m_bCheckedContest;
 | 
			
		||||
  bool    m_bDXped;
 | 
			
		||||
  bool    m_bSendRR73[5];
 | 
			
		||||
 | 
			
		||||
  enum
 | 
			
		||||
    {
 | 
			
		||||
@ -563,6 +562,8 @@ private:
 | 
			
		||||
  QString m_houndGrid[5];
 | 
			
		||||
  QString m_houndRptSent[5];
 | 
			
		||||
  QString m_houndRptRcvd[5];
 | 
			
		||||
  QString m_foxMsgToBeSent[5];
 | 
			
		||||
  QString m_foxMsgSent[5];
 | 
			
		||||
 | 
			
		||||
  QSet<QString> m_pfx;
 | 
			
		||||
  QSet<QString> m_sfx;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user