重写 HomeMachine 、IsHomed、GetPositionXyz 三个函数

This commit is contained in:
zhengxuan.zhang
2022-10-13 16:14:55 +08:00
parent abc78bfa0b
commit d302749cdd
6 changed files with 563 additions and 58 deletions
+48 -3
View File
@@ -159,12 +159,26 @@ public:
HSI_STATUS IsSupported(UINT& Types) override;
HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly) override;
HSI_STATUS GetFirmwareVersion(byte* version);
/**
* \brief 判断机台是否回家,如果没有,则执行回家动作
* \param bHomed
* \return
*/
HSI_STATUS HomeMachineOld(bool bHomed);
HSI_STATUS HomeMachine(bool bHomed);
HSI_STATUS HomeJog(short AxisNumber, short Dir, bool Wait = false);
HSI_STATUS HomeFindIndex();
HSI_STATUS ZeroPos(bool bZeroPos);
/**
* \brief 判断机台是否回家,仅获取是否回家的状态
* \param bHomed 是否回家标志位
* \return
*/
HSI_STATUS IsHomedOld(bool& bHomed);
HSI_STATUS IsHomed(bool& bHomed);
HSI_STATUS GetSpeedXyz(int AxisNum, double& Speed);
HSI_STATUS SetSpeedXyz(double Speed);
HSI_STATUS GetFocusSpeed(double& Speed);
@@ -186,6 +200,16 @@ public:
HSI_STATUS StopJogEx(UINT AxisTypes);
HSI_STATUS GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
/**
* \brief 获取轴当前位置
* \param AxisTypes 轴号
* \param PositionX X坐标
* \param PositionY Y坐标
* \param PositionZ Z坐标
* \param Time
* \return
*/
HSI_STATUS GetPositionXyzOld(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ, double& Time);
HSI_STATUS GetPositionXyz(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ, double& Time);
HSI_STATUS GetPositionXyzaProbe(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ,
double& PositionA);
@@ -193,14 +217,35 @@ public:
HSI_STATUS JogProbe(UINT AxisTypes, double Speed);
void ProbeRetractManDist(int RetractManDist);
int CaculateStepMotorACC(int pos, int maxacc, int minacc);
/**
* \brief 求各轴运动配置参数
* \param AXIS
* \param motionParam
* \return
*/
HSI_STATUS HSI_Motion::GetMotorParam(int AXIS, double motionParam[5]);
/**
* \brief 运行到指定位置
* \param AxisTypes 轴号
* \param PositionX X坐标
* \param PositionY Y坐标
* \param PositionZ Z坐标
* \param eType 运动模式,
* \param dFlyRadius
* \return
*/
HSI_STATUS SetPositionXyzOld(UINT AxisTypes, double PositionX, double PositionY, double PositionZ,
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_STATUS SetPositionXyz(UINT AxisTypes, double PositionX, double PositionY, double PositionZ,
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_STATUS SetPositionXyza(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA,
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_STATUS SetPositionXyzCache(UINT AxisTypes, HSI_MOTION_MOVE_TYPE eType, int DataCount, Point* CacheData);
HSI_STATUS GetPositionR(UINT AxisTypes, double& PositionR, double& Time);
HSI_STATUS SetPositionR(UINT AxisTypes, double PositionR, HSI_MOTION_AXIS_R_MOVE_TYPE DirectionType, bool bWait);
HSI_STATUS SetCircleInterpolate(double PositionX, double PositionY, double PositionZ);
HSI_STATUS SetCircleInterpolate(double PositionX, double PositionY, double PositionZ);//圆弧插补
HSI_STATUS Load_EF3_Motion_Inifile(CString GoogolIniFile);
HSI_STATUS Load_EF3_Config_Inifile(CString GoogolIniFile);
HSI_STATUS AbortMotion();
@@ -445,7 +490,7 @@ public:
double m_PrfPos[5];
double m_PosForAllAxis[5]; //记录4轴位置
bool m_bConnected;
bool m_bACSConnected;// ACS是否连接成功
bool m_bACSConnected; // ACS是否连接成功
int m_SendDataLength;
unsigned char m_cSendData[64];
unsigned char m_direct_pos;