Added ability to display when we receive the final transmission frame of a message
This commit is contained in:
parent
58032b6ae4
commit
deb228948d
@ -3176,6 +3176,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
ActivityDetail d;
|
ActivityDetail d;
|
||||||
d.isLowConfidence = decodedtext.isLowConfidence();
|
d.isLowConfidence = decodedtext.isLowConfidence();
|
||||||
d.isFree = !decodedtext.isStandardMessage();
|
d.isFree = !decodedtext.isStandardMessage();
|
||||||
|
d.bits = decodedtext.bits();
|
||||||
d.firstCall = decodedtext.CQersCall();
|
d.firstCall = decodedtext.CQersCall();
|
||||||
if(d.firstCall.isEmpty()){
|
if(d.firstCall.isEmpty()){
|
||||||
auto words = decodedtext.messageWords();
|
auto words = decodedtext.messageWords();
|
||||||
@ -3333,6 +3334,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
// TODO: jsherer - parse decode...
|
// TODO: jsherer - parse decode...
|
||||||
RXDetail d;
|
RXDetail d;
|
||||||
d.isFree = !decodedtext.isStandardMessage();
|
d.isFree = !decodedtext.isStandardMessage();
|
||||||
|
d.bits = decodedtext.bits();
|
||||||
d.freq = audioFreq;
|
d.freq = audioFreq;
|
||||||
d.text = decodedtext.message();
|
d.text = decodedtext.message();
|
||||||
d.utcTimestamp = QDateTime::currentDateTimeUtc();
|
d.utcTimestamp = QDateTime::currentDateTimeUtc();
|
||||||
@ -5546,6 +5548,7 @@ bool MainWindow::prepareNextMessageFrame()
|
|||||||
{
|
{
|
||||||
QString frame = popMessageFrame();
|
QString frame = popMessageFrame();
|
||||||
if(frame.isEmpty()){
|
if(frame.isEmpty()){
|
||||||
|
m_i3bit = Varicode::FT8;
|
||||||
ui->nextFreeTextMsg->clear();
|
ui->nextFreeTextMsg->clear();
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@ -5553,6 +5556,12 @@ bool MainWindow::prepareNextMessageFrame()
|
|||||||
|
|
||||||
int count = m_txFrameCount;
|
int count = m_txFrameCount;
|
||||||
int sent = count - m_txFrameQueue.count();
|
int sent = count - m_txFrameQueue.count();
|
||||||
|
|
||||||
|
m_i3bit = Varicode::FT8Call;
|
||||||
|
if(count == sent){
|
||||||
|
m_i3bit = Varicode::FT8CallLast;
|
||||||
|
}
|
||||||
|
|
||||||
ui->startTxButton->setText(QString("Sending (%1/%2)").arg(sent).arg(count));
|
ui->startTxButton->setText(QString("Sending (%1/%2)").arg(sent).arg(count));
|
||||||
|
|
||||||
if(ui->beaconButton->isChecked()){
|
if(ui->beaconButton->isChecked()){
|
||||||
@ -7959,6 +7968,9 @@ void MainWindow::displayActivity(bool force){
|
|||||||
if(item.isLowConfidence){
|
if(item.isLowConfidence){
|
||||||
item.text = QString("[%1]").arg(item.text);
|
item.text = QString("[%1]").arg(item.text);
|
||||||
}
|
}
|
||||||
|
if(item.bits == Varicode::FT8CallLast){
|
||||||
|
item.text = QString("%1 \u220E ").arg(item.text);
|
||||||
|
}
|
||||||
text.append(item.text);
|
text.append(item.text);
|
||||||
snr = item.snr;
|
snr = item.snr;
|
||||||
age = since(item.utcTimestamp);
|
age = since(item.utcTimestamp);
|
||||||
@ -8063,6 +8075,10 @@ void MainWindow::displayActivity(bool force){
|
|||||||
RXDetail d = m_rxFrameQueue.first();
|
RXDetail d = m_rxFrameQueue.first();
|
||||||
m_rxFrameQueue.removeFirst();
|
m_rxFrameQueue.removeFirst();
|
||||||
|
|
||||||
|
if(d.bits == Varicode::FT8CallLast){
|
||||||
|
d.text = QString("%1 \u220E ").arg(d.text);
|
||||||
|
}
|
||||||
|
|
||||||
int freq = d.freq/10*10;
|
int freq = d.freq/10*10;
|
||||||
int block = m_rxFrameBlockNumbers.contains(freq) ? m_rxFrameBlockNumbers[freq] : -1;
|
int block = m_rxFrameBlockNumbers.contains(freq) ? m_rxFrameBlockNumbers[freq] : -1;
|
||||||
block = logRxTxMessageText(d.utcTimestamp, d.isFree, d.text, d.freq, false, block);
|
block = logRxTxMessageText(d.utcTimestamp, d.isFree, d.text, d.freq, false, block);
|
||||||
|
@ -656,6 +656,7 @@ private:
|
|||||||
{
|
{
|
||||||
bool isFree;
|
bool isFree;
|
||||||
bool isLowConfidence;
|
bool isLowConfidence;
|
||||||
|
int bits;
|
||||||
QString firstCall;
|
QString firstCall;
|
||||||
QString secondCall;
|
QString secondCall;
|
||||||
int freq;
|
int freq;
|
||||||
@ -667,6 +668,8 @@ private:
|
|||||||
struct RXDetail
|
struct RXDetail
|
||||||
{
|
{
|
||||||
bool isFree;
|
bool isFree;
|
||||||
|
bool isLowConfidence;
|
||||||
|
int bits;
|
||||||
int freq;
|
int freq;
|
||||||
QString text;
|
QString text;
|
||||||
QDateTime utcTimestamp;
|
QDateTime utcTimestamp;
|
||||||
|
11
varicode.h
11
varicode.h
@ -15,6 +15,17 @@
|
|||||||
class Varicode
|
class Varicode
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
enum FrameType{
|
||||||
|
FT8 = 0, // [000]
|
||||||
|
FT8Fox = 1, // [001]
|
||||||
|
FT8Call = 2, // [010]
|
||||||
|
FT8CallLast = 3, // [011] <- used to indicate last frame in transmission
|
||||||
|
FT8CallReservedA = 4, // [100]
|
||||||
|
FT8CallReservedB = 5, // [101]
|
||||||
|
FT8CallReservedC = 6, // [110]
|
||||||
|
FT8CallReservedD = 7, // [111]
|
||||||
|
};
|
||||||
|
|
||||||
//Varicode();
|
//Varicode();
|
||||||
|
|
||||||
static QStringList parseCallsigns(QString const &input);
|
static QStringList parseCallsigns(QString const &input);
|
||||||
|
Loading…
Reference in New Issue
Block a user