dashcamd v3: trip directories, state machine, graceful shutdown
Dashcam recording now organized by trip in /data/media/0/videos/YYYYMMDD-HHMMSS/. Starts recording immediately on launch (with 10-min idle timer), transitions to continuous recording when drive gear detected. New trip on every ignition cycle. Graceful shutdown via DashcamShutdown param with 15s ack timeout in thermald. - Bitrate reduced to 2500 kbps (was 4 Mbps) - Trip state machine: IDLE → RECORDING ↔ IDLE_TIMEOUT → TRIP_ENDED - Deleter: trip-aware deletion (oldest trip first, then segments within active trip) - camerad changed to always_run (was driverview) so dashcam works offroad - DashcamShutdown param for graceful close before device power-off Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -411,6 +411,16 @@ def thermald_thread(end_event, hw_queue) -> None:
|
||||
# Check if we need to shut down
|
||||
if power_monitor.should_shutdown(onroad_conditions["ignition"], in_car, off_ts, started_seen):
|
||||
cloudlog.warning(f"shutting device down, offroad since {off_ts}")
|
||||
# CLEARPILOT: signal dashcamd to close recording gracefully before power-off
|
||||
params.put_bool("DashcamShutdown", True)
|
||||
deadline = time.monotonic() + 15.0
|
||||
while time.monotonic() < deadline:
|
||||
if not params.getBool("DashcamShutdown"):
|
||||
cloudlog.info("dashcamd shutdown ack received")
|
||||
break
|
||||
time.sleep(0.5)
|
||||
else:
|
||||
cloudlog.warning("dashcamd shutdown ack timeout, proceeding")
|
||||
params.put_bool("DoShutdown", True)
|
||||
|
||||
msg.deviceState.started = started_ts is not None
|
||||
|
||||
Reference in New Issue
Block a user