Updated APRS spotting connections for better reliability

This commit is contained in:
Jordan Sherer 2018-08-30 12:18:20 -04:00
parent 2b62734437
commit 6ab3d32e3b
2 changed files with 7 additions and 4 deletions

View File

@ -13,7 +13,7 @@ APRSISClient::APRSISClient(QString host, quint16 port, QObject *parent):
m_port(port) m_port(port)
{ {
connect(&m_timer, &QTimer::timeout, this, &APRSISClient::sendReports); connect(&m_timer, &QTimer::timeout, this, &APRSISClient::sendReports);
m_timer.setInterval(60*1000); // every minute m_timer.setInterval(30*1000); // every 30 seconds
m_timer.start(); m_timer.start();
} }
@ -188,12 +188,11 @@ void APRSISClient::enqueueSpot(QString theircall, QString grid, quint64 frequenc
if(m_localCall.isEmpty()) return; if(m_localCall.isEmpty()) return;
auto geo = APRSISClient::grid2aprs(grid); auto geo = APRSISClient::grid2aprs(grid);
auto spotFrame = QString("%1>%2,APRS,TCPIP*:=%3/%4nFT8CALL %5 %6MHz %7dB\n"); auto spotFrame = QString("%1>%2,APRS,TCPIP*:=%3/%4nFT8CALL %5MHz %6dB\n");
spotFrame = spotFrame.arg(theircall); spotFrame = spotFrame.arg(theircall);
spotFrame = spotFrame.arg(m_localCall); spotFrame = spotFrame.arg(m_localCall);
spotFrame = spotFrame.arg(geo.first); spotFrame = spotFrame.arg(geo.first);
spotFrame = spotFrame.arg(geo.second); spotFrame = spotFrame.arg(geo.second);
spotFrame = spotFrame.arg(m_localGrid.left(4));
spotFrame = spotFrame.arg(Radio::frequency_MHz_string(frequency)); spotFrame = spotFrame.arg(Radio::frequency_MHz_string(frequency));
spotFrame = spotFrame.arg(Varicode::formatSNR(snr)); spotFrame = spotFrame.arg(Varicode::formatSNR(snr));
enqueueRaw(spotFrame); enqueueRaw(spotFrame);
@ -222,8 +221,12 @@ void APRSISClient::enqueueRaw(QString aprsFrame){
} }
void APRSISClient::processQueue(bool disconnect){ void APRSISClient::processQueue(bool disconnect){
// don't process queue if we haven't set our local callsign
if(m_localCall.isEmpty()) return; if(m_localCall.isEmpty()) return;
// don't process queue if there's nothing to process
if(m_frameQueue.isEmpty()) return;
// 1. connect (and read) // 1. connect (and read)
// 2. login (and read) // 2. login (and read)
// 3. for each raw frame in queue, send // 3. for each raw frame in queue, send

View File

@ -7041,7 +7041,7 @@ void MainWindow::band_changed (Frequency f)
m_bandEdited = false; m_bandEdited = false;
psk_Reporter->sendReport(); // Upload any queued spots before changing band psk_Reporter->sendReport(); // Upload any queued spots before changing band
m_aprsClient->processQueue(); m_aprsClient->processQueue(true);
if (!m_transmitting) monitor (true); if (!m_transmitting) monitor (true);
if ("FreqCal" == m_mode) if ("FreqCal" == m_mode)
{ {