canair monitor¶
Alias: mon
usage: canair monitor [-h] [--interval SECONDS] [--session] [--wake]
[--keep-changes | --keep-unique | --keep-all | --keep N]
[--save] [--label TEXT] [--state TEXT] [--notes TEXT]
[--rulers] [--notation NAME] [--include-static]
[--wican WICAN]
[--transport {slcan-tcp,wican-ws,elm327-tcp}]
[--no-fallback] [--wait] [--elm-timeout MS]
[--timeout SECONDS] [--json] [--verbose] [--timings]
[--reboot] [--unsafe] [--force]
[STEP ...]
[UDS] Monitor ECUs/signals live in a scrollable, refreshing view. Positional STEPs use the multi mini-language (same as `canair read`).
positional arguments:
STEP Query selector(s), @group(s), or multi mini-language
step(s)
options:
-h, --help show this help message and exit
--interval SECONDS Poll interval in seconds (default 5.0; change it live
in the TUI with =/-)
--session Enter extended session (10 03)
--wake Wake ECUs from deep sleep (10 01)
--keep-changes Retain value-transitions per PID (run-length;
collapses only immediate repeats) — the default
--keep-unique Retain only globally-distinct payloads per PID (legacy
global dedup; return-to-previous transitions are
dropped)
--keep-all Retain every polled payload (full time-series; larger
capture files)
--keep N Keep the last N payloads per PID
--save Save results to captures/
--label TEXT Session label for --save
--state TEXT Session state for --save
--notes TEXT Session notes for --save
--rulers Show a byte-index ruler above the hex (in the notation
from --notation / display.byte_notation)
--notation NAME byte-index notation for output labels: wican
(default), isotp, torque, bix. Overrides the
display.byte_notation config key.
--include-static Include static config/identity PIDs (e.g. 21F2) in a
bare-ECU sweep. By default `canair monitor ECU` omits
PIDs flagged static:true; naming one explicitly
(ECU:21F2) always polls it.
--wican WICAN WiCAN address: ap or IP (default: config
transport.host / default_wican=ap)
--transport {slcan-tcp,wican-ws,elm327-tcp}
CAN transport: slcan-tcp (raw CAN), wican-ws (WiCAN
ELM327 WebSocket), or elm327-tcp (direct ELM327
adapter over TCP). Overrides the config
`transport.type` (default: slcan-tcp).
--no-fallback Don't auto-fall-back to other configured devices when
the selected one is unreachable (see config
transport.fallback).
--wait Keep retrying to reach the device indefinitely, then
start as soon as it comes online (Ctrl-C to stop). For
'monitor', also reconnects forever if the connection
drops mid-session (auto-failover to another same-
transport device is bounded by default; --wait makes
it unbounded).
--elm-timeout MS ELM327 ECU response timeout in ms (sent as ATSTxx
after init)
--timeout SECONDS Overall UDS response timeout in seconds (default 3.0
ELM / 2.0 raw). Overrides any per-ECU
response_timeout_ms for the whole run.
--json Output results as JSON
--verbose, -v Show raw transport traffic and expressions
--timings Print per-ECU/PID round-trip timing stats on exit (to
stderr)
--reboot Reboot WiCAN after session to restore AutoPID mode
--unsafe Bypass dangerous command blocklist (requires explicit
per-command consent)
--force Ask a session already holding the connection to
release it, then wait for it
examples:
canair monitor BMS:2101 Monitor BMS PID 2101 (default 5s interval)
canair monitor BMS:2101 --interval 2 Refresh every 2s
canair monitor "VCU:2101 BMS:2101" Cross-ECU monitor
canair monitor @charging Monitor a saved group (see `canair groups`)
canair monitor @driving CLU:220B A group plus an extra selector
canair monitor "skm-wake acc" "query IGPM:BC03,BC06"
canair monitor BMS:2101 --save --label "…" --state "READY, PARKED" Record while monitoring
In the TUI: mouse wheel / scrollbar / arrows-jk / PgUp-PgDn / g-G scroll,
space pauses, =/- change the poll interval live,
r toggles the byte-index ruler, l opens the errors/diagnostics log,
V cycles the view mode (ecus / ranges / signals / full),
i opens the session-info overlay (segment history + summary),
↑/↓ select a signal (esc deselects), e/v/d/F edit/verify/en-disable/filter,
s labels the recording (or saves now when not using --save),
n finishes the current --save session and starts a fresh one,
? shows all shortcuts, q quits.
For a single one-shot read (no live refresh) use `canair read` instead.