// // Created by huli on 2020/10/20. // #ifndef NNXX_TESTS_CARRIER_TASK_H #define NNXX_TESTS_CARRIER_TASK_H #include "../error_code/error_code.h" #include "../task/task_command_manager.h" #include "../task/task_base.h" #include class Carrier_task :public Task_Base { public: //指令完成状态, 搬运器答复指令, 返回任务完成的情况 enum Respons_status { RESPONS_NORMAL = 0, //正常 RESPONS_OVER = 1, //任务完成 RESPONS_MINOR_ERROR = 100, //一般故障, 可恢复 RESPONS_CRITICAL_ERROR = 101, //致命故障,不可恢复 }; public: Carrier_task(); Carrier_task(const Carrier_task& other)= default; Carrier_task& operator =(const Carrier_task& other)= default; ~Carrier_task(); public://API functions //初始化任务单,必须初始化之后才可以使用,(可选参数) // input:tast_receiver 接受对象 // input:task_over_time 超时时间 Error_manager task_init(void* p_tast_receiver, std::chrono::milliseconds task_over_time, unsigned short parkspace_unit_id, unsigned shortparkspace_floor_id, unsigned shortparkspace_room_id, std::string command_key, unsigned char motion_direction = 0, float car_center_x = 0, float car_center_y = 0, float car_angle = 0 ); public://get or set member variable protected://member functions public://member variable std::mutex m_lock; //锁 //搬运器的目标车位 unsigned short m_parkspace_unit_id; //车位单元号(楚天项目为1~3) unsigned short m_parkspace_floor_id; //车位楼层号(楚天项目为1~14) unsigned short m_parkspace_room_id; //车位同层的房间号 (楚天项目一楼为1~4, 楼上为1~6) std::string m_command_key; //任务唯一码 unsigned char m_motion_direction; //调度方向, 根据停车取车选择出入口, 1=入口,0=非入口 float m_car_center_x; //汽车的中心坐标x float m_car_center_y; //汽车的中心坐标y float m_car_angle; //汽车的旋转角(角度-90~90) //任务执行结果 Respons_status m_respons_status; //指令完成状态, 搬运器答复指令, 返回任务完成的情况 private: }; #endif //NNXX_TESTS_CARRIER_TASK_H