他的回复:
#pragma pack(1) struct LidarPointFieldLite { int16_t x; int16_t y; int16_t z; int32_t time; uint8_t intensity; uint16_t ring; }; struct LidarPointField { float32_t x; float32_t y; float32_t z; int32_t time; float32_t distance; float32_t pitch; float32_t yaw; uint16_t intensity; uint16_t ring; };#pragma pack() lidar_det接收LidarPointCloud数据,解析逻辑示意如下,分两种情况,LidarPointCloud.pointStep如果是LidarPointField大小,则转成如下结构体指针,这样按结构体挨个取值。const LidarPointField *pSrcPointField = reinterpret_cast(lidarSample.data.data()); LidarPointCloud.pointStep如果是LidarPointFieldLite大小,则转成如下const LidarPointFieldLite *pSrcPointField = reinterpret_cast(lidarSample.data.data());