DriveWorks SDK Reference
5.4.5418 Release
For Test and Development only

VehicleIO.h
Go to the documentation of this file.
1 //
3 // Notice
4 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8 //
9 // NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10 // information or for any infringement of patents or other rights of third parties that may
11 // result from its use. No license is granted by implication or otherwise under any patent
12 // or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13 // expressly authorized by NVIDIA. Details are subject to change without notice.
14 // This code supersedes and replaces all information previously supplied.
15 // NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16 // components in life support devices or systems without express written approval of
17 // NVIDIA CORPORATION & AFFILIATES.
18 //
19 // SPDX-FileCopyrightText: Copyright (c) 2015-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20 // SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21 //
22 // NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23 // property and proprietary rights in and to this material, related
24 // documentation and any modifications thereto. Any use, reproduction,
25 // disclosure or distribution of this material and related documentation
26 // without an express license agreement from NVIDIA CORPORATION or
27 // its affiliates is strictly prohibited.
28 //
30 
46 #ifndef DW_VEHICLEIO_H_
47 #define DW_VEHICLEIO_H_
48 
51 #include <dw/core/Config.h>
52 #include <dw/core/base/Exports.h>
54 #include <dw/core/base/Types.h>
55 #include <dw/sensors/Sensors.h>
56 #include <dw/sensors/canbus/CAN.h>
57 #include <dw/sensors/data/Data.h>
58 #include <dw/rig/Rig.h>
59 
60 #include <stdint.h>
61 
62 #ifdef __cplusplus
63 extern "C" {
64 #endif
65 
66 typedef struct dwVehicleIOObject* dwVehicleIOHandle_t;
67 
81 dwStatus dwVehicleIO_initialize(dwVehicleIOHandle_t* const obj, dwVehicleIOType const type, const dwVehicle* const properties,
82  dwContextHandle_t const ctx);
96 dwStatus dwVehicleIO_initializeFromDBC(dwVehicleIOHandle_t* const obj, dwVehicleIOType const type, const dwVehicle* const properties,
97  const char* const dbcFilePath, dwContextHandle_t const ctx);
98 
112 dwStatus dwVehicleIO_initializeFromRig(dwVehicleIOHandle_t* const obj,
113  dwConstRigHandle_t const rig,
114  dwContextHandle_t const ctx);
115 
126 dwStatus dwVehicleIO_reset(dwVehicleIOHandle_t const obj);
127 
138 dwStatus dwVehicleIO_release(dwVehicleIOHandle_t const obj);
139 
153 dwStatus dwVehicleIO_selectDriverOverrides(bool const throttleOverride, bool const steeringOverride,
154  bool const brakeOverride, bool const gearOverride,
155  dwVehicleIOHandle_t const obj);
156 
172 dwStatus dwVehicleIO_consumeCANFrame(dwCANMessage const* const msg, uint32_t const sensorId, dwVehicleIOHandle_t const obj);
173 
187 dwStatus dwVehicleIO_consumeDataPacket(const dwDataPacket* const pkt, uint32_t const sensorId, dwVehicleIOHandle_t const obj);
188 
201  dwVehicleIOHandle_t const obj);
202 
215  dwVehicleIOHandle_t const obj);
216 
228 dwStatus dwVehicleIO_getVehicleState(dwVehicleIOState* const state, dwVehicleIOHandle_t const obj);
229 
240 dwStatus dwVehicleIO_getCapabilities(dwVehicleIOCapabilities* const caps, dwVehicleIOHandle_t const obj);
241 
254  dwVehicleIOHandle_t const obj);
255 
268  dwVehicleIOHandle_t const obj);
269 
282  dwVehicleIOHandle_t const obj);
283 
296  dwVehicleIOHandle_t const obj);
297 
310  dwVehicleIOHandle_t const obj);
311 
335 dwStatus dwVehicleIO_setDrivingMode(dwVehicleIODrivingMode const mode, dwVehicleIOHandle_t const obj);
336 
350 dwStatus dwVehicleIO_addCANSensor(uint32_t const vehicleIOId, dwSensorHandle_t const sensorHandle, dwVehicleIOHandle_t const obj);
351 
365 dwStatus dwVehicleIO_addDataSensor(uint32_t const vehicleIOId, dwSensorHandle_t const sensorHandle, dwVehicleIOHandle_t const obj);
366 
367 #ifdef __cplusplus
368 }
369 #endif
370 
371 #endif // DW_VEHICLEIO_H_
NVIDIA DriveWorks API: Core Types
NVIDIA DriveWorks API: Rig Configuration
The vehicle IO state data.
Non-safety critical RoV state.
DW_API_PUBLIC dwStatus dwVehicleIO_getCapabilities(dwVehicleIOCapabilities *const caps, dwVehicleIOHandle_t const obj)
Retrieve current VehicleIO capabilities.
DW_API_PUBLIC dwStatus dwVehicleIO_consumeCANFrame(dwCANMessage const *const msg, uint32_t const sensorId, dwVehicleIOHandle_t const obj)
Parse a received event.
DW_API_PUBLIC dwStatus dwVehicleIO_initialize(dwVehicleIOHandle_t *const obj, dwVehicleIOType const type, const dwVehicle *const properties, dwContextHandle_t const ctx)
Initialize VehicleIO and prepare all internal structures.
NVIDIA DriveWorks API: VehicleIO VAL interface structures
NVIDIA DriveWorks API: Data
NVIDIA DriveWorks API: VehicleIO car controller
DW_API_PUBLIC dwStatus dwVehicleIO_getVehicleSafetyState(dwVehicleIOSafetyState *const safeState, dwVehicleIOHandle_t const obj)
Retrieve current vehicle safety state.
DW_API_PUBLIC dwStatus dwVehicleIO_addDataSensor(uint32_t const vehicleIOId, dwSensorHandle_t const sensorHandle, dwVehicleIOHandle_t const obj)
Add data sensor handle and corresponding VehicleIO configuration ID.
struct dwSensorObject * dwSensorHandle_t
Handle representing a sensor.
Definition: Sensors.h:85
dwStatus
Status definition.
Definition: Status.h:180
NVIDIA DriveWorks API: Sensors
DW_API_PUBLIC dwStatus dwVehicleIO_initializeFromRig(dwVehicleIOHandle_t *const obj, dwConstRigHandle_t const rig, dwContextHandle_t const ctx)
Initialize VehicleIO and prepare all internal structures from Rig Configuration.
Safety critical VIO state.
DW_API_PUBLIC dwStatus dwVehicleIO_sendMiscCommand(const dwVehicleIOMiscCommand *const cmd, dwVehicleIOHandle_t const obj)
Send a vehicle command to the VehicleIO.
DW_API_PUBLIC dwStatus dwVehicleIO_sendSafetyCommand(const dwVehicleIOSafetyCommand *const safeCmd, dwVehicleIOHandle_t const obj)
Send a vehicle safety command to the VehicleIO.
Holds a data packet.
Definition: Data.h:60
struct dwRigObject const * dwConstRigHandle_t
Definition: Rig.h:71
DW_API_PUBLIC dwStatus dwVehicleIO_sendCommand(const dwVehicleIOCommand *const cmd, dwVehicleIOHandle_t const obj)
Send a vehicle command to the VehicleIO.
VehicleIO Capabilities.
DW_API_PUBLIC dwStatus dwVehicleIO_consumeDataPacket(const dwDataPacket *const pkt, uint32_t const sensorId, dwVehicleIOHandle_t const obj)
Similar to dwVehicleIO_consumeCANFrame.
DW_API_PUBLIC dwStatus dwVehicleIO_getVehicleState(dwVehicleIOState *const state, dwVehicleIOHandle_t const obj)
Retrieve current vehicle state.
NVIDIA DriveWorks API: CAN
Non-safety critical RoV commands.
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:79
NVIDIA DriveWorks API: Core Methods
DW_API_PUBLIC dwStatus dwVehicleIO_setDrivingMode(dwVehicleIODrivingMode const mode, dwVehicleIOHandle_t const obj)
Setting driving mode allows to control the behaviour of VehicleIO module with regards to the permitte...
DW_API_PUBLIC dwStatus dwVehicleIO_getVehicleActuationFeedback(dwVehicleIOActuationFeedback *const actuationFeedback, dwVehicleIOHandle_t const obj)
Retrieve current vehicle actuation feedback.
struct dwVehicleIOObject * dwVehicleIOHandle_t
Definition: VehicleIO.h:66
DW_API_PUBLIC dwStatus dwVehicleIO_getVehicleNonSafetyState(dwVehicleIONonSafetyState *const nonSafeState, dwVehicleIOHandle_t const obj)
Retrieve current vehicle non-safety state.
DW_API_PUBLIC dwStatus dwVehicleIO_initializeFromDBC(dwVehicleIOHandle_t *const obj, dwVehicleIOType const type, const dwVehicle *const properties, const char *const dbcFilePath, dwContextHandle_t const ctx)
Initialize VehicleIO and prepare all internal structures from DBC File.
DW_API_PUBLIC dwStatus dwVehicleIO_sendNonSafetyCommand(const dwVehicleIONonSafetyCommand *const nonSafeCmd, dwVehicleIOHandle_t const obj)
Send a vehicle non-safety command to the VehicleIO.
DW_API_PUBLIC dwStatus dwVehicleIO_selectDriverOverrides(bool const throttleOverride, bool const steeringOverride, bool const brakeOverride, bool const gearOverride, dwVehicleIOHandle_t const obj)
Select the overrides that the driver can use to disable vehicle control.
Safety critical VIO state.
DW_API_PUBLIC dwStatus dwVehicleIO_reset(dwVehicleIOHandle_t const obj)
Reset VehicleIO to default state.
DW_API_PUBLIC dwStatus dwVehicleIO_addCANSensor(uint32_t const vehicleIOId, dwSensorHandle_t const sensorHandle, dwVehicleIOHandle_t const obj)
Add CAN sensor handle and corresponding VehicleIO configuration ID.
#define DW_API_PUBLIC
Definition: Exports.h:54
Holds a CAN package.
Definition: CAN.h:112
DW_API_PUBLIC dwStatus dwVehicleIO_release(dwVehicleIOHandle_t const obj)
Release used memory and close all modules.
DEPRECATED: Properties of a passenger car vehicle.
Definition: Vehicle.h:315
NVIDIA DriveWorks API: Core Exports