661 lines
24 KiB
C#
661 lines
24 KiB
C#
using System.Runtime.InteropServices;
|
|
using static EF3.HSI.HSI.Def;
|
|
|
|
namespace EF3.HSI;
|
|
|
|
internal class HSI
|
|
{
|
|
internal class Interface
|
|
{
|
|
// >>>> In Interfaces
|
|
//引用回调
|
|
public delegate void PEventCallback(
|
|
HSI_EVENT_TYPE eventType, HSI_EVENT_RESPONSE_TYPE responseType, uint eventId, string eventData,
|
|
ref uint eventCallbackId);
|
|
|
|
public static PEventCallback HsiCallback;
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_GET_INTERFACE_VERSION", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS GetInterfaceVersion(ref uint apiVersionMajor, ref uint apiVersionMinor);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_GET_MACHINE_INFO", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS GetMachineInfo(ref int numMachineTypes);
|
|
|
|
//引用返回值表示一个方法的返回值是一个引用,而不是值类型对象的副本或者引用类型的地址,
|
|
//而一个方法要实现引用返回值,需要满足两个条件:
|
|
//1、返回值不能为void,且需要使用ref关键字(或者ref readonly表示只读)修饰返回类型
|
|
//2、方法的每一个return语句需要是一个ref引用
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_FIREWAREVERION", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS MotionGetFirewareVerion(IntPtr firewareVerion);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_STARTUP", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS Startup(IntPtr hWnd, bool bOfflineOnly);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_SET_EVENT_CALLBACK", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS SetEventCallback(PEventCallback pCallback);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_SHUTDOWM", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS Shutdown();
|
|
|
|
// <<<< Out Interfacess
|
|
//事件回调函数
|
|
public static void EventCallback(HSI_EVENT_TYPE eventType, HSI_EVENT_RESPONSE_TYPE responseType,
|
|
uint eventId, string eventData, ref uint eventCallbackId)
|
|
{
|
|
var msgBtn = MessageBoxButtons.OK;
|
|
switch (responseType)
|
|
{
|
|
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_OK:
|
|
msgBtn = MessageBoxButtons.OK;
|
|
break;
|
|
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_RETRY:
|
|
msgBtn = MessageBoxButtons.RetryCancel;
|
|
break;
|
|
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_CANCEL:
|
|
msgBtn = MessageBoxButtons.OKCancel;
|
|
break;
|
|
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_YES:
|
|
msgBtn = MessageBoxButtons.YesNo;
|
|
break;
|
|
}
|
|
|
|
switch (eventType)
|
|
{
|
|
case HSI_EVENT_TYPE.HSI_EVENT_NONE:
|
|
break;
|
|
case HSI_EVENT_TYPE.HSI_EVENT_ERROR:
|
|
break;
|
|
case HSI_EVENT_TYPE.HSI_EVENT_FUNCTION:
|
|
var eventFunctionId = (HSI_EVENT_FUNCTION_ID)eventId;
|
|
switch (eventFunctionId)
|
|
{
|
|
case HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOTION_DCC_HOME: //准备回家
|
|
{
|
|
MessageBox.Show(Resource.Interface_Tips_Home_Machine, Resource.Interface_Tips,
|
|
msgBtn, MessageBoxIcon.Information);
|
|
break;
|
|
}
|
|
case HSI_EVENT_FUNCTION_ID.HSI_EVENT_DEBUG_LOG:
|
|
{
|
|
MessageBox.Show(eventData, Resource.Interface_Tips,
|
|
msgBtn, MessageBoxIcon.Information);
|
|
break;
|
|
}
|
|
case HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOVE_POINT: //定位完成
|
|
{
|
|
MessageBox.Show(Resource.Interface_Tips_Motion_Finished, Resource.Interface_Tips,
|
|
msgBtn, MessageBoxIcon.Information);
|
|
; //Motion completed
|
|
break;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
internal class Motion
|
|
{
|
|
//public static bool IsActive(bool bForce = false)
|
|
//{
|
|
// if (_bFirst || bForce)
|
|
// {
|
|
// IsSupported(ref _supported);
|
|
// _bFirst = false;
|
|
// }
|
|
// return (_supported != 0);
|
|
//}
|
|
|
|
private static bool _bFirst;
|
|
private static uint _supported;
|
|
|
|
// <<<< Out Interfaces
|
|
public Motion()
|
|
{
|
|
_supported = 0;
|
|
_bFirst = true;
|
|
}
|
|
// >>>> In Interfaces
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS IsSupported(ref uint types);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_STARTUP", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS Startup(bool bHome);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_HOMED", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS IsHomed(ref bool bHomed);
|
|
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_SPEED_XYZ", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS GetSpeedXyz(ref double speed);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_SPEED_XYZ", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS SetSpeedXyz(double speed);
|
|
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_DCC_SCAN_SET_DATA", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS DCCScanSetData(uint axisTypes, HSI_SCAN_MOTION_TYPE eType, uint lTrigNumber,
|
|
double[] dTrigDis);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_DCC_SCAN_START", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS DCCScanStart();
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_DCC_SCAN_STOP", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS DCCScanStop();
|
|
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_POSITION_XYZ_CACHE", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS GetPositionXyzCache(IntPtr CacheData, ref int DataCount);
|
|
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_SPEED_R", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS GetSpeedR(ref double speed);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_SPEED_R", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS SetSpeedR(double speed);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_SCALE_RESOLUTION", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS GetScaleResolution(
|
|
// ref double scaleX, ref double scaleY, ref double scaleZ);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_SCALE_RESOLUTION", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS SetScaleResolution(double scaleX, double scaleY, double scaleZ);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_DEADBAND", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS GetDeadBand(
|
|
// ref double deadbandX, ref double deadbandY, ref double deadbandZ, ref double deadbandR);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_REFRESH_DEADBAND", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS GetRefreshDeadBand(ref double deadband);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_JOG", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS Jog(uint axisTypes, double speed);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_STOP_JOG", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS StopJog();
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_POSITION_XYZ", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS GetPositionXyz(
|
|
uint axisTypes, ref double positionX, ref double positionY, ref double positionZ, ref double time);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_POSITION_XYZ", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS SetPositionXyz(
|
|
uint axisTypes, double positionX, double positionY, double positionZ, HSI_MOTION_MOVE_TYPE eType,
|
|
double dFlyRadius);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_POSITION_R", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS GetPositionR(uint axisTypes, ref double positionR, ref double time);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_POSITION_R", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS SetPositionR(
|
|
// uint axisTypes, double positionR, Def.HSI_MOTION_AXIS_R_MOVE_TYPE directionType, bool bWait);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_ABORT_MOTION", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS AbortMotion();
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_DIO", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS GetDIO(uint ioChannel, ref uint status);
|
|
|
|
//[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_DIO", CharSet = CharSet.Unicode)]
|
|
//public static extern Def.HSI_STATUS SetDIO(uint ioChannel, uint status);
|
|
|
|
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SHUTDOWN", CharSet = CharSet.Unicode)]
|
|
public static extern HSI_STATUS Shutdown();
|
|
}
|
|
|
|
|
|
//internal class Illumination
|
|
// {
|
|
// // >>>> In Interfaces
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS IsSupported(ref uint types);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_STARTUP();
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_GET_LAMP_COUNT(ref int nLamps);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_GET_LAMP_INFO(ref int lampInfo, ref int numLamps,
|
|
// int[] lampsType,
|
|
// int[] numRings, int[] numSectors, int[] color, double[] angle, ref bool bCanBeCalibrated);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_GET_LAMP_STATE(
|
|
// int nLamp, bool[] bBulbStates, double[] intensities, ref int color, ref double angle);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_SET_LAMP_STATE(
|
|
// int nLamp, bool[] bBulbStates, double[] intensities, int color, double angle, bool bWait);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_GET_LAMP_STATE_ALL(
|
|
// int lampInfo, int numLamps, int[] lampsType, int[,] bBulbStates, double[,] intensities);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_SET_LAMP_STATE_ALL(
|
|
// int lampInfo, int numLamps, int[] lampsType, int[,] bBulbStates, double[,] intensities, bool bWait);
|
|
|
|
// [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_SUPPORTED", CharSet = CharSet.Unicode)]
|
|
// public static extern Def.HSI_STATUS HSI_ILLUMINATION_SHUTDOWN();
|
|
|
|
// // <<<< Out Interfaces
|
|
// public Illumination()
|
|
// {
|
|
// _supported = 0;
|
|
// _bFirst = true;
|
|
// }
|
|
|
|
// public static bool IsActive(bool bForce = false)
|
|
// {
|
|
// if (_bFirst || bForce)
|
|
// {
|
|
// IsSupported(ref _supported);
|
|
// _bFirst = false;
|
|
// }
|
|
// return (_supported != 0);
|
|
// }
|
|
|
|
// private static bool _bFirst;
|
|
// private static uint _supported;
|
|
// }
|
|
|
|
internal class Def
|
|
{
|
|
public enum HSI_EVENT_FUNCTION_ID //EventData
|
|
{
|
|
//SendReceive
|
|
// V4.2 & V4.3 +
|
|
HSI_EVENT_DONE = 0, //N/A N/A
|
|
HSI_EVENT_TAKE_HIT = 1, //N/A N/A
|
|
HSI_EVENT_ERASE_HIT = 2, //N/AN/A
|
|
HSI_EVENT_TIME_CRITICAL = 3, //"ON", or "OFF" N/A
|
|
HSI_EVENT_ZOOM_IN = 4, //"MAX", "COARSE", or "FINE" N/A
|
|
HSI_EVENT_ZOOM_OUT = 5, //"MAX", "COARSE", or "FINE" N/A
|
|
HSI_EVENT_REFRESH_LIVE_VIEW = 6, //N/AN/A
|
|
HSI_EVENT_UPDATE_READOUTS = 7, //"AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r}"N/A
|
|
HSI_EVENT_READ_MC_POSITION = 8, //"AxisFlags""AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r}"
|
|
HSI_EVENT_MOVE_MC_POSITION = 9, //"AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r},%lf{speed},%1d{bWait}"N/A
|
|
HSI_EVENT_CONVERT_MC_TO_GLOBAL = 10, //"%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
|
HSI_EVENT_UPDATE_STATUS_MESSAGE = 11, //N/AN/A
|
|
HSI_EVENT_OPENFILE_DLG = 12, //N/A"FileName"
|
|
HSI_EVENT_DISPLAY_YESNO_MESSAGE = 13, //N/AN/A
|
|
HSI_EVENT_DISPLAY_OKCANCEL_MESSAGE = 14, //N/AN/A
|
|
HSI_EVENT_DISPLAY_OK_MESSAGE = 15, //N/AN/A
|
|
|
|
// V4.3 + Only
|
|
HSI_EVENT_DEBUG_LOG = 20, //"%s" N/A
|
|
HSI_EVENT_MOVE_MC_POSITION_AND_SETTLE = 21, //"AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r},%lf{speed}" N/A
|
|
HSI_EVENT_CONVERT_GLOBAL_TO_MM = 22, //"%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
|
HSI_EVENT_CONVERT_ROT_TO_TABLE_POINT = 23, //"%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
|
HSI_EVENT_CONVERT_ROT_OUT_TABLE_POINT = 24, //"%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
|
HSI_EVENT_CONVERT_ROT_TO_TABLE_VECTOR = 25, //"%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
|
HSI_EVENT_CONVERT_ROT_OUT_TABLE_VECTOR = 26, //"%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
|
HSI_EVENT_ILLUMINATION_REFRESH = 27,
|
|
HSI_EVENT_ILLUMINATION_LOCK = 28,
|
|
HSI_EVENT_ILLUMINATION_STORE_SET = 29,
|
|
HSI_EVENT_ILLUMINATION_RESTORE_SET = 30,
|
|
HSI_EVENT_ILLUMINATION_DECREASE_ACTIVE = 31, // "%d"
|
|
HSI_EVENT_ILLUMINATION_INCREASE_ACTIVE = 32, // "%d"
|
|
HSI_EVENT_ILLUMINATION_DECREASE_ALL = 33, // "%d"
|
|
HSI_EVENT_ILLUMINATION_INCREASE_ALL = 34, // "%d"
|
|
HSI_EVENT_ILLUMINATION_SELECT_LAMP = 35, // "%d"
|
|
HSI_EVENT_ILLUMINATION_SET_LAMP_INTENSITY = 36, // "%d"
|
|
HSI_EVENT_ILLUMINATION_GET_LAMP_INTENSITY = 37, // "%d"
|
|
HSI_EVENT_ILLUMINATION_SET_LAMP_CALIBRATION_OVERRIDE = 38, // "%d"
|
|
HSI_EVENT_ILLUMINATION_NEXT_RING = 39,
|
|
HSI_EVENT_ILLUMINATION_PREV_RING = 40,
|
|
HSI_EVENT_ILLUMINATION_NEXT_SECTOR = 41,
|
|
HSI_EVENT_ILLUMINATION_PREV_SECTOR = 42,
|
|
HSI_EVENT_ILLUMINATION_NUM_LAMPS_INSTALLED = 43,
|
|
HSI_EVENT_ILLUMINATION_IS_LAMP_INSTALLED = 44,
|
|
HSI_EVENT_ILLUMINATION_APPLY = 45,
|
|
HSI_EVENT_ILLUMINATION_ALLOFF = 46,
|
|
HSI_EVENT_ILLUMINATION_ALLON = 47,
|
|
HSI_EVENT_ILLUMINATION_UNLOCK = 48,
|
|
HSI_EVENT_IS_PROGRAMMING_MODE = 49, //1/0
|
|
HSI_EVENT_IS_PORTLOCK_DCC = 50, //1/0
|
|
HSI_EVENT_IS_ROTAB_ENABLED = 51, //1/0
|
|
HSI_EVENT_IS_TIME_CRITICAL = 52, // 1/0
|
|
HSI_EVENT_CONVERT_MM_TO_GLOBAL = 53,
|
|
HSI_EVENT_CONVERT_GLOBAL_TO_MC = 54,
|
|
HSI_EVENT_LASER_FOCUS_ENABLE = 55, // "%d" 0 = not available, 1 = available
|
|
HSI_EVENT_MOVE_POINT = 56, //N/AN/A
|
|
HSI_EVENT_MAG_CHANGED = 57,
|
|
HSI_EVENT_ILLUMINATION_SET_LAMP_INTENSITY_IN_MACHINE_LEVELx100 = 58,
|
|
|
|
// "%d" //PR251359-- Instructed to "Please focus on slide" but it's rather unhelpfully turned the lights off for us.
|
|
HSI_EVENT_DCC_SCAN_POINTS_AVAILABLE = 59, //"%d"= more to come, 1 = last set N/A
|
|
HSI_EVENT_ILLUMINATION_IS_ALL_OFF = 60,
|
|
|
|
//1/0//PR253777-- Sensilight does not work if the target has 'ALL OFF' for illum setting--4/16/2008
|
|
HSI_EVENT_ILLUMINATION_DECREASE_ALL_NONZERO = 61,
|
|
|
|
// Sensilight command that wont change a lamp currently set to zero
|
|
HSI_EVENT_ILLUMINATION_INCREASE_ALL_NONZERO = 62,
|
|
// Sensilight command that wont change a lamp currently set to zero22
|
|
|
|
HSI_EVENT_LP_QUALITY = 63, //"%d" 0-100%
|
|
HSI_EVENT_TP_QUALITY = 64, //"%d" 0-100%
|
|
HSI_EVENT_VP_QUALITY = 65, //"%d" 0-100%
|
|
|
|
HSI_EVENT_FLYMODE_MOVE_COMPLETE = 66, // A queued flymode move has completed
|
|
HSI_EVENT_PENDANT_SPEED_PERCENT = 67, // 108336 HMV : Add calls to HSI.H for Speed
|
|
HSI_EVENT_PENDANT_AXES_SELECTED = 68, // 108335 HMV : Need to add calls to the HSI.H for Stacked Rotary
|
|
|
|
HSI_EVENT_MOTION = 500,
|
|
HSI_EVENT_MOTION_DCC_HOME = 501,
|
|
HSI_EVENT_SHUTDOWN_ = 999 //N/AN/A
|
|
}
|
|
|
|
public enum HSI_EVENT_RESPONSE_TYPE
|
|
{
|
|
HSI_EVENT_CALLBACK = 0,
|
|
HSI_EVENT_RESPONSE_OK = 1,
|
|
HSI_EVENT_RESPONSE_RETRY = 2,
|
|
HSI_EVENT_RESPONSE_CANCEL = 3,
|
|
HSI_EVENT_RESPONSE_YES = 4,
|
|
HSI_EVENT_RESPONSE_NO = 5,
|
|
HSI_EVENT_FUNCTION_OK = 6,
|
|
HSI_EVENT_FUNCTION_FAILED = 7
|
|
}
|
|
|
|
public enum HSI_EVENT_TYPE
|
|
{
|
|
HSI_EVENT_NONE = 0,
|
|
HSI_EVENT_ERROR = 1,
|
|
HSI_EVENT_FUNCTION = 2
|
|
}
|
|
|
|
public enum HSI_ILLUMINATION_BULB_STATE
|
|
{
|
|
HSI_ILLUMINATION_BULB_STATE_TURN_ON = 0,
|
|
HSI_ILLUMINATION_BULB_STATE_TURN_OFF = 1,
|
|
HSI_ILLUMINATION_BULB_STATE_TOTAL
|
|
}
|
|
|
|
public enum HSI_ILLUMINATION_BULB_TYPE
|
|
{
|
|
HSI_ILLUMINATION_BULB_ROUND = 1,
|
|
HSI_ILLUMINATION_BULB_SQUARE = 2,
|
|
HSI_ILLUMINATION_BULB_RING = 3,
|
|
HSI_ILLUMINATION_BULB_GRID = 4
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//Illumination API
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
public enum HSI_ILLUMINATION_INFO
|
|
{
|
|
HSI_ILLUMINATION_INFO_UNKNOWN = 0,
|
|
HSI_ILLUMINATION_INFO_HSI = 0x01,
|
|
HSI_ILLUMINATION_INFO_HSI_II = 0x02, //lvgang
|
|
HSI_ILLUMINATION_INFO_HSI_III = 0x04, //shixuyong
|
|
HSI_ILLUMINATION_INFO_TOTAL
|
|
}
|
|
|
|
public enum HSI_ILLUMINATION_LAMP_CONTROL_TYPE
|
|
{
|
|
HSI_ILLUMINATION_LAMP_CONTROL_NONE = 0x0000,
|
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_WHOLE_LAMP = 0x0001,
|
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_RINGS = 0x0002,
|
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_OCTANTS = 0x0004,
|
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_SEGMENTS = 0x0008,
|
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_OTHER
|
|
}
|
|
|
|
public enum HSI_ILLUMINATION_LAMP_LOCATION_TYPE
|
|
{
|
|
HSI_ILLUMINATION_LAMP_LOCATION_NONE = 0,
|
|
HSI_ILLUMINATION_LAMP_LOCATION_TOP_ON_AXIS = 1,
|
|
HSI_ILLUMINATION_LAMP_LOCATION_TOP_ANGLED = 2,
|
|
HSI_ILLUMINATION_LAMP_LOCATION_BOTTOM = 3,
|
|
HSI_ILLUMINATION_LAMP_LOCATION_MOVABLE = 4
|
|
}
|
|
|
|
public enum HSI_ILLUMINATION_LAMP_TYPE
|
|
{
|
|
HSI_ILLUMINATION_LAMP_NONE = 0,
|
|
HSI_ILLUMINATION_LAMP_COAXIAL = 1,
|
|
HSI_ILLUMINATION_LAMP_SURFACE = 2,
|
|
HSI_ILLUMINATION_LAMP_PROFILE = 3,
|
|
HSI_ILLUMINATION_LAMP_PROFILE_OUTER = 4
|
|
}
|
|
|
|
public enum HSI_ILLUMINATION_TYPE
|
|
{
|
|
HSI_ILLUMINATION_SUPPORTS_DCC_CONTROL = 0x0001,
|
|
HSI_ILLUMINATION_SUPPORTS_MANUAL_CONTROL = 0x0002
|
|
}
|
|
|
|
public enum HSI_MACHINE_TYPE
|
|
{
|
|
HSI_MACHINE_UNKNOWN = 0,
|
|
HSI_MACHINE_SO7 = 1,
|
|
HSI_MACHINE_TYPE_TOTAL
|
|
}
|
|
|
|
public enum HSI_MOTION_AXIS_R_MOVE_TYPE
|
|
{
|
|
HSI_MOTION_AXIS_R_CLOCKWISE = 1,
|
|
HSI_MOTION_AXIS_R_ANTICLOCKWISE = 2,
|
|
HSI_MOTION_AXIS_R_FASTEST = 3
|
|
}
|
|
|
|
public enum HSI_MOTION_AXIS_TYPE
|
|
{
|
|
//HSI_MOTION_AXIS_X = 0x0001, //对应ACS 0轴 X
|
|
//HSI_MOTION_AXIS_Y = 0x0000, //对应ACS 1轴 Y
|
|
//HSI_MOTION_AXIS_Z = 0x0004, //对应ACS 4轴 Z
|
|
HSI_MOTION_AXIS_X = 0x0001, // This is the default "Sensor level" X Axis - use on single X axis machines
|
|
HSI_MOTION_AXIS_Y = 0x0002, // This is the default "Sensor level" Y Axis - use on single Y axis machines
|
|
HSI_MOTION_AXIS_Z = 0x0004, // This is the default "Sensor level" Z Axis - use on single Z axis machines
|
|
HSI_MOTION_AXIS_R = 0x0008, // This is the default "Sensor level" R Axis - use on single R axis machines
|
|
|
|
HSI_MOTION_AXIS_X1 =
|
|
0x0010, // This is the 1st X Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_Y1 =
|
|
0x0020, // This is the 1st Y Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_Z1 =
|
|
0x0040, // This is the 1st Z Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_R1 =
|
|
0x0080, // This is the 1st R Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_X2 =
|
|
0x0100, // This is the 2nd X Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_Y2 =
|
|
0x0200, // This is the 2nd Y Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_Z2 =
|
|
0x0400, // This is the 2nd Z Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_R2 =
|
|
0x0800, // This is the 2nd R Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_X3 =
|
|
0x1000, // This is the 3rd X Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_Y3 =
|
|
0x2000, // This is the 3rd Y Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_Z3 =
|
|
0x4000, // This is the 3rd Z Axis - use on multiple axis machines when specific axis needed
|
|
|
|
HSI_MOTION_AXIS_R3 =
|
|
0x8000 // This is the 3rd R Axis - use on multiple axis machines when specific axis needed
|
|
}
|
|
|
|
public enum HSI_MOTION_IO_TYPE
|
|
{
|
|
HSI_MOTION_INPUT1 = 0x0001,
|
|
HSI_MOTION_INPUT2,
|
|
|
|
HSI_MOTION_OUTPUT1 = 0x0100,
|
|
HSI_MOTION_OUTPUT2
|
|
}
|
|
|
|
public enum HSI_MOTION_MOVE_TYPE
|
|
{
|
|
HSI_MOTION_MOVE_WAIT = 1,
|
|
HSI_MOTION_MOVE_NOWAIT = 2,
|
|
HSI_MOTION_MOVE_INTERMEDIATE_POSITION = 3,
|
|
HSI_MOTION_MOVE_FINAL_POSITION = 4,
|
|
HSI_MOTION_IN_POSITION_EVENT = 5,
|
|
HSI_MOTION_MOVE_FLYMODE = 6,
|
|
HSI_MOTION_MOVE_START_POSITION = 7,
|
|
HSI_MOTION_MOVE_START_FINAL_POSITION = 8
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Motion API
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
public enum HSI_MOTION_TYPE
|
|
{
|
|
HSI_MOTION_SUPPORTS_DCC_CONTROL = 0x0001,
|
|
HSI_MOTION_SUPPORTS_MANUAL_CONTROL = 0x0002,
|
|
HSI_MOTION_SUPPORTS_HOMING = 0x0004,
|
|
HSI_MOTION_SUPPORTS_CIRCULAR_MOVES = 0x0008,
|
|
HSI_MOTION_SUPPORTS_CMM_WRIST = 0x0010,
|
|
HSI_MOTION_SUPPORTS_BUFFERED_MOVES = 0x0020,
|
|
HSI_MOTION_SUPPORTS_FLY_MOVES = 0x0040,
|
|
HSI_MOTION_SUPPORTS_SCAN = 0x0080,
|
|
HSI_MOTION_SUPPORTS_ALL_AXIS_MOVE = 0x0100,
|
|
HSI_MOTION_SUPPORTS_MEASPOINT_VW = 0x0200
|
|
}
|
|
|
|
public enum HSI_NOTIFY_TYPE
|
|
{
|
|
HSI_NOTIFY_PROGRAM_EXECUTION_START = 0,
|
|
HSI_NOTIFY_PROGRAM_EXECUTION_STOP = 1,
|
|
|
|
HSI_NOTIFY_TIME_CRITICAL_EVENT_START = 2,
|
|
HSI_NOTIFY_TIME_CRITICAL_EVENT_STOP = 3,
|
|
HSI_NOTIFY_PROGRAM_OPEN = 4,
|
|
HSI_NOTIFY_PROGRAM_CLOSE = 5,
|
|
HSI_NOTIFY_PCDMIS_SHUTDOWN = 6
|
|
}
|
|
|
|
public enum HSI_SCAN_MOTION_TYPE
|
|
{
|
|
HSI_SCAN_MOTION_LINEAR = 1,
|
|
HSI_SCAN_MOTION_CIRCULAR,
|
|
HSI_SCAN_MOTION_SPEC_LOCA = 100, //EF1
|
|
HSI_SCAN_MOTION_EQ_DIS,
|
|
HSI_SCAN_MOTION_EQ_DIS_II,
|
|
HSI_SCAN_MOTION_LINEAR_TEST, //测试使用
|
|
HSI_SCAN_MOTION_EQ_TEST, //测试使用
|
|
HSI_SCAN_MOTION_MANUAL_TEST //测试使用
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Interface API
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
public enum HSI_STATUS
|
|
{
|
|
HSI_STATUS_NOT_SUPPORTED = -1,
|
|
HSI_STATUS_NORMAL = 0,
|
|
HSI_STATUS_FAILED,
|
|
HSI_FAILED_DLL_LOAD,
|
|
|
|
HSI_STATUS_PORTLOCK_HSI_MISMATCH,
|
|
|
|
HSI_STATUS_FILE_NOT_FOUND,
|
|
HSI_STATUS_HARDWARE_NOT_FOUND,
|
|
HSI_STATUS_INVALID_PARAMETERS,
|
|
HSI_STATUS_INVALID_POINTS,
|
|
HSI_STATUS_PART_NOT_DETECTED,
|
|
HSI_STATUS_MEASURE_ERROR,
|
|
HSI_STATUS_TEMPERATURE_ERROR,
|
|
|
|
HSI_STATUS_ILLUMINATION_COMM = 50,
|
|
|
|
HSI_STATUS_OPTICS_COMM = 100,
|
|
HSI_STATUS_OPTICS_HOMING,
|
|
HSI_STATUS_OPTICS_TIMEOUT,
|
|
HSI_STATUS_OPTICS_CALIBRATIONDATA,
|
|
HSI_STATUS_OPTICS_CALIBRATIONDATADEFAULT,
|
|
HSI_STATUS_OPTICS_CALFILEDATACOUNTMISMATCH,
|
|
|
|
HSI_STATUS_MOTION_COMM = 150,
|
|
HSI_STATUS_MOTION_HOMING,
|
|
HSI_STATUS_MOTION_TIMEOUT,
|
|
HSI_STATUS_MOTION_EMERGENCY_STOP,
|
|
HSI_STATUS_MOTION_EXCEED_LIMIT,
|
|
HSI_STATUS_MOTION_UNKNOWN_ERROR,
|
|
HSI_STATUS_MOTION_EXCEED_SW_LIMIT,
|
|
HSI_STATUS_MOTION_POSITION_ERROR,
|
|
HSI_STATUS_MOTION_MOVING,
|
|
|
|
HSI_STATUS_TP_UNEXPECTED_HIT = 200,
|
|
HSI_STATUS_TP_TIMEOUT = 201,
|
|
HSI_STATUS_TP_APPROACH_TIMEOUT = 202,
|
|
HSI_STATUS_TP_WRIST_ERROR,
|
|
|
|
HSI_STATUS_FG_COMM = 250,
|
|
HSI_STATUS_FG_TIMEOUT,
|
|
HSI_STATUS_FG_DIRECTX,
|
|
HSI_STATUS_FG_COLORDEPTH,
|
|
|
|
HSI_STATUS_LP_TIMEOUT = 300,
|
|
HSI_STATUS_LP_EXCEED_LIMIT = 301,
|
|
|
|
HSI_STATUS_VP_TIMEOUT = 350,
|
|
HSI_STATUS_VP_IMAGEPROCESS_FAIL
|
|
}
|
|
|
|
public const int HSI_APIVersionMajor = 1;
|
|
public const int HSI_APIVersionMinor = 3;
|
|
public const int HSI_MaxStringLength = 255; // Maximum string length (buffer size - 1)
|
|
|
|
public const int HSI_EF3Version = 0; //默认EF3版本号
|
|
|
|
public const uint HSI_MOTION_AXIS_ALL =
|
|
(uint)
|
|
(HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y |
|
|
HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z);
|
|
|
|
public const int HSI_MAX_POSITIONS_STORED = 500;
|
|
|
|
public const int HSI_ILLUMINATION_MAX_LAMPS = 6;
|
|
public const int HSI_ILLUMINATION_MAX_BULB_COLORS = 3;
|
|
public const int HSI_ILLUMINATION_MAX_RINGS = 12;
|
|
public const int HSI_ILLUMINATION_MAX_SECTORS = 16;
|
|
public const int HSI_ILLUMINATION_MAX_BULBS = HSI_ILLUMINATION_MAX_RINGS * HSI_ILLUMINATION_MAX_SECTORS;
|
|
|
|
public const int HSI_MaxLampNameLength = 29, HSI_MaxLampDescriptionLength = 255;
|
|
|
|
public struct Point
|
|
{
|
|
private double x;
|
|
private double y;
|
|
private double z;
|
|
}
|
|
|
|
public struct SHsiEventProperties
|
|
{
|
|
public uint EventId;
|
|
public uint EventCallbackId;
|
|
public HSI_EVENT_TYPE EventType;
|
|
public HSI_EVENT_RESPONSE_TYPE EventResponse;
|
|
public char[] EventData;
|
|
|
|
public void Init()
|
|
{
|
|
EventId = (uint)HSI_EVENT_FUNCTION_ID.HSI_EVENT_DONE;
|
|
EventCallbackId = 0;
|
|
EventType = HSI_EVENT_TYPE.HSI_EVENT_NONE;
|
|
EventResponse = HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_CALLBACK;
|
|
EventData = new char[HSI_MaxStringLength + 1];
|
|
}
|
|
}
|
|
// Maximum string length (buffer size - 1)
|
|
}
|
|
} |