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:
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build the obd-poller for aarch64, check it against the car's glibc, and install it
|
||||
# on an Orin as the yukart-obd-poller service.
|
||||
#
|
||||
# usage: scripts/deploy-obd-poller.sh [host] (default: mikkeli-orin-nano)
|
||||
#
|
||||
# Cross-compiles from the workstation (the documented fallback): the development
|
||||
# Orin is the preferred native build host. Either way check-glibc.sh gates it.
|
||||
set -euo pipefail
|
||||
|
||||
HOST="${1:-mikkeli-orin-nano}"
|
||||
cd "$(dirname "$0")/.."
|
||||
TARGET=aarch64-unknown-linux-gnu
|
||||
BIN="target/$TARGET/release/obd-poller"
|
||||
|
||||
cargo build --release --target "$TARGET" --bin obd-poller
|
||||
scripts/check-glibc.sh "$BIN"
|
||||
|
||||
# Binary lives under ~/infra per the host repo's guidelines; /usr/local/bin gets a symlink.
|
||||
ssh "$HOST" 'mkdir -p ~/infra/svc-core'
|
||||
scp -q "$BIN" "$HOST:infra/svc-core/obd-poller.new"
|
||||
scp -q deploy/yukart-obd-poller.service "$HOST:infra/svc-core/yukart-obd-poller.service"
|
||||
ssh "$HOST" 'set -e
|
||||
mv ~/infra/svc-core/obd-poller.new ~/infra/svc-core/obd-poller
|
||||
sudo ln -sfn "$HOME/infra/svc-core/obd-poller" /usr/local/bin/yukart-obd-poller
|
||||
sudo install -m 0644 ~/infra/svc-core/yukart-obd-poller.service /etc/systemd/system/yukart-obd-poller.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable yukart-obd-poller.service >/dev/null
|
||||
sudo systemctl restart yukart-obd-poller.service
|
||||
sleep 1
|
||||
systemctl --no-pager --lines=5 status yukart-obd-poller.service'
|
||||
@@ -13,7 +13,7 @@ cd "$(dirname "$0")/.."
|
||||
TARGET=aarch64-unknown-linux-gnu
|
||||
BIN="target/$TARGET/release/recorder"
|
||||
|
||||
cargo build --release --target "$TARGET"
|
||||
cargo build --release --target "$TARGET" --bin recorder
|
||||
scripts/check-glibc.sh "$BIN"
|
||||
|
||||
# Binary lives under ~/infra per the host repo's guidelines; /usr/local/bin gets a symlink.
|
||||
|
||||
Reference in New Issue
Block a user