diff --git a/HSI_HexagonMI_EF3.sln b/HSI_HexagonMI_EF3.sln index f42d1ae..ff0b6e3 100644 --- a/HSI_HexagonMI_EF3.sln +++ b/HSI_HexagonMI_EF3.sln @@ -7,8 +7,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HSI_Sevenocean_EF1", "..\EF EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HSI_Sevenocean_EF1_WPFTest", "..\EF3-Interfac\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\HSI_Sevenocean_EF1_WPFTest\HSI_Sevenocean_EF1_WPFTest.csproj", "{B8B35406-6406-424C-94B4-C6BB4A481413}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HSI_SEVENOCEAN_EF1_CsTest", "..\EF3-Interfac\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\HSI_SEVENOCEAN_EF1_CsTest\HSI_SEVENOCEAN_EF1_CsTest.csproj", "{7ED499CB-651C-4154-9741-EEF347BDBFB5}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HSI_Sevenocean_EF3", "..\EF3-Interfac\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\HSI_Sevenocean_EF3\HSI_Sevenocean_EF3.vcxproj", "{3B731938-04B1-46FE-9EEA-CBDD1D3B522A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HSI_HexagonMI_EF3", "HSI_HexagonMI_EF3\HSI_HexagonMI_EF3.vcxproj", "{ECCF081D-DDA4-49D5-A03F-9DD5AB8B666B}" @@ -19,6 +17,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HSI_CONTROLLER_WPFTest", ". EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFSerialAssistant", "SerialAssistant\WPFSerialAssistant\WPFSerialAssistant.csproj", "{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HSI_SEVENOCEAN_EF1_CsTest", "HSI_SEVENOCEAN_EF1_CsTest\HSI_SEVENOCEAN_EF1_CsTest.csproj", "{7ED499CB-651C-4154-9741-EEF347BDBFB5}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -49,17 +49,6 @@ Global {B8B35406-6406-424C-94B4-C6BB4A481413}.Release|x64.Build.0 = Release|x64 {B8B35406-6406-424C-94B4-C6BB4A481413}.Release|x86.ActiveCfg = Release|Any CPU {B8B35406-6406-424C-94B4-C6BB4A481413}.Release|x86.Build.0 = Release|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x64.ActiveCfg = Debug|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x86.ActiveCfg = Debug|x86 - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x86.Build.0 = Debug|x86 - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|Any CPU.Build.0 = Release|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x64.ActiveCfg = Release|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x64.Build.0 = Release|Any CPU - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x86.ActiveCfg = Release|x86 - {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x86.Build.0 = Release|x86 {3B731938-04B1-46FE-9EEA-CBDD1D3B522A}.Debug|Any CPU.ActiveCfg = Debug|Win32 {3B731938-04B1-46FE-9EEA-CBDD1D3B522A}.Debug|x64.ActiveCfg = Debug|x64 {3B731938-04B1-46FE-9EEA-CBDD1D3B522A}.Debug|x86.ActiveCfg = Debug|Win32 @@ -110,6 +99,18 @@ Global {DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Release|x64.Build.0 = Release|Any CPU {DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Release|x86.ActiveCfg = Release|Any CPU {DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Release|x86.Build.0 = Release|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x64.ActiveCfg = Debug|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x64.Build.0 = Debug|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x86.ActiveCfg = Debug|x86 + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Debug|x86.Build.0 = Debug|x86 + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|Any CPU.Build.0 = Release|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x64.ActiveCfg = Release|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x64.Build.0 = Release|Any CPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x86.ActiveCfg = Release|x86 + {7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/HSI_HexagonMI_EF3/HSI.cpp b/HSI_HexagonMI_EF3/HSI.cpp index 618fa11..b5c6dd1 100644 --- a/HSI_HexagonMI_EF3/HSI.cpp +++ b/HSI_HexagonMI_EF3/HSI.cpp @@ -3,9 +3,9 @@ #include "HSI_Motion.h" #include "HSI_Sevenocean_EF3.h" #include "SevenOcean\CMMIO_SERIAL.h" -#include "HSI_Illumination.h" -#include "HSI_Function.h" -#include "HSI_JoyStick.h" +//#include "HSI_Illumination.h" +//#include "HSI_Function.h" +//#include "HSI_JoyStick.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -42,7 +42,7 @@ HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly) g_bOfflineOnly = _bOfflineOnly; return rStatus; } -//=========================================================================== +//==========================获取机器控制器信息,3代表EF3================================================= HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes) { auto rStatus = HSI_STATUS_NORMAL; @@ -62,7 +62,7 @@ HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback) auto rStatus = HSI_STATUS_NORMAL; if (g_pHSI_Sevenocean_EF3) { - rStatus = g_pHSI_Sevenocean_EF3->SetEventCallback(_pCallback); + rStatus = g_pHSI_Sevenocean_EF3->SetEventCallback(_pCallback); //设置事件 } else { @@ -114,33 +114,50 @@ HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM() #pragma endregion //////////////////////////////////////////////////////////////////////////////// -// MOTION API +// MOTION API 运动相关API /////////////////////////////////////////////////////////////////////////////// #pragma region Motion API - - - - -HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types) +#pragma region 第一阶段实现的API功能 +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome) { - auto rStatus = HSI_STATUS_NORMAL; - if (g_bOfflineOnly == 0) - { - if (!g_pHSI_Motion) - { - g_pHSI_Motion = new HSI_Motion(); - } - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->IsSupported(Types); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - } - return rStatus; + auto rStatus = HSI_STATUS_NORMAL; + if (g_bOfflineOnly == 0) + { + if (!g_pHSI_Motion) + { + g_pHSI_Motion = new HSI_Motion(); + } + if (g_pHSI_Motion && g_pHSI_Sevenocean_EF3) + { + rStatus = g_pHSI_Motion->Startup(g_hWnd, g_bOfflineOnly); + if (rStatus == HSI_STATUS_FAILED) + { + return HSI_STATUS_FAILED; + } + rStatus = g_pHSI_Motion->HomeMachine(bHome); + switch (g_pHSI_Motion->m_iJoyStick) + { + case 0: + break; + case 1: + //if (!g_pHSI_JoyStick) + //{ + // g_pHSI_JoyStick = new HSI_Joystick(g_pHSI_Motion); + // g_pHSI_JoyStick->ResumeJoyStickThread(); + //} + break; + default: + break; + } + } + else + { + rStatus = HSI_STATUS_FAILED; + } + } + return rStatus; } //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion) @@ -157,58 +174,130 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion) return rStatus; } //=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome) +HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN() { - auto rStatus = HSI_STATUS_NORMAL; - if (g_bOfflineOnly == 0) - { - if (!g_pHSI_Motion) - { - g_pHSI_Motion = new HSI_Motion(); - } - if (g_pHSI_Motion && g_pHSI_Sevenocean_EF3) - { - rStatus = g_pHSI_Motion->Startup(g_hWnd, g_bOfflineOnly); - if (rStatus == HSI_STATUS_FAILED) - { - return HSI_STATUS_FAILED; - } - rStatus = g_pHSI_Motion->HomeMachine(bHome); - switch (g_pHSI_Motion->m_iJoyStick) - { - case 0: - break; - case 1: - //if (!g_pHSI_JoyStick) - //{ - // g_pHSI_JoyStick = new HSI_Joystick(g_pHSI_Motion); - // g_pHSI_JoyStick->ResumeJoyStickThread(); - //} - break; - default: - break; - } - } - else - { - rStatus = HSI_STATUS_FAILED; - } - } - return rStatus; + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->Shutdown(); + delete g_pHSI_Motion; + g_pHSI_Motion = nullptr; + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed) +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->Jog(AxisTypes, Speed); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG() +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->StopJog(); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time) +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->GetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, Time); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear) +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->SetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, eType, dSpeedGear); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION() +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->AbortMotion(); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; } //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed) { - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->IsHomed(bHomed); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->IsHomed(bHomed); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +#pragma endregion + +#ifdef USE_Motion_API + +#pragma region 后续考虑 +//=========================================================================== +HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types) +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_bOfflineOnly == 0) + { + if (!g_pHSI_Motion) + { + g_pHSI_Motion = new HSI_Motion(); + } + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->IsSupported(Types); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + } + return rStatus; } //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis,double &Speed) @@ -364,34 +453,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_REFRESH_DEADBAND(double &Deadband) return HSI_STATUS_NOT_SUPPORTED; } //=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed) -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->Jog(AxisTypes, Speed); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} -//=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG() -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->StopJog(); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} -//=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCPRF_MULTI(UINT AxisTypes, double *EncPos, double *PrfPos, int Count) { auto rStatus = HSI_STATUS_NORMAL; @@ -406,20 +467,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCPRF_MULTI(UINT AxisTypes, double *En return rStatus; } //=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time) -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->GetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, Time); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} -//=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal) { auto rStatus = HSI_STATUS_NORMAL; @@ -461,20 +508,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG_PROBE(UINT AxisTypes, double speed) } return rStatus; } -//=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear) -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->SetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, eType, dSpeedGear); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} + //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZA(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear) { @@ -535,20 +569,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_R(UINT AxisTypes, double Posi return HSI_STATUS_NOT_SUPPORTED; } //=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION() -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->AbortMotion(); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} -//=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DIO(UINT IOChannel, UINT& _Status) { auto rStatus = HSI_STATUS_NORMAL; @@ -950,22 +970,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_TRIGGLECOUNT(int* nCount, int& nArea) } return rStatus; } -//=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN() -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->Shutdown(); - delete g_pHSI_Motion; - g_pHSI_Motion = nullptr; - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} + //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_MOTION_FINDORIGINTEST(bool type) { @@ -981,15 +986,31 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_FINDORIGINTEST(bool type) return rStatus; } +HSI_API HSI_STATUS WINAPI HSI_MOTION_COLLECTPOS(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle) +{ + auto rStatus = HSI_STATUS_NORMAL; + if (g_pHSI_Motion) + { + rStatus = g_pHSI_Motion->CollectPos(isEnable, axis, cycle); + } + else + { + rStatus = HSI_STATUS_FAILED; + } + return rStatus; +} +#pragma endregion +#endif // DEBUG + #pragma endregion -//补光灯 -#ifdef USE_ILLUMINATION_API //////////////////////////////////////////////////////////////////////////////// -// ILLUMINATION API +// ILLUMINATION API 补光灯 /////////////////////////////////////////////////////////////////////////////// +#ifdef USE_ILLUMINATION_API + #pragma region // ILLUMINATION API //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_IS_SUPPORTED(UINT &Types) @@ -1161,11 +1182,12 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_TESTLIGHT(bool flag) #endif // USE_ILLUMINATION_API -//探针 + + +/////////////////////////////////////////////////////////////////////////////// +// Probe API 探针 +/////////////////////////////////////////////////////////////////////////////// #ifdef USE_Probe_API -/////////////////////////////////////////////////////////////////////////////// -// Probe API -/////////////////////////////////////////////////////////////////////////////// #pragma region probe //=========================================================================== HSI_API HSI_STATUS WINAPI HSI_TP_STARTUP() @@ -1358,25 +1380,7 @@ HSI_API HSI_STATUS WINAPI HSI_TP_SHUTDOWN() #endif // USE_Probe_API -//测试 -#ifdef Test +/////////////////////////////////////////////////////////////////////////////// +// 测试功能 +/////////////////////////////////////////////////////////////////////////////// -#pragma region Test -//=========================================================================== -HSI_API HSI_STATUS WINAPI HSI_MOTION_COLLECTPOS(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle) -{ - auto rStatus = HSI_STATUS_NORMAL; - if (g_pHSI_Motion) - { - rStatus = g_pHSI_Motion->CollectPos(isEnable, axis, cycle); - } - else - { - rStatus = HSI_STATUS_FAILED; - } - return rStatus; -} -//=========================================================================== -#pragma endregion - -#endif // Test \ No newline at end of file diff --git a/HSI_HexagonMI_EF3/HSI.h b/HSI_HexagonMI_EF3/HSI.h index 4aee761..57308af 100644 --- a/HSI_HexagonMI_EF3/HSI.h +++ b/HSI_HexagonMI_EF3/HSI.h @@ -21,8 +21,8 @@ #define HSI_API extern "C" __declspec(dllimport) #endif -const int HSI_APIVersionMajor = 1; -const int HSI_APIVersionMinor = 9; +const int HSI_APIVersionMajor = 0; +const int HSI_APIVersionMinor = 1; const int HSI_MaxStringLength = 255; // Maximum string length (buffer size - 1) /////////////////////////////////////////////////////////////////////////////// @@ -82,9 +82,9 @@ enum HSI_STATUS }; enum HSI_MACHINE_TYPE { - HSI_MACHINE_UNKNOWN = 0, - HSI_MACHINE_SO7 = 1, - HSI_MACHINE_NAVITAR_AUTOZOOM = 2, + HSI_MACHINE_UNKNOWN = 0, + HSI_MACHINE_SO7 = 1, + HSI_MACHINE_NAVITAR_AUTOZOOM = 2, HSI_MACHINE_EF3 = 3, HSI_MACHINE_GOOGOL = 4, HSI_MACHINE_TYPE_TOTAL, @@ -347,47 +347,48 @@ typedef struct const int HSI_MAX_POSITIONS_STORED = 500; // >>>> In Interfaces -HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types); +// 第一阶段需要重写的API 函数 + HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome); -HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed); - -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_XYZ(double &Speed); +HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion); +HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN(); HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double &Speed); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_XYZ(double Speed); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_XYZ(double &AccelX, double &AccelY, double &AccelZ); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_XYZ(double AccelX, double AccelY, double AccelZ); - -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_R(double &Speed); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_R(double Speed); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_R(double &AccelR); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_R(double AccelR); - -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION(double &ScaleX, double &ScaleY, double &ScaleZ); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SCALE_RESOLUTION(double ScaleX, double ScaleY, double ScaleZ); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DEADBAND(double &DeadbandX, double &DeadbandY, double &DeadbandZ, double &DeadbandR); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_REFRESH_DEADBAND(double &Deadband); - +HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_EX(UINT AxisTypes, double Speed); HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed); HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG(); - HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time); - -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITIONPROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &PositionA); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal); - HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ_CACHE(UINT AxisTypes, HSI_MOTION_MOVE_TYPE eType, int DataCount, Point *CacheData); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_R(UINT AxisTypes, double &PositionR, double &Time); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_R(UINT AxisTypes, double PositionR, HSI_MOTION_AXIS_R_MOVE_TYPE DirectionType, bool bWait); HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION(); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_PLAN_SCAN(double *pdStartPosX, double *pdStartPosY, double *pdStartPosZ, double *pdEndPosX, double *pdEndPosY, double *pdEndPosZ, double *pdStepDis, bool *pbTrig, int iCount); +HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed); -HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DIO(UINT IOChannel, UINT& _Status); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_DIO(UINT IOChannel, UINT _Status); -HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_SET_DATA(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis); -HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_START(); -HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP(); + + + +//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_XYZ(double &Speed); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_XYZ(double Speed); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_XYZ(double &AccelX, double &AccelY, double &AccelZ); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_XYZ(double AccelX, double AccelY, double AccelZ); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_R(double &Speed); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_R(double Speed); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_R(double &AccelR); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_R(double AccelR); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION(double &ScaleX, double &ScaleY, double &ScaleZ); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SCALE_RESOLUTION(double ScaleX, double ScaleY, double ScaleZ); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DEADBAND(double &DeadbandX, double &DeadbandY, double &DeadbandZ, double &DeadbandR); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_REFRESH_DEADBAND(double &Deadband); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITIONPROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &PositionA); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ_CACHE(UINT AxisTypes, HSI_MOTION_MOVE_TYPE eType, int DataCount, Point *CacheData); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_R(UINT AxisTypes, double &PositionR, double &Time); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_R(UINT AxisTypes, double PositionR, HSI_MOTION_AXIS_R_MOVE_TYPE DirectionType, bool bWait); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_PLAN_SCAN(double *pdStartPosX, double *pdStartPosY, double *pdStartPosZ, double *pdEndPosX, double *pdEndPosY, double *pdEndPosZ, double *pdStepDis, bool *pbTrig, int iCount); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DIO(UINT IOChannel, UINT& _Status); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_DIO(UINT IOChannel, UINT _Status); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_SET_DATA(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_START(); +//HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP(); @@ -398,10 +399,10 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP(); //HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_EX(UINT AxisTypes, double &Position, double &Time); //HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_EX(UINT AxisTypes, double Position, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear); //HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_EX(UINT AxisTypes, double &Speed); -//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_EX(UINT AxisTypes, double Speed); //HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_EX(UINT AxisTypes, double &Accel); //HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_EX(UINT AxisTypes, double Accel); + //暂未实现 //HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_MAGNIFICATION(UINT AxisTypes, double mag, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear); //HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_MAGNIFICATION(UINT AxisTypes, double &mag); @@ -412,7 +413,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP(); //HSI_API HSI_STATUS WINAPI HSI_MOTION_TOUCH_MOVE(double dSpeed, double dEndPosX, double dEndPosY, double dEndPosZ, double dI, double dJ, double dK); //HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZA_PROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &dI, double &dJ, double &dK, double &PositionA); -HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN(); + // <<<< Out Interfaces diff --git a/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj b/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj index 52c2c81..b72e4c8 100644 --- a/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj +++ b/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj @@ -104,8 +104,7 @@ - - + copy "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)HSI_SEVENOCEAN_EF1_CsTest\bin\Debug\HSI.dll" version.cmd diff --git a/HSI_HexagonMI_EF3/HSI_Motion.cpp b/HSI_HexagonMI_EF3/HSI_Motion.cpp index 5e06bd7..283652b 100644 --- a/HSI_HexagonMI_EF3/HSI_Motion.cpp +++ b/HSI_HexagonMI_EF3/HSI_Motion.cpp @@ -602,8 +602,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly) } return rStatus; } - -//获取EF3固件版本 +//=============================获取EF3固件版本=============================== HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version) { m_Thread_StateData = HSI_THREAD_PAUSED; @@ -658,12 +657,10 @@ HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version) } } m_Thread_StateData = HSI_THREAD_RUNNING; - SetEvent(m_hTriggerEventData); + SetEvent(m_hTriggerEventData); //触发事件,其中hEvent表示句柄,返回值:如果操作成功,则返回非零值,否则为0。 return HSI_STATUS_NORMAL; } - -//回家 -//=========================================================================== +//================================回家======================================= HSI_STATUS HSI_Motion::HomeMachine(bool bHomed) { auto rStatus = HSI_STATUS_NORMAL; @@ -1175,8 +1172,7 @@ HSI_STATUS HSI_Motion::ZeroPos(bool bZeroPos) return rStatus; } -//JOG模式 -//=========================================================================== +//===============================JOG模式============================================ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed) { auto rStatus = HSI_STATUS_NORMAL; @@ -1847,7 +1843,7 @@ int HSI_Motion::P2P(short AxisNumber, long Pos, double Speed, double Acc) } return 0; } - +//=========================================================================== //运动控制部分 //=========================================================================== HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double *EncPos, double *PrfPos, int Count) @@ -2563,7 +2559,7 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double ReleaseMutex(g_WR_ToMove_Mutex); return rStatus; } - +//=========================================================================== int HSI_Motion::CaculateStepMotorACC(int pos, int maxacc, int minacc) { double mpos = (double)abs(pos) / 1000; @@ -2574,7 +2570,6 @@ int HSI_Motion::CaculateStepMotorACC(int pos, int maxacc, int minacc) acc = maxacc; return acc; } - //=========================================================================== HSI_STATUS HSI_Motion::SetPositionXyza(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA, HSI_MOTION_MOVE_TYPE eType, double dFlyRadius) { @@ -2600,7 +2595,7 @@ HSI_STATUS HSI_Motion::SetPositionXyzCache(UINT AxisTypes, HSI_MOTION_MOVE_TYPE } return rStatus; } - +//=========================================================================== HSI_STATUS HSI_Motion::SetCircleInterpolate(double PositionX, double PositionY, double PositionZ) { auto rStatus = HSI_STATUS_NORMAL; @@ -2615,9 +2610,7 @@ HSI_STATUS HSI_Motion::SetCircleInterpolate(double PositionX, double PositionY } return rStatus; } - -//探针接口 -//=========================================================================== +//===========================探针接口================================================ void HSI_Motion::ProbeRetractManDist(int RetractManDist) { if (g_pHSI_Motion) @@ -2748,9 +2741,7 @@ HSI_STATUS HSI_Motion::JogProbe(UINT AxisTypes, double Speed) } return rStatus; } - -//读取配置 -//=========================================================================== +//=============================读取配置============================================== HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile) { auto rStatus = HSI_STATUS_NORMAL; @@ -2975,9 +2966,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile) } return rStatus; } - -//读取/设置光栅尺精度 -//=========================================================================== +//===============================读取/设置光栅尺精度============================================ HSI_STATUS HSI_Motion::GetScaleResolution(double &_ScaleX, double &_ScaleY, double &_ScaleZ) { auto rStatus = HSI_STATUS_NORMAL; @@ -3001,9 +2990,7 @@ HSI_STATUS HSI_Motion::SetScaleResolution(double _ScaleX, double _ScaleY, double } return rStatus; } - -//回调定位完成 -//=========================================================================== +//============================回调定位完成=============================================== void HSI_Motion::SendMsgMotionFinished() { sEvenProp.Init(); @@ -3013,8 +3000,7 @@ void HSI_Motion::SendMsgMotionFinished() EventCallback(sEvenProp); } -//回调探针运行 -//=========================================================================== +//=============================回调探针运行============================================== void HSI_Motion::SendMsgProbeFinished() { sEvenProp.Init(); @@ -3023,7 +3009,6 @@ void HSI_Motion::SendMsgProbeFinished() sEvenProp.EventResponse = HSI_EVENT_FUNCTION_OK; EventCallback(sEvenProp); } - //=========================================================================== void HSI_Motion::UpdateMotionState() { @@ -3427,8 +3412,7 @@ HSI_STATUS HSI_Motion::SpecialMotorMove(short AxisNumber, double Position) return rStatus; } -//IO -//=========================================================================== +//========================IO=================================================== HSI_STATUS HSI_Motion::GetDIO(UINT IOChannel, UINT& _Status) { auto rStatus = HSI_STATUS_NORMAL; @@ -3546,9 +3530,8 @@ HSI_STATUS HSI_Motion::GetAxisStatus(int* _Status) } return rStatus; } -//=========================================================================== -//暂停和关闭 +//=============================暂停和关闭============================================== HSI_STATUS HSI_Motion::AbortMotion() { auto rStatus = HSI_STATUS_NORMAL; @@ -3587,7 +3570,7 @@ HSI_STATUS HSI_Motion::AbortMotion() } return rStatus; } -//=========================================================================== +//===============================关闭============================================ HSI_STATUS HSI_Motion::Shutdown() { auto rStatus = HSI_STATUS_NORMAL; @@ -3650,9 +3633,8 @@ HSI_STATUS HSI_Motion::Shutdown() } return rStatus; } -//=========================================================================== -//触发灯光 +//==============================触发灯光============================================= HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor, int triggleMode, double* Intensities) { auto rStatus = HSI_STATUS_NORMAL; @@ -3714,8 +3696,7 @@ HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int de return rStatus; } -//硬件触发拍照 -//=========================================================================== +//=============================硬件触发拍照============================================== HSI_STATUS HSI_Motion::DCCPPStartPoint(double *startPoint) { auto rStatus = HSI_STATUS_NORMAL; @@ -4271,8 +4252,7 @@ HSI_STATUS HSI_Motion::DCCForLightPlate() return rStatus; } -//转盘 -//=========================================================================== +//===============================转盘============================================ HSI_STATUS HSI_Motion::StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, int filterTime1, int filterTime2, int pluseSumDis) { g_pLogger->SendAndFlushWithTime(L"[StartPlcJob] In\n"); @@ -4387,6 +4367,7 @@ HSI_STATUS HSI_Motion::GetTriggleCount(int *nCount, int& nArea) } //=========================================================================== //点胶 +//=========================================================================== HSI_STATUS HSI_Motion::GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData, int num) { auto rStatus = HSI_STATUS_NORMAL; @@ -5272,9 +5253,7 @@ HSI_STATUS HSI_Motion::GetPntsDistance(double& pDistance, int& spTimeCount) } return rStatus; } -//=========================================================================== -//运动控制参数读取及设置 -//=========================================================================== +//========================运动控制参数读取及设置=================================================== int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve) { int MovetoSpeedGear = 0; @@ -5336,9 +5315,7 @@ int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &S Speed = MovetoSpeedGear * flag; return (int)Speed; } -//=========================================================================== -//JoyStick运动控制参数读取及设置 -//=========================================================================== +//==========================JoyStick运动控制参数读取及设置================================================= bool HSI_Motion::SpeedPercentJoyStick(int AxisNum, long &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve) { Speed = Speed > 1000 ? 1000 : Speed; diff --git a/HSI_HexagonMI_EF3/HSI_Motion.h b/HSI_HexagonMI_EF3/HSI_Motion.h index e4bdff2..d8a4585 100644 --- a/HSI_HexagonMI_EF3/HSI_Motion.h +++ b/HSI_HexagonMI_EF3/HSI_Motion.h @@ -125,7 +125,6 @@ enum E_SO7_MOTION_READ_TYPE typedef enum { TCPIP_CONNECT_OK = 0, - TCPIP_INIT_WINSOCK_ERROR, TCPIP_INVAILD_SOCKET, TCPIP_INVAILD_IP_ADDRESS, @@ -256,7 +255,7 @@ public: //点胶运行状态 static int bRunGlueDispenser; - //读取EF3的JOG stop的状态 + //读取EF3的JOG stop 的状态 static int m_Thread_StateJOGStop; static HANDLE m_Thread_IdJOGStop; static HANDLE m_Thread_MutexJOGStop; @@ -290,7 +289,7 @@ public: int m_stepPosition_acc[10]; double m_PositionA;//第四轴的地位位置 - //jog参数 + //jog 参数 int m_JogDriveSpeed[5][5];//5:轴号,从1开始;5:档位 int m_JogStartSpeed[5][5]; int m_JogAccLine[5][5]; @@ -366,7 +365,7 @@ public: long m_ProbeCapturePos[5];//锁存各轴的位置 double m_ProbeReturnPos;//探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm int m_ProbeReturnSpeed;//探针触发后,轴的回退速度 - int m_isOKGlint; //是否开启ok/ng闪烁 + int m_isOKGlint; //是否开启ok/ng 闪烁 int m_ETIPort;//外部触发拍照输入端口号 int m_axisStatus;//运动各轴的状态 int m_axisAlarmStatus;//轴报警状态 diff --git a/HSI_HexagonMI_EF3/logger.h b/HSI_HexagonMI_EF3/logger.h index e5e4131..a9a456d 100644 --- a/HSI_HexagonMI_EF3/logger.h +++ b/HSI_HexagonMI_EF3/logger.h @@ -50,7 +50,7 @@ public: void SendAndFlush(LPCTSTR, ...); void SendAndFlushPerMode(LPCTSTR, ...); void SendAndFlushWithTime(LPCTSTR, ...); - bool IsEnabledLog/* = false*/;//锟角凤拷锟斤拷锟斤拷锟斤拷志 + bool IsEnabledLog/* = false*/;//鏄惁鍚敤鏃ュ織 CString m_FileName; long m_lLogMask; FILE *m_File; diff --git a/HSI_HexagonMI_EF3/version.cmd b/HSI_HexagonMI_EF3/version.cmd index 34d3db5..524ec12 100644 --- a/HSI_HexagonMI_EF3/version.cmd +++ b/HSI_HexagonMI_EF3/version.cmd @@ -3,9 +3,9 @@ echo Generate release version ::闇瑕佷汉宸ヨ缃殑鐗堟湰鍙---------------------------------------------------------------------------------- -set major_ver=1 +set major_ver=0 set minor_ver=0 -set revsion_ver=0 +set revsion_ver=1 ::------------------------------------------------------------------------------------------------------ set revfile="%~dp0version.h" diff --git a/HSI_HexagonMI_EF3/version.h b/HSI_HexagonMI_EF3/version.h index 2956bb3..58f4d97 100644 --- a/HSI_HexagonMI_EF3/version.h +++ b/HSI_HexagonMI_EF3/version.h @@ -4,13 +4,13 @@ #define HSI_VERSION_NUM #define HSI_VERSION_SET _T("") /// -#define HSI_VERSION "1.0.0" -#define HSI_VERSION_CSTRING _T("1.0.0") -#define HSI_VERSION_MAJOR 1 +#define HSI_VERSION "0.0.1" +#define HSI_VERSION_CSTRING _T("0.0.1") +#define HSI_VERSION_MAJOR 0 #define HSI_VERSION_MINOR 0 -#define HSI_VERSION_REVISION 0 +#define HSI_VERSION_REVISION 1 #define HSI_VERSION_REVNUM #define HSI_VERSION_BUILD_DATE _T(__DATE__ ) #define HSI_VERSION_BUILD_TIME _T(__TIME__ ) -#define HSI_FILE_DESCRIPTION "2022.10.10 / 9:43 " -#define HSI_FILE_CSDESCRIPTION _T("2022.10.10 / 9:43 ") +#define HSI_FILE_DESCRIPTION "2022.10.10 / 11:34 " +#define HSI_FILE_CSDESCRIPTION _T("2022.10.10 / 11:34 ") diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.command.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.command.1.tlog deleted file mode 100644 index ddfbea2..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.command.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.read.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.read.1.tlog deleted file mode 100644 index 985cd03..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.read.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.write.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.write.1.tlog deleted file mode 100644 index 58a8ed8..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/CL.write.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/HSI_Sevenocean_EF3.lastbuildstate b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/HSI_Sevenocean_EF3.lastbuildstate deleted file mode 100644 index dc1b392..0000000 --- a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/HSI_Sevenocean_EF3.lastbuildstate +++ /dev/null @@ -1,2 +0,0 @@ -#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1 -Release|x64|D:\Metus_git\2020_R1\HG_EF7_HSI_EF1\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\| diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/HSI_Sevenocean_EF3.write.1u.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/HSI_Sevenocean_EF3.write.1u.tlog deleted file mode 100644 index 3bd2fde..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/HSI_Sevenocean_EF3.write.1u.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.command.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.command.1.tlog deleted file mode 100644 index c134f24..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.command.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.read.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.read.1.tlog deleted file mode 100644 index 469c74d..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.read.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.write.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.write.1.tlog deleted file mode 100644 index 0e71c58..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/link.write.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.command.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.command.1.tlog deleted file mode 100644 index b44e2d3..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.command.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.read.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.read.1.tlog deleted file mode 100644 index c470100..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.read.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.write.1.tlog b/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.write.1.tlog deleted file mode 100644 index 3fba24e..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Seve.3B731938.tlog/rc.write.1.tlog and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.exp b/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.exp deleted file mode 100644 index 8c404ef..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.exp and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.iobj b/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.iobj deleted file mode 100644 index 2151598..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.iobj and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.ipdb b/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.ipdb deleted file mode 100644 index 14e8262..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.ipdb and /dev/null differ diff --git a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.res b/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.res deleted file mode 100644 index e1e3d90..0000000 Binary files a/HSI_HexagonMI_EF3/x64/Release/HSI_Sevenocean_EF3.res and /dev/null differ diff --git a/HSI_SEVENOCEAN_EF1_CsTest/App.config b/HSI_SEVENOCEAN_EF1_CsTest/App.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/App.config @@ -0,0 +1,6 @@ +锘 + + + + + \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/HSI/HSI.cs b/HSI_SEVENOCEAN_EF1_CsTest/HSI/HSI.cs new file mode 100644 index 0000000..aaa9a16 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/HSI/HSI.cs @@ -0,0 +1,587 @@ +using System; +using System.Runtime.InteropServices; +using System.Windows.Forms; + +namespace HSI_SEVENOCEAN_EF1_CsTest.HSI +{ + internal class Interface + { + // >>>> In Interfaces + public delegate void PEventCallback( + Def.HSI_EVENT_TYPE eventType, Def.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); + + [DllImport("HSI.dll", EntryPoint = "HSI_STARTUP", CharSet = CharSet.Unicode)] + public static extern Def.HSI_STATUS Startup(IntPtr hWnd, bool bOfflineOnly); + + [DllImport("HSI.dll", EntryPoint = "HSI_GET_INTERFACE_VERSION", CharSet = CharSet.Unicode)] + public static extern Def.HSI_STATUS GetInterfaceVersion(); + + [DllImport("HSI.dll", EntryPoint = "HSI_GET_MACHINE_INFO", CharSet = CharSet.Unicode)] + public static extern Def.HSI_STATUS GetMachineInfo(ref int numMachineTypes); + + [DllImport("HSI.dll", EntryPoint = "HSI_SET_EVENT_CALLBACK", CharSet = CharSet.Unicode)] + public static extern Def.HSI_STATUS SetEventCallback(PEventCallback pCallback); + + [DllImport("HSI.dll", EntryPoint = "HSI_SHUTDOWM", CharSet = CharSet.Unicode)] + public static extern Def.HSI_STATUS Shutdown(); + + // <<<< Out Interfacess + + public static void EventCallback(Def.HSI_EVENT_TYPE eventType, Def.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: + msgBtn = MessageBoxButtons.OK; + break; + case Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_RETRY: + msgBtn = MessageBoxButtons.RetryCancel; + break; + case Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_CANCEL: + msgBtn = MessageBoxButtons.OKCancel; + break; + case Def.HSI_EVENT_RESPONSE_TYPE.HSI_EVENT_RESPONSE_YES: + msgBtn = MessageBoxButtons.YesNo; + break; + } + switch (eventType) + { + case Def.HSI_EVENT_TYPE.HSI_EVENT_NONE: + break; + case Def.HSI_EVENT_TYPE.HSI_EVENT_ERROR: + break; + case Def.HSI_EVENT_TYPE.HSI_EVENT_FUNCTION: + var eventFunctionId = (Def.HSI_EVENT_FUNCTION_ID) eventId; + switch (eventFunctionId) + { + case Def.HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOTION_DCC_HOME: + { + System.Windows.Forms.MessageBox.Show(Resources.Interface_Tips_Home_Machine, Resources.Interface_Tips, + msgBtn, MessageBoxIcon.Information); + break; + } + case Def.HSI_EVENT_FUNCTION_ID.HSI_EVENT_DEBUG_LOG: + { + System.Windows.Forms.MessageBox.Show(eventData, Resources.Interface_Tips, + msgBtn, MessageBoxIcon.Information); + break; + } + case Def.HSI_EVENT_FUNCTION_ID.HSI_EVENT_MOVE_POINT: + { + System.Windows.Forms.MessageBox.Show(Resources.Interface_Tips_Motion_Finished, Resources.Interface_Tips, + msgBtn, MessageBoxIcon.Information); + ; //Motion completed + break; + } + } + break; + } + } + } + + internal class Motion + { + // >>>> 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 Def.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); + + [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_SPEED_XYZ", CharSet = CharSet.Unicode)] + public static extern Def.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); + + //[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 Def.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(); + + [DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_POSITION_XYZ", CharSet = CharSet.Unicode)] + public static extern Def.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, + 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 Def.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); + + //[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(); + + // <<<< Out Interfaces + public Motion() + { + _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 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 const int HSI_APIVersionMajor = 1; + public const int HSI_APIVersionMinor = 3; + + public const int HSI_MaxStringLength = 255; // Maximum string length (buffer size - 1) + /////////////////////////////////////////////////////////////////////////////// + // 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 enum HSI_MACHINE_TYPE + { + HSI_MACHINE_UNKNOWN = 0, + HSI_MACHINE_SO7 = 1, + HSI_MACHINE_TYPE_TOTAL, + }; + + public enum HSI_EVENT_TYPE + { + HSI_EVENT_NONE = 0, + HSI_EVENT_ERROR = 1, + HSI_EVENT_FUNCTION = 2 + }; + + 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_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_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 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]; + } + }; + + + /////////////////////////////////////////////////////////////////////////////// + // 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_MOTION_AXIS_TYPE + { + 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 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 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 + }; + + 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 const int HSI_MAX_POSITIONS_STORED = 500; + + + /////////////////////////////////////////////////////////////////////////////// + //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_BULB_TYPE + { + HSI_ILLUMINATION_BULB_ROUND = 1, + HSI_ILLUMINATION_BULB_SQUARE = 2, + HSI_ILLUMINATION_BULB_RING = 3, + HSI_ILLUMINATION_BULB_GRID = 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_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_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_TYPE + { + HSI_ILLUMINATION_SUPPORTS_DCC_CONTROL = 0x0001, + HSI_ILLUMINATION_SUPPORTS_MANUAL_CONTROL = 0x0002 + }; + + 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 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; + // Maximum string length (buffer size - 1) + } +} \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/HSI_SEVENOCEAN_EF1_CsTest.csproj b/HSI_SEVENOCEAN_EF1_CsTest/HSI_SEVENOCEAN_EF1_CsTest.csproj new file mode 100644 index 0000000..5640e49 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/HSI_SEVENOCEAN_EF1_CsTest.csproj @@ -0,0 +1,137 @@ +锘 + + + + Debug + AnyCPU + {7ED499CB-651C-4154-9741-EEF347BDBFB5} + Exe + Properties + HSI_SEVENOCEAN_EF1_CsTest + HSI_SEVENOCEAN_EF1_CsTest + v4.5 + 512 + 鍙戝竷\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x64 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + true + + + true + + + MainIcon.ico + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + + + + + + + + + False + Microsoft .NET Framework 4.5 %28x86 鍜 x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/HSI_SEVENOCEAN_EF1_CsTest.csproj.DotSettings b/HSI_SEVENOCEAN_EF1_CsTest/HSI_SEVENOCEAN_EF1_CsTest.csproj.DotSettings new file mode 100644 index 0000000..73e9656 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/HSI_SEVENOCEAN_EF1_CsTest.csproj.DotSettings @@ -0,0 +1,2 @@ +锘 + CSharp60 \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/MainIcon.ico b/HSI_SEVENOCEAN_EF1_CsTest/MainIcon.ico new file mode 100644 index 0000000..a355278 Binary files /dev/null and b/HSI_SEVENOCEAN_EF1_CsTest/MainIcon.ico differ diff --git a/HSI_SEVENOCEAN_EF1_CsTest/Program.cs b/HSI_SEVENOCEAN_EF1_CsTest/Program.cs new file mode 100644 index 0000000..5b6b0d9 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/Program.cs @@ -0,0 +1,134 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using HSI_SEVENOCEAN_EF1_CsTest; +using HSI_SEVENOCEAN_EF1_CsTest.HSI; + +namespace HSI_SEVENOCEAN_EF1_CsTest +{ + class Program + { + private static Interface.PEventCallback _eventCallback; + + + + static void Main(string[] args) + { + uint major = Def.HSI_APIVersionMajor; + uint minjor = Def.HSI_APIVersionMinor; + var rStatus = Interface.GetInterfaceVersion(ref major, ref minjor); + Console.WriteLine("Interface.GetInterfaceVersion:{0}", rStatus); + Console.WriteLine("Version:{0}.{1}", major, minjor); + var mainIntPtr = User32Api.GetCurrentWindowHandle(); + rStatus = Interface.Startup(mainIntPtr, false); + Console.WriteLine("Interface.Startup:{0}", rStatus); + + Interface.HsiCallback=new Interface.PEventCallback(Interface.EventCallback); + rStatus = Interface.SetEventCallback(Interface.HsiCallback); + Console.WriteLine("SetEventCallback:{0}", rStatus); + + //if (Motion.IsActive(true)) + { + rStatus = Motion.Startup(true); + Console.WriteLine("Motion.Startup:{0}", rStatus); + + var bHomed = true; + rStatus = Motion.IsHomed(ref bHomed); + Console.WriteLine("Motion.IsHomed:{0}", rStatus); + var bexit = false; + double SpeedGear = 1.0; + var dPos = new double[3]; + do + { + var info = Console.ReadKey(); + double dTime = 0; + switch (info.Key) + { + case ConsoleKey.P: + dPos[0] += 10.0; + dPos[1] += 10.0; + rStatus = Motion.SetPositionXyz(Def.HSI_MOTION_AXIS_ALL, dPos[0], dPos[1], dPos[2], Def.HSI_MOTION_MOVE_TYPE.HSI_MOTION_MOVE_NOWAIT, 0.0); + + break; + case ConsoleKey.Enter: + rStatus = Motion.GetPositionXyz(Def.HSI_MOTION_AXIS_ALL, ref dPos[0], ref dPos[1], ref dPos[2], ref dTime); + Console.WriteLine("Motion.GetPositionXyz:{0}", rStatus); + Console.WriteLine("Motion.XYZ:{0},{1},{2}", dPos[0], dPos[1], dPos[2]); + break; + case ConsoleKey.Escape: + bexit = true; + break; + case ConsoleKey.Spacebar: + rStatus = Motion.StopJog(); + Console.WriteLine("Motion.StopJog:{0}", rStatus); + break; + case ConsoleKey.NumPad1: + case ConsoleKey.D1: + SpeedGear = 1.0; + Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear); + break; + case ConsoleKey.NumPad2: + case ConsoleKey.D2: + SpeedGear = 2.0; + Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear); + break; + case ConsoleKey.NumPad3: + case ConsoleKey.D3: + SpeedGear = 3.0; + Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear); + break; + case ConsoleKey.NumPad4: + case ConsoleKey.D4: + SpeedGear = 4.0; + Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear); + break; + case ConsoleKey.LeftArrow: + rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X, -SpeedGear); + Console.WriteLine("Motion.Jog(X,{1}):{0}", rStatus, SpeedGear); + break; + case ConsoleKey.RightArrow: + rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X, SpeedGear); + Console.WriteLine("Motion.Jog(X,{1}):{0}", rStatus, SpeedGear); + break; + case ConsoleKey.DownArrow: + rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y, -SpeedGear); + Console.WriteLine("Motion.Jog(Y,{1}):{0}", rStatus, SpeedGear); + break; + case ConsoleKey.UpArrow: + rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y, SpeedGear); + Console.WriteLine("Motion.Jog(Y,{1}):{0}", rStatus, SpeedGear); + break; + case ConsoleKey.PageUp: + rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z, SpeedGear); + Console.WriteLine("Motion.Jog(Z,{1}):{0}", rStatus, SpeedGear); + break; + case ConsoleKey.PageDown: + rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z, -SpeedGear); + Console.WriteLine("Motion.Jog(Z,{1}):{0}", rStatus, SpeedGear); + break; + default: + Console.WriteLine("Invalid"); + break; + } + } while (!bexit); + + + + + rStatus = Motion.Shutdown(); + Console.WriteLine("Motion.Startup:{0}", rStatus); + } + + + rStatus = Interface.Shutdown(); + Console.WriteLine("Interface.Shutdown:{0}", rStatus); + + Console.WriteLine(); + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } + } +} diff --git a/HSI_SEVENOCEAN_EF1_CsTest/Properties/AssemblyInfo.cs b/HSI_SEVENOCEAN_EF1_CsTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..60a4fc3 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +锘縰sing System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 鏈夊叧绋嬪簭闆嗙殑甯歌淇℃伅閫氳繃浠ヤ笅 +// 鐗规ч泦鎺у埗銆傛洿鏀硅繖浜涚壒鎬у煎彲淇敼 +// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭 +[assembly: AssemblyTitle("HSI_SEVENOCEAN_EF1_CsTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HSI_SEVENOCEAN_EF1_CsTest")] +[assembly: AssemblyCopyright("Copyright 漏 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 灏 ComVisible 璁剧疆涓 false 浣挎绋嬪簭闆嗕腑鐨勭被鍨 +// 瀵 COM 缁勪欢涓嶅彲瑙併 濡傛灉闇瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷锛 +// 鍒欏皢璇ョ被鍨嬩笂鐨 ComVisible 鐗规ц缃负 true銆 +[assembly: ComVisible(false)] + +// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID +[assembly: Guid("eef743e0-3721-4c9e-9744-7d8002c9f7bf")] + +// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅闈㈠洓涓肩粍鎴: +// +// 涓荤増鏈 +// 娆$増鏈 +// 鐢熸垚鍙 +// 淇鍙 +// +// 鍙互鎸囧畾鎵鏈夎繖浜涘硷紝涔熷彲浠ヤ娇鐢ㄢ滅敓鎴愬彿鈥濆拰鈥滀慨璁㈠彿鈥濈殑榛樿鍊硷紝 +// 鏂规硶鏄寜濡備笅鎵绀轰娇鐢ㄢ*鈥: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/HSI_SEVENOCEAN_EF1_CsTest/Resources.Designer.cs b/HSI_SEVENOCEAN_EF1_CsTest/Resources.Designer.cs new file mode 100644 index 0000000..222224d --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/Resources.Designer.cs @@ -0,0 +1,90 @@ +锘//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18408 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HSI_SEVENOCEAN_EF1_CsTest { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HSI_SEVENOCEAN_EF1_CsTest.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to 鎻愮ず. + /// + internal static string Interface_Tips { + get { + return ResourceManager.GetString("Interface_Tips", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 鍑嗗鍥炲. + /// + internal static string Interface_Tips_Home_Machine { + get { + return ResourceManager.GetString("Interface_Tips_Home_Machine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 瀹氫綅瀹屾垚. + /// + internal static string Interface_Tips_Motion_Finished { + get { + return ResourceManager.GetString("Interface_Tips_Motion_Finished", resourceCulture); + } + } + } +} diff --git a/HSI_SEVENOCEAN_EF1_CsTest/Resources.resx b/HSI_SEVENOCEAN_EF1_CsTest/Resources.resx new file mode 100644 index 0000000..aad10f8 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/Resources.resx @@ -0,0 +1,129 @@ +锘 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 鎻愮ず + + + 鍑嗗鍥炲 + + + 瀹氫綅瀹屾垚 + + \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/Resources/Icon.bmp b/HSI_SEVENOCEAN_EF1_CsTest/Resources/Icon.bmp new file mode 100644 index 0000000..37f2b6f Binary files /dev/null and b/HSI_SEVENOCEAN_EF1_CsTest/Resources/Icon.bmp differ diff --git a/HSI_SEVENOCEAN_EF1_CsTest/Resources/MainIcon.ico b/HSI_SEVENOCEAN_EF1_CsTest/Resources/MainIcon.ico new file mode 100644 index 0000000..a355278 Binary files /dev/null and b/HSI_SEVENOCEAN_EF1_CsTest/Resources/MainIcon.ico differ diff --git a/HSI_SEVENOCEAN_EF1_CsTest/User32API.cs b/HSI_SEVENOCEAN_EF1_CsTest/User32API.cs new file mode 100644 index 0000000..4753676 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/User32API.cs @@ -0,0 +1,88 @@ +锘縰sing System; +using System.Runtime.InteropServices; +using System.Collections; + +namespace HSI_SEVENOCEAN_EF1_CsTest +{ + class User32Api + { + private static readonly Hashtable ProcessWnd = null; + + public delegate bool Wndenumproc(IntPtr hwnd, uint lParam); + + static User32Api() + { + if (ProcessWnd == null) + { + ProcessWnd = new Hashtable(); + } + } + + [DllImport("user32.dll", EntryPoint = "EnumWindows", SetLastError = true)] + public static extern bool EnumWindows(Wndenumproc lpEnumFunc, uint lParam); + + [DllImport("user32.dll", EntryPoint = "GetParent", SetLastError = true)] + public static extern IntPtr GetParent(IntPtr hWnd); + + [DllImport("user32.dll", EntryPoint = "GetWindowThreadProcessId")] + public static extern uint GetWindowThreadProcessId(IntPtr hWnd, ref uint lpdwProcessId); + + [DllImport("user32.dll", EntryPoint = "IsWindow")] + public static extern bool IsWindow(IntPtr hWnd); + + [DllImport("kernel32.dll", EntryPoint = "SetLastError")] + public static extern void SetLastError(uint dwErrCode); + + public static IntPtr GetCurrentWindowHandle() + { + IntPtr ptrWnd = IntPtr.Zero; + uint uiPid = (uint)System.Diagnostics.Process.GetCurrentProcess().Id; // 褰撳墠杩涚▼ ID + object objWnd = ProcessWnd[uiPid]; + + if (objWnd != null) + { + ptrWnd = (IntPtr)objWnd; + if (ptrWnd != IntPtr.Zero && IsWindow(ptrWnd)) // 浠庣紦瀛樹腑鑾峰彇鍙ユ焺 + { + return ptrWnd; + } + else + { + ptrWnd = IntPtr.Zero; + } + } + + bool bResult = EnumWindows(new Wndenumproc(EnumWindowsProc), uiPid); + // 鏋氫妇绐楀彛杩斿洖 false 骞朵笖娌℃湁閿欒鍙锋椂琛ㄦ槑鑾峰彇鎴愬姛 + if (!bResult && Marshal.GetLastWin32Error() == 0) + { + objWnd = ProcessWnd[uiPid]; + if (objWnd != null) + { + ptrWnd = (IntPtr)objWnd; + } + } + + return ptrWnd; + } + + private static bool EnumWindowsProc(IntPtr hwnd, uint lParam) + { + uint uiPid = 0; + + if (GetParent(hwnd) == IntPtr.Zero) + { + GetWindowThreadProcessId(hwnd, ref uiPid); + if (uiPid == lParam) // 鎵惧埌杩涚▼瀵瑰簲鐨勪富绐楀彛鍙ユ焺 + { + ProcessWnd[uiPid] = hwnd; // 鎶婂彞鏌勭紦瀛樿捣鏉 + SetLastError(0); // 璁剧疆鏃犻敊璇 + return false; // 杩斿洖 false 浠ョ粓姝㈡灇涓剧獥鍙 + } + } + + return true; + } + + } +} \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/HSI_SEVENOCEAN_EF1_CsTest.exe.config b/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/HSI_SEVENOCEAN_EF1_CsTest.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/HSI_SEVENOCEAN_EF1_CsTest.exe.config @@ -0,0 +1,6 @@ +锘 + + + + + \ No newline at end of file diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs new file mode 100644 index 0000000..e5dc9b8 --- /dev/null +++ b/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")] diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/HSI_SEVENOCEAN_EF1_CsTest/obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/HSI_SEVENOCEAN_EF1_CsTest/obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29