1f678fe87f
Reads SocketCAN and gpsd directly. Sessions start on the first frame or on 'ctl start', end after 15 s of bus idle or on 'ctl stop'; blips under 3 s are discarded. candump -L chunks fdatasync'd every second and zstd'd once closed; oldest sessions deleted to stay under 50 GB / above 20 GB free. Kernel and queue drops, link changes and clock steps are recorded as events. Bench-tested on vcan with the first car capture (byte-identical) and installed on the car Orin as yukart-recorder.service. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
1.9 KiB
1.9 KiB
type, date
| type | date |
|---|---|
| report | 2026-10-09 |
Recorder bench test
Replaying the first in-car capture (z27ag-20261009-163736-ign.log, 10 s,
8925 frames) onto a vcan0 with its original timing, against a fake gpsd on the
workstation and the real gpsd on the car Orin.
Scenarios
| # | Scenario | Result |
|---|---|---|
| 1 | Full replay, mark at t≈3 s |
auto session; 8925 frames; ID#DATA sequence byte-identical to the source; 3 chunks at --chunk-secs 4, all compressed |
| 2 | 1 s replay | discarded at close (under --min-secs, no marks) — after fixing the span to first→last frame; the first version counted the idle wait too and kept it |
| 3 | ctl start bench-test, no CAN, mark, stop |
manual session with label, mark and GNSS; no CAN chunk left behind |
| 4 | vcan0 deleted mid-session, recreated 1 s later |
one session; Network is down → No such device → socket open recorded as can_link events |
| 5 | SIGTERM mid-session | session closed, reason shutdown, exit 0 |
| 6 | SIGKILL mid-session (3 s replay), restart | all 2676 frames on disk; marked truncated and compressed at restart |
| 7 | --cap-gb 0 |
every older closed session deleted, the active one kept; sequence numbers continue from .last-seq |
On the car Orin (aarch64 cross-build, highest GLIBC_2.34 against its 2.35): the
same full replay recorded 8925 frames and 55 KB of zstd; real gpsd reports (no
fix indoors) recorded with the last TPV before start stamped before_start.
Resident memory at idle: 5 MB.
Not tested
- Real PCAN-USB hot-plug in the car (the
vcandeletion stands in for it). - Sustained throughput beyond 890 frames/s, and the queue-overflow path.
- A clock step during a session (the detection is in place; nothing stepped).
Installed
yukart-recorder.service on mikkeli-orin-nano, enabled, running as mikkeli,
waiting for can_pcan. Recordings: /var/lib/yukart/recordings/.