mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-10-23 00:41:18 +00:00
feat(mqtt): add neighbors JSON payload builder (host-tested)
Add buildNeighborsMessage to the pure MQTTPayloadBuilder core and a thin delegating wrapper + NeighborsMessageEntry alias on MQTTMessageBuilder, so the neighbors topic is built by the same firmware-facing API as status/ packet/raw while the layout logic stays exercisable by native tests. The document is bounded to the publish buffer: entries arrive ordered most- to least-useful and the tail is dropped once the next entry would overflow, so a fixed PSRAM buffer can never be handed truncated JSON. Uses ArduinoJson v7 idioms (.to<JsonObject>()/.add<JsonObject>()) to stay warning-clean under -Werror, unlike the deprecated createNested* forms. Adds three test_mqtt_payload_builder cases: self+entry round-trip, empty table / null scopes, and bounded-growth tail-drop under a tight buffer.
This commit is contained in:
1 parent
8d7a47abf7
commit
e36aee04d4
5 files changed
+182
No files matched your search
@@ -102,6 +102,22 @@ int MQTTMessageBuilder::buildRawMessage(
|
||||
origin, origin_id, timestamp, raw, buffer, buffer_size);
|
||||
}
|
||||
|
||||
int MQTTMessageBuilder::buildNeighborsMessage(
|
||||
JsonDocument& doc,
|
||||
const char* origin,
|
||||
const char* origin_id,
|
||||
const char* timestamp,
|
||||
const char* self_scopes,
|
||||
const NeighborsMessageEntry* neighbors,
|
||||
int neighbor_count,
|
||||
char* buffer,
|
||||
size_t buffer_size
|
||||
) {
|
||||
return MQTTPayloadBuilder::buildNeighborsMessage(
|
||||
doc, origin, origin_id, timestamp, self_scopes, neighbors, neighbor_count,
|
||||
buffer, buffer_size);
|
||||
}
|
||||
|
||||
int MQTTMessageBuilder::buildPacketJSON(
|
||||
JsonDocument& doc,
|
||||
mesh::Packet* packet,
|
||||
|
||||
Reference in new issue
Block a user