diff --git a/mainwindow.cpp b/mainwindow.cpp index f55a6cd..16a0053 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1459,6 +1459,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, d.relayPath = d.from; d.text = m->textValue(); d.utcTimestamp = DriftingDateTime::currentDateTimeUtc(); + d.modename = modeName(m_nSubMode); addCommandToStorage("STORE", d); }); @@ -1931,7 +1932,7 @@ void MainWindow::initializeDummyData(){ cd.utcTimestamp = dt; cd.grid = i == 5 ? "J042" : i == 6 ? " FN42FN42FN" : ""; cd.tdrift = 0.1*i; - cd.mode = currentMode(); + cd.modename = modeName(i % 4); logCallActivity(cd, false); ActivityDetail ad = {}; @@ -1940,7 +1941,7 @@ void MainWindow::initializeDummyData(){ ad.freq = 500 + 100*i; ad.text = QString("%1: %2 TEST MESSAGE").arg(call).arg(m_config.my_callsign()); ad.utcTimestamp = dt; - ad.mode = cd.mode; + ad.modename = cd.modename; m_bandActivity[500+100*i] = { ad }; markOffsetDirected(500+100*i, false); @@ -1954,7 +1955,7 @@ void MainWindow::initializeDummyData(){ adHB1.freq = 750; adHB1.text = QString("KN4CRD: HB AUTO EM73"); adHB1.utcTimestamp = DriftingDateTime::currentDateTimeUtc(); - adHB1.mode = "NORMAL"; + adHB1.modename = "NORMAL"; m_bandActivity[750].append(adHB1); ActivityDetail adHB2 = {}; @@ -1963,7 +1964,7 @@ void MainWindow::initializeDummyData(){ adHB2.freq = 750; adHB2.text = QString(" MSG ID 1"); adHB2.utcTimestamp = DriftingDateTime::currentDateTimeUtc(); - adHB2.mode = "NORMAL"; + adHB2.modename = "NORMAL"; m_bandActivity[750].append(adHB2); CommandDetail cmd = {}; @@ -1973,6 +1974,7 @@ void MainWindow::initializeDummyData(){ cmd.relayPath = "N0JDS>OH8STN"; cmd.text = "HELLO BRAVE SOUL"; cmd.utcTimestamp = dt; + cmd.modename = "NORMAL"; addCommandToMyInbox(cmd); QString eot = m_config.eot(); @@ -2276,7 +2278,7 @@ void MainWindow::writeSettings() {"ackTimestamp", QVariant(cd.ackTimestamp)}, {"utcTimestamp", QVariant(cd.utcTimestamp)}, #endif - {"mode", QVariant(cd.mode)}, + {"mode", QVariant(cd.modename)}, }); } m_settings->endGroup(); @@ -2471,7 +2473,7 @@ void MainWindow::readSettings() cd.tdrift = tdrift; cd.ackTimestamp = ackTimestamp; cd.utcTimestamp = utcTimestamp; - cd.mode = mode; + cd.modename = mode; logCallActivity(cd, false); } @@ -3223,17 +3225,17 @@ Radio::Frequency MainWindow::dialFrequency() { m_rigState.tx_frequency () : m_rigState.frequency ()}; } -QString MainWindow::currentMode(){ - if(m_nSubMode == Varicode::JS8CallNormal){ +QString MainWindow::modeName(int submode){ + if(submode == Varicode::JS8CallNormal){ return "NORMAL"; } - else if(m_nSubMode == Varicode::JS8CallFast){ + else if(submode == Varicode::JS8CallFast){ return "FAST"; } - else if(m_nSubMode == Varicode::JS8CallTurbo){ + else if(submode == Varicode::JS8CallTurbo){ return "TURBO"; } - else if(m_nSubMode == Varicode::JS8CallUltra){ + else if(submode == Varicode::JS8CallUltra){ #ifdef JS8D_IS_ULTRA return "ULTRA"; #else @@ -4277,7 +4279,7 @@ void MainWindow::readFromStdout() //readFromStdout d.snr = decodedtext.snr(); d.isBuffered = false; d.tdrift = decodedtext.dt(); - d.mode = currentMode(); + d.modename = modeName(decodedtext.submode()); // if we have any "first" frame, and a buffer is already established, clear it... int prevBufferOffset = -1; @@ -4314,7 +4316,7 @@ void MainWindow::readFromStdout() //readFromStdout cd.utcTimestamp = DriftingDateTime::currentDateTimeUtc(); cd.bits = decodedtext.bits(); cd.tdrift = decodedtext.dt(); - cd.mode = currentMode(); + cd.modename = modeName(decodedtext.submode()); // Only respond to HEARTBEATS...remember that CQ messages are "Alt" pings if(decodedtext.isHeartbeat()){ @@ -4339,7 +4341,7 @@ void MainWindow::readFromStdout() //readFromStdout cmd.freq = cd.freq; cmd.utcTimestamp = cd.utcTimestamp; cmd.tdrift = cd.tdrift; - cmd.mode = cd.mode; + cmd.modename = cd.modename; m_rxCommandQueue.append(cmd); // notification for hb @@ -4371,7 +4373,7 @@ void MainWindow::readFromStdout() //readFromStdout cmd.bits = decodedtext.bits(); cmd.extra = parts.length() > 2 ? parts.mid(3).join(" ") : ""; cmd.tdrift = decodedtext.dt(); - cmd.mode = currentMode(); + cmd.modename = modeName(decodedtext.submode()); // if the command is a buffered command and its not the last frame OR we have from or to in a separate message (compound call) if((Varicode::isCommandBuffered(cmd.cmd) && (cmd.bits & Varicode::JS8CallLast) != Varicode::JS8CallLast) || cmd.from == "<....>" || cmd.to == "<....>"){ @@ -4387,7 +4389,7 @@ void MainWindow::readFromStdout() //readFromStdout cmdcd.utcTimestamp = cmd.utcTimestamp; cmdcd.ackTimestamp = cmd.to == m_config.my_callsign() ? cmd.utcTimestamp : QDateTime{}; cmdcd.tdrift = cmd.tdrift; - cmdcd.mode = currentMode(); + cmdcd.modename = cmd.modename; logCallActivity(cmdcd, false); logHeardGraph(cmd.from, cmd.to); } @@ -4422,7 +4424,7 @@ void MainWindow::readFromStdout() //readFromStdout td.freq = cmd.freq; td.utcTimestamp = cmd.utcTimestamp; td.tdrift = cmd.tdrift; - td.mode = currentMode(); + td.modename = cmd.modename; logCallActivity(td, true); logHeardGraph(cmd.from, cmd.to); } @@ -6979,7 +6981,7 @@ void MainWindow::on_actionJS8_triggered() // ui->actionModeJS8HB->setChecked(false); //} - auto modeText = currentMode(); + auto modeText = modeName(m_nSubMode); if(ui->actionModeAutoreply->isChecked()){ modeText += QString("+AUTO"); } @@ -10014,7 +10016,7 @@ void MainWindow::processRxActivity() { cd.bits = d.bits; cd.tdrift = d.tdrift; cd.utcTimestamp = d.utcTimestamp; - cd.mode = currentMode(); + cd.modename = d.modename; logCallActivity(cd, true); } } @@ -10359,7 +10361,7 @@ void MainWindow::processCommandActivity() { cd.ackTimestamp = d.text.contains(": ACK") || toMe ? d.utcTimestamp : QDateTime{}; cd.utcTimestamp = d.utcTimestamp; cd.tdrift = d.tdrift; - cd.mode = currentMode(); + cd.modename = d.modename; logCallActivity(cd, true); logHeardGraph(d.from, d.to); @@ -10387,7 +10389,7 @@ void MainWindow::processCommandActivity() { cd.snr = d.snr; cd.utcTimestamp = d.utcTimestamp; cd.tdrift = d.tdrift; - cd.mode = currentMode(); + cd.modename = d.modename; if(d.to == "@APRSIS"){ m_aprsCallCache.remove(cd.call); @@ -10652,7 +10654,7 @@ void MainWindow::processCommandActivity() { cd.through = d.from; cd.utcTimestamp = DriftingDateTime::currentDateTimeUtc(); cd.tdrift = d.tdrift; - cd.mode = currentMode(); + cd.modename = d.modename; logCallActivity(cd, false); } @@ -10751,6 +10753,7 @@ void MainWindow::processCommandActivity() { cd.text = text; cd.to = Radio::base_callsign(to); cd.utcTimestamp = d.utcTimestamp; + cd.modename = d.modename; qDebug() << "storing message to" << to << ":" << text; @@ -11077,6 +11080,7 @@ void MainWindow::refreshInboxCounts(){ auto snr = params.value("SNR").toInt(); auto freq = params.value("OFFSET").toInt(); auto tdrift = params.value("TDRIFT").toInt(); + auto mode = params.value("MODENAME").toString(); CallDetail cd; cd.call = from; @@ -11086,7 +11090,7 @@ void MainWindow::refreshInboxCounts(){ cd.utcTimestamp = QDateTime::fromString(utc, "yyyy-MM-dd hh:mm:ss"); cd.utcTimestamp.setUtcOffset(0); cd.ackTimestamp = cd.utcTimestamp; - cd.mode = currentMode(); + cd.modename = mode; logCallActivity(cd, false); } } @@ -11132,6 +11136,7 @@ int MainWindow::addCommandToStorage(QString type, CommandDetail d){ {"OFFSET", QVariant(d.freq)}, {"CMD", QVariant(d.cmd)}, {"SNR", QVariant(d.snr)}, + {"MODENAME", QVariant(d.modename)}, }; if(!d.grid.isEmpty()){ @@ -11475,7 +11480,7 @@ void MainWindow::displayBandActivity() { age = since(item.utcTimestamp); timestamp = item.utcTimestamp; tdrift = item.tdrift; - mode = item.mode; + mode = item.modename; } auto joined = Varicode::rstrip(text.join("")); @@ -11794,9 +11799,9 @@ void MainWindow::displayCallActivity() { ui->tableWidgetCalls->setItem(row, col++, new QTableWidgetItem(QString("%1 ms").arg((int)(1000*d.tdrift)))); - auto modeItem = new QTableWidgetItem(d.mode.left(1).replace("H", "N")); - modeItem->setToolTip(d.mode); - modeItem->setData(Qt::UserRole, QVariant(d.mode)); + auto modeItem = new QTableWidgetItem(d.modename.left(1).replace("H", "N")); + modeItem->setToolTip(d.modename); + modeItem->setData(Qt::UserRole, QVariant(d.modename)); modeItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); ui->tableWidgetCalls->setItem(row, col++, modeItem); diff --git a/mainwindow.h b/mainwindow.h index 8dd30f4..b27eae4 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -745,7 +745,7 @@ private: int snr; int bits; float tdrift; - QString mode; + QString modename; }; struct CommandDetail @@ -763,7 +763,7 @@ private: QString text; QString extra; float tdrift; - QString mode; + QString modename; QString relayPath; }; @@ -781,7 +781,7 @@ private: int snr; bool shouldDisplay; float tdrift; - QString mode; + QString modename; }; struct MessageBuffer { @@ -965,7 +965,7 @@ private: 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(); - QString currentMode(); + QString modeName(int submode); void updateCurrentBand(); void displayDialFrequency (); void transmitDisplay (bool);