diff --git a/Configuration.ui b/Configuration.ui index 192aa9f..abcb94d 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -36,7 +36,7 @@ - 0 + 1 @@ -367,9 +367,9 @@ - + - Immediately transmit CQ, Reply, Info, Saved, and Directed messages from the menu + Allow sending standard messages without callsign @@ -388,9 +388,9 @@ - + - Allow sending standard messages without callsign + Immediately transmit CQ, Reply, Info, Saved, and Directed messages from the menu @@ -4075,8 +4075,6 @@ soundcard changes monitor_off_check_box tx_qsy_check_box transmit_directed_check_box - heartbeat_anywhere_check_box - heartbeat_qso_pause_check_box spellcheck_check_box autoreply_off_check_box relay_disabled_check_box diff --git a/mainwindow.cpp b/mainwindow.cpp index 1dbc49e..1199f0f 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -9783,17 +9783,33 @@ void MainWindow::processRxActivity() { } - } else { + } else if(d.isDirected && d.text.contains("<....>")){ // if this is a _partial_ directed message, skip until the complete call comes through. - if(d.isDirected && d.text.contains("<....>")){ - continue; - } + continue; + } else if(d.isDirected && d.text.contains(": HB ")){ // TODO: HEARTBEAT + // if this is a heartbeat, process elsewhere... + continue; + } - if(d.isDirected && d.text.contains(": HB ")){ // TODO: HEARTBEAT - continue; + // if this is the first data frame of a standard message, parse the first word callsigns and spot them :) + if((d.bits & Varicode::JS8CallFirst) == Varicode::JS8CallFirst && !d.isDirected && !d.isCompound){ + auto calls = Varicode::parseCallsigns(d.text); + if(!calls.isEmpty()){ + auto theirCall = calls.first(); + if(d.text.startsWith(theirCall) && d.text.mid(theirCall.length(), 1) == ":"){ + CallDetail cd = {}; + cd.call = theirCall; + cd.freq = d.freq; + cd.snr = d.snr; + cd.bits = d.bits; + cd.tdrift = d.tdrift; + cd.utcTimestamp = d.utcTimestamp; + logCallActivity(cd, true); + } } } + // TODO: incremental printing of directed messages // Display if: // 1) this is a directed message header "to" us and should be buffered...