DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

SensorSerializer.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
49 #ifndef DW_SENSORS_SENSORSERIALIZER_H_
50 #define DW_SENSORS_SENSORSERIALIZER_H_
51 
52 #include <dw/core/Config.h>
53 #include <dw/core/Exports.h>
54 #include <dw/core/Types.h>
55 #include <dw/core/Context.h>
56 
57 #include <dw/sensors/Sensors.h>
59 
60 #ifdef __cplusplus
61 extern "C" {
62 #endif
63 
69 typedef void (*dwSensorSerializerOnDataFunc_t)(const uint8_t* data, size_t size, void* userData);
70 
72 typedef struct dwSensorSerializerObject* dwSensorSerializerHandle_t;
73 
76 typedef struct dwSerializerParams
77 {
101  // FP: TODO(dwplc):
102  // coverity[autosar_cpp14_a3_9_1_violation]
103  const char* parameters;
104 
107 
109  void* userData;
111 
129 dwStatus dwSensorSerializer_initialize(dwSensorSerializerHandle_t* serializer,
130  const dwSerializerParams* params, dwSensorHandle_t sensor);
131 
149 dwStatus dwSensorSerializer_release(dwSensorSerializerHandle_t serializer);
150 
169 dwStatus dwSensorSerializer_attachTo(dwSensorSerializerHandle_t serializer,
170  dwSensorSerializerHandle_t masterSerializer);
171 
184 dwStatus dwSensorSerializer_isAttached(bool* isAttached, dwSensorSerializerHandle_t serializer);
185 
207 dwStatus dwSensorSerializer_detachFrom(dwSensorSerializerHandle_t serializer,
208  dwSensorSerializerHandle_t masterSerializer);
209 
225 dwStatus dwSensorSerializer_start(dwSensorSerializerHandle_t serializer);
226 
239 dwStatus dwSensorSerializer_stop(dwSensorSerializerHandle_t serializer);
240 
255 dwStatus dwSensorSerializer_serializeData(const uint8_t* data, size_t size,
256  dwSensorSerializerHandle_t serializer);
257 
275 dwStatus dwSensorSerializer_serializeDataAsync(const uint8_t* data, size_t size,
276  dwSensorSerializerHandle_t serializer);
277 
291 dwStatus
293  dwSensorSerializerHandle_t serializer);
294 
308  dwSensorSerializerHandle_t serializer);
309 
310 #ifdef __cplusplus
311 }
312 #endif
313 
315 #endif // DW_SENSORS_SENSORSERIALIZER_H_
DW_API_PUBLIC dwStatus dwSensorSerializer_initialize(dwSensorSerializerHandle_t *serializer, const dwSerializerParams *params, dwSensorHandle_t sensor)
Initializes a sensor serializer with the parameters provided.
NVIDIA DriveWorks API: Core Types
const char * parameters
Array for additional parameters provided to sensor serializer creation.
NVIDIA DriveWorks API: Cameras
struct dwSensorSerializerObject * dwSensorSerializerHandle_t
Handle representing a sensor serializer.
dwSensorSerializerOnDataFunc_t onData
Callback executed by the serializer on new data available.
NVIDIA DriveWorks API: Core Methods
Holds the parameters for sensor serializer creation.
void(* dwSensorSerializerOnDataFunc_t)(const uint8_t *data, size_t size, void *userData)
Callback type for getting data from sensor serializer.
DW_API_PUBLIC dwStatus dwSensorSerializer_detachFrom(dwSensorSerializerHandle_t serializer, dwSensorSerializerHandle_t masterSerializer)
This method detaches the serializer previously attached with dwSensorSerializer_attachTo().
DW_API_PUBLIC dwStatus dwSensorSerializer_start(dwSensorSerializerHandle_t serializer)
Starts serialization of sensor.
DW_API_PUBLIC dwStatus dwSensorSerializer_attachTo(dwSensorSerializerHandle_t serializer, dwSensorSerializerHandle_t masterSerializer)
Starts and stops serialization of a sensor with a master serializer.
struct dwSensorObject * dwSensorHandle_t
Handle representing a sensor.
Definition: Sensors.h:88
dwStatus
Status definition.
Definition: Status.h:166
NVIDIA DriveWorks API: Sensors
DW_API_PUBLIC dwStatus dwSensorSerializer_serializeCameraFrame(dwCameraFrameHandle_t frame, dwSensorSerializerHandle_t serializer)
Pushes a camera frame to the serializer.This method must only be used if &#39;dwSensorSerializer_start&#39; i...
DW_API_PUBLIC dwStatus dwSensorSerializer_stop(dwSensorSerializerHandle_t serializer)
Starts serialization of sensor.
void * userData
User data to be passed to the callback.
DW_API_PUBLIC dwStatus dwSensorSerializer_serializeDataAsync(const uint8_t *data, size_t size, dwSensorSerializerHandle_t serializer)
Pushes data to the serializer.
DW_API_PUBLIC dwStatus dwSensorSerializer_serializeData(const uint8_t *data, size_t size, dwSensorSerializerHandle_t serializer)
Pushes data to the serializer.
struct dwCameraFrame * dwCameraFrameHandle_t
Handle to captured frame.
Definition: Camera.h:66
NVIDIA DriveWorks API: Core Exports
DW_API_PUBLIC dwStatus dwSensorSerializer_serializeCameraFrameAsync(dwCameraFrameHandle_t frame, dwSensorSerializerHandle_t serializer)
Pushes a camera frame to the serializer.
DW_API_PUBLIC dwStatus dwSensorSerializer_release(dwSensorSerializerHandle_t serializer)
Releases a sensor serializer.
#define DW_API_PUBLIC
Definition: Exports.h:56
DW_API_PUBLIC dwStatus dwSensorSerializer_isAttached(bool *isAttached, dwSensorSerializerHandle_t serializer)
Query method to check whether the serializer is attached to another.