mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-30 16:18:50 -04:00
FT8 demod: added message type column im nessages table
This commit is contained in:
parent
e265ddf887
commit
5980dda8a9
@ -367,8 +367,6 @@ std::string Packing::unpack_0_1(int a77[], std::string& call1str, std::string& c
|
||||
{
|
||||
// bit fields: c28 c28 h10 r5
|
||||
int i = 0;
|
||||
int tu = a77[i];
|
||||
i += 1;
|
||||
int call1 = un64(a77, i, 28); // c28
|
||||
i += 28;
|
||||
int call2 = un64(a77, i, 28); // c28
|
||||
|
@ -40,12 +40,14 @@ private:
|
||||
std::string unpackcall(int x);
|
||||
std::string unpackgrid(int ng, int ir, int i3);
|
||||
void remember_call(std::string call);
|
||||
std::string unpack_4(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
std::string unpack_1(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
std::string unpack_0_0(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
std::string unpack_0_1(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
std::string unpack_3(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
// 0.3 and 0.4
|
||||
std::string unpack_0_3(int a77[], int n3, std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
// 1 and 2
|
||||
std::string unpack_1(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
std::string unpack_3(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
std::string unpack_4(int a77[], std::string& call1str, std::string& call2str, std::string& locstr);
|
||||
|
||||
QRecursiveMutex hashes_mu;
|
||||
std::map<int, std::string> hashes10;
|
||||
|
@ -69,6 +69,8 @@ QVariant FT8MessagesTableModel::data(const QModelIndex &index, int role) const
|
||||
switch (index.column()) {
|
||||
case FT8DemodSettings::MESSAGE_COL_UTC:
|
||||
return ft8Message.m_utc;
|
||||
case FT8DemodSettings::MESSAGE_COL_TYPE:
|
||||
return ft8Message.m_type;
|
||||
case FT8DemodSettings::MESSAGE_COL_PASS:
|
||||
return ft8Message.m_pass;
|
||||
case FT8DemodSettings::MESSAGE_COL_OKBITS:
|
||||
@ -95,6 +97,7 @@ QVariant FT8MessagesTableModel::data(const QModelIndex &index, int role) const
|
||||
if (role == Qt::TextAlignmentRole)
|
||||
{
|
||||
switch (index.column()) {
|
||||
case FT8DemodSettings::MESSAGE_COL_TYPE:
|
||||
case FT8DemodSettings::MESSAGE_COL_DT:
|
||||
case FT8DemodSettings::MESSAGE_COL_DF:
|
||||
case FT8DemodSettings::MESSAGE_COL_SNR:
|
||||
@ -114,6 +117,8 @@ QVariant FT8MessagesTableModel::headerData(int section, Qt::Orientation orientat
|
||||
switch (section) {
|
||||
case FT8DemodSettings::MESSAGE_COL_UTC:
|
||||
return tr("UTC");
|
||||
case FT8DemodSettings::MESSAGE_COL_TYPE:
|
||||
return tr("Typ");
|
||||
case FT8DemodSettings::MESSAGE_COL_PASS:
|
||||
return tr("P");
|
||||
case FT8DemodSettings::MESSAGE_COL_OKBITS:
|
||||
@ -142,6 +147,8 @@ QVariant FT8MessagesTableModel::headerData(int section, Qt::Orientation orientat
|
||||
switch (section) {
|
||||
case FT8DemodSettings::MESSAGE_COL_UTC:
|
||||
return tr("Sequence UTC time HHMMSS");
|
||||
case FT8DemodSettings::MESSAGE_COL_TYPE:
|
||||
return tr("Message type (see documentation)");
|
||||
case FT8DemodSettings::MESSAGE_COL_PASS:
|
||||
return tr("Successful decoder pass index");
|
||||
case FT8DemodSettings::MESSAGE_COL_OKBITS:
|
||||
@ -183,6 +190,7 @@ void FT8MessagesTableModel::messagesReceived(const QList<FT8Message>& messages)
|
||||
{
|
||||
m_ft8Messages.push_back(FT8MesssageData{
|
||||
message.ts.toString("HHmmss"),
|
||||
message.type,
|
||||
message.pass,
|
||||
message.nbCorrectBits,
|
||||
message.dt,
|
||||
@ -207,6 +215,7 @@ void FT8MessagesTableModel::setDefaultMessage()
|
||||
beginInsertRows(QModelIndex(), 0, 0);
|
||||
m_ft8Messages.push_back(FT8MesssageData{
|
||||
"000000",
|
||||
"0.0",
|
||||
0,
|
||||
174,
|
||||
-8.0,
|
||||
|
@ -44,6 +44,7 @@ namespace Ui {
|
||||
struct FT8MesssageData
|
||||
{
|
||||
QString m_utc;
|
||||
QString m_type;
|
||||
int m_pass;
|
||||
int m_okBits;
|
||||
float m_dt;
|
||||
@ -73,7 +74,7 @@ public:
|
||||
|
||||
private:
|
||||
QVector<FT8MesssageData> m_ft8Messages;
|
||||
static const int m_columnCount = 10;
|
||||
static const int m_columnCount = 11;
|
||||
};
|
||||
|
||||
class FT8DemodGUI : public ChannelGUI {
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>520</width>
|
||||
<width>542</width>
|
||||
<height>731</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -18,7 +18,7 @@
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>520</width>
|
||||
<width>542</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -36,7 +36,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>501</width>
|
||||
<width>531</width>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -648,9 +648,9 @@
|
||||
<widget class="QWidget" name="spectrumContainer" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<x>0</x>
|
||||
<y>193</y>
|
||||
<width>218</width>
|
||||
<width>531</width>
|
||||
<height>261</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -719,12 +719,12 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tft8Container" native="true">
|
||||
<widget class="QWidget" name="ft8Container" native="true">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>460</y>
|
||||
<width>501</width>
|
||||
<width>531</width>
|
||||
<height>251</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -754,7 +754,7 @@
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>3</number>
|
||||
|
@ -52,6 +52,7 @@ struct FT8DemodSettings
|
||||
{
|
||||
enum MessageCol {
|
||||
MESSAGE_COL_UTC,
|
||||
MESSAGE_COL_TYPE,
|
||||
MESSAGE_COL_PASS,
|
||||
MESSAGE_COL_OKBITS,
|
||||
MESSAGE_COL_DT,
|
||||
|
@ -78,7 +78,7 @@ int FT8DemodWorker::FT8Callback::hcb(
|
||||
pass,
|
||||
(int) snr,
|
||||
correct_bits,
|
||||
off - 0.5,
|
||||
off - 0.5f,
|
||||
hz0,
|
||||
QString(call1.c_str()).simplified(),
|
||||
QString(call2.c_str()).simplified(),
|
||||
|
@ -183,6 +183,17 @@ Where date is the slot date in YYYYMMDD format (in WSJT-X this is YYMMDD) and ti
|
||||
Displays the received messages in a table which columns are the following:
|
||||
|
||||
- **UTC**: UTC time in HHmmss format of the FT8 slot
|
||||
- **Typ**: Message type according to the i3.n3 format described in the protocol (see reference at the top):
|
||||
- **0.0**: Free text
|
||||
- **0.1**: DXpedition. Message carries two compacted messages (one for RR73 and one for report to two different callees). They will be de-compacted for dispplay.
|
||||
- **0.3**: ARRL field day
|
||||
- **0.4**: ARRL field day
|
||||
- **0.5**: Telemetry
|
||||
- **1**: Standard message (the most common)
|
||||
- **2**: European VHF (4 char locator) minor change to standard message
|
||||
- **3**: Russian RTTY
|
||||
- **4**: Non standard call
|
||||
- **5**: European VHF (6 char locator)
|
||||
- **P**: LDPC decoder pass index that was successful (0 to 2) as there are 3 passes
|
||||
- **OKb**: Number of correct bits in the message before FEC correction. Maximum is 174 in which case no FEC would be needed.
|
||||
- **dt**: Message start time shift in seconds from standard FT8 time slot
|
||||
|
Loading…
Reference in New Issue
Block a user