From 8a1d6d9285f8ae99fedcf113a97d0489a91044a8 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 31 May 2026 12:26:00 -0400 Subject: [PATCH] Add stable uid generation for PLI entities in allocAtakPli function --- src/modules/PositionModule.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/PositionModule.cpp b/src/modules/PositionModule.cpp index 6f79926a9..ed7215a98 100644 --- a/src/modules/PositionModule.cpp +++ b/src/modules/PositionModule.cpp @@ -339,6 +339,9 @@ meshtastic_MeshPacket *PositionModule::allocAtakPli() strncpy(takPacket.device_callsign, owner.long_name, sizeof(takPacket.device_callsign) - 1); takPacket.device_callsign[sizeof(takPacket.device_callsign) - 1] = '\0'; + // CoT uid — ATAK drops PLI entities with empty uid; derive stable "!" id. + snprintf(takPacket.uid, sizeof(takPacket.uid), "!%08x", nodeDB->getNodeNum()); + // Encode TAKPacketV2 protobuf, leaving room for flags byte prefix uint8_t protobuf_bytes[sizeof(mp->decoded.payload.bytes) - 1]; size_t proto_size = pb_encode_to_bytes(protobuf_bytes, sizeof(protobuf_bytes), &meshtastic_TAKPacketV2_msg, &takPacket);