Added CMD. Fixed sending of spots over the network API. Changed the basic response of QUERY MSGS
This commit is contained in:
parent
03f351551d
commit
78c1c9f1cf
@ -454,7 +454,6 @@ private:
|
||||
Q_SLOT void on_add_macro_push_button_clicked (bool = false);
|
||||
Q_SLOT void on_delete_macro_push_button_clicked (bool = false);
|
||||
Q_SLOT void on_PTT_method_button_group_buttonClicked (int);
|
||||
Q_SLOT void on_station_message_line_edit_textChanged(QString const&);
|
||||
Q_SLOT void on_groups_line_edit_textChanged(QString const&);
|
||||
Q_SLOT void on_qth_message_line_edit_textChanged(QString const&);
|
||||
Q_SLOT void on_cq_message_line_edit_textChanged(QString const&);
|
||||
@ -1157,7 +1156,6 @@ Configuration::impl::impl (Configuration * self, QDir const& temp_directory,
|
||||
ui_->callsign_line_edit->setValidator (new CallsignValidator {this});
|
||||
ui_->grid_line_edit->setValidator (new MaidenheadLocatorValidator {this, MaidenheadLocatorValidator::Length::doubleextended});
|
||||
ui_->add_macro_line_edit->setValidator (new QRegExpValidator {message_alphabet, this});
|
||||
ui_->station_message_line_edit->setValidator (new QRegExpValidator {message_alphabet, this});
|
||||
ui_->qth_message_line_edit->setValidator (new QRegExpValidator {message_alphabet, this});
|
||||
ui_->reply_message_line_edit->setValidator (new QRegExpValidator {message_alphabet, this});
|
||||
ui_->cq_message_line_edit->setValidator (new QRegExpValidator {message_alphabet, this});
|
||||
@ -1166,7 +1164,6 @@ Configuration::impl::impl (Configuration * self, QDir const& temp_directory,
|
||||
setUppercase(ui_->callsign_line_edit);
|
||||
setUppercase(ui_->grid_line_edit);
|
||||
setUppercase(ui_->add_macro_line_edit);
|
||||
setUppercase(ui_->station_message_line_edit);
|
||||
setUppercase(ui_->qth_message_line_edit);
|
||||
setUppercase(ui_->reply_message_line_edit);
|
||||
setUppercase(ui_->cq_message_line_edit);
|
||||
@ -2782,11 +2779,6 @@ void Configuration::impl::on_sound_output_combo_box_currentTextChanged (QString
|
||||
default_audio_output_device_selected_ = QAudioDeviceInfo::defaultOutputDevice ().deviceName () == text;
|
||||
}
|
||||
|
||||
void Configuration::impl::on_station_message_line_edit_textChanged(QString const &text)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void Configuration::impl::on_groups_line_edit_textChanged(QString const &text)
|
||||
{
|
||||
}
|
||||
|
@ -9954,18 +9954,32 @@ void MainWindow::processCommandActivity() {
|
||||
continue;
|
||||
}
|
||||
|
||||
// PROCESS BUFFERED CMD
|
||||
else if (d.cmd == " CMD" && ui->autoReplyButton->isChecked()){
|
||||
qDebug() << "skipping incoming command" << d.text;
|
||||
|
||||
// make sure this is explicit
|
||||
continue;
|
||||
}
|
||||
|
||||
// PROCESS BUFFERED QUERY
|
||||
else if (d.cmd == " QUERY" && ui->autoReplyButton->isChecked()){
|
||||
qDebug() << "received raw query" << d.text;
|
||||
|
||||
// NOOP
|
||||
QStringList segs = d.text.split(" ");
|
||||
if(segs.isEmpty()){
|
||||
continue;
|
||||
}
|
||||
|
||||
auto cmd = segs.first();
|
||||
segs.removeFirst();
|
||||
|
||||
if(cmd == "MSG"){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// PROCESS BUFFERED QUERY MSGS
|
||||
else if (d.cmd == " QUERY MSGS" && ui->autoReplyButton->isChecked()){
|
||||
auto who = d.from;
|
||||
auto cmd =
|
||||
|
||||
auto inbox = Inbox(inboxPath());
|
||||
if(!inbox.open()){
|
||||
@ -9976,19 +9990,16 @@ void MainWindow::processCommandActivity() {
|
||||
foreach(auto pair, v){
|
||||
auto params = pair.second.params();
|
||||
auto text = params.value("TEXT").toString().trimmed();
|
||||
auto from = params.value("FROM").toString();
|
||||
if(!text.isEmpty()){
|
||||
// mark as delivered
|
||||
pair.second.setType("DELIVERED");
|
||||
inbox.set(pair.first, pair.second);
|
||||
|
||||
// and then reply with the text
|
||||
reply = QString("%1>%2 DE %3").arg(who).arg(text).arg(from);
|
||||
reply = QString("%1 YES").arg(who);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
reply = replies.join("\n");
|
||||
// if this is not an allcall and we have no messages, reply no.
|
||||
if(!isAllCall && reply.isEmpty()){
|
||||
reply = QString("%1 NO").arg(who);
|
||||
}
|
||||
}
|
||||
|
||||
// PROCESS BUFFERED QUERY CALL
|
||||
@ -10266,6 +10277,9 @@ void MainWindow::processSpots() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the dial frequency to report
|
||||
auto dial = dialFrequency();
|
||||
|
||||
// Process spots to be sent...
|
||||
pskSetLocal();
|
||||
aprsSetLocal();
|
||||
@ -10275,9 +10289,19 @@ void MainWindow::processSpots() {
|
||||
if(d.call.isEmpty()){
|
||||
continue;
|
||||
}
|
||||
|
||||
qDebug() << "spotting call to reporting networks" << d.call << d.snr << d.freq;
|
||||
|
||||
pskLogReport("JS8", d.freq, d.snr, d.call, d.grid);
|
||||
aprsLogReport(d.freq, d.snr, d.call, d.grid);
|
||||
|
||||
sendNetworkMessage("RX.SPOT", "", {
|
||||
{"DIAL", QVariant(dial)},
|
||||
{"OFFSET", QVariant(d.freq)},
|
||||
{"CALL", QVariant(d.call)},
|
||||
{"SNR", QVariant(d.snr)},
|
||||
{"GRID", QVariant(d.grid)},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
15
varicode.cpp
15
varicode.cpp
@ -92,7 +92,7 @@ QMap<QString, int> directed_cmds = {
|
||||
{" QSL?", 22 }, // do you copy?
|
||||
{" QSL", 23 }, // i copy
|
||||
|
||||
// {" ", 24 }, // unused
|
||||
{" CMD", 24 }, // open ended command
|
||||
|
||||
{" SNR", 25 }, // seen a station at the provided snr
|
||||
{" NO", 26 }, // negative confirm
|
||||
@ -105,13 +105,13 @@ QMap<QString, int> directed_cmds = {
|
||||
};
|
||||
|
||||
// commands allowed to be processed
|
||||
QSet<int> allowed_cmds = {-1, 0, 1, /*2,*/ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /*16,*/ 17, 18, 19, 20, 21, 22, 23, /*24,*/ 25, 26, 27, 28, 29, 30, 31};
|
||||
QSet<int> allowed_cmds = {-1, 0, 1, /*2,*/ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /*16,*/ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
|
||||
|
||||
// commands that result in an autoreply
|
||||
QSet<int> autoreply_cmds = {0, 1, 3, 4, 6, 10, 12, 13, 30};
|
||||
// commands that result in an autoreply (which can be relayed)
|
||||
QSet<int> autoreply_cmds = {0, 1, 3, 4, 6, 10, 11, 12, 13, 30};
|
||||
|
||||
// commands that should be buffered
|
||||
QSet<int> buffered_cmds = {3, 5, /*6,*/ /*7,*/ 10, 11, 12, 13, 14, 15};
|
||||
QSet<int> buffered_cmds = {3, 5, /*6,*/ /*7,*/ 10, 11, 12, 13, 14, 15, 24};
|
||||
|
||||
// commands that may include an SNR value
|
||||
QSet<int> snr_cmds = {25, 29};
|
||||
@ -124,11 +124,12 @@ QMap<int, int> checksum_cmds = {
|
||||
{ 12, 16 },
|
||||
{ 13, 16 },
|
||||
{ 14, 16 },
|
||||
{ 15, 0 }
|
||||
{ 15, 0 },
|
||||
{ 24, 16 }
|
||||
};
|
||||
|
||||
QString callsign_pattern = QString("(?<callsign>[@]?[A-Z0-9/]+)");
|
||||
QString optional_cmd_pattern = QString("(?<cmd>\\s?(?:AGN[?]|QSL[?]|HW CPY[?]|APRS[:]|MSG TO[:]|SNR[?]|QTH[?]|GRID[?]|STATUS[?]|HEARING[?]|(?:(?:STATUS|HEARING|QUERY CALL|QUERY MSGS|QUERY|ACK|73|YES|NO|SNR|QSL|RR|SK|FB|QTH|GRID|TU)(?=[ ]|$))|[?> ]))?");
|
||||
QString optional_cmd_pattern = QString("(?<cmd>\\s?(?:AGN[?]|QSL[?]|HW CPY[?]|APRS[:]|MSG TO[:]|SNR[?]|QTH[?]|GRID[?]|STATUS[?]|HEARING[?]|(?:(?:STATUS|HEARING|QUERY CALL|QUERY MSGS|QUERY|CMD|ACK|73|YES|NO|SNR|QSL|RR|SK|FB|QTH|GRID|TU)(?=[ ]|$))|[?> ]))?");
|
||||
QString optional_grid_pattern = QString("(?<grid>\\s?[A-R]{2}[0-9]{2})?");
|
||||
QString optional_extended_grid_pattern = QString("^(?<grid>\\s?(?:[A-R]{2}[0-9]{2}(?:[A-X]{2}(?:[0-9]{2})?)*))?");
|
||||
QString optional_num_pattern = QString("(?<num>(?<=SNR|ACK)\\s?[-+]?(?:3[01]|[0-2]?[0-9]))?");
|
||||
|
Loading…
Reference in New Issue
Block a user