NVIDIA DriveWorks: Sensor Plugin Interface to interact with live sensors
Description: This file defines the interfaces to be implemented for live sensor plugins.
Definition in file SensorPlugin.h.
Go to the source code of this file.
Data Structures | |
struct | dwSensorPluginFunctions |
Function Table exposing sensor plugin functions. More... | |
Macros | |
#define | SENSOR_PLUGIN_COMMON_FUNCTIONS |
Typedefs | |
typedef void * | dwSensorPluginSensorHandle_t |
Plugin handle. Used in plugin public interfaces. More... | |
typedef dwStatus(* | dwSensorPlugin_initializeHandle) (dwSensorPluginSensorHandle_t *handle, char const *params, dwContextHandle_t ctx) |
Initialize a new handle to the sensor managed by the plugin module. More... | |
typedef dwStatus(* | dwSensorPlugin_release) (dwSensorPluginSensorHandle_t handle) |
Releases a sensor managed by the plugin module. More... | |
typedef dwStatus(* | dwSensorPlugin_start) (dwSensorPluginSensorHandle_t handle) |
Starts the sensor previously successfully created with 'dwSensorPlugin_createSensor' interface. More... | |
typedef dwStatus(* | dwSensorPlugin_stop) (dwSensorPluginSensorHandle_t handle) |
Stops the sensor. More... | |
typedef dwStatus(* | dwSensorPlugin_reset) (dwSensorPluginSensorHandle_t handle) |
Resets the sensor. More... | |
typedef dwStatus(* | dwSensorPlugin_readRawData) (uint8_t const **data, size_t *size, dwTime_t *timestamp, dwTime_t timeout_us, dwSensorPluginSensorHandle_t handle) |
Reads RAW data for one single message from the sensor as byte array. More... | |
typedef dwStatus(* | dwSensorPlugin_returnRawData) (uint8_t const *data, dwSensorPluginSensorHandle_t handle) |
Returns RAW data to sensor as a byte array. More... | |
typedef struct dwSensorPluginFunctions | dwSensorPluginFunctions |
Function Table exposing sensor plugin functions. More... | |
Functions | |
DW_API_PUBLIC dwStatus | dwSAL_registerSensorPlugin (dwSensorType sensorType, char const *codecMimeType, void const *funcTable, dwSALHandle_t const sal) |
Register sensor plugin which works with live sensors. More... | |
#define SENSOR_PLUGIN_COMMON_FUNCTIONS |
Definition at line 156 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_initializeHandle) (dwSensorPluginSensorHandle_t *handle, char const *params, dwContextHandle_t ctx) |
Initialize a new handle to the sensor managed by the plugin module.
[out] | handle | A pointer to sensor handle. |
[in] | params | Specifies the parameters for the sensor. |
[in] | ctx | context handle. |
Definition at line 46 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_readRawData) (uint8_t const **data, size_t *size, dwTime_t *timestamp, dwTime_t timeout_us, dwSensorPluginSensorHandle_t handle) |
Reads RAW data for one single message from the sensor as byte array.
This should be the raw unprocessed data received from the sensor. Generally this is the entrypoint to perform a read operation on the sensor.
For each raw "message" from the sensor, data must be packed in the following memory layout:
Payload Size (uint32_t) | Timestamp (dwTime_t) | Payload
It is the responsiblility of the plugin author to do perform the memory allocation for the memory buffer that will be given out via this API.
Please note the following considerations on the behavior of this API:
1. This API may be called several times before a call to 'dwSensorPlugin_returnRawData', which means your plugin implementation must support multiple "raw data" buffers in flight. 2. The buffer given out by this API will be returned by a call to '_dwSensorPlugin_returnRawData()' 3. The size reported as the output of this API shall include the header shown above
[out] | data | A pointer to the pointer to data that is populated with the RAW data. |
[out] | size | A pointer to the size of the data array. |
[out] | timestamp | Specifies the host timestamp of raw data message. |
[in] | timeout_us | Specifies the timeout in us to wait before unblocking. |
[in] | handle | Specifies the sensor handle to read from. |
Definition at line 138 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_release) (dwSensorPluginSensorHandle_t handle) |
Releases a sensor managed by the plugin module.
[in] | handle | The handle to a sensor created previously with the 'dwSensorPlugin_createHandle' interface. |
Definition at line 60 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_reset) (dwSensorPluginSensorHandle_t handle) |
Resets the sensor.
The method shall block while the sensor is reset.
[in] | handle | A sensor handle previously created w/ the 'dwSensorPlugin_createHandle' interface. |
Definition at line 98 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_returnRawData) (uint8_t const *data, dwSensorPluginSensorHandle_t handle) |
Returns RAW data to sensor as a byte array.
The returned pointer must have been previously obtained by a call to the 'dwSensorPlugin_readRawData' interface.
[in] | data | A pointer to data that was populated with the RAW data. |
[in] | handle | Specifies the sensor the data came from. |
Definition at line 154 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_start) (dwSensorPluginSensorHandle_t handle) |
Starts the sensor previously successfully created with 'dwSensorPlugin_createSensor' interface.
Sensor data should ready to be received using the '_dwSensorPlugin_readRawData()' API after the execution of this call.
[in] | handle | A sensor handle previously created w/ the 'dwSensorPlugin_createHandle' interface. |
Definition at line 74 of file SensorPlugin.h.
typedef dwStatus(* dwSensorPlugin_stop) (dwSensorPluginSensorHandle_t handle) |
Stops the sensor.
This method shall block while the sensor is stopped.
[in] | handle | A sensor handle previously created w/ the 'dwSensorPlugin_createHandle' interface. |
Definition at line 85 of file SensorPlugin.h.
typedef struct dwSensorPluginFunctions dwSensorPluginFunctions |
Function Table exposing sensor plugin functions.
typedef void* dwSensorPluginSensorHandle_t |
Plugin handle. Used in plugin public interfaces.
Definition at line 33 of file SensorPlugin.h.
DW_API_PUBLIC dwStatus dwSAL_registerSensorPlugin | ( | dwSensorType | sensorType, |
char const * | codecMimeType, | ||
void const * | funcTable, | ||
dwSALHandle_t const | sal | ||
) |
Register sensor plugin which works with live sensors.
[in] | sensorType | the sensor type of registered sensor plugin |
[in] | codecMimeType | the codec type of registered CodecHeader plugin |
[in] | funcTable | pointer to sensor plugin function pointer table |
[in] | sal | Specifies the SAL handle to register sensor plugin. |