DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

Reading CAN Messages from Raw Data (Binary)
Note
SW Release Applicability: This tutorial is applicable to modules in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

The dwSensorCAN_processRawData() and dwSensorCAN_popMessage() functions can be used to parse raw can bus data and read the messages in the dwCANMessage format.

For details on the CAN sensor module workflow, see Receiving and Sending Data.

Example

The following code shows the general structure of a program reading raw data from the can bus, serializing it and parsing it.

dwSensorHandle_t canSensor;
dwSAL_createSensor(&canSensor, ..., ...);
dwSensor_start(canSensor);
const uint8_t *data = nullptr;
size_t size = 0;
while(loop)
{
dwStatus status = DW_NOT_READY;
while (status == DW_NOT_READY)
{
dwSensor_readRawData(&data, &size, 1000000, canSensor);
status = dwSensorCAN_processRawData(data, size, canSensor);
dwSensor_returnRawData(data, canSensor);
}
dwCANMessage message{};
dwSensorCAN_popMessage(&frame, canSensor);
...
}
dwSensor_stop(canSensor);
dwSAL_releaseSensor(&canSensor);

For more details see Simple Sensor Recording Sample