mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 05:38:46 -05:00
Several tentative bug fixes for F&H operation. Not fully tested!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8552 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
8fc2f55074
commit
c443a15457
@ -7489,10 +7489,14 @@ void MainWindow::foxRxSequencer(QString msg, QString houndCall, QString rptRcvd)
|
|||||||
* If houndCall matches a callsign in one of our active QSO slots, we
|
* If houndCall matches a callsign in one of our active QSO slots, we
|
||||||
* prepare to send "houndCall RR73" to that caller.
|
* prepare to send "houndCall RR73" to that caller.
|
||||||
*/
|
*/
|
||||||
|
// qDebug() << "foxRxSeq1" << houndCall << rptRcvd << m_foxQSO.contains(houndCall);
|
||||||
if(m_foxQSO.contains(houndCall)) {
|
if(m_foxQSO.contains(houndCall)) {
|
||||||
m_foxQSO[houndCall].rcvd=rptRcvd.mid(1); //Save Fox's report for the log
|
if(m_foxQSO[houndCall].ncall <= ui->sbMaxCalls->value()) { //### Not sure about "<=" ###
|
||||||
m_foxRR73Queue.enqueue(houndCall); //Request RR73 to be sent to Hound
|
m_foxQSO[houndCall].rcvd=rptRcvd.mid(1); //Save Fox's report for the log
|
||||||
writeFoxQSO(" " + msg.trimmed());
|
// qDebug() << "foxRxSeq2" << houndCall << rptRcvd << m_foxQSO[houndCall].ncall;
|
||||||
|
m_foxRR73Queue.enqueue(houndCall); //Request RR73 to be sent to Hound
|
||||||
|
writeFoxQSO(" " + msg.trimmed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7519,6 +7523,7 @@ void MainWindow::foxTxSequencer()
|
|||||||
if(m_houndQueue.isEmpty()) {
|
if(m_houndQueue.isEmpty()) {
|
||||||
fm = hc1 + " " + m_baseCall + " RR73"; //Send a standard FT8 message
|
fm = hc1 + " " + m_baseCall + " RR73"; //Send a standard FT8 message
|
||||||
} else {
|
} else {
|
||||||
|
if(m_foxQSOqueue.count() >= m_Nslots+4) break; //### Limit QSOs in progress to <= Nslots ???
|
||||||
t=m_houndQueue.dequeue(); //Fetch new hound from queue
|
t=m_houndQueue.dequeue(); //Fetch new hound from queue
|
||||||
hc2=t.mid(0,6).trimmed(); //hound call
|
hc2=t.mid(0,6).trimmed(); //hound call
|
||||||
sentTo << hc2;
|
sentTo << hc2;
|
||||||
@ -7572,7 +7577,7 @@ void MainWindow::foxTxSequencer()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//One or more Tx slots are still available
|
//One or more Tx slots are still available
|
||||||
while (!m_houndQueue.isEmpty()) {
|
while (!m_houndQueue.isEmpty() and m_foxQSOqueue.count() < m_Nslots+4) { //### ??? ###
|
||||||
t=m_houndQueue.dequeue(); //Fetch new hound from queue
|
t=m_houndQueue.dequeue(); //Fetch new hound from queue
|
||||||
hc1=t.mid(0,6).trimmed(); //hound call
|
hc1=t.mid(0,6).trimmed(); //hound call
|
||||||
m_foxQSOqueue.enqueue(hc1); //Put him in the QSO queue
|
m_foxQSOqueue.enqueue(hc1); //Put him in the QSO queue
|
||||||
@ -7608,9 +7613,11 @@ Transmit:
|
|||||||
|
|
||||||
for(auto a: m_foxQSO.keys()) {
|
for(auto a: m_foxQSO.keys()) {
|
||||||
int ncalls=m_foxQSO[a].ncall;
|
int ncalls=m_foxQSO[a].ncall;
|
||||||
if(ncalls > ui->sbMaxCalls->value()) {
|
// qDebug() << "ncalls: " << a << ncalls << ui->sbMaxCalls->value();
|
||||||
|
if(ncalls >= ui->sbMaxCalls->value()) { //### Not sure about ">=" ###
|
||||||
m_foxQSO.remove(a);
|
m_foxQSO.remove(a);
|
||||||
m_foxQSOqueue.removeOne(a);
|
m_foxQSOqueue.removeOne(a);
|
||||||
|
if(m_foxRR73Queue.contains(a)) m_foxRR73Queue.removeOne(a);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while(!m_foxRateQueue.isEmpty()) {
|
while(!m_foxRateQueue.isEmpty()) {
|
||||||
@ -7619,6 +7626,8 @@ Transmit:
|
|||||||
m_foxRateQueue.dequeue();
|
m_foxRateQueue.dequeue();
|
||||||
}
|
}
|
||||||
m_msgAvgWidget->foxLabRate(m_foxRateQueue.size());
|
m_msgAvgWidget->foxLabRate(m_foxRateQueue.size());
|
||||||
|
|
||||||
|
qDebug() << "QSOs in progress:" << m_foxQSOqueue.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::rm_tb4(QString houndCall)
|
void MainWindow::rm_tb4(QString houndCall)
|
||||||
@ -7699,7 +7708,7 @@ void MainWindow::foxTest()
|
|||||||
while(!s.atEnd()) {
|
while(!s.atEnd()) {
|
||||||
line=s.readLine();
|
line=s.readLine();
|
||||||
selectHound(line);
|
selectHound(line);
|
||||||
if(line.contains("N7QT ")) break;
|
if(line.length()==0) break;
|
||||||
}
|
}
|
||||||
while(!s.atEnd()) {
|
while(!s.atEnd()) {
|
||||||
line=s.readLine();
|
line=s.readLine();
|
||||||
@ -7712,7 +7721,9 @@ void MainWindow::foxTest()
|
|||||||
int i0=hc1.indexOf(" ");
|
int i0=hc1.indexOf(" ");
|
||||||
hc1=hc1.mid(0,i0);
|
hc1=hc1.mid(0,i0);
|
||||||
i0=qMax(line.indexOf("R+"),line.indexOf("R-"));
|
i0=qMax(line.indexOf("R+"),line.indexOf("R-"));
|
||||||
QString rptRcvd=line.mid(i0,4);
|
if(i0>20) {
|
||||||
foxRxSequencer(msg,hc1,rptRcvd);
|
QString rptRcvd=line.mid(i0,4);
|
||||||
|
foxRxSequencer(msg,hc1,rptRcvd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user