fix: reliable USB disconnect/reconnect display handling

- Poll DTR every 250ms via select3 timer arm (read_packet blocks
  forever after host closes port, so DTR check must not depend on it)
- DTR drop → send DisplayCommand::Reset (blocking send, not try_send)
- DTR rise → send DisplayCommand::On
- Display task: disconnected flag ignores StatusWatch while set,
  preventing stale radio status from overriding the idle screen
- On reconnect, display grabs current RadioStatus from watch and
  renders dashboard immediately (no waiting for next radio event)
- Simplified clippy to use _cargo helper

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
swaitsandClaude Opus 4.6 committed 2026-03-29 20:42:56 -06:00
1 parent 4e7e6d2167
commit a569e09b42
3 files changed
+41 -26

No files matched your search

+1 -8
View File
@@ -42,14 +42,7 @@ check board:
# Run clippy on a single board
clippy board:
@read -r feat target chip <<< "$(just _info {{board}})"; \
env=""; extra=""; \
case "$target" in xtensa-*) \
just _require_esp_toolchain; \
[ -f "$HOME/export-esp.sh" ] && . "$HOME/export-esp.sh"; \
env="RUSTC=$(rustup which rustc --toolchain esp)"; extra="+nightly";; \
esac; \
eval $env cargo $extra clippy --target $target --features $feat -- -D warnings
@just _cargo {{board}} "clippy -- -D warnings"
# Build release firmware and copy to firmware/ with a readable name
build board profile="release":