mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 05:38:46 -05:00
ee2badb86f
The UDP decode and reply message have been augmented with a boolean flag denoting a low confidence decode when set. Existing clients can safely use the reply message without passing the flag as the default value will still action messages that have high confidence. If low confidence decodes are to be passed back via the reply message then the low confidence flag must be included and correctly set to match the original decode. See NetworkMessage.hpp for message fields and meanings. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7957 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
94 lines
2.3 KiB
C++
94 lines
2.3 KiB
C++
// -*- Mode: C++ -*-
|
|
/*
|
|
* Class to handle the formatted string as returned from the fortran decoder
|
|
*
|
|
* VK3ACF August 2013
|
|
*/
|
|
|
|
|
|
#ifndef DECODEDTEXT_H
|
|
#define DECODEDTEXT_H
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
/*
|
|
0123456789012345678901234567890123456789
|
|
^ ^ ^ ^ ^ ^
|
|
2343 -11 0.8 1259 # YV6BFE F6GUU R-08
|
|
2343 -19 0.3 718 # VE6WQ SQ2NIJ -14
|
|
2343 -7 0.3 815 # KK4DSD W7VP -16
|
|
2343 -13 0.1 3627 @ CT1FBK IK5YZT R+02
|
|
|
|
0605 Tx 1259 # CQ VK3ACF QF22
|
|
*/
|
|
|
|
class DecodedText
|
|
{
|
|
public:
|
|
void operator=(const QString &rhs)
|
|
{
|
|
_string = rhs;
|
|
padding_ = _string.indexOf (" ") > 4 ? 2 : 0; // allow for seconds
|
|
};
|
|
void operator=(const QByteArray &rhs)
|
|
{
|
|
_string = rhs;
|
|
padding_ = _string.indexOf (" ") > 4 ? 2 : 0; // allow for seconds
|
|
};
|
|
|
|
void operator+=(const QString &rhs)
|
|
{
|
|
_string += rhs;
|
|
};
|
|
|
|
QString string() { return _string; };
|
|
|
|
int indexOf(QString s) { return _string.indexOf(s); };
|
|
int indexOf(QString s, int i) { return _string.indexOf(s,i); };
|
|
QString mid(int f, int t) { return _string.mid(f,t); };
|
|
QString left(int i) { return _string.left(i); };
|
|
|
|
void clear() { _string.clear(); };
|
|
|
|
QString CQersCall();
|
|
|
|
bool isJT65();
|
|
bool isJT9();
|
|
bool isTX();
|
|
bool isLowConfidence ();
|
|
int frequencyOffset(); // hertz offset from the tuned dial or rx frequency, aka audio frequency
|
|
int snr();
|
|
float dt();
|
|
|
|
// find and extract any report. Returns true if this is a standard message
|
|
bool report(QString const& myBaseCall, QString const& dxBaseCall, /*mod*/QString& report);
|
|
|
|
// get the first message text word, usually the call
|
|
QString call();
|
|
|
|
// get the second word, most likely the de call and the third word, most likely grid
|
|
void deCallAndGrid(/*out*/QString& call, QString& grid);
|
|
|
|
int timeInSeconds();
|
|
|
|
// returns a string of the SNR field with a leading + or - followed by two digits
|
|
QString report();
|
|
|
|
private:
|
|
// These define the columns in the decoded text where fields are to be found.
|
|
// We rely on these columns being the same in the fortran code (lib/decoder.f90) that formats the decoded text
|
|
enum Columns {column_time = 0,
|
|
column_snr = 5,
|
|
column_dt = 9,
|
|
column_freq = 14,
|
|
column_mode = 19,
|
|
column_qsoText = 22 };
|
|
|
|
QString _string;
|
|
int padding_;
|
|
};
|
|
|
|
#endif // DECODEDTEXT_H
|