From 7ecd2373779318669e79121d99d0c849e97dad26 Mon Sep 17 00:00:00 2001 From: Florent Date: Tue, 13 May 2025 22:47:52 +0200 Subject: [PATCH] get/set telemetry_mode --- src/meshcore/commands.py | 5 +++++ src/meshcore/reader.py | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/meshcore/commands.py b/src/meshcore/commands.py index 9937f2f..05a9e2c 100644 --- a/src/meshcore/commands.py +++ b/src/meshcore/commands.py @@ -306,6 +306,11 @@ class CommandHandler: data = b"\x03\x00" + chan.to_bytes(1, 'little') + timestamp + msg.encode("utf-8") return await self.send(data, [EventType.OK, EventType.ERROR]) + async def send_other_params(self, manual_add_contacts : bool, telemetry_mode_base : bool, telemetry_mode_loc : bool) : + telemetry_mode = (telemetry_mode_base & 0b11) | ((telemetry_mode_loc & 0b11) << 2) + data = b"\x26" + manual_add_contacts.to_bytes(1) + telemetry_mode.to_bytes(1) + return await self.send(data, [EventType.OK, EventType.ERROR]) + async def send_telemetry_req(self, dst: DestinationType) -> Event : dst_bytes = _validate_destination(dst, prefix_length=32) logger.debug(f"Asking telemetry to {dst_bytes.hex()}") diff --git a/src/meshcore/reader.py b/src/meshcore/reader.py index bedb0ae..a6650bc 100644 --- a/src/meshcore/reader.py +++ b/src/meshcore/reader.py @@ -71,6 +71,8 @@ class MessageReader: self_info["public_key"] = data[4:36].hex() self_info["adv_lat"] = int.from_bytes(data[36:40], byteorder='little', signed=True)/1e6 self_info["adv_lon"] = int.from_bytes(data[40:44], byteorder='little', signed=True)/1e6 + self_info["telemetry_mode_loc"] = (data[47] >> 2) & 0b11 + self_info["telemetry_mode_base"] = (data[47]) & 0b11 self_info["radio_freq"] = int.from_bytes(data[48:52], byteorder='little') / 1000 self_info["radio_bw"] = int.from_bytes(data[52:56], byteorder='little') / 1000 self_info["radio_sf"] = data[56]