Machine Interface Utility:VER1.0
This commit is contained in:
@@ -0,0 +1,213 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// HAL_Motion.cpp : interface for the Motion related functions
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "HAL.h"
|
||||
#include "HSI.h"
|
||||
|
||||
extern CHAL *g_pHSI;
|
||||
extern CLogger *g_pLogger;
|
||||
extern CHALMicroVuExt g_HSIExt;
|
||||
extern CMv_Proto *g_pMv_Proto;
|
||||
//extern HANDLE hEventEStop;
|
||||
|
||||
extern double TimeInMsecs(void);
|
||||
|
||||
//extern HANDLE hMotionInitDoneEvent;
|
||||
static double PositionSampleTime = 3.0;
|
||||
|
||||
//===========================================================================================================
|
||||
void HAL_Motion_HomeStatus(bool &bHomed)
|
||||
{
|
||||
bHomed = g_pMv_Proto->mv_motion_is_homed();
|
||||
return;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_IsSupported(UINT &Type)
|
||||
{
|
||||
static int isDCC = -1;
|
||||
Type = HAL_MOTION_SUPPORTS_MANUAL_CONTROL|HAL_MOTION_SUPPORTS_HOMING | HAL_MOTION_SUPPORTS_DCC_CONTROL;
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_Startup( bool /*bHome*/ )
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
// g_HSIExt.m_ActiveMachineType = HAL_MACHINE_TYPE_EXCEL;
|
||||
// If the machine type hasn't been selected then exit the initialisation
|
||||
#pragma message("what is the correct return status if no machine type selected")
|
||||
if(g_HSIExt.m_ActiveMachineType == -1)
|
||||
return Status;
|
||||
return Status;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetAxisCount( enum HAL_MOTION_AXIS_TYPE AxisType, int &nAxis )
|
||||
{
|
||||
switch(AxisType)
|
||||
{
|
||||
case HAL_MOTION_AXIS_X:
|
||||
case HAL_MOTION_AXIS_Y:
|
||||
case HAL_MOTION_AXIS_Z:
|
||||
nAxis = 1;
|
||||
break;
|
||||
case HAL_MOTION_AXIS_R:
|
||||
default:
|
||||
nAxis = 0;
|
||||
break;
|
||||
}
|
||||
HAL_SendDebug(_T("HAL_Motion_GetAxisCount %d\n"), nAxis);
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_SetSpeedXYZ( double dSpeed )
|
||||
{
|
||||
g_pMv_Proto->mv_motion_set_speed_xyz(dSpeed);
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
return Status;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetSpeedXYZ( double &dSpeed )
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
g_pMv_Proto->mv_motion_get_speed_xyz(dSpeed);
|
||||
return Status;
|
||||
}
|
||||
|
||||
////===========================================================================================================
|
||||
//HAL_STATUS HAL_Motion_SetSpeedXYZ1( double SpeedX, double SpeedY, double SpeedZ )
|
||||
//{
|
||||
// HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
// long lSpeedX = (long) SpeedX;
|
||||
// long lSpeedY = (long) SpeedY;
|
||||
// long lSpeedZ = (long) SpeedZ;
|
||||
// g_pMv_Proto->mv_motion_set_speed_xyz(lSpeedX, lSpeedY, lSpeedZ);
|
||||
// return Status;
|
||||
//}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetSpeedR( double & /*Speed*/ )
|
||||
{
|
||||
return HAL_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_SetSpeedR( double /*Speed*/ )
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NOT_SUPPORTED;
|
||||
return Status;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetAccelerationXYZ( double &AccelX, double &AccelY, double &AccelZ )
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
return Status;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_SetAccelerationXYZ( double AccelX, double AccelY, double AccelZ )
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
return Status;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetAccelerationR( double & /*AccelR*/ )
|
||||
{
|
||||
return HAL_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_SetAccelerationR( double /*AccelQ*/ )
|
||||
{
|
||||
return HAL_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetPositionXYZ( UINT /*GetAxisTypes*/, double &PositionX, double &PositionY, double &PositionZ, double &Time)
|
||||
{
|
||||
SSI_STATUS Status = g_pMv_Proto->mv_motion_get_position_xyz(PositionX, PositionY, PositionZ);
|
||||
Time = TimeInMsecs();
|
||||
return (Status == SSI_STATUS_NORMAL)?HAL_STATUS_NORMAL:HAL_STATUS_FAILED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_SetPositionXYZ( UINT /*SetAxisType*/, double PositionX, double PositionY, double PositionZ, enum HAL_MOTION_MOVE_TYPE eType, double /*flyRadius*/)
|
||||
{
|
||||
bool bWait = (eType == HAL_MOTION_MOVE_WAIT)?true:false;
|
||||
SSI_STATUS Status = g_pMv_Proto->mv_motion_set_position_xyz(PositionX, PositionY, PositionZ, bWait);
|
||||
return (Status == SSI_STATUS_NORMAL)?HAL_STATUS_NORMAL:HAL_STATUS_FAILED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetPositionR( UINT /*GetAxisTypes*/, double & /*PositionR*/, double & /*Time*/ )
|
||||
{
|
||||
g_pMv_Proto->mv_motion_get_position_r();
|
||||
return HAL_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetSettleTime( double &SettleTime )
|
||||
{
|
||||
SettleTime=g_HSIExt.m_StageSettleTime;
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
////===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetDeadband( double &DeadbandX, double &DeadbandY, double &DeadbandZ, double &DeadbandR )
|
||||
{
|
||||
HAL_STATUS retVal=HAL_STATUS_NOT_SUPPORTED;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
////===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetRefreshDeadband( double &Deadband )
|
||||
{ // not used because the controller will set this automatically
|
||||
HAL_STATUS retVal=HAL_STATUS_NOT_SUPPORTED;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_IsHomed( bool &bHomed )
|
||||
{
|
||||
bHomed = g_pMv_Proto->mv_motion_is_homed();
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetStageLimits(double *StageLimitsMax, double *StageLimitsMin)
|
||||
{
|
||||
// StageLimitsMax[HAL_AXIS_X] =
|
||||
// StageLimitsMin[HAL_AXIS_X] =
|
||||
// StageLimitsMax[HAL_AXIS_Y] = g_pMv_Proto
|
||||
// StageLimitsMin[HAL_AXIS_Y] =
|
||||
// StageLimitsMax[HAL_AXIS_Z] =
|
||||
// StageLimitsMin[HAL_AXIS_Z] =
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_GetMaxSpeed(double *MaxSpeed)
|
||||
{
|
||||
SSI_STATUS Status = SSI_STATUS_ERROR;
|
||||
if (MaxSpeed)
|
||||
Status = g_pMv_Proto->mv_motion_get_3D_max_speed(*MaxSpeed);
|
||||
return (Status == SSI_STATUS_NORMAL) ? HAL_STATUS_NORMAL : HAL_STATUS_FAILED;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
HAL_STATUS HAL_Motion_Shutdown( )
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
return Status;
|
||||
}
|
||||
Reference in New Issue
Block a user