#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); }