mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-26 04:36:40 +00:00
refactor(companion): drop one-time prefs-migration cruft, fix stale Msg wake comments
loadPrefsInt()'s "sentinel mismatch" block had accumulated ~62 lines of one-shot backfills tied to specific old NodePrefs::SCHEMA_SENTINEL values (favourites/map home-page bits, split bot-command toggles, trail_units_idx, bot_trigger_ch seed, scope mask/index zeroing). Reduce it to just the sentinel read + mismatch log line -- an upgrade from a version old enough to hit any of these now lands on today's plain defaults for that field instead of a silently-seeded value, same outcome a fresh device already gets. The ongoing per-field range clamps (defensive against any corrupt or out-of-range byte, not version-specific) are untouched. Same treatment for DataStore::loadScopeList()'s one-time synthesis of a scope-list entry from the old single default_scope_name/key field: removed, along with the scope_migrated_legacy plumbing in MyMesh::begin() that only ran once that migration had just fired. loadScopeList() drops its now- unused NodePrefs parameter and bool return. Also trimmed ~25 per-field comments that over-specified which exact old sentinel produced which stray byte, down to what the clamp actually defends against -- except where the hex value explained a genuinely non-obvious byte-aliasing interaction, which stays. One comment (scope mask/index) was flagged and rewritten because it described the very zeroing logic this change removes. Drive-by: two comments still said Settings > Sound > "Msg wake" -- it's been under Settings > Display for a while, per the enum's section grouping in SettingsScreen.h. Verified: sim_companion_radio and WioTrackerL1_companion_solo_dual build clean, RAM/Flash usage unchanged (pure logic removal, no schema/layout change). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1910,9 +1910,7 @@ void MyMesh::begin(bool has_display) {
|
||||
|
||||
// load persisted prefs
|
||||
_store->loadPrefs(_prefs, sensors.node_lat, sensors.node_lon);
|
||||
// True only on the first boot after upgrading a device that had the old
|
||||
// single Scope field set -- acted on once the channels are loaded, below.
|
||||
bool scope_migrated_legacy = _store->loadScopeList(_scope_list, _prefs);
|
||||
_store->loadScopeList(_scope_list);
|
||||
rebuildRepeatScopes();
|
||||
|
||||
// sanitise bad pref values. NaN/inf must be reset BEFORE constrain(): constrain
|
||||
@@ -1964,20 +1962,6 @@ void MyMesh::begin(bool has_display) {
|
||||
addChannel("Public", PUBLIC_GROUP_PSK); // pre-configure Andy's public channel
|
||||
}
|
||||
|
||||
// First boot after upgrading from the single device-wide Scope field: every
|
||||
// channel now carries its own pick, and an unset pick means "*" == unscoped,
|
||||
// not "inherit the default". Left alone, an upgrader's channel traffic would
|
||||
// quietly go out unscoped while their DMs kept the old scope. Seed only the
|
||||
// slots that actually hold a channel today -- a blanket fill would also hand
|
||||
// the scope to whatever channel gets created in an empty slot later on.
|
||||
if (scope_migrated_legacy && _scope_list.default_idx >= 1) {
|
||||
for (uint8_t i = 0; i < NodePrefs::MAX_SCOPED_CHANNELS; i++) {
|
||||
ChannelDetails ch;
|
||||
if (getChannel(i, ch) && ch.name[0]) _prefs.ch_scope_idx[i] = _scope_list.default_idx;
|
||||
}
|
||||
savePrefs();
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user