Since we’re trying to exchange data about CAN data dictionaries (which messages are available in which cars and how to decode messages into useful signals) and CAN traces (list of timestamped messages from a specific car), @alanm and I thought it would be great to all use the same data formats.
Here’s our proposal for a data format for CAN data dictionaries and CAN traces based on JSON. Feel free to open GitHub pull requests to contribute improvements!
The Vector .dbc file format is a proprietary format used for their CAN tools. A number of other CAN tool vendors also use it. Vector offers a library to read/write the format. Btw, Kvaser has a free editor for download.
I’d much rather work in a saner format like JSON or XML. CANard uses JSON. Kayak has it’s own format. Busmaster (Bosch/ETAS) is free and uses it’s own format. There is a GitHub project called canmatrix that converts between the different formats.
Has Carloop settled on a format yet? I would go with JSON as we can find lots of open source software to support it.
Really great idea. Have been looking into similar ideas for this too. Might be useful to throw together some rough implementation code to show how this would be used for decoding some messages, i think this would encourage people to use a data dictionary instead of just rolling their own hard-coded versions. It would be nice to also have this for the carloop firmware, but also for server side as i like the idea of keeping the data as raw as possible to keep the bandwidth cost down and sorting it out server side.