#pragma once #include "CStep.h" namespace SERVO { class CWriteStep : public CStep { public: CWriteStep(); virtual ~CWriteStep(); public: unsigned WorkingProc(); virtual void setWriteSignalDev(int dev); virtual void onRecvSignal(BOOL bSignal); int writeData(short devno, const char* pszData, int size); virtual void init(); virtual void term(); virtual void getAttributeVector(CAttributeVector& attrubutes); virtual int onComplete(); virtual int onTimeout(); virtual int onReadRetDataError(); inline void nextStep(); inline void resetStep(); virtual void setRetDataDev(int dev, int size); public: int getReturnData(const char*& pszData); protected: HANDLE m_hWorkThreadHandle; unsigned m_nWordThreadAddr; HANDLE m_hWorkStop; HANDLE m_hWriteSignalOn; HANDLE m_hRecvSignalOn; int m_nCurStep; int m_nWriteSignalDev; // ¶Ô·½BITµØÖ· char m_szBuffer[1024]; int m_nWriteDataSize; int m_nWriteDevNo; protected: // return code or data char m_szReturnBuf[1024]; int m_nReturnDataSize; int m_nReturnDevNo; }; }