lidar_rs_helios.h 941 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "packet.hpp"
  3. #include <cstring>
  4. class LidarMessageRsHelios : public CloudPointPacket {
  5. private:
  6. unsigned short roll_angle[16] = {1300, 1500, 900, 1100, 500, 700, 100, 300, 36000 - 300, 36000 - 100, 36000 - 700,
  7. 36000 - 500, 36000 - 1100, 36000 - 900, 36000 - 1500, 36000 - 1300};
  8. // unsigned short roll_angle[16] = {36000 - 1500, 36000 - 1300, 36000 - 1100, 36000 - 900, 36000 - 700, 36000 - 500, 36000 - 300, 36000 - 100, 100, 300, 500, 700, 900, 1100, 1300, 1500};
  9. public:
  10. LidarMessageRsHelios(/* args */) {}
  11. ~LidarMessageRsHelios() {}
  12. bool packet(void *data, int size);
  13. private:
  14. bool checkFrameHeader(unsigned char *data);
  15. bool packHelios16P(unsigned char *data, int size);
  16. // 解析双回波数据包
  17. void parseDualDataBlock(unsigned char *data);
  18. // 解析单回波数据包
  19. void parseSingleDataBlock(unsigned char *data);
  20. };