diff --git a/varicode.cpp b/varicode.cpp index 0dd331b..3f2d1b5 100644 --- a/varicode.cpp +++ b/varicode.cpp @@ -43,12 +43,22 @@ QString alphanumeric = {"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ /@"}; // callsign QMap directed_cmds = { // any changes here need to be made also in the directed regular xpression for parsing + // ?*^&@ {" SNR?", 0 }, // query snr + {"?", 0 }, // compat + {" QTH?", 1 }, // query qth + {"@", 1 }, // compat + {" QTC?", 2 }, // query station message + {"&", 2 }, // compat + {" GRID?", 4 }, // query grid + {"^", 4 }, // compat + {" STATUS?", 6 }, // query idle message + {"*", 6 }, // compat {">", 5 }, // relay message {"#", 8 }, // all or nothing message @@ -101,7 +111,7 @@ QMap checksum_cmds = { }; QString callsign_pattern = QString("(?[@]?[A-Z0-9/]+)"); -QString optional_cmd_pattern = QString("(?\\s?(?:HEARTBEAT (ACK|REQ)|AGN[?]|QSL[?]|HW CPY[?]|APRS[:]|QRZ[?]|SNR[?]|QTC[?]|QTH[?]|GRID[?]|STATUS[?]|(?:(?:ACK|73|YES|NO|SNR|QSL|RR|SK|FB|QTH|QTC|GRID|ACTIVE|IDLE)(?=[ ]|$))|[#> ]))?"); +QString optional_cmd_pattern = QString("(?\\s?(?:HEARTBEAT (ACK|REQ)|AGN[?]|QSL[?]|HW CPY[?]|APRS[:]|QRZ[?]|SNR[?]|QTC[?]|QTH[?]|GRID[?]|STATUS[?]|(?:(?:ACK|73|YES|NO|SNR|QSL|RR|SK|FB|QTH|QTC|GRID|ACTIVE|IDLE)(?=[ ]|$))|[?*^&@#> ]))?"); 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_num_pattern = QString("(?(?<=SNR|HEARTBEAT ACK)\\s?[-+]?(?:3[01]|[0-2]?[0-9]))?");