add parsing for telemetry report

This commit is contained in:
Jon Snow 2022-09-12 22:09:38 -04:00
parent ef88e3493a
commit 3841e1a574
2 changed files with 24 additions and 1 deletions

View File

@ -57,7 +57,6 @@ unsupported_formats = {
'.':'reserved',
'<':'station capabilities',
'?':'general query format',
'T':'telemetry report',
'[':'maidenhead locator beacon',
'\\':'unused',
']':'unused',
@ -208,6 +207,12 @@ def _try_toparse_body(packet_type, body, parsed):
body, result = parse_position(packet_type, body)
# Telemetry report
elif packet_type == 'T':
logger.debug("Packet is a telemetry report")
body, result = parse_telemetry_report(body)
# we are done
parsed.update(result)

View File

@ -6,6 +6,7 @@ from aprslib.parsing import logger
__all__ = [
'parse_comment_telemetry',
'parse_telemetry_config',
'parse_telemetry_report',
]
@ -98,3 +99,20 @@ def parse_telemetry_config(body):
return (body, parsed)
def parse_telemetry_report(body):
parsed = {}
match = re.findall(r"^#(MIC,?|[0-9]+,)(.*)$", body)
if match:
logger.debug("Attempting to parse telemetry-report packet")
parsed.update({'format': 'telemetry-report'})
seq, data = match[0]
seq = seq[:-1] if (seq.endswith(",")) else seq
data = data.split(",")
parsed.update({
'tValues': ([seq] + data),
})
return (body, parsed)