Put EU VHF contest mode serial numbers into the ADIF SRX and STX fields

This commit is contained in:
Bill Somerville 2019-05-28 18:28:12 +01:00
parent abd7847922
commit f4633809d3
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F

View File

@ -96,24 +96,43 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q
auto words = xSent.split (' ', QString::SkipEmptyParts); auto words = xSent.split (' ', QString::SkipEmptyParts);
if (words.size () > 1) if (words.size () > 1)
{ {
bool ok; if (words.back ().toUInt ())
auto sn = words.back ().toUInt (&ok);
if (ok && sn)
{ {
// assume last word is a serial if there are at least // assume last word is a serial if there are at least
// two words and if it is positive numeric // two words and if it is positive numeric
t += " <STX:" + QString::number (words.back ().size ()) + '>' + words.back (); t += " <stx:" + QString::number (words.back ().size ()) + '>' + words.back ();
}
else
{
if (words.front ().toUInt () && words.front ().size () > 3) // EU VHF contest mode
{
auto sn_text = words.front ().mid (2);
// assume first word is report+serial if there are
// at least two words and if the first word less the
// first two characters is a positive numeric
t += " <stx:" + QString::number (sn_text.size ()) + '>' + sn_text;
}
} }
} }
} }
if (xRcvd.size ()) { if (xRcvd.size ()) {
QString t1=""; auto words = xRcvd.split (' ', QString::SkipEmptyParts);
if(xRcvd.split(" ").size()==2) t1=xRcvd.split(" ").at(1); if (words.size () == 2)
if(t1.toInt()>0) { {
t += " <SRX:" + QString::number(t1.length()) + ">" + t1; if (words.at (1).toUInt ())
} else { {
t += " <STATE:" + QString::number(t1.length()) + ">" + t1; t += " <srx:" + QString::number (words.at (1).length ()) + ">" + words.at (1);
} }
else if (words.at (0).toUInt () && words.at (0).size () > 3) // EU VHF contest exchange
{
// strip report and set SRX to serial
t += " <srx:" + QString::number (words.at (0).mid (2).length ()) + ">" + words.at (0).mid (2);
}
else
{
t += " <state:" + QString::number (words.at (1).length ()) + ">" + words.at (1);
}
}
} }
return t.toLatin1(); return t.toLatin1();
} }