fix: move FEAT_RX_POWERSAVE to Features.h; no extra [LOC] on "Stop after" change

- FEAT_RX_POWERSAVE lived in MyMesh.h, but SettingsScreen.h only pulls
  Features.h -- it saw the flag only via include order, and an undefined
  macro in `#if` silently reads as 0, which would split the build the day
  it's flipped to 1. Now defined in Features.h (the home of FEAT_* flags),
  which MyMesh.h includes; comment/doc pointers updated.
- Changing Live Share's "Stop after" restarted the whole session, forcing
  an immediate re-announce [LOC] although the position hadn't changed. It
  now restarts only the duration clock (restartLocShareClock()).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-24 15:50:37 +02:00
co-authored by Claude Opus 5.5
parent 299fcf2c13
commit 1620df6c10
10 changed files with 32 additions and 24 deletions
+2 -2
View File
@@ -62,7 +62,7 @@ public:
// configured preamble is too short for a real duty-cycle (senderPreamble <
// 2*minSymbols+1), RadioLib transparently falls back to a continuous receive.
//
// NOT CURRENTLY REACHABLE: FEAT_RX_POWERSAVE (MyMesh.h) is 0, so nothing ever
// NOT CURRENTLY REACHABLE: FEAT_RX_POWERSAVE (companion Features.h) is 0, so nothing ever
// calls setPowerSaving(true) and this never runs. Left implemented (matching
// our own preambleLengthForSF(sf) convention, so it's correct for nodes on
// this same convention) rather than removed, because the reason it's disabled
@@ -74,7 +74,7 @@ public:
// guarantee we can't currently make. A mismatch doesn't cost a little
// sensitivity, it silently drops every packet from that sender regardless of
// signal strength (2026-09-22 field report: near-total reception loss on a
// stock SF8 preset, unaffected by antenna gain). See MyMesh.h and
// stock SF8 preset, unaffected by antenna gain). See companion Features.h and
// docs/development/roadmap.md before ever flipping FEAT_RX_POWERSAVE back on.
int16_t startPowerSaveRecv() override {
return ((SX126x *)_radio)->startReceiveDutyCycleAuto(preambleLengthForSF(_preamble_sf), 8);
+1 -1
View File
@@ -46,7 +46,7 @@ protected:
// stays in RX to receive the packet (RX_DONE on DIO1) — no MCU state machine,
// average RX current cut several-fold. Driven from armRecv()/loop(); falls back
// to continuous RX if the modem doesn't support it.
// Companion-side gating: FEAT_RX_POWERSAVE (examples/companion_radio/MyMesh.h)
// Companion-side gating: FEAT_RX_POWERSAVE (examples/companion_radio/Features.h)
// is 0, so nothing on that target ever calls setPowerSaving(true) and this
// path never actually runs there -- the SX126x duty-cycle's preamble
// detection needs the sender's actual preamble to exactly match what we