对获取EF3返回锁存点功能,基本实现
This commit is contained in:
@@ -10,78 +10,78 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
// >>>> In Interfaces
|
||||
//引用回调
|
||||
public delegate void PEventCallback(
|
||||
Def.HSI_EVENT_TYPE eventType, Def.HSI_EVENT_RESPONSE_TYPE responseType, uint eventId, string eventData,
|
||||
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 Def.HSI_STATUS GetInterfaceVersion(ref uint apiVersionMajor, ref uint apiVersionMinor);
|
||||
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 Def.HSI_STATUS GetMachineInfo(ref int numMachineTypes);
|
||||
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 Def.HSI_STATUS MotionGetFirewareVerion(IntPtr firewareVerion);
|
||||
public static extern HSI_STATUS MotionGetFirewareVerion(IntPtr firewareVerion);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_STARTUP", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS Startup(IntPtr hWnd, bool bOfflineOnly);
|
||||
public static extern HSI_STATUS Startup(IntPtr hWnd, bool bOfflineOnly);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_SET_EVENT_CALLBACK", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS SetEventCallback(PEventCallback pCallback);
|
||||
public static extern HSI_STATUS SetEventCallback(PEventCallback pCallback);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_SHUTDOWM", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS Shutdown();
|
||||
public static extern HSI_STATUS Shutdown();
|
||||
|
||||
// <<<< Out Interfacess
|
||||
//事件回调函数
|
||||
public static void EventCallback(Def.HSI_EVENT_TYPE eventType, Def.HSI_EVENT_RESPONSE_TYPE responseType,
|
||||
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 Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_OK:
|
||||
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_OK:
|
||||
msgBtn = MessageBoxButtons.OK;
|
||||
break;
|
||||
case Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_RETRY:
|
||||
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_RETRY:
|
||||
msgBtn = MessageBoxButtons.RetryCancel;
|
||||
break;
|
||||
case Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_CANCEL:
|
||||
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_CANCEL:
|
||||
msgBtn = MessageBoxButtons.OKCancel;
|
||||
break;
|
||||
case Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_YES:
|
||||
case HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_YES:
|
||||
msgBtn = MessageBoxButtons.YesNo;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (eventType)
|
||||
{
|
||||
case Def.HSI_EVENT_TYPE.HSI_EVENT_NONE:
|
||||
case HSI_EVENT_TYPE.HSI_EVENT_NONE:
|
||||
break;
|
||||
case Def.HSI_EVENT_TYPE.HSI_EVENT_ERROR:
|
||||
case HSI_EVENT_TYPE.HSI_EVENT_ERROR:
|
||||
break;
|
||||
case Def.HSI_EVENT_TYPE.HSI_EVENT_FUNCTION:
|
||||
var eventFunctionId = (Def.HSI_EVENT_FUNCTION_ID)eventId;
|
||||
case HSI_EVENT_TYPE.HSI_EVENT_FUNCTION:
|
||||
var eventFunctionId = (HSI_EVENT_FUNCTION_ID)eventId;
|
||||
switch (eventFunctionId)
|
||||
{
|
||||
case Def.HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOTION_DCC_HOME: //准备回家
|
||||
case HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOTION_DCC_HOME: //准备回家
|
||||
{
|
||||
MessageBox.Show(Resources.Interface_Tips_Home_Machine, Resources.Interface_Tips,
|
||||
msgBtn, MessageBoxIcon.Information);
|
||||
break;
|
||||
}
|
||||
case Def.HSI_EVENT_FUNCTION_ID.HSI_EVENT_DEBUG_LOG:
|
||||
case HSI_EVENT_FUNCTION_ID.HSI_EVENT_DEBUG_LOG:
|
||||
{
|
||||
MessageBox.Show(eventData, Resources.Interface_Tips,
|
||||
msgBtn, MessageBoxIcon.Information);
|
||||
break;
|
||||
}
|
||||
case Def.HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOVE_POINT: //定位完成
|
||||
case HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOVE_POINT: //定位完成
|
||||
{
|
||||
MessageBox.Show(Resources.Interface_Tips_Motion_Finished, Resources.Interface_Tips,
|
||||
msgBtn, MessageBoxIcon.Information);
|
||||
@@ -121,33 +121,34 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
//public static extern Def.HSI_STATUS IsSupported(ref uint types);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_STARTUP", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS Startup(bool bHome);
|
||||
public static extern HSI_STATUS Startup(bool bHome);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_HOMED", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS IsHomed(ref bool bHomed);
|
||||
public static extern HSI_STATUS IsHomed(ref bool bHomed);
|
||||
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_SPEED_XYZ", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS GetSpeedXyz(ref double speed);
|
||||
public static extern HSI_STATUS GetSpeedXyz(ref double speed);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_SET_SPEED_XYZ", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS SetSpeedXyz(double speed);
|
||||
public static extern HSI_STATUS SetSpeedXyz(double speed);
|
||||
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_DCC_SCAN_SET_DATA", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS DCCScanSetData(uint axisTypes, Def.HSI_SCAN_MOTION_TYPE eType, uint lTrigNumber, double[] dTrigDis);
|
||||
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 Def.HSI_STATUS DCCScanStart();
|
||||
public static extern HSI_STATUS DCCScanStart();
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_DCC_SCAN_STOP", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS DCCScanStop();
|
||||
public static extern HSI_STATUS DCCScanStop();
|
||||
|
||||
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_POSITION_XYZ_CACHE", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS GetPositionXyzCache(IntPtr CacheData, int DataCount);
|
||||
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);
|
||||
|
||||
@@ -169,18 +170,18 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
//public static extern Def.HSI_STATUS GetRefreshDeadBand(ref double deadband);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_JOG", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS Jog(uint axisTypes, double speed);
|
||||
public static extern HSI_STATUS Jog(uint axisTypes, double speed);
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_STOP_JOG", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS StopJog();
|
||||
public static extern HSI_STATUS StopJog();
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_POSITION_XYZ", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS GetPositionXyz(
|
||||
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 Def.HSI_STATUS SetPositionXyz(
|
||||
uint axisTypes, double positionX, double positionY, double positionZ, Def.HSI_MOTION_MOVE_TYPE eType,
|
||||
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)]
|
||||
@@ -191,16 +192,16 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
// 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 Def.HSI_STATUS AbortMotion();
|
||||
public static extern HSI_STATUS AbortMotion();
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_DIO", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS GetDIO(uint ioChannel, ref uint status);
|
||||
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 Def.HSI_STATUS Shutdown();
|
||||
public static extern HSI_STATUS Shutdown();
|
||||
}
|
||||
|
||||
|
||||
@@ -383,18 +384,6 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
HSI_ILLUMINATION_BULB_GRID = 4
|
||||
}
|
||||
|
||||
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 //测试使用
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//Illumination API
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@@ -554,6 +543,18 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
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
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user