47#ifndef DW_SENSORS_LIDAR_LIDAR_H_
48#define DW_SENSORS_LIDAR_LIDAR_H_
128#define DW_SENSORS_LIDAR_MAX_RETURNS 10
148#define DW_SENSORS_LIDAR_MAX_ROWS 256
NVIDIA DriveWorks API: Sensors
NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
dwStatus
Status definition.
float32_t azimuthOffsetRad
uint32_t packetsPerSecond
float32_t minHorizontalAngleRad
dwLidarPointRTHI const * pointsRTHI
Pointer to the array of points in polar coordinates.
float32_t elevationOffsetRad
dwLidarPointXYZI const * pointsXYZI
Pointer to the array of points in cartesian coordinates.
dwLidarPointRTHI const * pointsRTHI
uint32_t maxPoints
Maximum number of points in the pointsRTHI and pointsXYZI arrays in the packet.
char8_t deviceString[256]
float32_t verticalAngles[DW_SENSORS_LIDAR_MAX_ROWS]
Lidar right-handed polar coord system, vertical angles in spin frame, in rads, length of array with v...
dwLidarDecodedReturn returnData[DW_SENSORS_LIDAR_MAX_RETURNS]
float32_t horizontalAngles[DW_SENSORS_LIDAR_MAX_ROWS]
Lidar right-handed polar coord system, intrinsic horizontal angle offsets in spin frame,...
dwLidarReturnType availableReturns
Bitmask of return types the lidar is configured to.
float32_t maxHorizontalAngleRad
void const * auxData[DW_LIDAR_AUX_DATA_TYPE_COUNT]
Array of pointers to auxiliary data Supported aux data types are listed in lidar properties.
float32_t horizontalFOVStart
float32_t maxVerticalAngleRad
uint32_t nPoints
Current number of valid points in the pointsRTHI and pointsXYZI arrays in the packet.
float32_t verticalFOVStart
float32_t minVerticalAngleRad
float32_t horizontalFOVEnd
uint64_t validAuxInfos
Bitmask of valid aux info fields based on enum dwLidarAuxDataType.
DW_API_PUBLIC dwStatus dwSensorLidar_enableDecoding(dwSensorHandle_t const sensor)
Enables the decoding of the Lidar packets, which incurs an additional CPU load.
DW_API_PUBLIC dwStatus dwSensorLidar_isDecodingEnabled(bool *const enable, dwSensorHandle_t const sensor)
Retrieves the state of packet decoding.
DW_API_PUBLIC dwStatus dwSensorLidar_returnPacket(dwLidarDecodedPacket const *const data, dwSensorHandle_t const sensor)
Returns the data read to the internal pool.
DW_API_PUBLIC dwStatus dwSensorLidar_getProperties(dwLidarProperties *const lidarProperties, dwSensorHandle_t const sensor)
Gets information about the Lidar sensor.
#define DW_SENSORS_LIDAR_MAX_RETURNS
Maximum number of distinct lidar returns a point cloud can contain.
dwLidarAuxDataType
An enum for every data element we could possibly return.
#define DW_SENSORS_LIDAR_MAX_ROWS
DW_API_PUBLIC dwStatus dwSensorLidar_getAuxElementSize(uint32_t *const sizeBytes, dwLidarAuxDataType const auxType)
Returns size of auxiliary data element in bytes.
DW_API_PUBLIC dwStatus dwSensorLidar_sendMessage(uint32_t const cmd, uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
Sends a message to Lidar sensor.
dwLidarInvalidityFlag
An enum for specifying invalidity flags.
DW_API_PUBLIC dwStatus dwSensorLidar_processRawData(dwLidarDecodedPacket const **const data, uint8_t const *const rawData, size_t const size, dwSensorHandle_t const sensor)
Decodes RAW data previously read and returns a pointer to it.
DW_API_PUBLIC dwStatus dwSensorLidar_disableDecoding(dwSensorHandle_t const sensor)
Disable the decoding of the Lidar packets, which frees additional CPU load.
DW_API_PUBLIC dwStatus dwSensorLidar_readPacket(dwLidarDecodedPacket const **const data, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
Reads one scan packet.
dwLidarReturnType
Enum to indicate a single return type.
@ DW_LIDAR_AUX_DATA_TYPE_LINEID
@ DW_LIDAR_AUX_DATA_TYPE_BLOCKAGEFLAG
@ DW_LIDAR_AUX_DATA_TYPE_EXISTENCEPROB
@ DW_LIDAR_AUX_DATA_TYPE_COUNT
@ DW_LIDAR_AUX_DATA_TYPE_DATAQUALITY
@ DW_LIDAR_AUX_DATA_TYPE_SENSORID
@ DW_LIDAR_AUX_DATA_TYPE_CROSSTALKPROB
@ DW_LIDAR_AUX_DATA_TYPE_SNR
@ DW_LIDAR_AUX_DATA_TYPE_DETECTORID
@ DW_LIDAR_AUX_DATA_TYPE_V_MPS
@ DW_LIDAR_AUX_DATA_TYPE_VALIDITY
@ DW_LIDAR_AUX_DATA_TYPE_SCANCHECKPOINT
@ DW_LIDAR_AUX_DATA_TYPE_ZONEID
@ DW_LIDAR_AUX_DATA_TYPE_SIGNALWIDTH
@ DW_LIDAR_AUX_DATA_TYPE_SIGNALHEIGHT
@ DW_LIDAR_AUX_DATA_TYPE_TIME
@ DW_LIDAR_AUX_DATA_TYPE_FORCE32
@ DW_LIDAR_AUX_DATA_TYPE_NOISELEVEL
@ DW_LIDAR_AUX_DATA_TYPE_INVALIDITYFLAG
@ DW_LIDAR_INVALIDITY_VEND
Vendor-specific validity flags.
@ DW_LIDAR_INVALIDITY_INVALID
Point is not valid if any of flags are set.
@ DW_LIDAR_INVALIDITY_DW
DriveWorks-specific validity flags.
@ DW_LIDAR_INVALIDITY_NONE
No flags are set.
@ DW_LIDAR_RETURN_TYPE_FIRST
@ DW_LIDAR_RETURN_TYPE_ANY
@ DW_LIDAR_RETURN_TYPE_STRONGEST
@ DW_LIDAR_RETURN_TYPE_LAST
@ DW_LIDAR_RETURN_TYPE_ABS_STRONGEST
Defines the structure for a decoded lidar packet.
Defines the return structure for an extended decoded lidar packet.
Holds a Lidar point cloud RTHI and the associated intensity.
Holds a Lidar point cloud XYZ and the associated intensity.
Defines the properties of the lidar.
struct dwSensorObject * dwSensorHandle_t
Handle representing a sensor.