Skip to content

Lab: CAN Arbitration

This exercise inspects a synthetic Classical CAN frame and then separates the identifier's teaching-model priority from claims the artifact cannot support.

Run The Example

From the repository root, after uv sync --all-groups --frozen:

uv run python docs/examples/can_frame.py

The example constructs an offline CanFrame, prints its visible fields, and explains that lower numeric identifiers have higher priority in the simplified arbitration model used here. No interface is opened and nothing is transmitted.

Inspect The Artifact

The synthetic payload is 10 27 20 27 18 27 22 27, carried under standard identifier 0x123 with DLC 8. Before assigning signal meaning, ask:

  1. Which properties come directly from the frame object?
  2. What additional evidence would identify the sender or payload layout?
  3. Why does identifier priority not prove when this frame was observed?

Evidence Boundary

The frame supports inspection of identifier width, identifier value, frame kind, DLC, and payload bytes. The teaching model can compare its arbitration priority with other identifiers. It does not establish a transmitter, a DBC, signal semantics, capture time, bus health, or physical truth.