41c154014a
Standalone managed process (selfdrive.clearpilot.speed_logicd) that ticks SpeedState at 2 Hz from cereal subscriptions. Decoupled from controlsd so self-driving timing isn't affected. Inputs: - gpsLocation.speed + hasFix (vehicle speed) - carState.cruiseState (cruise speed, enabled, standstill) - CarSpeedLimit memory param (will be populated when carstate.py CAN-FD decode is ported; 0 until then — speed-limit + warning logic naturally short-circuits) - IsMetric persistent param (read once at startup) Outputs (memory params, gated on change to avoid 2 Hz tmpfs churn): - ClearpilotSpeedDisplay, ClearpilotHasSpeed, ClearpilotSpeedUnit - ClearpilotSpeedLimitDisplay, ClearpilotIsMetric - ClearpilotCruiseWarning, ClearpilotCruiseWarningSpeed - ClearpilotPlayDing (one-shot trigger consumed by soundd) speed_logic.py copied verbatim from broken; speed_logicd.py is new glue. Registered as PythonProcess gated on only_onroad.