Fixed bug causing compound calls not to send when a grid locator larger than 4 characters was set in the configuration
This commit is contained in:
parent
a5b6984ede
commit
c042a72d0d
@ -5839,7 +5839,7 @@ QStringList MainWindow::buildFT8MessageFrames(QString const& text){
|
|||||||
|
|
||||||
// prepare compound
|
// prepare compound
|
||||||
bool compound = Radio::is_compound_callsign(m_config.my_callsign());
|
bool compound = Radio::is_compound_callsign(m_config.my_callsign());
|
||||||
QString mygrid = m_config.my_grid();
|
QString mygrid = m_config.my_grid().left(4);
|
||||||
QString mycall = m_config.my_callsign();
|
QString mycall = m_config.my_callsign();
|
||||||
QString basecall = Radio::base_callsign(m_config.my_callsign());
|
QString basecall = Radio::base_callsign(m_config.my_callsign());
|
||||||
if(basecall != mycall){
|
if(basecall != mycall){
|
||||||
|
@ -75,6 +75,7 @@ QSet<int> buffered_cmds = {6, 7, 8};
|
|||||||
QString callsign_pattern = QString("(?<callsign>[A-Z0-9/]+)");
|
QString callsign_pattern = QString("(?<callsign>[A-Z0-9/]+)");
|
||||||
QString optional_cmd_pattern = QString("(?<cmd>\\s?(?:AGN[?]|ACK|73|YES|NO|SNR|PWR|QSL[?]?|RR|HEARING|[?@&$%|!# ]))?");
|
QString optional_cmd_pattern = QString("(?<cmd>\\s?(?:AGN[?]|ACK|73|YES|NO|SNR|PWR|QSL[?]?|RR|HEARING|[?@&$%|!# ]))?");
|
||||||
QString optional_grid_pattern = QString("(?<grid>\\s?[A-R]{2}[0-9]{2})?");
|
QString optional_grid_pattern = QString("(?<grid>\\s?[A-R]{2}[0-9]{2})?");
|
||||||
|
QString optional_extended_grid_pattern = QString("^(?<grid>\\s?(?:[A-R]{2}[0-9]{2}(?:[A-X]{2}(?:[0-9]{2})?)*))?");
|
||||||
QString optional_pwr_pattern = QString("(?<pwr>(?<=PWR)\\s?\\d+\\s?[KM]?W)?");
|
QString optional_pwr_pattern = QString("(?<pwr>(?<=PWR)\\s?\\d+\\s?[KM]?W)?");
|
||||||
QString optional_num_pattern = QString("(?<num>(?<=SNR|HEARING)\\s?[-+]?(?:3[01]|[0-2]?[0-9]))?");
|
QString optional_num_pattern = QString("(?<num>(?<=SNR|HEARING)\\s?[-+]?(?:3[01]|[0-2]?[0-9]))?");
|
||||||
|
|
||||||
@ -84,7 +85,7 @@ QRegularExpression directed_re("^" +
|
|||||||
optional_pwr_pattern +
|
optional_pwr_pattern +
|
||||||
optional_num_pattern);
|
optional_num_pattern);
|
||||||
|
|
||||||
QRegularExpression beacon_re(R"(^(?<type>CQCQCQ|BEACON)(?:\s(?<grid>[A-Z]{2}[0-9]{2}))?\b)");
|
QRegularExpression beacon_re(R"(^(?<type>CQCQCQ|BEACON)(?:\s(?<grid>[A-R]{2}[0-9]{2}))?\b)");
|
||||||
|
|
||||||
QRegularExpression compound_re("^[<]" +
|
QRegularExpression compound_re("^[<]" +
|
||||||
callsign_pattern +
|
callsign_pattern +
|
||||||
@ -1197,12 +1198,15 @@ QStringList Varicode::unpackBeaconMessage(const QString &text, quint8 *pType, bo
|
|||||||
QString Varicode::packCompoundMessage(QString const &text, int *n){
|
QString Varicode::packCompoundMessage(QString const &text, int *n){
|
||||||
QString frame;
|
QString frame;
|
||||||
|
|
||||||
|
qDebug() << "trying to pack compound message" << text;
|
||||||
auto parsedText = compound_re.match(text);
|
auto parsedText = compound_re.match(text);
|
||||||
if(!parsedText.hasMatch()){
|
if(!parsedText.hasMatch()){
|
||||||
if(n) *n = 0;
|
if(n) *n = 0;
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << parsedText.capturedTexts();
|
||||||
|
|
||||||
QString callsign = parsedText.captured("callsign");
|
QString callsign = parsedText.captured("callsign");
|
||||||
QString grid = parsedText.captured("grid");
|
QString grid = parsedText.captured("grid");
|
||||||
QString cmd = parsedText.captured("cmd");
|
QString cmd = parsedText.captured("cmd");
|
||||||
|
Loading…
Reference in New Issue
Block a user