From 830faa4cbfe7525f83ecca5ddca009612147a5b5 Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Mon, 29 Dec 2014 13:37:56 +0000 Subject: [PATCH] added initial support for beacons related to #3 --- aprslib/parse.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/aprslib/parse.py b/aprslib/parse.py index 20c0bae..3e4d023 100644 --- a/aprslib/parse.py +++ b/aprslib/parse.py @@ -631,8 +631,34 @@ def parse(raw_sentence): extra = extra[1:] parsed.update({'comment': extra.strip(' ')}) - else: + + # NOT SUPPORTED FORMATS + # + # % - agrelo + # , - invalid/test format + # { - user defined + # ? - general query format + # T - telemetry report + # * - complete weather report + # _ - positionless weather report + # # - raw weather report + # $ + # ) - item report + # ; - object report + # [ - maidenhead locator beacon + elif packet_type in '%,{?T*_#$);[<': raise UnknownFormat("format is not supported", raw_sentence) + else: + if not re.match(r"^(AIR.*|ALL.*|AP.*|BEACON|CQ.*|GPS.*|DF.*|DGPS.*|" + "DRILL.*|DX.*|ID.*|JAVA.*|MAIL.*|MICE.*|QST.*|QTH.*|" + "RTCM.*|SKY.*|SPACE.*|SPC.*|SYM.*|TEL.*|TEST.*|TLM.*|" + "WX.*|ZIP.*)$", parsed['to']): + raise UnknownFormat("format is not supported", raw_sentence) + + parsed.update({ + 'format': 'beacon', + 'text': packet_type + body, + }) logger.debug("Parsed ok.") return parsed