Repository navigation
Make the housekeeping job interval configurable - #82
mclueppers wants to merge 1 commit into
Conversation
Reticulum::loop() runs Transport::jobs() every Type::Reticulum::JOB_INTERVAL (60 s), and announce rebroadcasts, link/receipt timeouts and path-request handling all live there. Applications that bridge interfaces on the same device therefore saw announces forwarded up to a minute late, with no way to change it short of calling Transport::jobs() themselves. Add Reticulum::jobs_interval() getter/setter (seconds); the default stays JOB_INTERVAL = 60 so existing behaviour is unchanged. Reference RNS runs its equivalent every 0.25 s; 1 s is a good value on an ESP32.
The upstream fixes are now PRs (attermann/microReticulum#82 and #85, attermann/microStore#6) and live on our forks, so the default build pulls dobrevit/microReticulum#retimesh/combined and dobrevit/microStore#fix/close-active-segment-before-compaction from git and relies on the new APIs unconditionally: - Reticulum::jobs_interval(1.0f) replaces the manual Transport::jobs() call in the RNS task, - the packet-carrying AnnounceHandler callback replaces the firmware's own announce parser/verifier (RetiTransportServer::noteAnnounce), which is removed; the SD-card announce log line moves to the handler. RETIMESH_UPSTREAM_FIXES and [env:t3s3-upstream] are gone; [env:t3s3-local] builds against sibling checkouts for library development.
|
Thanks for the PR and for filing #83 first. Before this goes further I think we need to check the premise. On current master, So I don't think this change would make announces cross your ESP32-S3 node any faster. A few questions:
Happy to continue the discussion in #83. |
|
You're right, and thanks for checking the premise. I re-read current master and the July commit this branch was cut from. In both, The announce forwarding stall we saw was the one fixed in #86 (queued announces were never sent, so an interface that queued one stopped forwarding). I'm withdrawing this PR and closing #83. |
Reticulum::loop() runs Transport::jobs() every Type::Reticulum::JOB_INTERVAL (60 s), and announce rebroadcasts, link/receipt timeouts and path-request handling all live there. Applications that bridge interfaces on the same device therefore saw announces forwarded up to a minute late, with no way to change it short of calling Transport::jobs() themselves.
Add Reticulum::jobs_interval() getter/setter (seconds); the default stays JOB_INTERVAL = 60 so existing behaviour is unchanged. Reference RNS runs its equivalent every 0.25 s; 1 s is a good value on an ESP32.
Tested 1s interval on ESP32-S3 bridging announcement packets between LoRa and WiFi without any issues.
Closes #83