You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce ESC status light modes and motor beep queuing, add cached barometer/altitude/vertical-speed getters, and reduce cross-task I2C/CAN contention. Key changes:
- esc.h / esc.cpp: add EscStatusLightMode enum and APIs to request status lights and queue motor beeps; implement LED patterns, motor-tone building, and sync logic to send outputs only when ESC is connected.
- altimeter.h / altimeter.cpp: add cached getters (altitude, baro temp, vertical speed), compute vertical speed from buffer, seed and retry BMP3xx init to avoid transient I2C failures, and update cache on reads to allow safe cross-task access.
- alert_display.h / alert_display.cpp: track ESC/BMS-specific active alert counts and expose getEscBmsAlertCounts() used to influence ESC lights.
- main.cpp: prefer cached getters in non-I2C tasks, restructure changeDeviceState to minimize mutex hold time and side effects outside critical section, use status LED constants, queue ESC beeps on arm/disarm, avoid direct CAN throttle writes from disarm, and use non-blocking queue overwrite for throttle/cruise updates.
- utilities.h: rename LED macros to STATUS_LED_* for controller status semantics.
- buzzer.cpp / audioTask: increase default melody duration and add short silence between notes for separation.
- system_monitors.cpp: re-enable Baro_Temp monitor using cached getter to avoid I2C access from monitors.
- platformio.ini / extra_script.py / .claude/settings.local.json: adjust project src_dir and build flags, update a lib dep commit hash, clean up extra_script usage, and add a couple shell checks for CI.
Overall these changes improve robustness against I2C/CAN races, provide cross-task-safe sensor values, and add ESC visual/audio feedback tied to alert state.
0 commit comments