PickupProcessTask.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //
  2. // Created by zx on 2020/7/7.
  3. //
  4. #ifndef NNXX_TESTS_TAKEPROCESS_H
  5. #define NNXX_TESTS_TAKEPROCESS_H
  6. #include <parkspace_allocation_message.pb.h>
  7. #include "process_message.pb.h"
  8. #include "error_code.h"
  9. #include "process_task.h"
  10. #include "dispatch_communicator.h"
  11. class PickupProcessTask :public Process_task{
  12. public:
  13. PickupProcessTask(unsigned int terminal_id,message::Car_info car_info);
  14. virtual ~PickupProcessTask();
  15. Error_manager init_task();
  16. virtual tq::TaskCategory GetCategory() const{ return message::ePicking;}
  17. /*
  18. * 控制流程到下一步
  19. */
  20. virtual Error_manager next_step();
  21. /*
  22. * 查询车位
  23. */
  24. Error_manager search_space();
  25. /*
  26. * 回退查询车位
  27. */
  28. Error_manager back_search_space_step();
  29. protected:
  30. virtual void Main();
  31. /*
  32. * 执行取车动作请求,并等待执行完成
  33. */
  34. Error_manager dispatch_step();
  35. /*
  36. * 回退执行取车动作请求,并等待执行完成
  37. */
  38. Error_manager back_dispatch_step();
  39. /*
  40. * 等待车辆离开
  41. */
  42. Error_manager wait_for_leave_step();
  43. /*
  44. * 回退等待车辆离开
  45. */
  46. Error_manager back_wait_for_leave_step();
  47. /*
  48. * 清除车位表中对应的车位
  49. */
  50. Error_manager release_space_step();
  51. /*
  52. * 回退清除车位表中对应的车位
  53. */
  54. Error_manager back_release_space_step();
  55. virtual void publish_step_status();
  56. /*
  57. * 根据当前流程状态,生成状态消息
  58. */
  59. void updata_step_statu_msg();
  60. void reset_recv_msg();
  61. protected:
  62. private:
  63. //查询到的车位信息
  64. message::Parkspace_search_request_msg m_search_request_msg;
  65. message::Parkspace_search_response_msg m_search_response_msg;
  66. //取车调度反馈信息
  67. message::Dispatch_request_msg m_dispatch_request_msg;
  68. message::Dispatch_response_msg m_dispatch_response_msg;
  69. message::Picking_process_statu_msg m_process_msg;
  70. };
  71. #endif //NNXX_TESTS_TAKEPROCESS_H