Issue #5 (requested by @TerryFrench): the OLED dim/off tiers are no longer hardcoded at 2/15 min. Two new Config_body fields screen_dim_timeout / screen_off_timeout (minutes, 0 = tier disabled, range [0,250]) are editable on the Settings screen (ScrDim/ScrOff) and persist to flash; defaults preserve the 2/15 ladder and upgraders read those via the config_valid clamp. The idle timer moved from time_us_32() to 64-bit µs so the full 250-min range is representable without the ~71-min wrap. Issue #6: new "trig fold" Diagnostics counter — trigger-bearing 0x02 host reports that arrived while the speaker stream was active and were folded into the 0x36 audio frames (via state[]) rather than sent as a standalone 0x31. Makes trig_allow == to_bt(trig share) + fold visible, confirming the apparent trig/tx gap is audio-path folding, not dropped reports. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
585a385219
commit
c65e0c9802
@@ -101,6 +101,14 @@ void config_valid() {
|
||||
}
|
||||
// lb_fav_{r,g,b} need no validation — any 0..255 is a legal color, and an
|
||||
// erased flash sector (0xFF) yields 4 white favorites, a usable default.
|
||||
if (body->screen_dim_timeout > 250) { // 0xFF erased / out of range → default
|
||||
body->screen_dim_timeout = 2; // mirrors the original 2-min dim tier
|
||||
printf("[Config] screen_dim_timeout invalid, defaulting to 2 min\n");
|
||||
}
|
||||
if (body->screen_off_timeout > 250) {
|
||||
body->screen_off_timeout = 15; // mirrors the original 15-min off tier
|
||||
printf("[Config] screen_off_timeout invalid, defaulting to 15 min\n");
|
||||
}
|
||||
if (body->config_version != CONFIG_VERSION) {
|
||||
body->config_version = CONFIG_VERSION;
|
||||
printf("[Config] Warning: Config may breaking change\n");
|
||||
|
||||
Reference in New Issue
Block a user