Merge pull request #111 from johnterickson/special-carnival

Fix direction LPP values being encoded as lists
This commit is contained in:
fdlamotte
2026-09-22 13:35:40 -04:00
committed by GitHub
2 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ my_lpp_types = {
128: ("power", []), 128: ("power", []),
130: ("distance", []), 130: ("distance", []),
131: ("energy", []), 131: ("energy", []),
132: ("direction", None), 132: ("direction", []),
133: ("time", []), 133: ("time", []),
134: ("gyrometer", None), 134: ("gyrometer", None),
135: ("colour", ["red", "green", "blue"]), 135: ("colour", ["red", "green", "blue"]),
+17
View File
@@ -37,3 +37,20 @@ class TestLppCurrentParsing:
lpp = json.loads(json.dumps(LppFrame([lppdata]), default=lpp_json_encoder)) lpp = json.loads(json.dumps(LppFrame([lppdata]), default=lpp_json_encoder))
assert lpp[0]['value'] == 0.5 assert lpp[0]['value'] == 0.5
class TestLppDirectionParsing:
"""Tests to verify LPP direction values are encoded as scalars."""
def test_direction_value_is_scalar(self):
"""A direction value should not be serialized as a one-item list."""
from meshcore.lpp_json_encoder import lpp_json_encoder
# Channel 2, Type 132 (direction), 90 degrees = 0x00 0x5A.
raw_bytes = bytes([2, 132, 0x00, 0x5A])
lppdata = LppData.from_bytes(raw_bytes)
lpp = json.loads(json.dumps(LppFrame([lppdata]), default=lpp_json_encoder))
assert lpp[0]['type'] == 'direction'
assert lpp[0]['value'] == 90.0