ble version

This commit is contained in:
2026-10-16 07:19:06 +03:00
parent 32abb8bf0a
commit f74d52d39d
65 changed files with 3835 additions and 143 deletions
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env python3
import os
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from protocol import ( # noqa: E402
pack_report,
pack_slot_config,
unpack_report,
unpack_slot_config,
)
class ProtocolTests(unittest.TestCase):
def test_report_roundtrip(self):
raw = pack_report(85, 0x05, 1234)
self.assertEqual(len(raw), 4)
r = unpack_report(raw)
self.assertIsNotNone(r)
self.assertEqual(r.battery, 85)
self.assertEqual(r.flags, 0x05)
self.assertEqual(r.dist, 1234)
def test_report_le_dist(self):
raw = pack_report(0, 0, 0xABCD)
self.assertEqual(raw[2], 0xCD)
self.assertEqual(raw[3], 0xAB)
def test_bad_length(self):
self.assertIsNone(unpack_report(b""))
self.assertIsNone(unpack_report(b"\x00\x00\x00"))
self.assertIsNone(unpack_report(b"\x00" * 5))
def test_slot_config_roundtrip(self):
raw = pack_slot_config(2, 0x03, 30)
c = unpack_slot_config(raw)
self.assertIsNotNone(c)
self.assertEqual(c.slot, 2)
self.assertEqual(c.flags, 0x03)
self.assertEqual(c.period_s, 30)
if __name__ == "__main__":
unittest.main()