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
| Format | Import | Export | Notes |
|---|---|---|---|
| Standard DBC | Yes | Yes | The lingua franca. Parseable by cantools and the Vector tools. |
| openpilot DBC | Yes, as a cross-reference | Yes | Carries the comma.ai checksum and counter annotations. |
| Vector CANdb++ | No | Yes | With BA_DEF_ attribute blocks. |
| AUTOSAR ARXML 4.3 | Yes | Experimental | Round-trips within CanLab but is not validated against the full AUTOSAR schema. Do not rely on it in external AUTOSAR tools yet. |
| Wireshark Lua dissector | No | Yes | Your signals appear by name in a packet capture. Little- and big-endian; the big-endian path is verified against cantools. |
| Excel or CSV CAN matrix | Yes | No | For the spreadsheets that OEM documentation often arrives as. |
| Decoded time series | No | Yes | A 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.