Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>

  • DriveWorks SDK Reference
    5.8.83 Release
    For Test and Development only

    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    Reading CAN Messages from Raw Data (Binary)

    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);
    DW_API_PUBLIC dwStatus dwSensorCAN_processRawData(const uint8_t *data, size_t size, dwSensorHandle_t sensor)
    Decodes CAN data previously read as a RAW data stream into internal queue.
    DW_API_PUBLIC dwStatus dwSensorCAN_popMessage(dwCANMessage *msg, dwSensorHandle_t sensor)
    Returns any CAN data previously processed through a RAW data stream.
    Holds a CAN package.
    Definition: CAN.h:113
    dwStatus
    Status definition.
    Definition: Status.h:171
    DW_API_PUBLIC dwStatus dwSensorSerializer_serializeDataAsync(uint8_t const *const data, size_t const size, dwSensorSerializerHandle_t const serializer)
    Pushes data to the serializer.
    DW_API_PUBLIC dwStatus dwSAL_createSensor(dwSensorHandle_t *const sensor, dwSensorParams const params, dwSALHandle_t const sal)
    Creates a new sensor managed by the SAL module with the given parameters.
    DW_API_PUBLIC dwStatus dwSensor_start(dwSensorHandle_t const sensor)
    Starts the sensor previously successfully created with 'dwSAL_createSensor()'.
    DW_API_PUBLIC dwStatus dwSensor_stop(dwSensorHandle_t const sensor)
    Stops the sensor.
    DW_API_PUBLIC dwStatus dwSensor_readRawData(const uint8_t **const data, size_t *const size, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
    Reads RAW data from sensor as byte array.
    DW_API_PUBLIC dwStatus dwSensor_returnRawData(const uint8_t *const data, dwSensorHandle_t const sensor)
    Returns RAW data to sensor as a byte array.
    DW_API_PUBLIC dwStatus dwSAL_releaseSensor(dwSensorHandle_t const sensor)
    Releases a sensor managed by the SAL module.
    struct dwSensorObject * dwSensorHandle_t
    Handle representing a sensor.
    Definition: Sensors.h:86

    For more details see Simple Sensor Recording Sample

    人人超碰97caoporen国产