#pragma once
|
#include "CCLinkIEControl.h"
|
|
|
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:
|
CStep();
|
virtual ~CStep();
|
|
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();
|
|
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_hWorkThreadHandle;
|
unsigned m_nWordThreadAddr;
|
HANDLE m_hWorkStop;
|
HANDLE m_hSignalOn;
|
HANDLE m_hSignalOff;
|
int m_nCurStep;
|
int m_nWriteSignalDev; // ¶Ô·½BITµØÖ·
|
};
|
}
|