openwebrx-clone/owrx/pocsag.py

18 lines
566 B
Python

from owrx.parser import Parser
import logging
logger = logging.getLogger(__name__)
class PocsagParser(Parser):
def parse(self, raw):
try:
fields = raw.decode("ascii", "replace").rstrip("\n").split(";")
meta = {v[0]: "".join(v[1:]) for v in map(lambda x: x.split(":"), fields) if v[0] != ""}
if "address" in meta:
meta["address"] = int(meta["address"])
self.handler.write_pocsag_data(meta)
except Exception:
logger.exception("Exception while parsing Pocsag message")