mrDarker
2025-06-23 417d3825013cd1b9e8a8dafa72f51c755ee5d897
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#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;
    };
}