#pragma once
|
|
#include <vector>
|
|
class AFX_EXT_CLASS CMotionInfo_Axis
|
{
|
public:
|
CMotionInfo_Axis(int nIndex=0);
|
virtual ~CMotionInfo_Axis();
|
|
// getter
|
int GetIndex() const;
|
double GetVelocity() const;
|
double GetAccelTime() const;
|
double GetDecelTime() const;
|
double GetStartPos() const;
|
double GetEndPos() const;
|
int GetMoveDirection() const;
|
double GetCurVelocity() const;
|
double GetCurAccelTime() const;
|
double GetCurDecelTime() const;
|
double GetCurFixTime() const;
|
double GetCurTotalTime() const;
|
double GetCurAccelDist() const;
|
double GetCurDecelDist() const;
|
double GetCurFixDist() const;
|
double GetCurTotalDist() const;
|
|
// setter
|
void SetVelocity(double dVelocity);
|
void SetAccelTime(double dAccelTime);
|
void SetDecelTime(double dDecelTime);
|
void SetStartPos(double dStartPos);
|
void SetEndPos(double dEndPos);
|
void SetData(double dVelocity, double dAccelTime, double dDecelTime, double dStartPos, double dEndPos);
|
|
// calculate
|
int CalculateMotion(double dTime, double& dPos, double& dVelocity, BOOL& bEnd);
|
|
protected:
|
int CalculateValue();
|
|
protected:
|
int m_nIndex;
|
|
double m_dVelocity; // mm/sec
|
double m_dAccelTime; // sec
|
double m_dDecelTime; // sec
|
double m_dStartPos; // mm
|
double m_dEndPos; // mm
|
|
int m_nMoveDirection; // 0 is not calculated
|
double m_dCurVelocity;
|
double m_dCurAccelTime;
|
double m_dCurDecelTime;
|
double m_dCurTotalTime;
|
double m_dCurFixTime;
|
double m_dCurAccelDist;
|
double m_dCurDecelDist;
|
double m_dCurFixDist;
|
double m_dCurTotalDist;
|
};
|
typedef std::vector<CMotionInfo_Axis> VectorMotionInfo_Axis;
|
typedef std::vector<CMotionInfo_Axis>::iterator VectorMotionInfo_AxisIt;
|
typedef std::vector<CMotionInfo_Axis>::const_iterator constVectorMotionInfo_AxisIt;
|