mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-02 19:02:00 +00:00
feat(route): trace per link, to the node or the last repeater, find where it stops; channel order re-sorts on entry
Core: PathEditor results are links (node k hearing k-1 and back); toNode() off traces only the repeaters (a companion answers only with repeat on); probe() traces to each repeater in turn after no reply; failures carry a reason; an empty list saves "direct". PingEngine takes over a slot left past its timeout. A kept route: the dropped heard path isn't announced to the app nor bumps lastmod; an app update keeps the flag only if it leaves the route. Marker boxes sized for every dot and name (overflow). ui-lvgl Route: one line per node with out / back dB coloured by quality, tap a hop to move / remove, tap the node to include it, Keep in the header, Find where beside a no-reply status. ui-new Path: To node / Find break rows, result alerts, cursor kept on its action. Channels: ui-new re-sorts the list on entering it, cursor on the same channel. Docs: Path and trace, Channel order. Sim hooks: open route, add channel, open messages. Checked in the browser sim (L2 + ui-new peer + repeater); not on hardware. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -263,7 +263,7 @@ public:
|
||||
// only reaches us if the last hop's retransmission is heard, so a route to
|
||||
// a far node goes out and back (A B dest B A). Returns the tag, 0 on failure.
|
||||
uint32_t sendTrace(const uint8_t* path, uint8_t hops, uint8_t hash_width, uint32_t* est_timeout = nullptr);
|
||||
// Writes a route into a stored contact (hash_size 1..3 bytes, `hops` of them).
|
||||
// Writes a route into a stored contact (hash_size 1..3 bytes, `hops` of them; 0: direct).
|
||||
// `pin` keeps it (CONTACT_FLAG_ROUTE_PINNED): not replaced by a heard path or a failed send.
|
||||
bool setContactPinned(const uint8_t* pub_key, bool pin); // keep / release the stored route
|
||||
bool setContactPath(const uint8_t* pub_key, const uint8_t* path, uint8_t hash_size, uint8_t hops, bool pin = false);
|
||||
@@ -693,6 +693,7 @@ private:
|
||||
unsigned long _last_input_ms = 0;
|
||||
unsigned long _last_rtc_save_ms = 0;
|
||||
bool _path_same = false; // onContactPathRecv(): the path heard is the one held
|
||||
bool _path_kept = false; // onContactPathRecv(): a kept route, the path heard is dropped
|
||||
unsigned long _bot_last_ch_reply_ms;
|
||||
unsigned long _bot_last_room_reply_ms;
|
||||
unsigned long _next_auto_advert_ms;
|
||||
|
||||
Reference in New Issue
Block a user