app/rcc/scripts/native/can_signal_map.md
Decodes CAN frames through a DBC-style signal map: per-message bit layouts, physical scaling and simple multiplexing. Values latch between frames. This template is generated by the DBC importer; re-import the DBC file to change it.
[id hi][id lo][DLC][data ...]
One frame per CAN message as delivered by the CAN Bus driver: a 16-bit big-endian frame id, the data length code, then the payload.
| Parameter | Type | Description |
|---|---|---|
| Signal map | map | CAN messages with their signal bit layouts and scaling. Written by the importer. |
Each message holds its frame id and the signals in channel order:
{"messages": [{"id": 256, "signals": [
{"startBit": 0, "length": 16, "bigEndian": true, "signed": false,
"factor": 1, "offset": 0}
]}]}
A signal flagged with "selector": true is the message's multiplexor
switch; signals carrying "mux": N only update when the selector's raw
value equals N. Big-endian signals walk MSB-first from the start bit;
little-endian signals accumulate LSB-first (Intel layout).
Channels follow the map order: messages first, signals within each
message next (selector, plain signals, then multiplexed signals).
Physical values are computed as raw * factor + offset.
Select the Binary (raw bytes) decoder with no frame delimiters; the CAN Bus driver delivers one frame per message.