From 9195a461dd8ca79614c0ee41b1cb2c0375b89986 Mon Sep 17 00:00:00 2001 From: SpookyDervish Date: Sun, 8 Mar 2026 14:08:34 +1100 Subject: [PATCH] serialization and deserialization --- relay/bluetooth_handler.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/relay/bluetooth_handler.py b/relay/bluetooth_handler.py index 9193b91..70d320b 100644 --- a/relay/bluetooth_handler.py +++ b/relay/bluetooth_handler.py @@ -55,6 +55,10 @@ class BluetoothHandler: self.advertise() + def deserialize_msg(self, s: bytes): + # returns packet type (int) and deserialized data + return s[0], eval(s[1:].decode()) + def _get_mac_address(self): mac = self.ble.config("mac")[1] return ':'.join('{:02X}'.format(b) for b in mac) @@ -108,10 +112,9 @@ class BluetoothHandler: self.advertise() elif event == IRQ_GATTS_WRITE: conn_handle, value_handle = data + + msg = self.ble.gatts_read(value_handle) + packet_type, msg = self.deserialize_msg(msg) + + print(f"Received: \"{msg}\"") - if value_handle == self.tx_handle: - msg = self.ble.gatts_read(self.tx_handle) - - if msg == b"ping": - for conn in self.connections: - self.ble.gatts_notify(conn, self.rx_handle, b"pong") \ No newline at end of file