mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-31 01:08:14 +00:00
feat(repeater): status-bar indicator, power-save lock, diag polish
- Status bar: blinking » indicator while relaying (new ICON_REPEATER), added to the 1 s blink cadence alongside the advert/trail markers. - Power-save lock: a repeater must hear all traffic, so duty-cycle RX is forced off whenever client_repeat is on. Effective state = rx_powersave && !repeat, applied at boot, in applyPowerSave(), on the on-device toggle, and on the app's CMD_SET_RADIO_PARAMS. Settings shows "--" and blocks the toggle while repeating; the user's pref is preserved and restored when the repeater is switched off. - Diagnostics: reset now uses the standard Hold-Enter one-item action menu (Back dismisses) instead of an Enter/Cancel popup; new "Errors" row decodes the Dispatcher ERR_EVENT_* flags (F/C/R, or OK). - RepeaterScreen: drop the live stats block (they live on Diagnostics). - Min-SNR load clamp tightened to the UI's -20..10 range. Docs updated (settings_screen, tools_screen, FEATURES). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1421,7 +1421,7 @@ void MyMesh::begin(bool has_display) {
|
||||
applyRepeaterRadio(); // companion params, or the repeater profile if relaying with one set
|
||||
applyApc(); // sets TX power to the ceiling and arms APC if enabled
|
||||
radio_driver.setRxBoostedGainMode(_prefs.rx_boosted_gain);
|
||||
radio_driver.setPowerSaving(_prefs.rx_powersave); // hardware duty-cycle RX (battery saver)
|
||||
radio_driver.setPowerSaving(_prefs.rx_powersave && !_prefs.client_repeat); // duty-cycle RX off while repeating (must hear all traffic)
|
||||
MESH_DEBUG_PRINTLN("RX Boosted Gain Mode: %s",
|
||||
radio_driver.getRxBoostedGainMode() ? "Enabled" : "Disabled");
|
||||
}
|
||||
@@ -1861,6 +1861,9 @@ void MyMesh::handleCmdFrame(size_t len) {
|
||||
savePrefs();
|
||||
|
||||
radio_driver.setParams(_prefs.freq, _prefs.bw, _prefs.sf, _prefs.cr);
|
||||
// Keep the "repeating ⇒ continuous RX" invariant when repeat is toggled via
|
||||
// the app, mirroring the on-device path (a repeater must hear all traffic).
|
||||
radio_driver.setPowerSaving(_prefs.rx_powersave && !_prefs.client_repeat);
|
||||
MESH_DEBUG_PRINTLN("OK: CMD_SET_RADIO_PARAMS: f=%d, bw=%d, sf=%d, cr=%d", freq, bw, (uint32_t)sf,
|
||||
(uint32_t)cr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user