Fixing stuff.

This commit is contained in:
Marat Fayzullin 2023-05-27 00:27:00 -04:00
parent c0ea503bf5
commit 93bbbab4df
3 changed files with 31 additions and 25 deletions

View File

@ -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,

View File

@ -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",

View File

@ -147,7 +147,7 @@ class MultimonParser(ThreadModule):
class PageParser(MultimonParser):
def __init__(self, service: bool = False):
# POCSAG<baud>: Address: <num> Function: <hex> (Certainty: <num> )?(Numeric|Alpha|Skyper): <message>
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|<baud>/<value>/C/C|NN.NNN|NNNNNNNNN|<type>|<message>
# FLEX|NNNN-NN-NN NN:NN:NN|<baud>/<value>/C/C|NN.NNN|NNNNNNNNN NNNNNNNNN|<type>|<message>
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