• controlsd: re-wire UI hooks on top of restored baseline

    brianhansonxyz released this 2026-04-26 08:44:52 -05:00 | 19 commits to clearpilot since this release

    Adds back the UI plumbing that the baseline controlsd doesn't have, so
    the existing UI features keep working without changing driving logic:

    • ScreenDisplayMode 5-state machine (auto-normal, auto-nightrider,
      manual normal, screen-off, manual nightrider) driven by the LFA
      debug button + gear edges. Replaces baseline's simple 0..2 cycle.
      Pure params write — no actuator effect.
    • Speed/cruise-warning overlay tick at ~2Hz feeding SpeedState, which
      writes ClearpilotSpeedDisplay / ClearpilotSpeedLimitDisplay /
      ClearpilotCruiseWarning for the onroad UI. Reads gpsLocation,
      CarSpeedLimit, and CS.cruiseState — no actuator effect.
    • frogpilot_variables.no_lat_lane_change is now populated alongside
      the existing Params write, so the perf-optimized carcontroller (which
      takes the bit as an argument instead of re-reading Params on the
      100Hz hot path) still sees the lane-change suppression signal.
    • ScreenDisplayMode init switched from put_bool to put_int (UI reads
      it as int).
    • gpsLocation added to SubMaster (ignore_alive/avg_freq/valid set,
      since gpsd is a ClearPilot addition not present everywhere).

    No changes to controlsd's lateral or longitudinal control paths.

    Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

    Downloads