#pragma once #include "ServoCommo.h" #include "Context.h" #include "CEFEM.h" #define ACTION_PICK 0 /* È¡ */ #define ACTION_PLACE 1 /* ·Å */ #define ACTION_RESTORE 2 /* »ØÔ­µã */ #define ACTION_TRANSFER 3 /* °áÔË */ namespace SERVO { class CRobotTask { public: CRobotTask(); virtual ~CRobotTask(); public: std::string& getId(); std::string getDescription() const; std::string getSimpleDescription() const; void setContext(CContext* pContext); CContext* getContext(); void setEFEM(CEFEM* pEFEM); int setRobotTransferParam(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot); ROBOT_CMD_PARAM& getRobotCmdParam(int index); time_t getCreateTime(); time_t getFetchoutTime(); time_t getStoredTime(); time_t getFinishTime(); int getArmNo(); ROBOT_TASK_STATE getState(); bool isPicking(); bool isPicked(); bool isPlacing(); bool isRestoring(); void run(); void pick(); void picked(); void place(); void restore(); void restored(); void completed(); void error(); void abort(); int getSrcPosition(); int getSrcSlot(); int getTarPosition(); int getTarSlot(); CString getStateString(); // ´ÓÔ´µØ°ÎƬ void fetchOut(); // ÔÚÄ¿µÄµØ·ÅƬ void stored(); private: static std::string& generateId(std::string& out); void transformPosAndSlot(int srcPos, int srcSlot, int& tarPos, int& tarSlot); private: ROBOT_TASK_STATE m_state; /* ÈÎÎñ״̬ */ std::string m_strId; time_t m_timeCreate; /* ´´½¨Ê±¼ä */ time_t m_timeFetchOut; /* ȡƬʱ¼ä*/ time_t m_timeStored; /* ·ÅƬʱ¼ä */ time_t m_timeFinish; /* ½áÊøÊ±¼ä */ ROBOT_CMD_PARAM m_robotCmdParam[4]; /* ²ÎÊý */ CContext* m_pContext; CEFEM* m_pEFEM; }; }