LAPTOP-SNT8I5JK\Boounion
2025-09-05 55dea22443cf5be586cab68a0cff1d8fb7de9a9e
SourceCode/Bond/Servo/CRobotTask.h
@@ -1,28 +1,75 @@
#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();
      ~CRobotTask();
      virtual ~CRobotTask();
   public:
      std::string& getId();
      void setRobotTransferParam(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot);
      ROBOT_CMD_PARAM& getRobotCmdParam();
      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 resend();
      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);
   public:
   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;         /* 参数 */
      ROBOT_CMD_PARAM m_robotCmdParam[4];         /* 参数 */
      CContext* m_pContext;
      CEFEM* m_pEFEM;
   };
}