CanLab/docs

Exports and code generation

A signal definition is only useful if the next tool can read it. Everything here goes through one cantools-backed path, so what the preview decodes is what the file produces.

The formats

FormatImportExportNotes
Standard DBCYesYesThe lingua franca. Parseable by cantools and the Vector tools.
openpilot DBCYes, as a cross-referenceYesCarries the comma.ai checksum and counter annotations.
Vector CANdb++NoYesWith BA_DEF_ attribute blocks.
AUTOSAR ARXML 4.3YesExperimentalRound-trips within CanLab but is not validated against the full AUTOSAR schema. Do not rely on it in external AUTOSAR tools yet.
Wireshark Lua dissectorNoYesYour signals appear by name in a packet capture. Little- and big-endian; the big-endian path is verified against cantools.
Excel or CSV CAN matrixYesNoFor the spreadsheets that OEM documentation often arrives as.
Decoded time seriesNoYesA timestamp-by-signal matrix to CSV or Parquet, for analysis elsewhere.

Extended 29-bit identifiers, multiplexed signals and value tables round-trip.

Cross-referencing opendbc

Tools → Match against opendbc fetches the commaai/opendbc library, caches it under ~/.canlab/opendbc_cache, and ranks how well your capture's arbitration IDs match each OEM database. The first run needs network access; afterwards it works from the cache.

If your vehicle is one openpilot already supports, this can shortcut most of the work. If it is not, a partial match still tells you which OEM's conventions to expect.

Generated code

CODE GEN writes a working program from your definitions: Python that opens the bus and decodes the signals you picked, or encodes and sends them, and a C variant that does the bit extraction directly. Pick the signals, the interface and the direction.

The generated Python goes through cantools for encoding, so a frame it produces is formed the same way the preview decodes it.

Projects

File → Save Project writes a .canlab file holding the frames, the signal definitions and your notes together, so a session can be picked up later or handed to somebody else. It is the only format here that round-trips the work rather than the result.