DriveWorks SDK Reference
5.16.65 Release
For Test and Development only

Reading GPS data from raw (binary) data

The dwSensorGPS_processRawData() and dwSensorGPS_popFrame() functions can be used to parse raw sensor data and read the measurements in the dwGPSFrame format. dwSensorGPS_processRawData() copies parsed data, therefore the raw data can be returned after the call.

Example

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

dwSensorHandle_t gpsSensor;
dwSAL_createSensor(&gpsSensor, ..., ...);
dwSensor_start(gpsSensor);
const uint8_t *data = nullptr;
size_t size = 0;
while(loop)
{
while (status == DW_NOT_READY)
{
dwSensor_readRawData(&data, &size, 1000000, gpsSensor);
status = dwSensorGPS_processRawData(data, size, gpsSensor);
dwSensor_returnRawData(data, gpsSensor);
}
dwGPSFrame frame{};
dwSensorGPS_popFrame(&frame, gpsSensor);
...
}
dwSensor_stop(gpsSensor);
dwSAL_releaseSensor(&gpsSensor);
dwStatus
Status definition.
Definition: ErrorDefs.h:44
@ DW_NOT_READY
The processing is not finished or ready.
Definition: ErrorDefs.h:64
A GPS packet containing localization information.
Definition: GPSFrame.h:258
DW_API_PUBLIC dwStatus dwSensorGPS_popFrame(dwGPSFrame *const frame, dwSensorHandle_t const sensor)
Returns any GPS frame previously processed through RAW data stream.
DW_API_PUBLIC dwStatus dwSensorGPS_processRawData(uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
Decodes RAW data previously read.
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 at a given time (TimeoutUs).
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:88

For more details see Simple Sensor Recording Sample