laser_task_command.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. //laser_task_command,是雷达任务指令的相关功能
  2. //功能:用作应用层向laser模块传输任务,的指令消息
  3. //用法:应用层直接调用laser的接口函数,并将Laser_task类作为参数传递
  4. //CLaser类则按照Laser_task的功能码和指定的参数,执行相应的功能
  5. //并将结果填充到Laser_task,返回给应用层
  6. #include "laser_task_command.h"
  7. //构造函数
  8. Laser_task::Laser_task()
  9. {
  10. m_task_type = UNKNOW_TASK;
  11. m_task_statu = TASK_CREATED;
  12. //m_task_statu_information默认为空
  13. m_task_points_number = 0;
  14. pm_task_point3d_cloud_vector = NULL;
  15. //m_task_error_manager 默认为空
  16. }
  17. //析构函数
  18. Laser_task::~Laser_task()
  19. {
  20. }
  21. //初始化任务单,必须初始化之后才可以使用,(必选参数)
  22. //input:task_type 任务类型
  23. // input:task_statu任务状态
  24. // output:p_task_point3d_cloud_vector三维点云容器指针
  25. //注:task_points_number默认为0,如果为0,则使用laser默认的点云的采集数量
  26. Error_manager Laser_task::task_init(Task_type task_type,
  27. Task_statu task_statu,
  28. std::vector<CPoint3D> * p_task_point3d_cloud_vector)
  29. {
  30. if(p_task_point3d_cloud_vector == NULL)
  31. {
  32. return Error_manager(Error_code::POINTER_IS_NULL, Error_level::MINOR_ERROR,
  33. "Laser_task::task_init failed");
  34. }
  35. m_task_type = task_type;
  36. m_task_statu = task_statu;
  37. m_task_statu_information.clear();
  38. m_task_points_number = 0;
  39. pm_task_point3d_cloud_vector = p_task_point3d_cloud_vector;
  40. m_task_error_manager.error_manager_clear_all();
  41. return Error_code::SUCCESS;
  42. }
  43. //初始化任务单,必须初始化之后才可以使用,(可选参数)
  44. // input:task_type 任务类型
  45. // input:task_statu任务状态
  46. // input:task_statu_information状态说明
  47. // input:task_points_number点云的采集数量
  48. // output:p_task_point3d_cloud_vector三维点云容器指针
  49. //注:task_points_number默认为0,如果为0,则使用laser默认的点云的采集数量
  50. Error_manager Laser_task::task_init(Task_type task_type,
  51. Task_statu task_statu,
  52. std::string & task_statu_information,
  53. int task_points_number,
  54. std::vector<CPoint3D> * p_task_point3d_cloud_vector)
  55. {
  56. if(p_task_point3d_cloud_vector == NULL)
  57. {
  58. return Error_manager(Error_code::POINTER_IS_NULL, Error_level::MINOR_ERROR,
  59. "Laser_task::task_init failed");
  60. }
  61. m_task_type = task_type;
  62. m_task_statu = task_statu;
  63. m_task_statu_information = task_statu_information;
  64. m_task_points_number = task_points_number;
  65. pm_task_point3d_cloud_vector = p_task_point3d_cloud_vector;
  66. m_task_error_manager.error_manager_clear_all();
  67. return Error_code::SUCCESS;
  68. }
  69. //获取 点云的采集数量
  70. int Laser_task::get_task_points_number()
  71. {
  72. return m_task_points_number;
  73. }
  74. //获取 三维点云容器
  75. std::vector<CPoint3D> * Laser_task::get_task_point3d_cloud_vector()
  76. {
  77. return pm_task_point3d_cloud_vector;
  78. }
  79. //获取 错误码
  80. Error_manager Laser_task::get_task_error_manager()
  81. {
  82. return m_task_error_manager;
  83. }
  84. //设置 任务状态
  85. void Laser_task::set_task_statu(Task_statu task_statu)
  86. {
  87. m_task_statu = task_statu;
  88. }
  89. //设置 任务状态说明
  90. void Laser_task::set_task_statu_information(std::string & task_statu_information)
  91. {
  92. m_task_statu_information = task_statu_information;
  93. }
  94. //设置 点云的采集数量
  95. void Laser_task::set_task_points_number(int task_points_number)
  96. {
  97. m_task_points_number = task_points_number;
  98. }
  99. //设置 三维点云容器
  100. void Laser_task::set_task_point3d_cloud_vector(std::vector<CPoint3D> * p_task_point3d_cloud_vector)
  101. {
  102. pm_task_point3d_cloud_vector = p_task_point3d_cloud_vector;
  103. }
  104. //设置 错误码
  105. void Laser_task::set_task_error_manager(Error_manager & error_manager)
  106. {
  107. m_task_error_manager = error_manager;
  108. }