carrier_task.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // Created by huli on 2020/10/20.
  3. //
  4. #ifndef NNXX_TESTS_CARRIER_TASK_H
  5. #define NNXX_TESTS_CARRIER_TASK_H
  6. #include "../error_code/error_code.h"
  7. #include "../task/task_command_manager.h"
  8. #include "../task/task_base.h"
  9. #include <mutex>
  10. class Carrier_task :public Task_Base
  11. {
  12. public:
  13. //指令完成状态, 搬运器答复指令, 返回任务完成的情况
  14. enum Respons_status
  15. {
  16. RESPONS_NORMAL = 0, //正常
  17. RESPONS_OVER = 1, //任务完成
  18. RESPONS_MINOR_ERROR = 100, //一般故障, 可恢复
  19. RESPONS_CRITICAL_ERROR = 101, //致命故障,不可恢复
  20. };
  21. public:
  22. Carrier_task();
  23. Carrier_task(const Carrier_task& other)= default;
  24. Carrier_task& operator =(const Carrier_task& other)= default;
  25. ~Carrier_task();
  26. public://API functions
  27. //初始化任务单,必须初始化之后才可以使用,(可选参数)
  28. // input:tast_receiver 接受对象
  29. // input:task_over_time 超时时间
  30. Error_manager task_init(void* p_tast_receiver,
  31. std::chrono::milliseconds task_over_time,
  32. unsigned short parkspace_unit_id,
  33. unsigned shortparkspace_floor_id,
  34. unsigned shortparkspace_room_id,
  35. std::string command_key,
  36. unsigned char motion_direction = 0,
  37. float car_center_x = 0,
  38. float car_center_y = 0,
  39. float car_angle = 0
  40. );
  41. public://get or set member variable
  42. protected://member functions
  43. public://member variable
  44. std::mutex m_lock; //锁
  45. //搬运器的目标车位
  46. unsigned short m_parkspace_unit_id; //车位单元号(楚天项目为1~3)
  47. unsigned short m_parkspace_floor_id; //车位楼层号(楚天项目为1~14)
  48. unsigned short m_parkspace_room_id; //车位同层的房间号 (楚天项目一楼为1~4, 楼上为1~6)
  49. std::string m_command_key; //任务唯一码
  50. unsigned char m_motion_direction; //调度方向, 根据停车取车选择出入口, 1=入口,0=非入口
  51. float m_car_center_x; //汽车的中心坐标x
  52. float m_car_center_y; //汽车的中心坐标y
  53. float m_car_angle; //汽车的旋转角(角度-90~90)
  54. //任务执行结果
  55. Respons_status m_respons_status; //指令完成状态, 搬运器答复指令, 返回任务完成的情况
  56. private:
  57. };
  58. #endif //NNXX_TESTS_CARRIER_TASK_H