#pragma once class CeXcomDevice; #include "CHMotorControls/MotorControl.h" #include "ACSC/ACSC.h" class AFX_EXT_CLASS CMotorControl_Acs : public CMotorControl { public: CMotorControl_Acs(int nIndex, DWORD dwPeriod=100, int nThreadCount = 1); virtual ~CMotorControl_Acs(void); public: // CMotorControl virtual int Connect(const CMotorControlInfo* pControlInfo); virtual void Disconnect(); virtual BOOL ReadAddressValue(int nAddress, long &nValue); virtual BOOL WriteAddressValue(int nAddress, long nValue); virtual BOOL ReadAddressValue(int nAddress, float &fValue); virtual BOOL WriteAddressValue(int nAddress, float fValue); virtual BOOL ReadAddressValue(int nAddress, double &dValue); virtual BOOL WriteAddressValue(int nAddress, double dValue); // get status virtual int GetStatus( int& nStatusCode, CString& strStatusMessage ); // gantry virtual BOOL GantryManualGo(int nGantryIdx, const VectorDouble& vectorPos); virtual BOOL GantryManualGo(int nGantryIdx, const VectorDouble& vectorPos, int nMoveType); virtual BOOL GantryManualGo(int nGantryIdx, double dPosX, double dPosY); protected: virtual BOOL AxisManualGo(int nAxisIdx, double dPosition); virtual BOOL ReadAxisPosition(float *pAxisPos, int nAxisCount); virtual BOOL ReadAxisStatus(long *pAxisStatus, int nAxisCount); virtual BOOL ReadAddressValue(long nAddress, long *pArrayData, int nArrayCount); virtual BOOL WriteAddressValue(long nAddress, long *pArrayData, int nArrayCount); virtual BOOL ReadAddressValue(long nAddress, float *pArrayData, int nArrayCount); virtual BOOL WriteAddressValue(long nAddress, float *pArrayData, int nArrayCount); private: CeXcomDevice* m_peXcomDevice; HANDLE m_hAcsComm; };