From badc7c096cef3e812558eb36daea915c658b6e06 Mon Sep 17 00:00:00 2001 From: stf <7o5rfu92t@ctrlc.hu> Date: Sun, 4 Apr 2021 20:03:14 +0200 Subject: [PATCH] [mod] allow floats in telemetry data --- aprslib/parsing/telemetry.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aprslib/parsing/telemetry.py b/aprslib/parsing/telemetry.py index 662dc34..e928bd2 100644 --- a/aprslib/parsing/telemetry.py +++ b/aprslib/parsing/telemetry.py @@ -13,7 +13,7 @@ __all__ = [ def parse_telemetry(body): parsed = {} - match = re.match(r'#(\d{3},|MIC,?)(\d{3}),(\d{3}),(\d{3}),(\d{3}),(\d{3}),([0-1]{8})(.*)', body, flags=re.I) + match = re.match(r'#([0-9.]{3,4}|MIC,?),([0-9.]{3,4}),([0-9.]{3,4}),([0-9.]{3,4}),([0-9.]{3,4}),([0-9.]{3,4}),([0-1]{8,9})(.*)', body, flags=re.I) if not match: raise ParseError("Invalid telemetry format") @@ -23,7 +23,7 @@ def parse_telemetry(body): parsed.update({ 'format': 'telemetry', 'sequence_number': 0 if data[0].lower().startswith('mic') else int(data[0][:3]), - 'analog_values': list(map(int, data[1:6])), + 'analog_values': list(map(float, data[1:6])), 'digital_value': int(data[6], 2) })