diff --git a/Configuration.ui b/Configuration.ui index bf89dd5..9641d5d 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -14,6 +14,9 @@ Settings + + 1 + @@ -23,7 +26,7 @@ Select tab to change configuration parameters. - 0 + 3 @@ -63,7 +66,7 @@ 0 0 738 - 453 + 461 @@ -1922,7 +1925,7 @@ this setting allows you to select which audio input will be used 0 0 760 - 502 + 510 @@ -2181,9 +2184,9 @@ both here. - - false - + + false + AzEl Directory @@ -2309,7 +2312,7 @@ both here. 0 0 746 - 663 + 573 @@ -2557,88 +2560,13 @@ This is used for reverse ping analysis which is very useful for assessing propagation and system performance. - Enable spotting to reporting networks (JS8NET, PSKReporter, APRS-IS, etc) + Enable spotting to reporting networks (JS8NET, PSKReporter, etc) true - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - APRS Server: - - - udp_server_line_edit - - - - - - - - 0 - 0 - - - - <html><head/><body><p>Optional hostname of APRS server to send spots to.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the spotting to APRS.</p></body></html> - - - Qt::ImhDigitsOnly - - - rotate.aprs2.net - - - - - - - APRS Server Port: - - - udp_server_port_spin_box - - - - - - - <html><head/><body><p>Enter the service port number of the APRS server that should receive updates. If this is zero no updates will be broadcast.</p></body></html> - - - 0 - - - 65534 - - - 14580 - - - - - - - <html><head/><body><p>APRS Server Passcode for Sending APRS Packets</p></body></html> - - - APRS Passcode: - - - - - - - - @@ -2744,6 +2672,111 @@ for assessing propagation and system performance. + + + + + 0 + 0 + + + + false + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + APRS Server: + + + udp_server_line_edit + + + + + + + + 0 + 0 + + + + <html><head/><body><p>Optional hostname of APRS server to send spots to.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the spotting to APRS.</p></body></html> + + + Qt::ImhDigitsOnly + + + rotate.aprs2.net + + + + + + + APRS Server Port: + + + udp_server_port_spin_box + + + + + + + <html><head/><body><p>Enter the service port number of the APRS server that should receive updates. If this is zero no updates will be broadcast.</p></body></html> + + + 0 + + + 65534 + + + 14580 + + + + + + + <html><head/><body><p>APRS Server Passcode for Sending APRS Packets</p></body></html> + + + APRS Passcode: + + + + + + + + + + + @@ -2804,7 +2837,7 @@ for assessing propagation and system performance. 0 0 760 - 502 + 510 @@ -3141,7 +3174,7 @@ QListView::item:hover { 0 0 760 - 502 + 510 @@ -4544,11 +4577,11 @@ soundcard changes - - - + + + diff --git a/js8call.pro b/js8call.pro index fa39151..924b2aa 100644 --- a/js8call.pro +++ b/js8call.pro @@ -71,7 +71,6 @@ SOURCES += \ NetworkMessage.cpp \ MessageClient.cpp \ SelfDestructMessageBox.cpp \ - APRSISClient.cpp \ messagereplydialog.cpp \ keyeater.cpp \ DriftingDateTime.cpp \ @@ -113,7 +112,6 @@ HEADERS += qt_helpers.hpp \ NetworkMessage.hpp \ MessageClient.hpp \ SelfDestructMessageBox.h \ - APRSISClient.h \ messagereplydialog.h \ keyeater.h \ DriftingDateTime.h \ diff --git a/mainwindow.cpp b/mainwindow.cpp index 0340e52..fd30713 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -32,7 +32,6 @@ #include #include -#include "APRSISClient.h" #include "revision_utils.hpp" #include "qt_helpers.hpp" #include "NetworkAccessManager.hpp" @@ -438,7 +437,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, this}}, m_n3fjpClient { new TCPClient{this}}, m_spotClient { new SpotClient{m_messageClient, this}}, - m_aprsClient {new APRSISClient{"rotate.aprs2.net", 14580, this}}, psk_Reporter {new PSK_Reporter {m_messageClient, this}}, m_i3bit {0}, m_manual {&m_network_manager}, @@ -3117,12 +3115,8 @@ void MainWindow::prepareSpotting(){ if(m_config.spot_to_reporting_networks ()){ spotSetLocal(); pskSetLocal(); - aprsSetLocal(); - m_aprsClient->setServer(m_config.aprs_server_name(), m_config.aprs_server_port()); - m_aprsClient->setPaused(false); ui->spotButton->setChecked(true); } else { - m_aprsClient->setPaused(true); ui->spotButton->setChecked(false); } } @@ -5170,18 +5164,6 @@ void MainWindow::spotCmd(CommandDetail cmd){ m_spotClient->enqueueCmd(cmdStr, cmd.from, cmd.to, cmd.relayPath, cmd.text, cmd.grid, cmd.extra, m_freqNominal + cmd.freq, cmd.snr); } -void MainWindow::spotAPRSMsg(CommandDetail d){ - if(!m_config.spot_to_reporting_networks()) return; - if(!m_aprsClient->isPasscodeValid()) return; - - // ONLY MSG IS APPROPRIATE HERE, e.g., - // KN4CRD: @APRSIS MSG :EMAIL-2 :email@domain.com booya{ - if(d.cmd != " MSG") return; - - qDebug() << "enqueueing third party text" << d.from << d.text; - m_aprsClient->enqueueThirdParty(Radio::base_callsign(d.from), d.text); -} - void MainWindow::pskLogReport(QString mode, int offset, int snr, QString callsign, QString grid){ if(!m_config.spot_to_reporting_networks()) return; @@ -5196,33 +5178,6 @@ void MainWindow::pskLogReport(QString mode, int offset, int snr, QString callsig QString::number(DriftingDateTime::currentDateTime().toTime_t())); } -void MainWindow::aprsLogReport(int offset, int snr, QString callsign, QString grid){ - if(!m_config.spot_to_reporting_networks()) return; - - Frequency frequency = m_freqNominal + offset; - - if(grid.length() < 6){ - qDebug() << "APRSISClient Spot Skipped:" << callsign << grid; - return; - } - - auto comment = QString("%1MHz %2dB").arg(Radio::frequency_MHz_string(frequency)).arg(Varicode::formatSNR(snr)); - if(callsign.contains("/")){ - comment = QString("%1 %2").arg(callsign).arg(comment); - } - - auto base = Radio::base_callsign(callsign); - callsign = APRSISClient::replaceCallsignSuffixWithSSID(callsign, base); - - if(m_aprsCallCache.contains(callsign)){ - qDebug() << "APRSISClient Spot Skipped For Cache:" << callsign << grid; - return; - } - - m_aprsClient->enqueueSpot(callsign, grid, comment); - m_aprsCallCache.insert(callsign, DriftingDateTime::currentDateTimeUtc()); -} - void MainWindow::killFile () { if (m_fnameWE.size () && @@ -6664,11 +6619,6 @@ bool MainWindow::ensureCreateMessageReady(const QString &text){ return false; } - if(text.contains("@APRSIS") && !m_aprsClient->isPasscodeValid()){ - MessageBox::warning_message(this, tr ("Please ensure a valid APRS passcode is set in the settings when sending to the @APRSIS group.")); - return false; - } - return true; } @@ -7772,7 +7722,6 @@ void MainWindow::band_changed (Frequency f) m_bandEdited = false; psk_Reporter->sendReport(); // Upload any queued spots before changing band - m_aprsClient->sendReports(); if (!m_transmitting) monitor (true); if ("FreqCal" == m_mode) { @@ -9501,7 +9450,6 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& if (m_config.spot_to_reporting_networks ()) { spotSetLocal(); pskSetLocal(); - aprsSetLocal(); } statusChanged(); m_wideGraph->setDialFreq(m_freqNominal / 1.e6); @@ -9661,19 +9609,6 @@ void MainWindow::pskSetLocal () psk_Reporter->setLocalStation(m_config.my_callsign (), m_config.my_grid (), info, QString {"JS8Call v" + version() }.simplified ()); } -void MainWindow::aprsSetLocal () -{ - auto call = m_config.my_callsign(); - auto base = Radio::base_callsign(call); - auto grid = m_config.my_grid(); - auto passcode = m_config.aprs_passcode(); - - call = APRSISClient::replaceCallsignSuffixWithSSID(call, base); - - qDebug() << "APRSISClient Set Local Station:" << call << grid << passcode; - m_aprsClient->setLocalStation(call, grid, passcode); -} - void MainWindow::transmitDisplay (bool transmitting) { ui->monitorTxButton->setChecked(transmitting); @@ -10833,25 +10768,15 @@ void MainWindow::processCommandActivity() { cd.tdrift = d.tdrift; cd.submode = d.submode; - if(d.to == "@APRSIS"){ - m_aprsCallCache.remove(cd.call); - m_aprsCallCache.remove(APRSISClient::replaceCallsignSuffixWithSSID(cd.call, Radio::base_callsign(cd.call))); - } - logCallActivity(cd, true); } } - // PROCESS @JS8NET SPOTS FOR EVERYONE - if (d.to == "@JS8NET"){ + // PROCESS @JS8NET AND @APRSIS SPOTS FOR EVERYONE + if (d.to == "@JS8NET" || d.to == "@APRSIS"){ spotCmd(d); } - // PROCESS @APRSIS MSG SPOTS FOR EVERYONE - if (d.to == "@APRSIS"){ - spotAPRSMsg(d); - } - // PREPARE CMD TEXT STRING QStringList textList = { QString("%1: %2%3").arg(d.from).arg(d.to).arg(d.cmd) @@ -11669,7 +11594,6 @@ void MainWindow::processSpots() { spotReport(d.freq, d.snr, d.call, d.grid); 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)}, diff --git a/mainwindow.h b/mainwindow.h index 541452b..bef602e 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -46,7 +46,6 @@ #include "MessageClient.hpp" #include "TCPClient.h" #include "SpotClient.h" -#include "APRSISClient.h" #include "keyeater.h" #include "NotificationAudio.h" @@ -840,7 +839,6 @@ private: QMap m_messageBuffer; // freq -> (cmd, [frames, ...]) int m_lastClosedMessageBufferOffset; QMap m_callActivity; // call -> (last freq, last timestamp) - QMap m_aprsCallCache; QMap> m_heardGraphOutgoing; // callsign -> [stations who've this callsign has heard] QMap> m_heardGraphIncoming; // callsign -> [stations who've heard this callsign] @@ -917,7 +915,6 @@ private: TCPClient * m_n3fjpClient; PSK_Reporter *psk_Reporter; SpotClient *m_spotClient; - APRSISClient * m_aprsClient; DisplayManual m_manual; QHash m_pwrBandTxMemory; // Remembers power level by band QHash m_pwrBandTuneMemory; // Remembers power level by band for tuning @@ -950,12 +947,9 @@ private: void rigFailure (QString const& reason); void spotSetLocal(); void pskSetLocal (); - void aprsSetLocal (); void spotReport(int offset, int snr, QString callsign, QString grid); void spotCmd(CommandDetail cmd); - void spotAPRSMsg(CommandDetail d); void pskLogReport(QString mode, int offset, int snr, QString callsign, QString grid); - void aprsLogReport(int offset, int snr, QString callsign, QString grid); Radio::Frequency dialFrequency(); void setSubmode(int submode); int submodeNameToSubmode(QString speed);