#pragma once #include "CCLinkIEControl.h" namespace SERVO { class CStep { public: CStep(); virtual ~CStep(); public: unsigned WorkingProc(); void setCcLink(CCCLinkIEControl* pCcLink); virtual void init(); virtual void CStep::term(); virtual void onSignal(BOOL bSignal); protected: inline void Lock() { EnterCriticalSection(&m_criticalSection); } inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } inline void nextStep(); inline void resetStep(); void timeout(); private: CCCLinkIEControl* m_pCclink; CRITICAL_SECTION m_criticalSection; std::string strName; HANDLE m_hWorkThreadHandle; unsigned m_nWordThreadAddr; HANDLE m_hWorkStop; HANDLE m_hSignalOn; HANDLE m_hSignalOff; int m_nCurStep; }; }