#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 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 WINAPI Machine_Startup(bool bOfflineOnly,EHOME_MACHINE_MODE cHomeMachineMode); EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Shutdown(); //================================================================================= //===============================Motion============================================ EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHomeXYZ(EHOME_MACHINE_MODE cHomeMachineMode); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomedXYZ(bool &bHomed); //Units:mm EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionXYZ(double &PositionX, double &PositionY, double &PositionZ); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionXYZ(double PositionX, double PositionY, double PositionZ,bool bWait); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinishedXYZ(bool &bFinished); //SpeedGear:1,2,3,4(Faster) EXP_IMP SSI_STATUS_MOTION WINAPI 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 WINAPI Motion_Jog(EMACHINE_AXIS cAxis,char cSpeedGear); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_Stop(); //===================================Rotary Table================================== EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHomeR(); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomedR(bool &bHomed); //Units:Rad EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionR(double& dPos); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionR(double dAbsolutePos,bool bWait); EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinishedR(bool &bFinished); //==============================Illumination======================================= //Range value:0.0-100.0 EXP_IMP SSI_STATUS_MOTION WINAPI Illumination_SetLampState(double dTopLightPercent,double dBottomLightPercent,double dCoaxialLightPercent,double dReservedLightPercent,double dRingLightPercent,char cOuterRingLightSwitch,char cInnerRingLightSwitch); //==============================CMD================================================ EXP_IMP SSI_STATUS_MOTION WINAPI SEND_SYS_COMMAND(char Cmd,char SubCmd,char Type,char Data); }