LivoxMid100Laser.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "LivoxLaser.h"
  3. #include "livox_def.h"
  4. #include "livox_sdk.h"
  5. #include <map>
  6. class CLivoxMid100Laser : public CLivoxLaser
  7. {
  8. public:
  9. CLivoxMid100Laser(int id, Laser_proto::laser_parameter laser_param);
  10. ~CLivoxMid100Laser();
  11. //雷达链接设备,为3个线程添加线程执行函数。
  12. virtual Error_manager connect_laser();
  13. //雷达断开链接,释放3个线程
  14. virtual Error_manager disconnect_laser();
  15. //对外的接口函数,负责接受并处理任务单,
  16. //input:p_laser_task 雷达任务单,基类的指针,指向子类的实例,(多态)
  17. //注:这个函数为虚函数,实际的处理任务的代码由子类重载并实现。
  18. virtual Error_manager execute_task(Task_Base* p_laser_task);
  19. //检查雷达状态,是否正常运行
  20. virtual Error_manager check_laser();
  21. //雷达的启动接口函数, 让雷达进行扫描,一般需要子类重载,不同的雷达开始方式不同。
  22. virtual Error_manager start_scan();
  23. //雷达的停止接口函数, 让雷达停止扫描,一般需要子类重载,不同的雷达结束方式不同。
  24. virtual Error_manager stop_scan();
  25. //结束任务单,stop之后,要检查线程状态和数据结果,然后才能 end_task
  26. virtual Error_manager end_task();
  27. //判断雷达状态是否为待机,如果已经准备好,则可以执行任务。
  28. //子类重载 is_ready(),里面增加livox sdk后台线程状态的判断。
  29. virtual bool is_ready();
  30. protected:
  31. virtual bool IsScanComplete();
  32. virtual void UpdataHandle();
  33. protected:
  34. uint8_t m_handle1;
  35. uint8_t m_handle2;
  36. uint8_t m_handle3;
  37. };