Long checksums for hash buffered messages. Display a newline if we reach the last frame and the frame is not buffered

This commit is contained in:
Jordan Sherer 2018-08-07 09:19:18 -04:00
parent 0755634366
commit 9e6b647139
2 changed files with 11 additions and 3 deletions

View File

@ -3243,8 +3243,7 @@ void MainWindow::readFromStdout() //readFromStdout
d.text = decodedtext.message(); d.text = decodedtext.message();
d.utcTimestamp = QDateTime::currentDateTimeUtc(); d.utcTimestamp = QDateTime::currentDateTimeUtc();
d.snr = decodedtext.snr(); d.snr = decodedtext.snr();
m_bandActivity[offset].append(d); d.isBuffered = false;
m_rxActivityQueue.append(d);
// if we have any "first" frame, and a buffer is already established, clear it... // if we have any "first" frame, and a buffer is already established, clear it...
if(d.bits == Varicode::FT8CallFirst && m_messageBuffer.contains(d.freq/10*10)){ if(d.bits == Varicode::FT8CallFirst && m_messageBuffer.contains(d.freq/10*10)){
@ -3255,9 +3254,12 @@ void MainWindow::readFromStdout() //readFromStdout
// if we have a data frame, and a message buffer has been established, buffer it... // if we have a data frame, and a message buffer has been established, buffer it...
if(m_messageBuffer.contains(d.freq/10*10) && !decodedtext.isCompound() && !decodedtext.isDirectedMessage()){ if(m_messageBuffer.contains(d.freq/10*10) && !decodedtext.isCompound() && !decodedtext.isDirectedMessage()){
qDebug() << "buffering data" << (d.freq/10*10) << d.text; qDebug() << "buffering data" << (d.freq/10*10) << d.text;
d.isBuffered = true;
m_messageBuffer[d.freq/10*10].msgs.append(d); m_messageBuffer[d.freq/10*10].msgs.append(d);
} }
m_rxActivityQueue.append(d);
m_bandActivity[offset].append(d);
while(m_bandActivity[offset].count() > 10){ while(m_bandActivity[offset].count() > 10){
m_bandActivity[offset].removeFirst(); m_bandActivity[offset].removeFirst();
} }
@ -5932,7 +5934,7 @@ QStringList MainWindow::buildFT8MessageFrames(QString const& text){
line = lstrip(line); line = lstrip(line);
qDebug() << "before:" << line; qDebug() << "before:" << line;
bool shouldUseLargeChecksum = false; bool shouldUseLargeChecksum = true;
if(shouldUseLargeChecksum && dirCmd == "#"){ if(shouldUseLargeChecksum && dirCmd == "#"){
line = line + " " + Varicode::checksum32(line); line = line + " " + Varicode::checksum32(line);
} else { } else {
@ -8332,6 +8334,11 @@ void MainWindow::processRxActivity() {
displayTextForFreq(d.text, d.freq, d.utcTimestamp, false, false, false); displayTextForFreq(d.text, d.freq, d.utcTimestamp, false, false, false);
if(isLast && !d.isBuffered){
// buffered commands need the rxFrameBlockNumbers cache so it can fixup its display
// all other "last" data frames can clear the rxFrameBlockNumbers cache so the next message will be on a new line.
m_rxFrameBlockNumbers.remove(freq);
}
} }
} }

View File

@ -671,6 +671,7 @@ private:
bool isLowConfidence; bool isLowConfidence;
bool isCompound; bool isCompound;
bool isDirected; bool isDirected;
bool isBuffered;
int bits; int bits;
int freq; int freq;
QString text; QString text;