Added third-party packet support

This commit is contained in:
Bill Mitchell 2018-03-01 23:54:54 -06:00 committed by Rossen Georgiev
parent f5776bf2f7
commit 3659faa509
2 changed files with 28 additions and 1 deletions

View File

@ -41,6 +41,7 @@ from aprslib.parsing.position import *
from aprslib.parsing.mice import *
from aprslib.parsing.message import *
from aprslib.parsing.telemetry import *
from aprslib.parsing.thirdparty import *
from aprslib.parsing.weather import *
@ -158,9 +159,14 @@ def _try_toparse_body(packet_type, body, parsed):
# ] - unused
# ^ - unused
# } - 3rd party traffic
if packet_type in '#$%)*<?T[}':
if packet_type in '#$%)*<?T[':
raise UnknownFormat("format is not supported")
# 3rd party traffic
elif packet_type == '}':
logger.debug("Packet is third-party")
body, result = parse_thirdparty(body)
# user defined
elif packet_type == ',':
logger.debug("Packet is invalid format")

View File

@ -0,0 +1,21 @@
import re
from aprslib.parsing.__init__ import parse
from aprslib.exceptions import UnknownFormat
from aprslib.exceptions import ParseError
__all__ = [
'parse_thirdparty',
]
def parse_thirdparty(body):
parsed = {'format':'thirdparty'}
# Parse sub-packet
try:
subpacket = parse(body)
except (UnknownFormat) as ukf:
raise
parsed.update({'subpacket':subpacket})
return('',parsed)