From 93bbbab4dffd7ecaac7bc0228a3cac0d9ab6b802 Mon Sep 17 00:00:00 2001 From: Marat Fayzullin Date: Sat, 27 May 2023 00:27:00 -0400 Subject: [PATCH] Fixing stuff. --- htdocs/css/openwebrx.css | 8 ++++---- owrx/modes.py | 19 ++++++++++--------- owrx/multimon.py | 29 +++++++++++++++++------------ 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/htdocs/css/openwebrx.css b/htdocs/css/openwebrx.css index be4b8080..a0f62a86 100644 --- a/htdocs/css/openwebrx.css +++ b/htdocs/css/openwebrx.css @@ -1210,7 +1210,7 @@ img.openwebrx-mirror-img width: 120px; font-weight: bold; background-color: #fff; - text-align: center; + text-align: left; color: #000; } @@ -1368,7 +1368,7 @@ img.openwebrx-mirror-img #openwebrx-panel-digimodes[data-mode="packet"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="ais"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="pocsag"] #openwebrx-digimode-content-container, -#openwebrx-panel-digimodes[data-mode="flex"] #openwebrx-digimode-content-container, +#openwebrx-panel-digimodes[data-mode="page"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="js8"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="fst4"] #openwebrx-digimode-content-container, #openwebrx-panel-digimodes[data-mode="fst4w"] #openwebrx-digimode-content-container, @@ -1384,7 +1384,7 @@ img.openwebrx-mirror-img #openwebrx-panel-digimodes[data-mode="packet"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="ais"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="pocsag"] #openwebrx-digimode-select-channel, -#openwebrx-panel-digimodes[data-mode="flex"] #openwebrx-digimode-select-channel, +#openwebrx-panel-digimodes[data-mode="page"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="js8"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="fst4"] #openwebrx-digimode-select-channel, #openwebrx-panel-digimodes[data-mode="fst4w"] #openwebrx-digimode-select-channel, @@ -1405,7 +1405,7 @@ img.openwebrx-mirror-img #openwebrx-panel-digimodes[data-mode="packet"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="ais"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="pocsag"] #openwebrx-digimode-canvas-container, -#openwebrx-panel-digimodes[data-mode="flex"] #openwebrx-digimode-canvas-container, +#openwebrx-panel-digimodes[data-mode="page"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="js8"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="fst4"] #openwebrx-digimode-canvas-container, #openwebrx-panel-digimodes[data-mode="fst4w"] #openwebrx-digimode-canvas-container, diff --git a/owrx/modes.py b/owrx/modes.py index fef959b1..ed8767f0 100644 --- a/owrx/modes.py +++ b/owrx/modes.py @@ -144,15 +144,16 @@ class Modes(object): service=True, squelch=False, ), - DigitalMode( - "pocsag", - "Pocsag", - underlying=["nfm"], - bandpass=Bandpass(-6000, 6000), - requirements=["pocsag"], - service=True, - squelch=False, - ), +# Replaced by the general paging decoder (both POCSAG and FLEX) +# DigitalMode( +# "pocsag", +# "Pocsag", +# underlying=["nfm"], +# bandpass=Bandpass(-6000, 6000), +# requirements=["pocsag"], +# service=True, +# squelch=False, +# ), DigitalMode( "page", "Paging", diff --git a/owrx/multimon.py b/owrx/multimon.py index 163dd9d2..5690bb97 100644 --- a/owrx/multimon.py +++ b/owrx/multimon.py @@ -147,7 +147,7 @@ class MultimonParser(ThreadModule): class PageParser(MultimonParser): def __init__(self, service: bool = False): # POCSAG: Address: Function: (Certainty: )?(Numeric|Alpha|Skyper): - self.rePocsag = re.compile(r"POCSAG(\d+):\s*Address:\s*(\S+)\s+Function:\s*(\S+)\s+(Certainty:.*(\d+)\s+)?(\S+):\s*(.*)") + self.rePocsag = re.compile(r"POCSAG(\d+):\s*Address:\s*(\S+)\s+Function:\s*(\S+)(\s+Certainty:.*(\d+))?(\s+(\S+):\s*(.*))?") # FLEX|NNNN-NN-NN NN:NN:NN|//C/C|NN.NNN|NNNNNNNNN|| # FLEX|NNNN-NN-NN NN:NN:NN|//C/C|NN.NNN|NNNNNNNNN NNNNNNNNN|| self.reFlex1 = re.compile(r"FLEX\|(\d\d\d\d-\d\d-\d\d\s+\d\d:\d\d:\d\d)\|(\d+/\d+/\S/\S)\|(\d\d\.\d\d\d)\|(\d+(?:\s+\d+)?)\|(\S+)\|(.*)") @@ -166,7 +166,7 @@ class PageParser(MultimonParser): return self.parsePocsag(msg) elif msg.startswith("FLEX"): return self.parseFlex(msg) - else + else: return {} def parsePocsag(self, msg: str): @@ -176,22 +176,27 @@ class PageParser(MultimonParser): # Parse POCSAG messages r = self.rePocsag.match(msg) if r is not None: - baud = r.group(1) - addr = r.group(2) - func = r.group(3) - cert = r.group(5) - type = r.group(6) - msg = r.group(7) + baud = r.group(1) + capcode = r.group(2) + function = r.group(3) + certainty = r.group(5) + msgtype = "" if not r.group(7) else r.group(7) + msg = "" if not r.group(8) else r.group(8) out.update({ "mode": "POCSAG", "baud": baud, "timestamp": datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'), - "address": addr, - "function": func, - "certainty": cert, - "type": type, + "address": capcode, + "function": function, + "certainty": certainty, + "type": msgtype, "message": msg }) + # Output type and message + if len(msgtype)>0: + out.update({ "type": msgtype }) + if len(msg)>0: + out.update({ "message": msg }) # Done return out