CAN Message Decoding With DBC on Edge

I am wondering if anyone has found an easy way of decoding messages as they appear in your buffer with a dbc with the monitor/tracker one.

right now I am sending the raw buffer to a lambda function for decoding but obviously that isnt efficient

I am not aware of a library that provides an easier way to decode CAN messages for the Particle platform. All of the examples I've seen decode them by hand.

Could you link an example of doing it by hand, seems like that isnt a scalable solution but maybe its easier than I would think

The Tracker CAN example just reads the response and parses out the appropriate bytes for engine RPM.

Right, my use case involves handling dozens of messages, each containing several signals that need to be factored, scaled, and multiplexed. I'm looking for a more scalable solution to manage this complexity. For example, in Python, there's a library called cantools that can take a DBC file and a CAN frame, and then output the message with its signals and values in plain English. This is the kind of functionality I need to get working on the edge.

Yes, that would be a much better solution but I don't know of any DBC file parser for the Particle platform. You could also search for Arduino projects, since the parser should work across platforms.

1 Like