mirror of
https://github.com/agessaman/MeshCore.git
synced 2026-09-02 04:49:00 +00:00
Port the neighbor-discovery state machine from mqtt-bridge-implementation-flex, adapted to this branch's MyMesh (WebConfig members shifted the insertion points; applied by content). - Two-stage periodic refresh in loop() driven by mqtt_neighbors_interval: stage 1 is a zero-hop sendNodeDiscoverReq() (reuses the existing 60s window), stage 2 (startNeighborDiscover) fires one anon-regions scope query per heard neighbour, then finishNeighborDiscover() builds the table JSON via MQTTMessageBuilder::buildNeighborsMessage and hands it to bridge->requestPublishNeighbors(). - Peer overlay at NEIGHBOR_DISCOVER_PEER_BASE lets scope-query RESPONSE packets from non-ACL neighbours decrypt: searchPeersByHash prepends heard neighbours (bounded by MAX_CLIENTS), getPeerSharedSecret derives the secret on the fly, and onPeerDataRecv routes both overlay-index and ACL-client-that-is-a-neighbour responses into handleNeighborDiscoverResponse. - Entries ordered most- to least-useful (recent, then stronger SNR) so the JSON builder's tail-drop keeps the useful head. - `discover.scopes` CLI command (manual trigger), with a WITH_MQTT_BRIDGE stub replying "requires PSRAM" on non-PSRAM builds. - Reports schedule to the bridge each loop via setNeighborsSchedule(). - Uses ArduinoJson v7 JsonDocument (not deprecated DynamicJsonDocument). All gated on WITH_MQTT_NEIGHBORS. Reuses the existing MQTTBridge* member. Verified: T_Beam_S3_Supreme_SX1262_repeater_observer_mqtt builds [SUCCESS].