#pragma once
|
|
#include "motorcontrol.h"
|
#include "MotionInfo_Axis.h"
|
|
class AFX_EXT_CLASS CMotorControl_Simulation : public CMotorControl
|
{
|
public:
|
CMotorControl_Simulation(int nIndex, DWORD dwPeriod=100,int nThreadCount = 1);
|
virtual ~CMotorControl_Simulation(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);
|
|
virtual void IMT2P_RunThreadProcess(const CMotionData& motionData);
|
|
protected:
|
virtual BOOL ReadAxisPosition(float *pAxisPos, int nAxisCount);
|
virtual BOOL ReadAxisStatus(long *pAxisStatus, int nAxisCount);
|
virtual BOOL ReadThetaAxisPosition( float& fAxisPos);
|
virtual BOOL ReadThetaAxisStatus(long& nAxisStatus);
|
|
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);
|
|
public:
|
// common
|
virtual BOOL CommonSetAutoStop();
|
|
// axis
|
virtual BOOL AxisManualGo(int nAxisIdx, double dPosition);
|
virtual BOOL AxisJogPlus(int nAxisIdx);
|
virtual BOOL AxisJogMinus(int nAxisIdx);
|
virtual BOOL AxisJogStop(int nAxisIdx);
|
virtual BOOL AxisManualGoSpeed(int nAxisIdx, double dSpeed);
|
virtual BOOL AxisJogSpeed(int nAxisIdx, double dSpeed);
|
virtual BOOL AxisManualGoAccel(int nAxisIdx, int nAccel);
|
|
// 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);
|
|
//Theta Motor
|
virtual BOOL AxisThetaManualGo(double dPosition);
|
virtual BOOL AxisThetaJogPlus();
|
virtual BOOL AxisThetaJogMinus();
|
virtual BOOL AxisThetaJogStop();
|
|
// review
|
virtual BOOL GantryAutoGo(int nGantryIdx, const VectorDouble& vectorPosX, const VectorDouble& vectorPosY, BOOL bCommand=FALSE);
|
protected:
|
virtual void Process_AxisManualGo(const CMotionData& motionData); // For Simulation Thread
|
virtual void Process_JogGo(const CMotionData& motionData); // For Simulation Thread
|
virtual void Process_GantryGo(const CMotionData& motionData); // For Simulation Thread
|
virtual void Process_AutoGo(const CMotionData& motionData); // For Simulation Thread
|
CMotionInfo_Axis* GetMotionInfo_Axis(int nAxisIndex);
|
float* GetCurAxisPosition(int nAxisIndex);
|
float* GetCurAxisVelocity(int nAxisIndex);
|
long* GetCurAxisStatus(int nAxisIndex);
|
|
|
protected:
|
CMotionInfo_Axis *m_pMotionInfo_Axis;
|
long *m_pCurAxisStatus;
|
float *m_pCurAxisPosition;
|
float *m_pCurAxisVelocity;
|
|
CMotionInfo_Axis m_MotionInfo_ThetaAxis;
|
long m_lCurThetaAxisStatus;
|
float m_fCurThetaAxisPosition;
|
float m_fCurThetaAxisVelocity;
|
};
|