diff --git a/mainwindow.cpp b/mainwindow.cpp index b8ed974..a0350e5 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -5839,7 +5839,7 @@ QStringList MainWindow::buildFT8MessageFrames(QString const& text){ // prepare compound 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 basecall = Radio::base_callsign(m_config.my_callsign()); if(basecall != mycall){ diff --git a/varicode.cpp b/varicode.cpp index 10f0ff4..baf38bd 100644 --- a/varicode.cpp +++ b/varicode.cpp @@ -75,6 +75,7 @@ QSet buffered_cmds = {6, 7, 8}; QString callsign_pattern = QString("(?[A-Z0-9/]+)"); QString optional_cmd_pattern = QString("(?\\s?(?:AGN[?]|ACK|73|YES|NO|SNR|PWR|QSL[?]?|RR|HEARING|[?@&$%|!# ]))?"); QString optional_grid_pattern = QString("(?\\s?[A-R]{2}[0-9]{2})?"); +QString optional_extended_grid_pattern = QString("^(?\\s?(?:[A-R]{2}[0-9]{2}(?:[A-X]{2}(?:[0-9]{2})?)*))?"); QString optional_pwr_pattern = QString("(?(?<=PWR)\\s?\\d+\\s?[KM]?W)?"); QString optional_num_pattern = QString("(?(?<=SNR|HEARING)\\s?[-+]?(?:3[01]|[0-2]?[0-9]))?"); @@ -84,7 +85,7 @@ QRegularExpression directed_re("^" + optional_pwr_pattern + optional_num_pattern); -QRegularExpression beacon_re(R"(^(?CQCQCQ|BEACON)(?:\s(?[A-Z]{2}[0-9]{2}))?\b)"); +QRegularExpression beacon_re(R"(^(?CQCQCQ|BEACON)(?:\s(?[A-R]{2}[0-9]{2}))?\b)"); QRegularExpression compound_re("^[<]" + callsign_pattern + @@ -1197,12 +1198,15 @@ QStringList Varicode::unpackBeaconMessage(const QString &text, quint8 *pType, bo QString Varicode::packCompoundMessage(QString const &text, int *n){ QString frame; + qDebug() << "trying to pack compound message" << text; auto parsedText = compound_re.match(text); if(!parsedText.hasMatch()){ if(n) *n = 0; return frame; } + qDebug() << parsedText.capturedTexts(); + QString callsign = parsedText.captured("callsign"); QString grid = parsedText.captured("grid"); QString cmd = parsedText.captured("cmd");