| | |
| | | #pragma once |
| | | #include "CCLinkIEControl.h" |
| | | #include "CAttributeVector.h" |
| | | #include "ToolUnits.h" |
| | | #include <map> |
| | | |
| | | |
| | | namespace SERVO { |
| | | |
| | | typedef std::function<void(void* pStep, int code, void* pData)> ONSTEPEVENT; |
| | | typedef struct _StepListener |
| | | { |
| | | ONSTEPEVENT onEvent; |
| | | } StepListener; |
| | | #define STEP_EVENT_READDATA 0x01 |
| | | #define STEP_EVENT_COMPLETE 0x02 |
| | | |
| | | class CEquipment; |
| | | class CStep |
| | |
| | | virtual ~CStep(); |
| | | |
| | | public: |
| | | unsigned WorkingProc(); |
| | | void setListener(StepListener listener); |
| | | void setCcLink(CCCLinkIEControl* pCcLink); |
| | | void setEquipment(CEquipment* pEquipment); |
| | | CEquipment* getEquipment(); |
| | | void setID(int id); |
| | | int getID(); |
| | | void setName(const char* pszName); |
| | | std::string& getName(); |
| | | CAttributeVector& attributeVector(); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | 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(); |
| | | virtual void term(); |
| | | void setProp(const char* pszKey, void* pValue); |
| | | void* getProp(const char* pszKey); |
| | | void addAttribute(CAttribute* pAttribute); |
| | | void addAttributeVector(CAttributeVector& attributeVector); |
| | | |
| | | protected: |
| | | inline void Lock() { EnterCriticalSection(&m_criticalSection); } |
| | | inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } |
| | | inline void nextStep(); |
| | | inline void resetStep(); |
| | | void convertString(const char* pszBuffer, int size, std::string& strOut); |
| | | |
| | | protected: |
| | | StepListener m_listener; |
| | | int m_nID; |
| | | StationIdentifier m_station; |
| | | std::string m_strName; |
| | | CEquipment* m_pEquipment; |
| | | CCCLinkIEControl* m_pCclink; |
| | | CRITICAL_SECTION m_criticalSection; |
| | | HANDLE m_hWorkThreadHandle; |
| | | unsigned m_nWordThreadAddr; |
| | | HANDLE m_hWorkStop; |
| | | HANDLE m_hSignalOn; |
| | | HANDLE m_hSignalOff; |
| | | int m_nCurStep; |
| | | int m_nWriteSignalDev; // 对方BIT地址 |
| | | std::map<std::string, void*> m_mapProp; |
| | | CAttributeVector m_attributeVector; |
| | | }; |
| | | } |
| | | |