catcher_task.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // Created by huli on 2021/3/2.
  3. //
  4. #ifndef NNXX_TESTS_CATCHER_TASK_H
  5. #define NNXX_TESTS_CATCHER_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 Catcher_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. //抓车的夹杆
  23. enum Clamp_motion
  24. {
  25. E_CLAMP_NO_ACTION = 0, //无动作.
  26. E_CLAMP_TIGHT = 1, //夹紧夹杆
  27. E_CLAMP_LOOSE = 2, //松开夹杆
  28. };
  29. public:
  30. Catcher_task();
  31. Catcher_task(const Catcher_task& other)= default;
  32. Catcher_task& operator =(const Catcher_task& other)= default;
  33. ~Catcher_task();
  34. public://API functions
  35. public://get or set member variable
  36. protected://member functions
  37. protected://member variable
  38. public:
  39. std::mutex m_lock; //锁
  40. int m_step;//长流程细分为短流程, m_step 控制短流程的步骤
  41. Common_data::Dispatch_process_type m_dispatch_process_type; //调度任务类型
  42. //调度下发到plc
  43. std::string m_request_key; //请求唯一码, 用作识别
  44. //请求的目标坐标和动作
  45. float m_request_x; //机器人坐标x轴,
  46. float m_request_y; //机器人坐标y轴,
  47. float m_request_b; //机器人坐标b轴, 旋转范围80~280
  48. float m_request_z; //机器人坐标z轴,
  49. int m_request_space_id; //机器人空间位置的id.
  50. float m_request_d1; //机器人坐标d1轴, 机器人抓车杆纵向移动(前轮抓杆)
  51. float m_request_d2; //机器人坐标d2轴, 机器人抓车杆纵向移动(后轮抓杆)
  52. float m_request_wheelbase; //机器人抓车杆前后轮距.
  53. Clamp_motion m_request_clamp_motion; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
  54. //plc反馈给调度
  55. std::string m_respons_key; //应答的唯一码, 用作识别
  56. Respons_status m_respons_status; //指令完成状态, 机器人答复指令, 返回任务完成的情况
  57. //答复的实际坐标和动作
  58. float m_respons_x; //机器人坐标x轴,
  59. float m_respons_y; //机器人坐标y轴,
  60. float m_respons_b; //机器人坐标b轴, 旋转范围80~280
  61. float m_respons_z; //机器人坐标z轴,
  62. int m_respons_space_id; //机器人空间位置的id.
  63. float m_respons_d1; //机器人坐标d1轴, 机器人抓车杆纵向移动(前轮抓杆)
  64. float m_respons_d2; //机器人坐标d2轴, 机器人抓车杆纵向移动(后轮抓杆)
  65. float m_respons_wheelbase; //机器人抓车杆前后轮距.
  66. Clamp_motion m_respons_clamp_motion; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
  67. };
  68. #endif //NNXX_TESTS_Catcher_task_H