mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-02-03 09:44:24 -05:00
Fix more contest auto-seq bugs; add bare-bones contest logging.
This commit is contained in:
parent
fde78758e4
commit
144f90d949
@ -1616,6 +1616,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
||||
auto callsign = m_config.my_callsign ();
|
||||
auto my_grid = m_config.my_grid ();
|
||||
if (QDialog::Accepted == m_config.exec ()) {
|
||||
setContestType();
|
||||
if (m_config.my_callsign () != callsign) {
|
||||
m_baseCall = Radio::base_callsign (m_config.my_callsign ());
|
||||
morse_(const_cast<char *> (m_config.my_callsign ().toLatin1().constData()),
|
||||
@ -1683,7 +1684,6 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
||||
ui->actionEnable_AP_JT65->setVisible(false);
|
||||
}
|
||||
m_opCall=m_config.opCall();
|
||||
setContestType();
|
||||
}
|
||||
}
|
||||
|
||||
@ -3531,6 +3531,15 @@ void MainWindow::guiUpdate()
|
||||
if(m_ntx==2) m_xSent=ui->tx2->text().right(13);
|
||||
if(m_ntx==3) m_xSent=ui->tx3->text().right(13);
|
||||
}
|
||||
|
||||
if(m_nContest==FIELD_DAY or m_nContest==RTTY) {
|
||||
if(m_ntx==2 or m_ntx==3) {
|
||||
QStringList t=ui->tx2->text().split(' ', QString::SkipEmptyParts);
|
||||
int n=t.size();
|
||||
m_xSent=t.at(n-2) + " " + t.at(n-1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if(m_isync==1) msgsent[22]=0;
|
||||
if(m_isync==2) msgsent[37]=0;
|
||||
@ -4212,11 +4221,11 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
|| dtext.contains ("<" + m_baseCall + "> ")
|
||||
|| dtext.contains ("/" + m_baseCall + " ")
|
||||
|| dtext.contains (" " + m_baseCall + "/")
|
||||
|| (firstcall == "DE" /*&& ((t4.size () > 7 && t4.at(7) != "73") || t4.size () <= 7)*/)) {
|
||||
|| (firstcall == "DE")) {
|
||||
QString w2=message_words.at(2);
|
||||
QString w34=message_words.at(3);
|
||||
int nrpt=w2.toInt();
|
||||
if(message_words.at(2)=="R") {
|
||||
if(w2=="R") {
|
||||
nrpt=w34.toInt();
|
||||
w34=message_words.at(4);
|
||||
}
|
||||
@ -4226,15 +4235,24 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
MessageBox::information_message (this, tr ("Should you switch to EU VHF Contest mode?"));
|
||||
}
|
||||
|
||||
int nw3=w34.length();
|
||||
bool bFieldDay_w34=(nw3==2 or nw3==3) and (w34.right(1)>="A" and w34.right(1)<="F");
|
||||
if(w34.left(nw3-1).toInt()<1) bFieldDay_w34=false;
|
||||
if(bFieldDay_w34 and m_nContest!=FIELD_DAY) {
|
||||
QStringList t=message.string().split(' ', QString::SkipEmptyParts);
|
||||
int n=t.size();
|
||||
QString t0=t.at(n-2);
|
||||
QString t1=t0.right(1);
|
||||
bool bFieldDay_msg = (t1>="A" and t1<="F");
|
||||
int m=t0.remove(t1).toInt();
|
||||
if(m < 1) bFieldDay_msg=false;
|
||||
if(bFieldDay_msg) {
|
||||
m_xRcvd=t.at(n-2) + " " + t.at(n-1);
|
||||
t0=t.at(n-3);
|
||||
}
|
||||
|
||||
if(bFieldDay_msg and m_nContest!=FIELD_DAY) {
|
||||
// ### Should be in ARRL Field Day mode ??? ###
|
||||
MessageBox::information_message (this, tr ("Should you switch to ARRL Field Day mode?"));
|
||||
}
|
||||
|
||||
int n=w34.toInt();
|
||||
n=w34.toInt();
|
||||
bool bRTTY = (n>=529 and n<=599);
|
||||
if(bRTTY and m_nContest!=RTTY) {
|
||||
// ### Should be in ARRL RTTY Roundup mode ??? ###
|
||||
@ -4269,9 +4287,16 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
} else if(m_nContest==RTTY and bRTTY) {
|
||||
gen_msg=setTxMsg(3);
|
||||
m_QSOProgress=ROGER_REPORT;
|
||||
} else if(m_nContest==FIELD_DAY and bFieldDay_w34) {
|
||||
gen_msg=setTxMsg(3);
|
||||
m_QSOProgress=ROGER_REPORT;
|
||||
int n=t.size();
|
||||
m_xRcvd=t[n-2] + " " + t[n-1];
|
||||
} else if(m_nContest==FIELD_DAY and bFieldDay_msg) {
|
||||
if(t0=="R") {
|
||||
gen_msg=setTxMsg(4);
|
||||
m_QSOProgress=ROGERS;
|
||||
} else {
|
||||
gen_msg=setTxMsg(3);
|
||||
m_QSOProgress=ROGER_REPORT;
|
||||
}
|
||||
} else { // no grid on end of msg
|
||||
QString r=message_words.at (3);
|
||||
if(m_QSOProgress >= ROGER_REPORT && (r=="RRR" || r.toInt()==73 || "RR73" == r)) {
|
||||
@ -4289,6 +4314,10 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
&& r.mid(0,1)=="R") {
|
||||
m_ntx=4;
|
||||
m_QSOProgress = ROGERS;
|
||||
if(m_nContest==RTTY) {
|
||||
int n=t.size();
|
||||
m_xRcvd=t[n-2] + " " + t[n-1];
|
||||
}
|
||||
ui->txrb4->setChecked(true);
|
||||
if(ui->tabWidget->currentIndex()==1) {
|
||||
gen_msg = 4;
|
||||
@ -4537,11 +4566,10 @@ void MainWindow::genCQMsg ()
|
||||
if((m_mode=="FT8" or m_mode=="MSK144") and m_nContest!=NONE) {
|
||||
QString t=ui->tx6->text();
|
||||
// if(m_nContest==NA_VHF) t="CQ QP" + t.mid(2,-1);
|
||||
if(m_nContest==FIELD_DAY) t="CQ FD" + t.mid(2,-1);
|
||||
if(m_nContest==RTTY) t="CQ RU" + t.mid(2,-1);
|
||||
ui->tx6->setText(t);
|
||||
if(m_nContest==FIELD_DAY) t="CQ FD" + t.mid(2,-1);
|
||||
if(m_nContest==RTTY) t="CQ RU" + t.mid(2,-1);
|
||||
ui->tx6->setText(t);
|
||||
}
|
||||
|
||||
} else {
|
||||
ui->tx6->clear ();
|
||||
}
|
||||
@ -5095,8 +5123,29 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button
|
||||
m_xSent=m_config.my_grid().left(4);
|
||||
m_xRcvd=m_hisGrid;
|
||||
}
|
||||
qDebug() << "Logged:" << m_xSent << m_xRcvd;
|
||||
//call contest logger here
|
||||
if(m_nContest!=NONE) cabLog(); //Call the Cabrillo contest logger
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::cabLog()
|
||||
{
|
||||
QFile f {m_config.writeable_data_dir ().absoluteFilePath ("cabrillo.log")};
|
||||
if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
|
||||
int nfreq=m_freqNominal/1000;
|
||||
if(m_freqNominal>50000000) nfreq=m_freqNominal/1000000;
|
||||
QString t;
|
||||
t.sprintf("QSO: %5d RY ",nfreq);
|
||||
qDebug() << t;
|
||||
t=t + QDateTime::currentDateTimeUtc().toString("yyyy-MM-dd hhmm ") +
|
||||
m_config.my_callsign().leftJustified(13,' ') + m_xSent.leftJustified(14,' ') +
|
||||
m_hisCall.leftJustified(13,' ') + m_xRcvd;
|
||||
QTextStream out(&f);
|
||||
out << t << endl;
|
||||
qDebug() << t;
|
||||
f.close();
|
||||
} else {
|
||||
MessageBox::warning_message (this, tr("File Open Error"),
|
||||
tr("Cannot open \"%1\" for append: %2").arg(f.fileName()).arg(f.errorString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -687,6 +687,7 @@ private:
|
||||
QString WSPR_hhmm(int n);
|
||||
void fast_config(bool b);
|
||||
void CQTxFreq();
|
||||
void cabLog();
|
||||
QString save_wave_file (QString const& name
|
||||
, short const * data
|
||||
, int seconds
|
||||
|
Loading…
Reference in New Issue
Block a user