| | |
| | | |
| | | |
| | | namespace SERVO { |
| | | #define STEP_EVENT_READDATA 0x01 |
| | | #define STEP_EVENT_COMPLETE 0x02 |
| | | |
| | | typedef std::function<void(void* pStep, int code, void* pData)> ONSTEPEVENT; |
| | | typedef struct _StepListener |
| | | { |
| | | ONSTEPEVENT onEvent; |
| | | } StepListener; |
| | | |
| | | class CEquipment; |
| | | class CStep |
| | | { |
| | | public: |
| | |
| | | |
| | | public: |
| | | unsigned WorkingProc(); |
| | | void setListener(StepListener listener); |
| | | void setCcLink(CCCLinkIEControl* pCcLink); |
| | | void setEquipment(CEquipment* pEquipment); |
| | | CEquipment* getEquipment(); |
| | | void setName(const char* pszName); |
| | | std::string& getName(); |
| | | virtual void setWriteSignalDev(int dev); |
| | | virtual void init(); |
| | | virtual void CStep::term(); |
| | | virtual void onSignal(BOOL bSignal); |
| | | virtual int onReadData(); |
| | | virtual int onComplete(); |
| | | virtual int onTimeout(); |
| | | |
| | | protected: |
| | | inline void Lock() { EnterCriticalSection(&m_criticalSection); } |
| | | inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } |
| | | inline void nextStep(); |
| | | inline void resetStep(); |
| | | void timeout(); |
| | | |
| | | private: |
| | | protected: |
| | | StepListener m_listener; |
| | | StationIdentifier m_station; |
| | | std::string m_strName; |
| | | CEquipment* m_pEquipment; |
| | | CCCLinkIEControl* m_pCclink; |
| | | CRITICAL_SECTION m_criticalSection; |
| | | std::string strName; |
| | |
| | | HANDLE m_hSignalOn; |
| | | HANDLE m_hSignalOff; |
| | | int m_nCurStep; |
| | | int m_nWriteSignalDev; // 对方BIT地址 |
| | | }; |
| | | } |
| | | |