Implemented basic logging of additional fields support based on ADIF

This commit is contained in:
Jordan Sherer
2019-06-04 17:05:33 -04:00
parent ae6dccc183
commit 38ab24ba79
5 changed files with 294 additions and 15 deletions
+158
View File
@@ -5,6 +5,164 @@
#include <QDateTime>
#include <QDebug>
const QStringList ADIF_FIELDS = {
// ADIF 3.1.0 - pulled from http://www.adif.org/310/adx310.xsd on 2019-06-04
"USERDEF",
"APP",
"ADDRESS",
"ADDRESS_INTL",
"AGE",
"A_INDEX",
"ANT_AZ",
"ANT_EL",
"ANT_PATH",
"ARRL_SECT",
"AWARD_SUBMITTED",
"AWARD_GRANTED",
"BAND",
"BAND_RX",
"CALL",
"CHECK",
"CLASS",
"CLUBLOG_QSO_UPLOAD_DATE",
"CLUBLOG_QSO_UPLOAD_STATUS",
"CNTY",
"COMMENT",
"COMMENT_INTL",
"CONT",
"CONTACTED_OP",
"CONTEST_ID",
"COUNTRY",
"COUNTRY_INTL",
"CQZ",
"CREDIT_SUBMITTED",
"CREDIT_GRANTED",
"DARC_DOK",
"DISTANCE",
"DXCC",
"EMAIL",
"EQ_CALL",
"EQSL_QSLRDATE",
"EQSL_QSLSDATE",
"EQSL_QSL_RCVD",
"EQSL_QSL_SENT",
"FISTS",
"FISTS_CC",
"FORCE_INIT",
"FREQ",
"FREQ_RX",
"GRIDSQUARE",
"GUEST_OP",
"HRDLOG_QSO_UPLOAD_DATE",
"HRDLOG_QSO_UPLOAD_STATUS",
"IOTA",
"IOTA_ISLAND_ID",
"ITUZ",
"K_INDEX",
"LAT",
"LON",
"LOTW_QSLRDATE",
"LOTW_QSLSDATE",
"LOTW_QSL_RCVD",
"LOTW_QSL_SENT",
"MAX_BURSTS",
"MODE",
"MS_SHOWER",
"MY_ANTENNA",
"MY_ANTENNA_INTL",
"MY_CITY",
"MY_CITY_INTL",
"MY_CNTY",
"MY_COUNTRY",
"MY_COUNTRY_INTL",
"MY_CQ_ZONE",
"MY_DXCC",
"MY_FISTS",
"MY_GRIDSQUARE",
"MY_IOTA",
"MY_IOTA_ISLAND_ID",
"MY_ITU_ZONE",
"MY_LAT",
"MY_LON",
"MY_NAME",
"MY_NAME_INTL",
"MY_POSTAL_CODE",
"MY_POSTAL_CODE_INTL",
"MY_RIG",
"MY_RIG_INTL",
"MY_SIG",
"MY_SIG_INTL",
"MY_SIG_INFO",
"MY_SIG_INFO_INTL",
"MY_SOTA_REF",
"MY_STATE",
"MY_STREET",
"MY_STREET_INTL",
"MY_USACA_COUNTIES",
"MY_VUCC_GRIDS",
"NAME",
"NAME_INTL",
"NOTES",
"NOTES_INTL",
"NR_BURSTS",
"NR_PINGS",
"OPERATOR",
"OWNER_CALLSIGN",
"PFX",
"PRECEDENCE",
"PROP_MODE",
"PUBLIC_KEY",
"QRZCOM_QSO_UPLOAD_DATE",
"QRZCOM_QSO_UPLOAD_STATUS",
"QSLMSG",
"QSLMSG_INTL",
"QSLRDATE",
"QSLSDATE",
"QSL_RCVD",
"QSL_RCVD_VIA",
"QSL_SENT",
"QSL_SENT_VIA",
"QSL_VIA",
"QSO_COMPLETE",
"QSO_DATE",
"QSO_DATE_OFF",
"QSO_RANDOM",
"QTH",
"QTH_INTL",
"REGION",
"RIG",
"RIG_INTL",
"RST_RCVD",
"RST_SENT",
"RX_PWR",
"SAT_MODE",
"SAT_NAME",
"SFI",
"SIG",
"SIG_INTL",
"SIG_INFO",
"SIG_INFO_INTL",
"SILENT_KEY",
"SKCC",
"SOTA_REF",
"SRX",
"SRX_STRING",
"STATE",
"STATION_CALLSIGN",
"STX",
"STX_STRING",
"SUBMODE",
"SWL",
"TEN_TEN",
"TIME_OFF",
"TIME_ON",
"TX_PWR",
"UKSMG",
"USACA_COUNTIES",
"VUCC_GRIDS",
"WEB",
};
/*
<CALL:4>W1XT<BAND:3>20m<FREQ:6>14.076<GRIDSQUARE:4>DM33<MODE:4>JT65<RST_RCVD:3>-21<RST_SENT:3>-14<QSO_DATE:8>20110422<TIME_ON:6>041712<TIME_OFF:6>042435<TX_PWR:1>4<COMMENT:34>1st JT65A QSO. Him: mag loop 20W<STATION_CALLSIGN:6>VK3ACF<MY_GRIDSQUARE:6>qf22lb<eor>
<CALL:6>IK1SOW<BAND:3>20m<FREQ:6>14.076<GRIDSQUARE:4>JN35<MODE:4>JT65<RST_RCVD:3>-19<RST_SENT:3>-11<QSO_DATE:8>20110422<TIME_ON:6>052501<TIME_OFF:6>053359<TX_PWR:1>3<STATION_CALLSIGN:6>VK3ACF<MY_GRIDSQUARE:6>qf22lb<eor>
+8 -6
View File
@@ -11,6 +11,7 @@
#if defined (QT5)
#include <QList>
#include <QString>
#include <QStringList>
#include <QMultiHash>
#else
#include <QtGui>
@@ -18,6 +19,8 @@
class QDateTime;
extern const QStringList ADIF_FIELDS;
class ADIF
{
public:
@@ -35,18 +38,17 @@ class ADIF
// open ADIF file and append the QSO details. Return true on success
bool addQSOToFile(QByteArray const& ADIF_record);
QByteArray QSOToADIF(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& submode, QString const& rptSent
QByteArray QSOToADIF(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& submode, QString const& rptSent
, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff
, QString const& band, QString const& comments, QString const& name
, QString const& strDialFreq, QString const& m_myCall, QString const& m_myGrid
, QString const& operator_call);
struct QSO
{
QString call,band,mode,submode,date,name,comment;
};
struct QSO
{
QString call,band,mode,submode,date,name,comment;
};
private:
QMultiHash<QString, QSO> _data;