APRS call cache

This commit is contained in:
Jordan Sherer 2018-10-03 09:55:43 -04:00
parent 119499afa4
commit fe1cbcf6c6
2 changed files with 11 additions and 0 deletions

View File

@ -4088,7 +4088,13 @@ void MainWindow::aprsLogReport(int offset, int snr, QString callsign, QString gr
auto base = Radio::base_callsign(callsign); auto base = Radio::base_callsign(callsign);
callsign = APRSISClient::replaceCallsignSuffixWithSSID(callsign, base); 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_aprsClient->enqueueSpot(callsign, grid, comment);
m_aprsCallCache.insert(callsign, DriftingDateTime::currentDateTimeUtc());
} }
void MainWindow::killFile () void MainWindow::killFile ()
@ -9510,6 +9516,10 @@ void MainWindow::processCommandActivity() {
cd.grid = grid; cd.grid = grid;
cd.snr = d.snr; cd.snr = d.snr;
cd.utcTimestamp = d.utcTimestamp; cd.utcTimestamp = d.utcTimestamp;
m_aprsCallCache.remove(cd.call);
m_aprsCallCache.remove(APRSISClient::replaceCallsignSuffixWithSSID(cd.call, Radio::base_callsign(cd.call)));
logCallActivity(cd, true); logCallActivity(cd, true);
} }

View File

@ -779,6 +779,7 @@ private:
QMap<int, MessageBuffer> m_messageBuffer; // freq -> (cmd, [frames, ...]) QMap<int, MessageBuffer> m_messageBuffer; // freq -> (cmd, [frames, ...])
QMap<QString, CallDetail> m_callActivity; // call -> (last freq, last timestamp) QMap<QString, CallDetail> m_callActivity; // call -> (last freq, last timestamp)
QQueue<QString> m_txBeaconQueue; // beacon frames to be sent QQueue<QString> m_txBeaconQueue; // beacon frames to be sent
QMap<QString, QDateTime> m_aprsCallCache;
QMap<QString, QMap<QString, CallDetail>> m_callActivityCache; // band -> call activity QMap<QString, QMap<QString, CallDetail>> m_callActivityCache; // band -> call activity
QMap<QString, QMap<int, QList<ActivityDetail>>> m_bandActivityCache; // band -> band activity QMap<QString, QMap<int, QList<ActivityDetail>>> m_bandActivityCache; // band -> band activity