From c8cf8094c32a0de4ee11d0489e69b6e3d861c6b3 Mon Sep 17 00:00:00 2001 From: Ian McEwen Date: Fri, 23 Aug 2024 13:18:23 -0700 Subject: [PATCH] randomize packet IDs as firmware does --- meshtastic/mesh_interface.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh_interface.py b/meshtastic/mesh_interface.py index c83a399..6ee292e 100644 --- a/meshtastic/mesh_interface.py +++ b/meshtastic/mesh_interface.py @@ -802,7 +802,10 @@ class MeshInterface: # pylint: disable=R0902 "Not connected yet, can not generate packet" ) else: - self.currentPacketId = (self.currentPacketId + 1) & 0xFFFFFFFF + nextPacketId = (self.currentPacketId + 1) & 0xFFFFFFFF + nextPacketId = nextPacketId & (0xFFFFFFFF >> 22) # mask upper 22 bits + randomPart = (random.randint(0, 0x7FFFFFFF) << 10) & 0xFFFFFFFF # generate number with 10 zeros at end + self.currentPacketId = nextPacketId | randomPart # combine return self.currentPacketId def _disconnected(self):