SVN r8577
This commit is contained in:
parent
45cc6416c1
commit
419c039d08
BIN
.svn/wc.db
BIN
.svn/wc.db
Binary file not shown.
@ -13,6 +13,42 @@
|
|||||||
Copyright 2001 - 2018 by Joe Taylor, K1JT.
|
Copyright 2001 - 2018 by Joe Taylor, K1JT.
|
||||||
|
|
||||||
|
|
||||||
|
Release: WSJT-X Version 1.9.0-rc3
|
||||||
|
March 18, 2018
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Changes from WSJT-X Version 1.9.0-rc2 include the following:
|
||||||
|
|
||||||
|
- Corrected a number of flaws in Fox behavior, FT8 DXpedition Mode
|
||||||
|
|
||||||
|
- Allow Hounds to use compound callsigns
|
||||||
|
|
||||||
|
- Write debugging information to FoxQSO.txt.
|
||||||
|
|
||||||
|
- Fix the "Blue Decode Button" bug
|
||||||
|
|
||||||
|
- Allow partial processing of incoming UDP Reply messages so that
|
||||||
|
non-CQ/QRZ decodes can be processed. The processing is the same as
|
||||||
|
double-clicking the same decoded message within WSJT-X except that
|
||||||
|
"Enable Tx" will not be enabled.
|
||||||
|
|
||||||
|
- Send DX grid locator to wsjt_status.txt, for use by applications like
|
||||||
|
PstRotatorAZ
|
||||||
|
|
||||||
|
- Correct the display of DXCC status of KG4 calls
|
||||||
|
|
||||||
|
- Updated copy of cty.dat
|
||||||
|
|
||||||
|
- Updates to documentation
|
||||||
|
|
||||||
|
- Other minor bug fixes
|
||||||
|
|
||||||
|
- This release contains updated Hamlib functionality including changes
|
||||||
|
to the Yaesu FT-817 back end that allows the uBITx kit transceiver
|
||||||
|
to be CAT controlled by WSJT-X.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Release: WSJT-X Version 1.9.0-rc2
|
Release: WSJT-X Version 1.9.0-rc2
|
||||||
February 26, 2018
|
February 26, 2018
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
@ -2,5 +2,5 @@
|
|||||||
set (WSJTX_VERSION_MAJOR 1)
|
set (WSJTX_VERSION_MAJOR 1)
|
||||||
set (WSJTX_VERSION_MINOR 9)
|
set (WSJTX_VERSION_MINOR 9)
|
||||||
set (WSJTX_VERSION_PATCH 0)
|
set (WSJTX_VERSION_PATCH 0)
|
||||||
set (WSJTX_RC 2) # release candidate number, comment out or zero for development versions
|
set (WSJTX_RC 3) # release candidate number, comment out or zero for development versions
|
||||||
set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build
|
set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build
|
||||||
|
129
mainwindow.cpp
129
mainwindow.cpp
@ -4020,21 +4020,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_bFastMode or m_mode=="FT8") {
|
|
||||||
auto i1=message.string ().indexOf(" CQ ");
|
|
||||||
if(i1>10) {
|
|
||||||
bool ok;
|
|
||||||
Frequency kHz {message.string ().mid (i1+4,3).toUInt (&ok)};
|
|
||||||
if(ok && kHz >= 10 && kHz <= 999) {
|
|
||||||
if (m_config.is_transceiver_online ()) {
|
|
||||||
//QSY Freq for answering CQ nnn
|
|
||||||
setRig (m_freqNominal / 1000000 * 1000000 + 1000 * kHz);
|
|
||||||
ui->decodedTextBrowser2->displayQSY (QString {"QSY %1"}.arg (m_freqNominal / 1e6, 7, 'f', 3));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Skip the rest if no decoded text extracted
|
//Skip the rest if no decoded text extracted
|
||||||
int frequency = message.frequencyOffset();
|
int frequency = message.frequencyOffset();
|
||||||
if (message.isTX()) {
|
if (message.isTX()) {
|
||||||
@ -4047,6 +4032,20 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check for CQ with listening frequency
|
||||||
|
if (parts.size () >= 7
|
||||||
|
&& (m_bFastMode || m_mode=="FT8")
|
||||||
|
&& "CQ" == parts[5]
|
||||||
|
&& m_config.is_transceiver_online ()) {
|
||||||
|
bool ok;
|
||||||
|
auto kHz = parts[6].toUInt (&ok);
|
||||||
|
if (ok && kHz >= 10 && 3 == parts[6].size ()) {
|
||||||
|
// QSY Freq for answering CQ nnn
|
||||||
|
setRig (m_freqNominal / 1000000 * 1000000 + 1000 * kHz);
|
||||||
|
ui->decodedTextBrowser2->displayQSY (QString {"QSY %1"}.arg (m_freqNominal / 1e6, 7, 'f', 3));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int nmod = message.timeInSeconds () % (2*m_TRperiod);
|
int nmod = message.timeInSeconds () % (2*m_TRperiod);
|
||||||
m_txFirst=(nmod!=0);
|
m_txFirst=(nmod!=0);
|
||||||
ui->txFirstCheckBox->setChecked(m_txFirst);
|
ui->txFirstCheckBox->setChecked(m_txFirst);
|
||||||
@ -4921,9 +4920,10 @@ void MainWindow::displayWidgets(qint64 n)
|
|||||||
if(i==4) ui->rptSpinBox->setVisible(b);
|
if(i==4) ui->rptSpinBox->setVisible(b);
|
||||||
if(i==5) ui->sbTR->setVisible(b);
|
if(i==5) ui->sbTR->setVisible(b);
|
||||||
if(i==6) {
|
if(i==6) {
|
||||||
ui->sbCQTxFreq->setVisible(b);
|
ui->sbCQTxFreq->setVisible (b);
|
||||||
ui->cbCQTx->setVisible(b);
|
ui->cbCQTx->setVisible (b);
|
||||||
ui->cbCQTx->setEnabled(b);
|
auto is_compound = m_config.my_callsign () != m_baseCall;
|
||||||
|
ui->cbCQTx->setEnabled (b && (!is_compound || shortList (m_config.my_callsign ())));
|
||||||
}
|
}
|
||||||
if(i==7) ui->cbShMsgs->setVisible(b);
|
if(i==7) ui->cbShMsgs->setVisible(b);
|
||||||
if(i==8) ui->cbFast9->setVisible(b);
|
if(i==8) ui->cbFast9->setVisible(b);
|
||||||
@ -6529,63 +6529,58 @@ void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 de
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message_text.contains (QRegularExpression {R"(^(CQ |CQDX |QRZ ))"}))
|
QString format_string {"%1 %2 %3 %4 %5 %6"};
|
||||||
|
auto const& time_string = time.toString ("~" == mode || "&" == mode ? "hhmmss" : "hhmm");
|
||||||
|
auto cqtext = format_string
|
||||||
|
.arg (time_string)
|
||||||
|
.arg (snr, 3)
|
||||||
|
.arg (delta_time, 4, 'f', 1)
|
||||||
|
.arg (delta_frequency, 4)
|
||||||
|
.arg (mode, -2)
|
||||||
|
.arg (message_text);
|
||||||
|
auto messages = ui->decodedTextBrowser->toPlainText ();
|
||||||
|
auto position = messages.lastIndexOf (cqtext);
|
||||||
|
if (position < 0)
|
||||||
{
|
{
|
||||||
// a message we are willing to accept
|
// try again with with -0.0 delta time
|
||||||
QString format_string {"%1 %2 %3 %4 %5 %6"};
|
position = messages.lastIndexOf (format_string
|
||||||
auto const& time_string = time.toString ("~" == mode || "&" == mode ? "hhmmss" : "hhmm");
|
.arg (time_string)
|
||||||
auto cqtext = format_string
|
.arg (snr, 3)
|
||||||
.arg (time_string)
|
.arg ('-' + QString::number (delta_time, 'f', 1), 4)
|
||||||
.arg (snr, 3)
|
.arg (delta_frequency, 4)
|
||||||
.arg (delta_time, 4, 'f', 1)
|
.arg (mode, -2)
|
||||||
.arg (delta_frequency, 4)
|
.arg (message_text));
|
||||||
.arg (mode, -2)
|
}
|
||||||
.arg (message_text);
|
if (position >= 0)
|
||||||
auto messages = ui->decodedTextBrowser->toPlainText ();
|
{
|
||||||
auto position = messages.lastIndexOf (cqtext);
|
if (m_config.udpWindowToFront ())
|
||||||
if (position < 0)
|
|
||||||
{
|
{
|
||||||
// try again with with -0.0 delta time
|
show ();
|
||||||
position = messages.lastIndexOf (format_string
|
raise ();
|
||||||
.arg (time_string)
|
activateWindow ();
|
||||||
.arg (snr, 3)
|
|
||||||
.arg ('-' + QString::number (delta_time, 'f', 1), 4)
|
|
||||||
.arg (delta_frequency, 4)
|
|
||||||
.arg (mode, -2)
|
|
||||||
.arg (message_text));
|
|
||||||
}
|
}
|
||||||
if (position >= 0)
|
if (m_config.udpWindowRestore () && isMinimized ())
|
||||||
{
|
{
|
||||||
if (m_config.udpWindowToFront ())
|
showNormal ();
|
||||||
{
|
raise ();
|
||||||
show ();
|
|
||||||
raise ();
|
|
||||||
activateWindow ();
|
|
||||||
}
|
|
||||||
if (m_config.udpWindowRestore () && isMinimized ())
|
|
||||||
{
|
|
||||||
showNormal ();
|
|
||||||
raise ();
|
|
||||||
}
|
|
||||||
// find the linefeed at the end of the line
|
|
||||||
position = ui->decodedTextBrowser->toPlainText().indexOf(QChar::LineFeed,position);
|
|
||||||
m_bDoubleClicked = true;
|
|
||||||
auto start = messages.left (position).lastIndexOf (QChar::LineFeed) + 1;
|
|
||||||
DecodedText message {messages.mid (start, position - start), ("MSK144" == m_mode || "FT8" == m_mode) &&
|
|
||||||
ui->cbVHFcontest->isChecked(), m_config.my_grid ()};
|
|
||||||
Qt::KeyboardModifiers kbmod {modifiers << 24};
|
|
||||||
processMessage (message, kbmod);
|
|
||||||
tx_watchdog (false);
|
|
||||||
QApplication::alert (this);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
qDebug () << "reply to CQ request ignored, decode not found:" << cqtext;
|
|
||||||
}
|
}
|
||||||
|
// find the linefeed at the end of the line
|
||||||
|
position = ui->decodedTextBrowser->toPlainText().indexOf(QChar::LineFeed,position);
|
||||||
|
if (message_text.contains (QRegularExpression {R"(^(CQ |CQDX |QRZ ))"})) {
|
||||||
|
// a message we are willing to accept and auto reply to
|
||||||
|
m_bDoubleClicked = true;
|
||||||
|
}
|
||||||
|
auto start = messages.left (position).lastIndexOf (QChar::LineFeed) + 1;
|
||||||
|
DecodedText message {messages.mid (start, position - start), ("MSK144" == m_mode || "FT8" == m_mode) &&
|
||||||
|
ui->cbVHFcontest->isChecked(), m_config.my_grid ()};
|
||||||
|
Qt::KeyboardModifiers kbmod {modifiers << 24};
|
||||||
|
processMessage (message, kbmod);
|
||||||
|
tx_watchdog (false);
|
||||||
|
QApplication::alert (this);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
qDebug () << "rejecting UDP request to reply as decode is not a CQ or QRZ";
|
qDebug () << "process reply message ignored, decode not found:" << cqtext;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -792,7 +792,7 @@ QLabel[oob="true"] {
|
|||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string><html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p></body></html></string>
|
<string><html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to type 2 compound callsign holders.</p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
|
Loading…
Reference in New Issue
Block a user