NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
SensorCommonPlugin.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
20 #ifndef DW_SENSORS_COMMON_PLUGIN_H
21 #define DW_SENSORS_COMMON_PLUGIN_H
22 
23 #include <dw/core/base/Types.h>
24 #include <dw/core/context/Context.h>
25 
26 #include <dw/sensors/common/SensorTypes.h>
27 #include <dw/sensors/sensorlive/plugins/SensorPlugin.h>
28 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 // Enum to indicate the relationship between raw and decoded data for a custom sensor
55 typedef enum {
63 
64 // Enum to define Time Domain
65 typedef enum {
74 
76 typedef struct
77 {
79  size_t packetSize;
83 
84 // Holds the sensor firmware version information
85 typedef struct
86 {
87  // Separate the fwVersion string into three pieces.
88  uint64_t versionMajor; // Firmware version major number
89  uint64_t versionMinor; // Firmware version minor number
90  uint64_t versionPatch; // Firmware version patch number
91  char* versionString; // Firmware version string
93 
94 // Holds the sensor information
95 typedef struct
96 {
99 
100 // Enum to indicate which level the raw data to read from
101 typedef enum {
102  DW_SENSORS_RAW_DATA_LEVEL_ZERO = 0, // Raw data same as from readRawData, TP segment in SOME/IP use case
103  DW_SENSORS_RAW_DATA_LEVEL_ONE = 1, // Raw data combined from LEVEL_ZERO raw Data, reassembled pdu(from segments) in SOME/IP use case
104  DW_SENSORS_RAW_DATA_LEVEL_TWO = 2, // Raw data combined from LEVEL_ONE raw Data, combined pdu(from split pdus)
105  DW_SENSORS_RAW_DATA_LEVEL_COUNT = 3 // Count for validating user passed level
107 
121  dwSensorPluginProperties* properties,
122  char const* params, dwContextHandle_t ctx);
123 
138 
159 typedef dwStatus (*dwSensorPlugin_pushData)(size_t* lenPushed, uint8_t const* data, size_t const size, dwSensorPluginSensorHandle_t handle);
160 
171 
195 DW_DEPRECATED("dwSensorPlugin_getRawPackets is deprecated and will be removed in next major release. Please use dwSensorPlugin_getRawPackets instead")
196 typedef dwStatus (*dwSensorPlugin_getRawPackets)(uint8_t const* const rawData, size_t* const size,
197  dwSensorPlugin_rawDataLevel level, int32_t groupNum, uint8_t const** const data, dwSensorPluginSensorHandle_t handle);
198 
225 typedef dwStatus (*dwSensorPlugin_getRawPacketsNew)(uint8_t const* const rawData, size_t* const size,
226  dwSensorPlugin_rawDataLevel level, int32_t groupNum, uint8_t const** const data, int32_t* extra1, int32_t* extra2, dwSensorPluginSensorHandle_t handle);
241 typedef dwStatus (*dwSensorPlugin_rawDataReadyForDecode)(size_t* offset, size_t* size, uint8_t const* const data, dwSensorPluginSensorHandle_t ctx);
242 
244 typedef struct
245 {
256 #pragma GCC diagnostic push
257 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
259 #pragma GCC diagnostic pop
264 
267 #ifdef __cplusplus
268 }
269 #endif
270 
271 #endif
dwSensorPluginProperties::packetSize
size_t packetSize
Packet size for each raw data message.
Definition: SensorCommonPlugin.h:79
dwSensorPluginProperties
Structure for generic constants returned by the plugin.
Definition: SensorCommonPlugin.h:76
dwSensorPlugin_stop
dwStatus(* dwSensorPlugin_stop)(dwSensorPluginSensorHandle_t handle)
Stops the sensor.
Definition: SensorPlugin.h:85
dwSensorPluginProperties::rawToDec
dwSensorPlugin_rawToDecMap rawToDec
Indicate the relationship between raw data and decoded packet.
Definition: SensorCommonPlugin.h:81
dwSensorPlugin_returnRawData
dwStatus(* dwSensorPlugin_returnRawData)(uint8_t const *data, dwSensorPluginSensorHandle_t handle)
Returns RAW data to sensor as a byte array.
Definition: SensorPlugin.h:154
dwSensorCommonPluginFunctions::getRawPacketsNew
dwSensorPlugin_getRawPacketsNew getRawPacketsNew
Definition: SensorCommonPlugin.h:260
dwSensorPlugin_rawToDecMap
dwSensorPlugin_rawToDecMap
Definition: SensorCommonPlugin.h:55
DW_SENSORS_PLUGIN_TIME_DOMAIN_UTCTOH
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_UTCTOH
Top of Hour in Coordinated Universal Time.
Definition: SensorCommonPlugin.h:70
ctx
DW_API_PUBLIC dwPointCloudRangeImageCreatorParams const *const const dwContextHandle_t ctx
Definition: PointCloudRangeImageCreator.h:293
dwSensorPlugin_rawDataReadyForDecode
dwStatus(* dwSensorPlugin_rawDataReadyForDecode)(size_t *offset, size_t *size, uint8_t const *const data, dwSensorPluginSensorHandle_t ctx)
API for sensor that raw data and decoded packet are many to one relationship.
Definition: SensorCommonPlugin.h:241
DW_SENSORS_PLUGIN_TIME_DOMAIN_MISC
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_MISC
Any other timestamp.
Definition: SensorCommonPlugin.h:71
DW_SENSORS_PLUGIN_TIME_DOMAIN_PTP
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_PTP
Precision Time Protocol.
Definition: SensorCommonPlugin.h:68
dwSensorCommonPluginFunctions::start
dwSensorPlugin_start start
Definition: SensorCommonPlugin.h:249
dwSensorCommonPluginFunctions::returnRawData
dwSensorPlugin_returnRawData returnRawData
Definition: SensorCommonPlugin.h:253
DW_SENSORS_RAW_DATA_LEVEL_TWO
@ DW_SENSORS_RAW_DATA_LEVEL_TWO
Definition: SensorCommonPlugin.h:104
dwSensorPlugin_getSensorInformation
dwStatus(* dwSensorPlugin_getSensorInformation)(dwSensorPlugin_information *information, dwSensorPluginSensorHandle_t sensor)
Gets information of this sensor.
Definition: SensorCommonPlugin.h:170
dwSensorCommonPluginFunctions::rawDataReadyForDecode
dwSensorPlugin_rawDataReadyForDecode rawDataReadyForDecode
Funciton pointer used to check if raw data is ready for decode.
Definition: SensorCommonPlugin.h:262
handle
const WFDCommitType const WFDHandle handle
Definition: wfdext.h:124
DW_SENSORS_RAW_DEC_ONE_TO_ONE
@ DW_SENSORS_RAW_DEC_ONE_TO_ONE
1-1 map between raw data and decoded packet
Definition: SensorCommonPlugin.h:57
DW_SENSORS_RAW_DATA_LEVEL_COUNT
@ DW_SENSORS_RAW_DATA_LEVEL_COUNT
Definition: SensorCommonPlugin.h:105
sensor
DW_API_PUBLIC const dwSensorHandle_t sensor
Definition: Camera.h:714
DW_SENSORS_PLUGIN_TIME_DOMAIN_HOST
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_HOST
Host Clock, as given by DW TimeSource.
Definition: SensorCommonPlugin.h:66
dwSensorPlugin_createHandle
dwStatus(* dwSensorPlugin_createHandle)(dwSensorPluginSensorHandle_t *handle, dwSensorPluginProperties *properties, char const *params, dwContextHandle_t ctx)
Creates a new handle to the sensor managed by the plugin module.
Definition: SensorCommonPlugin.h:120
dwSensorCommonPluginFunctions::reset
dwSensorPlugin_reset reset
Definition: SensorCommonPlugin.h:251
dwSensorPlugin_rawDataLevel
dwSensorPlugin_rawDataLevel
Definition: SensorCommonPlugin.h:101
dwSensorPlugin_getRawPacketsNew
dwStatus(* dwSensorPlugin_getRawPacketsNew)(uint8_t const *const rawData, size_t *const size, dwSensorPlugin_rawDataLevel level, int32_t groupNum, uint8_t const **const data, int32_t *extra1, int32_t *extra2, dwSensorPluginSensorHandle_t handle)
Reads RAW data from different level.
Definition: SensorCommonPlugin.h:225
dwSensorPlugin_firmwareVersion::versionMajor
uint64_t versionMajor
Definition: SensorCommonPlugin.h:88
dwSensorCommonPluginFunctions::release
dwSensorPlugin_release release
Definition: SensorCommonPlugin.h:248
dwSensorPlugin_readRawData
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.
Definition: SensorPlugin.h:138
dwSensorCommonPluginFunctions::readRawData
dwSensorPlugin_readRawData readRawData
Definition: SensorCommonPlugin.h:252
dwSensorPlugin_reset
dwStatus(* dwSensorPlugin_reset)(dwSensorPluginSensorHandle_t handle)
Resets the sensor.
Definition: SensorPlugin.h:98
dwSensorPluginSensorHandle_t
void * dwSensorPluginSensorHandle_t
Plugin handle. Used in plugin public interfaces.
Definition: SensorPlugin.h:33
DW_SENSORS_PLUGIN_TIME_DOMAIN_TSC
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_TSC
Tegra Timestamp System Counter.
Definition: SensorCommonPlugin.h:67
DW_SENSORS_RAW_DATA_LEVEL_ONE
@ DW_SENSORS_RAW_DATA_LEVEL_ONE
Definition: SensorCommonPlugin.h:103
DW_SENSORS_PLUGIN_TIME_DOMAIN_COUNT
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_COUNT
Number of time domains in this enum (leave at end)
Definition: SensorCommonPlugin.h:72
dwSensorPlugin_information
Definition: SensorCommonPlugin.h:95
dwSensorPlugin_firmwareVersion::versionString
char * versionString
Definition: SensorCommonPlugin.h:91
DW_DEPRECATED
#define DW_DEPRECATED(msg)
Definition: Exports.h:50
dwSensorPlugin_createSensor
dwStatus(* dwSensorPlugin_createSensor)(char const *params, dwSALHandle_t sal, dwSensorPluginSensorHandle_t handle)
Creates and initializes a new sensor managed by the plugin.
Definition: SensorCommonPlugin.h:137
dwSensorPlugin_firmwareVersion::versionPatch
uint64_t versionPatch
Definition: SensorCommonPlugin.h:90
dwSensorPlugin_firmwareVersion
Definition: SensorCommonPlugin.h:85
DW_SENSORS_PLUGIN_TIME_DOMAIN_UTC
@ DW_SENSORS_PLUGIN_TIME_DOMAIN_UTC
Coordinated Universal Time.
Definition: SensorCommonPlugin.h:69
dwContextHandle_t
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:74
dwSensorPlugin_start
dwStatus(* dwSensorPlugin_start)(dwSensorPluginSensorHandle_t handle)
Starts the sensor previously successfully created with 'dwSensorPlugin_createSensor' interface.
Definition: SensorPlugin.h:74
dwSensorCommonPluginFunctions
Function Table exposing common plugin functions.
Definition: SensorCommonPlugin.h:244
dwSALHandle_t
struct dwSALObject * dwSALHandle_t
Handle representing the Sensor Abstraction Layer interface.
Definition: SensorTypes.h:39
DW_SENSORS_RAW_DEC_MANY_TO_ONE
@ DW_SENSORS_RAW_DEC_MANY_TO_ONE
N-1(N>1) map between raw data and decoded packet.
Definition: SensorCommonPlugin.h:59
DW_SENSORS_RAW_DATA_LEVEL_ZERO
@ DW_SENSORS_RAW_DATA_LEVEL_ZERO
Definition: SensorCommonPlugin.h:102
dwSensorPlugin_firmwareVersion::versionMinor
uint64_t versionMinor
Definition: SensorCommonPlugin.h:89
dwSensorCommonPluginFunctions::getRawPackets
dwSensorPlugin_getRawPackets getRawPackets
Definition: SensorCommonPlugin.h:258
dwStatus
dwStatus
Status definition.
Definition: ErrorDefs.h:27
dwSensorPlugin_getRawPackets
dwStatus(* dwSensorPlugin_getRawPackets)(uint8_t const *const rawData, size_t *const size, dwSensorPlugin_rawDataLevel level, int32_t groupNum, uint8_t const **const data, dwSensorPluginSensorHandle_t handle)
Reads RAW data from different level.
Definition: SensorCommonPlugin.h:196
dwSensorPlugin_release
dwStatus(* dwSensorPlugin_release)(dwSensorPluginSensorHandle_t handle)
Releases a sensor managed by the plugin module.
Definition: SensorPlugin.h:60
dwSensorCommonPluginFunctions::createHandle
dwSensorPlugin_createHandle createHandle
Definition: SensorCommonPlugin.h:246
dwSensorPlugin_timeDomain
dwSensorPlugin_timeDomain
Definition: SensorCommonPlugin.h:65
params
DW_API_PUBLIC dwPointCloudRangeImageCreatorParams const *const params
Definition: PointCloudRangeImageCreator.h:292
dwSensorPlugin_pushData
dwStatus(* dwSensorPlugin_pushData)(size_t *lenPushed, uint8_t const *data, size_t const size, dwSensorPluginSensorHandle_t handle)
Pushes raw data obtained from a previous 'dwSensorPlugin_readRawData' call for decoding.
Definition: SensorCommonPlugin.h:159
dwSensorCommonPluginFunctions::pushData
dwSensorPlugin_pushData pushData
Definition: SensorCommonPlugin.h:254
DW_SENSORS_RAW_DEC_NOT_SUPPORTED
@ DW_SENSORS_RAW_DEC_NOT_SUPPORTED
Not supported.
Definition: SensorCommonPlugin.h:61
dwSensorPlugin_information::firmware
dwSensorPlugin_firmwareVersion firmware
Definition: SensorCommonPlugin.h:97
dwSensorCommonPluginFunctions::stop
dwSensorPlugin_stop stop
Definition: SensorCommonPlugin.h:250
dwSensorCommonPluginFunctions::createSensor
dwSensorPlugin_createSensor createSensor
Definition: SensorCommonPlugin.h:247
dwSensorCommonPluginFunctions::getSensorInformation
dwSensorPlugin_getSensorInformation getSensorInformation
Definition: SensorCommonPlugin.h:255