modeld standby on lat inactive, dashcamd always-on, alert suppression

- modeld: enter standby when latActive=false (not just standstill),
  exception for lane changes (no_lat_lane_change). Fix Python capnp
  property access (.latActive not getLatActive())
- controlsd: move model_suppress computation early, suppress radarFault,
  posenetInvalid, locationdTemporaryError, paramsdTemporaryError during
  model standby + 2s grace period. All cascade from modeld not publishing
- dashcamd: always_run (manages own trip lifecycle), wait for valid frame
  dimensions before encoding (fix SIGSEGV on early start)
- Fan: driving range 15-100% (was 30-100%)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-14 02:13:40 -05:00
parent 24f29dcfb7
commit b85ce8176d
6 changed files with 37 additions and 23 deletions

View File

@@ -241,13 +241,17 @@ def main(demo=False):
sm.update(0)
# CLEARPILOT: standstill power saving — skip inference, keep model loaded
standstill = sm['carState'].standstill
if standstill and not model_standby:
# CLEARPILOT: power saving — skip inference when lateral control is not active
# Covers standstill, manual driving (no cruise), and disengaged states
# Exception: keep processing during lane changes (no_lat_lane_change)
lat_active = sm['carControl'].latActive
lane_changing = params_memory.get_bool("no_lat_lane_change")
should_standby = not lat_active and not lane_changing
if should_standby and not model_standby:
params_memory.put_bool("ModelStandby", True)
model_standby = True
cloudlog.warning("modeld: standby ON (standstill)")
elif not standstill and model_standby:
cloudlog.warning("modeld: standby ON (lat_active=%s standstill=%s)", lat_active, sm['carState'].standstill)
elif not should_standby and model_standby:
params_memory.put_bool("ModelStandby", False)
model_standby = False
run_count = 0