Defines the Lidar sensor methods.
Data Structures | |
struct | dwLidarDecodedPacket |
struct | dwLidarPointRTHI |
struct | dwLidarPointXYZI |
Holds a Lidar point cloud XYZ and the associated intensity. More... | |
struct | dwLidarProperties |
Functions | |
DW_API_PUBLIC dwStatus | dwSensorLidar_disableDecoding (dwSensorHandle_t sensor) |
Disable the decoding of the Lidar packets, which frees additional CPU load. More... | |
DW_API_PUBLIC dwStatus | dwSensorLidar_enableDecoding (dwSensorHandle_t sensor) |
Enables the decoding of the Lidar packets, which incurs an additional CPU load. More... | |
DW_API_PUBLIC dwStatus | dwSensorLidar_getProperties (dwLidarProperties *lidarProperties, dwSensorHandle_t sensor) |
Gets information about the Lidar sensor. More... | |
DW_API_PUBLIC dwStatus | dwSensorLidar_isDecodingEnabled (bool *enable, dwSensorHandle_t sensor) |
Retrieves the state of packet decoding. More... | |
DW_API_PUBLIC dwStatus | dwSensorLidar_processRawData (const dwLidarDecodedPacket **data, const uint8_t *rawData, size_t size, dwSensorHandle_t sensor) |
Decodes RAW data previously read and returns a pointer to it. More... | |
DW_API_PUBLIC dwStatus | dwSensorLidar_readPacket (const dwLidarDecodedPacket **data, dwTime_t timeout_us, dwSensorHandle_t sensor) |
Reads one scan packet. More... | |
DW_API_PUBLIC dwStatus | dwSensorLidar_returnPacket (const dwLidarDecodedPacket *scan, dwSensorHandle_t sensor) |
Returns the data read to the internal pool. More... | |
struct dwLidarDecodedPacket |
Data Fields | ||
---|---|---|
dwTime_t | duration |
Time difference between the first measurement and the last. |
dwTime_t | hostTimestamp |
Timestamp measured on the host. |
uint32_t | maxPoints |
Maximum number of points in the packet. |
uint32_t | nPoints |
Current number of valid points in the packet. |
const dwLidarPointRTHI * | pointsRTHI |
Pointer to the array of points in polar coordinates |
const dwLidarPointXYZI * | pointsXYZI |
Pointer to the array of points in cartesian coordinates |
bool | scanComplete |
Flag to identify if the scan is complete. |
dwTime_t | sensorTimestamp |
Timestamp of the first point in the point cloud packet. |
struct dwLidarPointRTHI |
struct dwLidarPointXYZI |
struct dwLidarProperties |
Data Fields | ||
---|---|---|
char8_t | deviceString[256] |
ASCII string identifying the device. |
uint32_t | packetsPerSecond |
Number of packets per second the sensor produces. |
uint32_t | packetsPerSpin |
Number of packets per sensor full spin. |
uint32_t | pointsPerPacket |
Maximum number of points in a packet. |
uint32_t | pointsPerSecond |
Number of points per second the sensor provides. |
uint32_t | pointsPerSpin |
Maximum number of points on a full sensor spin. |
uint32_t | pointStride |
Number of 'float32' elements per point. |
float32_t | spinFrequency |
Current spin frequency. |
DW_API_PUBLIC dwStatus dwSensorLidar_disableDecoding | ( | dwSensorHandle_t | sensor | ) |
Disable the decoding of the Lidar packets, which frees additional CPU load.
Method fails if the sensor has been started and is capturing data. Stop the sensor first. The default state is to have decoding on. If on, dwSensor_readRawData returns DW_CALL_NOT_ALLOWED.
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
DW_API_PUBLIC dwStatus dwSensorLidar_enableDecoding | ( | dwSensorHandle_t | sensor | ) |
Enables the decoding of the Lidar packets, which incurs an additional CPU load.
Method fails if the sensor has been started and is capturing data. Stop the sensor first. The default state is to have decoding on. If on, dwSensor_readRawData returns DW_CALL_NOT_ALLOWED.
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
DW_API_PUBLIC dwStatus dwSensorLidar_getProperties | ( | dwLidarProperties * | lidarProperties, |
dwSensorHandle_t | sensor | ||
) |
Gets information about the Lidar sensor.
[out] | lidarProperties | A pointer to the struct containing the properties of the Lidar. |
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
DW_API_PUBLIC dwStatus dwSensorLidar_isDecodingEnabled | ( | bool * | enable, |
dwSensorHandle_t | sensor | ||
) |
Retrieves the state of packet decoding.
[out] | enable | Contains the result of the query, which is true when decoding. False if RAW data. |
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
DW_API_PUBLIC dwStatus dwSensorLidar_processRawData | ( | const dwLidarDecodedPacket ** | data, |
const uint8_t * | rawData, | ||
size_t | size, | ||
dwSensorHandle_t | sensor | ||
) |
Decodes RAW data previously read and returns a pointer to it.
This happens on the CPU thread where the function is called, incurring on additional load on that thread. The data is valid until the application calls dwSensor_returnRawData.
[out] | data | A pointer to the memory pool owned by the sensor. |
[in] | rawData | A pointer for the non-decoded Lidar packet, returned by 'dwSensor_readRawData()'. |
[in] | size | Specifies the size in bytes of the raw data. |
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
DW_API_PUBLIC dwStatus dwSensorLidar_readPacket | ( | const dwLidarDecodedPacket ** | data, |
dwTime_t | timeout_us, | ||
dwSensorHandle_t | sensor | ||
) |
Reads one scan packet.
The pointer returned is to the internal data pool. DW guarantees that the data remains constant until returned by the application. The data must be explicitly returned by the application.
[out] | data | A pointer to a pointer that can data read from the sensor. The struct contains the numbers of points read, which depends on the sensor used. |
[in] | timeout_us | Specifies the timeout in microseconds. Special values: DW_TIMEOUT_INFINITE - to wait infinitly. Zero - means polling of internal queue. |
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
DW_API_PUBLIC dwStatus dwSensorLidar_returnPacket | ( | const dwLidarDecodedPacket * | scan, |
dwSensorHandle_t | sensor | ||
) |
Returns the data read to the internal pool.
At this point the pointer is still be valid, but data is change based on newer readings of the sensor.
[in] | scan | A pointer to the scan data previously read from the Lidar to be returned to the pool. |
[in] | sensor | Specifies the sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |