Files
EF3-Interface/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/MachineInterfaceDll/MachineInterfaceDll.h
T
2014-05-12 21:51:02 +08:00

87 lines
3.4 KiB
C

#pragma once
#ifdef MACHINEINTERFACEDLL_EXPORTS
#define EXP_IMP __declspec(dllexport)
#else
#define EXP_IMP __declspec(dllimport)
#endif
enum EMACHINE_AXIS
{
MACHINE_AXIS_NONE = 0,
MACHINE_AXIS_X,
MACHINE_AXIS_Y,
MACHINE_AXIS_Z,
MACHINE_AXIS_ZOOM,
MACHINE_AXIS_R,
MACHINE_AXIS_ALL = 5
};
enum EHOME_MACHINE_MODE
{
HOME_NONE,
HOME_XYZ=1,
HOME_X=10,
HOME_Y,
HOME_Z,
HOME_XY=20,
HOME_XZ,
HOME_YZ,
HOME_R=30,
HOME_TOATAL=255
};
enum EIO_PORT
{
INPORT_J2=0,//Effective bit:0-5
OUTPORT_J1,//Effective bit:0-2
OUTPORT_J3,//Effective bit:0-5
LIMIT_SWITCH_J4//Effective bit:0-5
};
enum SSI_STATUS_MOTION
{
SSI_STATUS_MOTION_NORMAL = 0,
SSI_STATUS_MOTION_DATALINK_ERROR,
SSI_STATUS_MOTION_LIMIT_REACHED,
SSI_STATUS_MOTION_INVALID_PARAMETERS,
SSI_STATUS_MOTION_TIMEOUT,
SSI_STATUS_SO7_CONFIG_FILE_NOT_FOUND,
SSI_STATUS_MOTOR_DAT_FILE_NOT_FOUND,
SSI_STATUS_MACHINE_UNINITIALIZED,
SSI_STATUS_UNKNOWN_ERROR
};
extern "C"
{
///////////////////////////////////////////////////////////////////////////////////
EXP_IMP SSI_STATUS_MOTION Machine_Startup(bool bOfflineOnly,EHOME_MACHINE_MODE cHomeMachineMode);
EXP_IMP SSI_STATUS_MOTION Machine_Shutdown();
//=================================================================================
//===============================Motion============================================
EXP_IMP SSI_STATUS_MOTION Motion_DCCHomeXYZ(EHOME_MACHINE_MODE cHomeMachineMode);
EXP_IMP SSI_STATUS_MOTION Motion_IsHomedXYZ(bool &bHomed);
//Units:mm
EXP_IMP SSI_STATUS_MOTION Motion_GetPositionXYZ(double &PositionX, double &PositionY, double &PositionZ);
EXP_IMP SSI_STATUS_MOTION Motion_SetPositionXYZ(double PositionX, double PositionY, double PositionZ,bool bWait);
EXP_IMP SSI_STATUS_MOTION Motion_IsFinishedXYZ(bool &bFinished);
//SpeedGear:1,2,3,4(Faster)
EXP_IMP SSI_STATUS_MOTION Motion_SetSpeedXYZ(EMACHINE_AXIS cAxis,char cSpeedGear,char Acce,char cHoldSpeed,char cStartSpeed,char cRefreshCycle,double dBufferDis);
//SpeedGear:1,2,3,4(Faster)
EXP_IMP SSI_STATUS_MOTION Motion_Jog(EMACHINE_AXIS cAxis,char cSpeedGear);
EXP_IMP SSI_STATUS_MOTION Motion_Stop();
//===================================Rotary Table==================================
EXP_IMP SSI_STATUS_MOTION Motion_DCCHomeR();
EXP_IMP SSI_STATUS_MOTION Motion_IsHomedR(bool &bHomed);
//Units:Rad
EXP_IMP SSI_STATUS_MOTION Motion_GetPositionR(double& dPos);
EXP_IMP SSI_STATUS_MOTION Motion_SetPositionR(double dAbsolutePos,bool bWait);
EXP_IMP SSI_STATUS_MOTION Motion_IsFinishedR(bool &bFinished);
//==============================Illumination=======================================
//Range value:0.0-100.0
EXP_IMP SSI_STATUS_MOTION Illumination_SetLampState(double dTopLightPercent,double dBottomLightPercent,double dCoaxialLightPercent,double dReservedLightPercent,double dRingLightPercent,char cOuterRingLightSwitch,char cInnerRingLightSwitch);
//==============================IO================================================
EXP_IMP SSI_STATUS_MOTION Machine_GetDIO(EIO_PORT Channel,BYTE& bDISts);
EXP_IMP SSI_STATUS_MOTION Machine_SetDO(EIO_PORT Channel,BYTE bDOSts);
//==============================CMD================================================
EXP_IMP SSI_STATUS_MOTION SEND_SYS_COMMAND(char Cmd,char SubCmd,char Type,char Data);
}