obd-poller: OBD-II mode 01, the single CAN writer; recorder keeps its values

obd-poller asks 0x7DF for the nine obd2 signals, only while the bus is alive,
and publishes envelopes stamped with the reply's kernel time. The recorder
subscribes to yukart/vehicle/* and writes vehicle.ndjson beside the frames.
Tested against a fake ECU on vcan0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
This commit is contained in:
2026-10-12 23:25:03 +09:00
parent b605c27fc0
commit 6a7de03773
13 changed files with 747 additions and 12 deletions
+7 -4
View File
@@ -3,10 +3,13 @@ type: guidelines
---
# Core services guidelines
## 1. Listen-only until `obd-poller` exists
- Nothing here opens a CAN socket for writing. The recorder only reads, and the
host brings `can_pcan` up listen-only.
- `obd-poller` will be the single writer. Until it lands, any transmit is a bug.
## 1. One CAN writer: `obd-poller`
- `obd-poller` is the only thing that transmits on the car's bus (project-yukart
decision 3): OBD-II requests, one at a time, only while the bus is visibly
alive. Anything else that transmits is a bug; the recorder only reads.
- `can_pcan` is no longer listen-only (2026-10-12), so the adapter acknowledges
frames like any scan tool. Going back is one line in orin-nano-env-setup's
`/etc/default/can-can_pcan`.
## 2. Capture never waits
- A frame missed is gone. Producers hand frames to the writer without blocking;