docan - Diagnostics over CAN

An implementation of the ISO-15765 specification.

docan’s purpose is to serve as a CAN Transport stack, allowing ECUs to send payloads of data potentially too large to fit into a single CAN frame to each other via the CAN-TP protocol, which will encode said payloads into CAN frames, splitting the payloads into several frames (or reassembling messages from several frames) as needed.

If you’re unfamiliar with the basics of the protocol, CAN-TP Basics is a good primer on the essentials you need to know to understand CAN-TP and how it works.

Integrating projects must support and integrate the async module, as docan relies on async internally to execute several operations asynchronously. The async module also ensures that all business logic operations run within the same task context, reducing the need for costly interrupt-disabling locks for data access synchronization.