passageway_task.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // Created by huli on 2021/3/16.
  3. //
  4. #ifndef NNXX_TESTS_PASSAGEWAY_TASK_H
  5. #define NNXX_TESTS_PASSAGEWAY_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. #include "../tool/common_data.h"
  11. class Passageway_task:public Task_Base
  12. {
  13. public:
  14. //指令完成状态, 搬运器答复指令, 返回任务完成的情况
  15. enum Respons_status
  16. {
  17. RESPONS_WORKING = 0, //正常
  18. RESPONS_OVER = 1, //任务完成
  19. RESPONS_MINOR_ERROR = 100, //一般故障, 可恢复
  20. RESPONS_CRITICAL_ERROR = 101, //致命故障,不可恢复
  21. };
  22. //7号出口 转台方向
  23. enum Turntable_direction
  24. {
  25. TURNTABLE_DIRECTION_UNKNOWN = 0, //方向未知,
  26. TURNTABLE_DIRECTION_INSIDE = 1, //方向朝里,对接内门的小跑车
  27. TURNTABLE_DIRECTION_OUTSIDE = 2, //没车朝外,对接外门的出口
  28. };
  29. //出入口 门的开关状态
  30. enum Door_motion
  31. {
  32. DOOR_UNKNOWN = 0, //门的开关状态 未知, 或者工作到一半,正在工作中.
  33. DOOR_OPEN = 1, //开门
  34. DOOR_CLOSE = 2, //关门
  35. DOOR_ERROR = 3, //
  36. };
  37. Passageway_task();
  38. Passageway_task(const Passageway_task& other)= default;
  39. Passageway_task& operator =(const Passageway_task& other)= default;
  40. ~Passageway_task();
  41. public://API functions
  42. public://get or set member variable
  43. protected://member functions
  44. public://member variable
  45. std::mutex m_lock; //锁
  46. int m_step;//长流程细分为短流程, m_step 控制短流程的步骤
  47. Common_data::Dispatch_process_type m_dispatch_process_type; //调度任务类型
  48. //调度下发到plc
  49. std::string m_request_key; //请求唯一码, 用作识别
  50. //请求的目标坐标和动作
  51. Door_motion m_request_inside_door_motion; //通道口 内门动作
  52. Door_motion m_request_outside_door_motion; //通道口 外门动作
  53. Turntable_direction m_request_turntable_direction; //通道口 转台方向
  54. //plc反馈给调度
  55. std::string m_respons_key; //应答的唯一码, 用作识别
  56. Respons_status m_respons_status; //指令完成状态, 搬运器答复指令, 返回任务完成的情况
  57. //答复的实际坐标和动作
  58. Door_motion m_respons_inside_door_motion; //通道口 内门动作
  59. Door_motion m_respons_outside_door_motion; //通道口 外门动作
  60. Turntable_direction m_respons_turntable_direction; //通道口 转台方向
  61. private:
  62. };
  63. #endif //NNXX_TESTS_PASSAGEWAY_TASK_H