引入ACS库,代码格式整理
This commit is contained in:
+19
-2
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 15
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 15.0.28307.2017
|
VisualStudioVersion = 17.3.32922.545
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HSI_Sevenocean_EF1", "..\EF3-Interfac\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\HSI_Sevenocean_EF1\HSI_Sevenocean_EF1.vcxproj", "{09F6ECED-CD30-4ACA-BD5E-FFB4F53C353A}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HSI_Sevenocean_EF1", "..\EF3-Interfac\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\HSI_Sevenocean_EF1\HSI_Sevenocean_EF1.vcxproj", "{09F6ECED-CD30-4ACA-BD5E-FFB4F53C353A}"
|
||||||
EndProject
|
EndProject
|
||||||
@@ -18,6 +18,11 @@ EndProject
|
|||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFSerialAssistant", "SerialAssistant\WPFSerialAssistant\WPFSerialAssistant.csproj", "{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFSerialAssistant", "SerialAssistant\WPFSerialAssistant\WPFSerialAssistant.csproj", "{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}"
|
||||||
EndProject
|
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}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HSI_SEVENOCEAN_EF1_CsTest", "HSI_SEVENOCEAN_EF1_CsTest\HSI_SEVENOCEAN_EF1_CsTest.csproj", "{7ED499CB-651C-4154-9741-EEF347BDBFB5}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{ECCF081D-DDA4-49D5-A03F-9DD5AB8B666B} = {ECCF081D-DDA4-49D5-A03F-9DD5AB8B666B}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ACSPL_VS2017", "C:\Program Files (x86)\ACS Motion Control\SPiiPlus ADK Suite v3.02\ACSC\C_CPP\Samples\Reciprocated\ACSPL\ACSPL_VS2017.vcxproj", "{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -111,6 +116,18 @@ Global
|
|||||||
{7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x64.Build.0 = 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.ActiveCfg = Release|x86
|
||||||
{7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x86.Build.0 = Release|x86
|
{7ED499CB-651C-4154-9741-EEF347BDBFB5}.Release|x86.Build.0 = Release|x86
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Debug|Any CPU.Build.0 = Debug|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Release|Any CPU.Build.0 = Release|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Release|x64.Build.0 = Release|x64
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{26BA6D1A-E94D-46EE-A361-2D1AFDB2338A}.Release|x86.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
+112
-78
@@ -2,7 +2,7 @@
|
|||||||
#include "HSI.h"
|
#include "HSI.h"
|
||||||
#include "HSI_Motion.h"
|
#include "HSI_Motion.h"
|
||||||
#include "HSI_Sevenocean_EF3.h"
|
#include "HSI_Sevenocean_EF3.h"
|
||||||
#include "SevenOcean\CMMIO_SERIAL.h"
|
#include "SevenOcean/CMMIO_SERIAL.h"
|
||||||
//#include "HSI_Illumination.h"
|
//#include "HSI_Illumination.h"
|
||||||
//#include "HSI_Function.h"
|
//#include "HSI_Function.h"
|
||||||
//#include "HSI_JoyStick.h"
|
//#include "HSI_JoyStick.h"
|
||||||
@@ -14,102 +14,128 @@
|
|||||||
static HWND g_hWnd = nullptr;
|
static HWND g_hWnd = nullptr;
|
||||||
static bool g_bOfflineOnly = false;
|
static bool g_bOfflineOnly = false;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 开发说明
|
||||||
|
//初版 V0.1 2022/10/10
|
||||||
|
//---------------------------------------
|
||||||
|
//1、剥离 Metus初步所需函数(14个函数,包含是否回家,运动初始化,版本,JOG运动,运动到指定位置等)并生成dll
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
#pragma region interface
|
#pragma region interface
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT &APIVersionMajor, UINT &APIVersionMinor)
|
HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT& APIVersionMajor, UINT& APIVersionMinor)
|
||||||
{
|
{
|
||||||
APIVersionMajor = HSI_APIVersionMajor;
|
APIVersionMajor = HSI_APIVersionMajor; //HSI.dll 主版本号
|
||||||
APIVersionMinor = HSI_APIVersionMinor;
|
APIVersionMinor = HSI_APIVersionMinor; //HSI.dll 小版本号
|
||||||
return HSI_STATUS_NORMAL;
|
return HSI_STATUS_NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly)
|
HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (!g_pHSI_Sevenocean_EF3)
|
if (!g_pHSI_Sevenocean_EF3)
|
||||||
{
|
{
|
||||||
g_pHSI_Sevenocean_EF3 = new HSI_Sevenocean_EF3();
|
g_pHSI_Sevenocean_EF3 = new HSI_Sevenocean_EF3();
|
||||||
}
|
}
|
||||||
if (g_pHSI_Sevenocean_EF3)
|
if (g_pHSI_Sevenocean_EF3)
|
||||||
{
|
{
|
||||||
g_pHSI_Sevenocean_EF3->Startup(_hWnd, _bOfflineOnly);
|
g_pHSI_Sevenocean_EF3->Startup(_hWnd, _bOfflineOnly); //初始化EF3
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rStatus = HSI_STATUS_FAILED;
|
rStatus = HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
g_hWnd = _hWnd;
|
g_hWnd = _hWnd;
|
||||||
g_bOfflineOnly = _bOfflineOnly;
|
g_bOfflineOnly = _bOfflineOnly;
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================获取机器控制器信息,3代表EF3=================================================
|
//==========================获取机器控制器信息,3代表EF3=================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes)
|
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int& _NumMachineTypes)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Sevenocean_EF3)
|
if (g_pHSI_Sevenocean_EF3)
|
||||||
{
|
{
|
||||||
rStatus = g_pHSI_Sevenocean_EF3->GetMachineInfo(_NumMachineTypes);
|
rStatus = g_pHSI_Sevenocean_EF3->GetMachineInfo(_NumMachineTypes);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rStatus = HSI_STATUS_FAILED;
|
rStatus = HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback)
|
HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Sevenocean_EF3)
|
if (g_pHSI_Sevenocean_EF3)
|
||||||
{
|
{
|
||||||
rStatus = g_pHSI_Sevenocean_EF3->SetEventCallback(_pCallback); //设置事件
|
rStatus = g_pHSI_Sevenocean_EF3->SetEventCallback(_pCallback); //设置事件
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rStatus = HSI_STATUS_FAILED;
|
rStatus = HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM()
|
HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM()
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pLogger)
|
if (g_pLogger)
|
||||||
{
|
{
|
||||||
delete g_pLogger;
|
delete g_pLogger;
|
||||||
g_pLogger = NULL;
|
g_pLogger = nullptr;
|
||||||
}
|
}
|
||||||
if (g_pLogger2)
|
if (g_pLogger2)
|
||||||
{
|
{
|
||||||
delete g_pLogger2;
|
delete g_pLogger2;
|
||||||
g_pLogger2 = NULL;
|
g_pLogger2 = nullptr;
|
||||||
}
|
}
|
||||||
//if (g_pHSI_Illumination)
|
//if (g_pHSI_Illumination) //屏蔽光照
|
||||||
//{
|
//{
|
||||||
// rStatus = g_pHSI_Illumination->Shutdown();
|
// rStatus = g_pHSI_Illumination->Shutdown();
|
||||||
// delete g_pHSI_Illumination;
|
// delete g_pHSI_Illumination;
|
||||||
// g_pHSI_Illumination = nullptr;
|
// g_pHSI_Illumination = nullptr;
|
||||||
//}
|
//}
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
{
|
{
|
||||||
rStatus = g_pHSI_Motion->Shutdown();
|
rStatus = g_pHSI_Motion->Shutdown(); //运动终止
|
||||||
delete g_pHSI_Motion;
|
delete g_pHSI_Motion;
|
||||||
g_pHSI_Motion = nullptr;
|
g_pHSI_Motion = nullptr;
|
||||||
}
|
}
|
||||||
//if (g_pHSI_JoyStick)
|
//if (g_pHSI_JoyStick) //屏蔽摇杆
|
||||||
//{
|
//{
|
||||||
// g_pHSI_JoyStick->SuspendJoyStickThread();
|
// g_pHSI_JoyStick->SuspendJoyStickThread();
|
||||||
// delete g_pHSI_JoyStick;
|
// delete g_pHSI_JoyStick;
|
||||||
// g_pHSI_JoyStick = nullptr;
|
// g_pHSI_JoyStick = nullptr;
|
||||||
//}
|
//}
|
||||||
if (g_pHSI_Sevenocean_EF3)
|
if (g_pHSI_Sevenocean_EF3)
|
||||||
{
|
{
|
||||||
g_pHSI_Sevenocean_EF3->Shutdown();
|
g_pHSI_Sevenocean_EF3->Shutdown(); //EF3对象删除
|
||||||
delete g_pHSI_Sevenocean_EF3;
|
delete g_pHSI_Sevenocean_EF3;
|
||||||
g_pHSI_Sevenocean_EF3 = nullptr;
|
g_pHSI_Sevenocean_EF3 = nullptr;
|
||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
@@ -159,8 +185,9 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome)
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion)
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte* verion)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
@@ -173,6 +200,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion)
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN()
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN()
|
||||||
{
|
{
|
||||||
@@ -189,6 +217,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN()
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed)
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed)
|
||||||
{
|
{
|
||||||
@@ -203,6 +232,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG()
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG()
|
||||||
{
|
{
|
||||||
@@ -217,8 +247,10 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG()
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
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_POSITION_XYZ(UINT AxisTypes, double& PositionX, double& PositionY,
|
||||||
|
double& PositionZ, double& Time)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
@@ -231,8 +263,10 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &Po
|
|||||||
}
|
}
|
||||||
return rStatus;
|
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)
|
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;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
@@ -245,6 +279,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ(UINT AxisTypes, double Po
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION()
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION()
|
||||||
{
|
{
|
||||||
@@ -259,8 +294,9 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION()
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed)
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool& bHomed)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
@@ -1183,7 +1219,6 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_TESTLIGHT(bool flag)
|
|||||||
#endif // USE_ILLUMINATION_API
|
#endif // USE_ILLUMINATION_API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Probe API 探针
|
// Probe API 探针
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -1383,4 +1418,3 @@ HSI_API HSI_STATUS WINAPI HSI_TP_SHUTDOWN()
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// 测试功能
|
// 测试功能
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
+343
-249
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#ifndef HSI_H_INCLUDED_
|
#ifndef HSI_H_INCLUDED_
|
||||||
#define HSI_H_INCLUDED_
|
#define HSI_H_INCLUDED_
|
||||||
|
|
||||||
@@ -24,62 +23,63 @@
|
|||||||
const int HSI_APIVersionMajor = 0;
|
const int HSI_APIVersionMajor = 0;
|
||||||
const int HSI_APIVersionMinor = 1;
|
const int HSI_APIVersionMinor = 1;
|
||||||
|
|
||||||
const int HSI_MaxStringLength = 255; // Maximum string length (buffer size - 1)
|
const int HSI_MaxStringLength = 255; // Maximum string length (buffer size - 1)
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Interface API
|
// Interface API
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
enum HSI_STATUS
|
enum HSI_STATUS
|
||||||
{
|
{
|
||||||
HSI_STATUS_NOT_SUPPORTED = -1,
|
HSI_STATUS_NOT_SUPPORTED = -1,
|
||||||
HSI_STATUS_NORMAL = 0,
|
HSI_STATUS_NORMAL = 0,
|
||||||
HSI_STATUS_FAILED,
|
HSI_STATUS_FAILED,
|
||||||
HSI_FAILED_DLL_LOAD,
|
HSI_FAILED_DLL_LOAD,
|
||||||
|
|
||||||
HSI_STATUS_PORTLOCK_HSI_MISMATCH,
|
HSI_STATUS_PORTLOCK_HSI_MISMATCH,
|
||||||
|
|
||||||
HSI_STATUS_FILE_NOT_FOUND,
|
HSI_STATUS_FILE_NOT_FOUND,
|
||||||
HSI_STATUS_HARDWARE_NOT_FOUND,
|
HSI_STATUS_HARDWARE_NOT_FOUND,
|
||||||
HSI_STATUS_INVALID_PARAMETERS,
|
HSI_STATUS_INVALID_PARAMETERS,
|
||||||
HSI_STATUS_INVALID_POINTS,
|
HSI_STATUS_INVALID_POINTS,
|
||||||
HSI_STATUS_PART_NOT_DETECTED,
|
HSI_STATUS_PART_NOT_DETECTED,
|
||||||
HSI_STATUS_MEASURE_ERROR,
|
HSI_STATUS_MEASURE_ERROR,
|
||||||
HSI_STATUS_TEMPERATURE_ERROR,
|
HSI_STATUS_TEMPERATURE_ERROR,
|
||||||
|
|
||||||
HSI_STATUS_ILLUMINATION_COMM = 50,
|
HSI_STATUS_ILLUMINATION_COMM = 50,
|
||||||
|
|
||||||
HSI_STATUS_OPTICS_COMM = 100,
|
HSI_STATUS_OPTICS_COMM = 100,
|
||||||
HSI_STATUS_OPTICS_HOMING,
|
HSI_STATUS_OPTICS_HOMING,
|
||||||
HSI_STATUS_OPTICS_TIMEOUT,
|
HSI_STATUS_OPTICS_TIMEOUT,
|
||||||
HSI_STATUS_OPTICS_CALIBRATIONDATA,
|
HSI_STATUS_OPTICS_CALIBRATIONDATA,
|
||||||
HSI_STATUS_OPTICS_CALIBRATIONDATADEFAULT,
|
HSI_STATUS_OPTICS_CALIBRATIONDATADEFAULT,
|
||||||
HSI_STATUS_OPTICS_CALFILEDATACOUNTMISMATCH,
|
HSI_STATUS_OPTICS_CALFILEDATACOUNTMISMATCH,
|
||||||
|
|
||||||
HSI_STATUS_MOTION_COMM = 150,
|
HSI_STATUS_MOTION_COMM = 150,
|
||||||
HSI_STATUS_MOTION_HOMING,
|
HSI_STATUS_MOTION_HOMING,
|
||||||
HSI_STATUS_MOTION_TIMEOUT,
|
HSI_STATUS_MOTION_TIMEOUT,
|
||||||
HSI_STATUS_MOTION_EMERGENCY_STOP,
|
HSI_STATUS_MOTION_EMERGENCY_STOP,
|
||||||
HSI_STATUS_MOTION_EXCEED_LIMIT,
|
HSI_STATUS_MOTION_EXCEED_LIMIT,
|
||||||
HSI_STATUS_MOTION_UNKNOWN_ERROR,
|
HSI_STATUS_MOTION_UNKNOWN_ERROR,
|
||||||
HSI_STATUS_MOTION_EXCEED_SW_LIMIT,
|
HSI_STATUS_MOTION_EXCEED_SW_LIMIT,
|
||||||
HSI_STATUS_MOTION_POSITION_ERROR,
|
HSI_STATUS_MOTION_POSITION_ERROR,
|
||||||
HSI_STATUS_MOTION_MOVING,
|
HSI_STATUS_MOTION_MOVING,
|
||||||
|
|
||||||
HSI_STATUS_TP_UNEXPECTED_HIT = 200,
|
HSI_STATUS_TP_UNEXPECTED_HIT = 200,
|
||||||
HSI_STATUS_TP_TIMEOUT = 201,
|
HSI_STATUS_TP_TIMEOUT = 201,
|
||||||
HSI_STATUS_TP_APPROACH_TIMEOUT = 202,
|
HSI_STATUS_TP_APPROACH_TIMEOUT = 202,
|
||||||
HSI_STATUS_TP_WRIST_ERROR,
|
HSI_STATUS_TP_WRIST_ERROR,
|
||||||
|
|
||||||
HSI_STATUS_FG_COMM = 250,
|
HSI_STATUS_FG_COMM = 250,
|
||||||
HSI_STATUS_FG_TIMEOUT,
|
HSI_STATUS_FG_TIMEOUT,
|
||||||
HSI_STATUS_FG_DIRECTX,
|
HSI_STATUS_FG_DIRECTX,
|
||||||
HSI_STATUS_FG_COLORDEPTH,
|
HSI_STATUS_FG_COLORDEPTH,
|
||||||
|
|
||||||
HSI_STATUS_LP_TIMEOUT = 300,
|
HSI_STATUS_LP_TIMEOUT = 300,
|
||||||
HSI_STATUS_LP_EXCEED_LIMIT = 301,
|
HSI_STATUS_LP_EXCEED_LIMIT = 301,
|
||||||
|
|
||||||
HSI_STATUS_VP_TIMEOUT = 350,
|
HSI_STATUS_VP_TIMEOUT = 350,
|
||||||
HSI_STATUS_VP_IMAGEPROCESS_FAIL
|
HSI_STATUS_VP_IMAGEPROCESS_FAIL
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_MACHINE_TYPE
|
enum HSI_MACHINE_TYPE
|
||||||
{
|
{
|
||||||
HSI_MACHINE_UNKNOWN = 0,
|
HSI_MACHINE_UNKNOWN = 0,
|
||||||
@@ -89,120 +89,174 @@ enum HSI_MACHINE_TYPE
|
|||||||
HSI_MACHINE_GOOGOL = 4,
|
HSI_MACHINE_GOOGOL = 4,
|
||||||
HSI_MACHINE_TYPE_TOTAL,
|
HSI_MACHINE_TYPE_TOTAL,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_EVENT_TYPE
|
enum HSI_EVENT_TYPE
|
||||||
{
|
{
|
||||||
HSI_EVENT_NONE = 0,
|
HSI_EVENT_NONE = 0,
|
||||||
HSI_EVENT_ERROR = 1,
|
HSI_EVENT_ERROR = 1,
|
||||||
HSI_EVENT_FUNCTION = 2,
|
HSI_EVENT_FUNCTION = 2,
|
||||||
HSI_EVENT_NOTIFY = 3,
|
HSI_EVENT_NOTIFY = 3,
|
||||||
HSI_EVENT_SAFETY = 4,
|
HSI_EVENT_SAFETY = 4,
|
||||||
HSI_EVENT_SAFETY_KEEP = 5
|
HSI_EVENT_SAFETY_KEEP = 5
|
||||||
};
|
};
|
||||||
enum HSI_EVENT_FUNCTION_ID // EventData
|
|
||||||
{ // Send Receive
|
|
||||||
// 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/A N/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/A N/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/A N/A
|
|
||||||
HSI_EVENT_OPENFILE_DLG = 12, // N/A "FileName"
|
|
||||||
HSI_EVENT_DISPLAY_YESNO_MESSAGE = 13, // N/A N/A
|
|
||||||
HSI_EVENT_DISPLAY_OKCANCEL_MESSAGE = 14, // N/A N/A
|
|
||||||
HSI_EVENT_DISPLAY_OK_MESSAGE = 15, // N/A N/A
|
|
||||||
|
|
||||||
// V4.3 + Only
|
enum HSI_EVENT_FUNCTION_ID // EventData
|
||||||
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
|
// Send Receive
|
||||||
HSI_EVENT_CONVERT_GLOBAL_TO_MM = 22, // "%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
// V4.2 & V4.3 +
|
||||||
HSI_EVENT_CONVERT_ROT_TO_TABLE_POINT = 23, // "%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
HSI_EVENT_DONE = 0,
|
||||||
HSI_EVENT_CONVERT_ROT_OUT_TABLE_POINT = 24, // "%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
// N/A N/A
|
||||||
HSI_EVENT_CONVERT_ROT_TO_TABLE_VECTOR = 25, // "%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
HSI_EVENT_TAKE_HIT = 1,
|
||||||
HSI_EVENT_CONVERT_ROT_OUT_TABLE_VECTOR = 26, // "%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
// N/A N/A
|
||||||
HSI_EVENT_ILLUMINATION_REFRESH = 27,
|
HSI_EVENT_ERASE_HIT = 2,
|
||||||
HSI_EVENT_ILLUMINATION_LOCK = 28,
|
// N/A N/A
|
||||||
HSI_EVENT_ILLUMINATION_STORE_SET = 29,
|
HSI_EVENT_TIME_CRITICAL = 3,
|
||||||
HSI_EVENT_ILLUMINATION_RESTORE_SET = 30,
|
// "ON", or "OFF" N/A
|
||||||
HSI_EVENT_ILLUMINATION_DECREASE_ACTIVE = 31, // "%d"
|
HSI_EVENT_ZOOM_IN = 4,
|
||||||
HSI_EVENT_ILLUMINATION_INCREASE_ACTIVE = 32, // "%d"
|
// "MAX", "COARSE", or "FINE" N/A
|
||||||
HSI_EVENT_ILLUMINATION_DECREASE_ALL = 33, // "%d"
|
HSI_EVENT_ZOOM_OUT = 5,
|
||||||
HSI_EVENT_ILLUMINATION_INCREASE_ALL = 34, // "%d"
|
// "MAX", "COARSE", or "FINE" N/A
|
||||||
HSI_EVENT_ILLUMINATION_SELECT_LAMP = 35, // "%d"
|
HSI_EVENT_REFRESH_LIVE_VIEW = 6,
|
||||||
HSI_EVENT_ILLUMINATION_SET_LAMP_INTENSITY = 36, // "%d"
|
// N/A N/A
|
||||||
HSI_EVENT_ILLUMINATION_GET_LAMP_INTENSITY = 37, // "%d"
|
HSI_EVENT_UPDATE_READOUTS = 7,
|
||||||
HSI_EVENT_ILLUMINATION_SET_LAMP_CALIBRATION_OVERRIDE = 38, // "%d"
|
// "AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r}" N/A
|
||||||
HSI_EVENT_ILLUMINATION_NEXT_RING = 39,
|
HSI_EVENT_READ_MC_POSITION = 8,
|
||||||
HSI_EVENT_ILLUMINATION_PREV_RING = 40,
|
// "AxisFlags" "AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r}"
|
||||||
HSI_EVENT_ILLUMINATION_NEXT_SECTOR = 41,
|
HSI_EVENT_MOVE_MC_POSITION = 9,
|
||||||
HSI_EVENT_ILLUMINATION_PREV_SECTOR = 42,
|
// "AxisFlags,%lf{x},%lf{y},%lf{z},%lf{r},%lf{speed},%1d{bWait}" N/A
|
||||||
HSI_EVENT_ILLUMINATION_NUM_LAMPS_INSTALLED = 43,
|
HSI_EVENT_CONVERT_MC_TO_GLOBAL = 10,
|
||||||
HSI_EVENT_ILLUMINATION_IS_LAMP_INSTALLED = 44,
|
// "%lf{x},%lf{y},%lf{z}" "%lf{x},%lf{y},%lf{z}"
|
||||||
HSI_EVENT_ILLUMINATION_APPLY = 45,
|
HSI_EVENT_UPDATE_STATUS_MESSAGE = 11,
|
||||||
HSI_EVENT_ILLUMINATION_ALLOFF = 46,
|
// N/A N/A
|
||||||
HSI_EVENT_ILLUMINATION_ALLON = 47,
|
HSI_EVENT_OPENFILE_DLG = 12,
|
||||||
HSI_EVENT_ILLUMINATION_UNLOCK = 48,
|
// N/A "FileName"
|
||||||
HSI_EVENT_IS_PROGRAMMING_MODE = 49, // 1/0
|
HSI_EVENT_DISPLAY_YESNO_MESSAGE = 13,
|
||||||
HSI_EVENT_IS_PORTLOCK_DCC = 50, // 1/0
|
// N/A N/A
|
||||||
HSI_EVENT_IS_ROTAB_ENABLED = 51, // 1/0
|
HSI_EVENT_DISPLAY_OKCANCEL_MESSAGE = 14,
|
||||||
HSI_EVENT_IS_TIME_CRITICAL = 52, // 1/0
|
// N/A N/A
|
||||||
HSI_EVENT_CONVERT_MM_TO_GLOBAL = 53,
|
HSI_EVENT_DISPLAY_OK_MESSAGE = 15,
|
||||||
HSI_EVENT_CONVERT_GLOBAL_TO_MC = 54,
|
// N/A N/A
|
||||||
HSI_EVENT_LASER_FOCUS_ENABLE = 55, // "%d" 0 = not available, 1 = available
|
|
||||||
HSI_EVENT_MOVE_POINT = 56, // N/A N/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%
|
// V4.3 + Only
|
||||||
HSI_EVENT_TP_QUALITY = 64, // "%d" 0-100%
|
HSI_EVENT_DEBUG_LOG = 20,
|
||||||
HSI_EVENT_VP_QUALITY = 65, // "%d" 0-100%
|
// "%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/A N/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_FLYMODE_MOVE_COMPLETE = 66, // A queued flymode move has completed
|
HSI_EVENT_LP_QUALITY = 63,
|
||||||
HSI_EVENT_PENDANT_SPEED_PERCENT = 67, // 108336 HMV : Add calls to HSI.H for Speed
|
// "%d" 0-100%
|
||||||
HSI_EVENT_PENDANT_AXES_SELECTED = 68, // 108335 HMV : Need to add calls to the HSI.H for Stacked Rotary
|
HSI_EVENT_TP_QUALITY = 64,
|
||||||
|
// "%d" 0-100%
|
||||||
HSI_EVENT_MOTION = 500,
|
HSI_EVENT_VP_QUALITY = 65,
|
||||||
HSI_EVENT_MOTION_DCC_HOME = 501,
|
// "%d" 0-100%
|
||||||
HSI_EVENT_MOTION_FOCUS_HOME = 502,
|
|
||||||
HSI_EVENT_MOTION_EMERGENT_STOP = 503,
|
HSI_EVENT_FLYMODE_MOVE_COMPLETE = 66,
|
||||||
HSI_EVENT_SHUTDOWN_ = 999, // N/A N/A
|
// A queued flymode move has completed
|
||||||
HSI_EVENT_MOTION_DRIVER_ALARM = 1000,
|
HSI_EVENT_PENDANT_SPEED_PERCENT = 67,
|
||||||
HSI_EVENT_MOTION_PROBE = 1001,
|
// 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_MOTION_FOCUS_HOME = 502,
|
||||||
|
HSI_EVENT_MOTION_EMERGENT_STOP = 503,
|
||||||
|
HSI_EVENT_SHUTDOWN_ = 999,
|
||||||
|
// N/A N/A
|
||||||
|
HSI_EVENT_MOTION_DRIVER_ALARM = 1000,
|
||||||
|
HSI_EVENT_MOTION_PROBE = 1001,
|
||||||
HSI_EVENT_MOTION_DISPENSER = 1002
|
HSI_EVENT_MOTION_DISPENSER = 1002
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_NOTIFY_TYPE
|
enum HSI_NOTIFY_TYPE
|
||||||
{
|
{
|
||||||
HSI_NOTIFY_PROGRAM_EXECUTION_START = 0,
|
HSI_NOTIFY_PROGRAM_EXECUTION_START = 0,
|
||||||
HSI_NOTIFY_PROGRAM_EXECUTION_STOP = 1,
|
HSI_NOTIFY_PROGRAM_EXECUTION_STOP = 1,
|
||||||
|
|
||||||
HSI_NOTIFY_TIME_CRITICAL_EVENT_START = 2,
|
HSI_NOTIFY_TIME_CRITICAL_EVENT_START = 2,
|
||||||
HSI_NOTIFY_TIME_CRITICAL_EVENT_STOP = 3,
|
HSI_NOTIFY_TIME_CRITICAL_EVENT_STOP = 3,
|
||||||
HSI_NOTIFY_PROGRAM_OPEN = 4,
|
HSI_NOTIFY_PROGRAM_OPEN = 4,
|
||||||
HSI_NOTIFY_PROGRAM_CLOSE = 5,
|
HSI_NOTIFY_PROGRAM_CLOSE = 5,
|
||||||
HSI_NOTIFY_PCDMIS_SHUTDOWN = 6,
|
HSI_NOTIFY_PCDMIS_SHUTDOWN = 6,
|
||||||
HSI_NOTIFY_CLEAR_ITERATIONS = 7,
|
HSI_NOTIFY_CLEAR_ITERATIONS = 7,
|
||||||
HSI_NOTIFY_EMERGENCY_STATE = 9
|
HSI_NOTIFY_EMERGENCY_STATE = 9
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_EVENT_RESPONSE_TYPE
|
enum HSI_EVENT_RESPONSE_TYPE
|
||||||
{
|
{
|
||||||
HSI_EVENT_CALLBACK = 0,
|
HSI_EVENT_CALLBACK = 0,
|
||||||
HSI_EVENT_RESPONSE_OK = 1,
|
HSI_EVENT_RESPONSE_OK = 1,
|
||||||
HSI_EVENT_RESPONSE_RETRY = 2,
|
HSI_EVENT_RESPONSE_RETRY = 2,
|
||||||
HSI_EVENT_RESPONSE_CANCEL = 3,
|
HSI_EVENT_RESPONSE_CANCEL = 3,
|
||||||
HSI_EVENT_RESPONSE_YES = 4,
|
HSI_EVENT_RESPONSE_YES = 4,
|
||||||
HSI_EVENT_RESPONSE_NO = 5,
|
HSI_EVENT_RESPONSE_NO = 5,
|
||||||
HSI_EVENT_FUNCTION_OK = 6,
|
HSI_EVENT_FUNCTION_OK = 6,
|
||||||
HSI_EVENT_FUNCTION_FAILED = 7
|
HSI_EVENT_FUNCTION_FAILED = 7
|
||||||
};
|
};
|
||||||
|
|
||||||
const int HSI_THREAD_EXIT = -1;
|
const int HSI_THREAD_EXIT = -1;
|
||||||
@@ -211,32 +265,34 @@ const int HSI_THREAD_PAUSED = 1;
|
|||||||
|
|
||||||
struct sHSIEventProperties
|
struct sHSIEventProperties
|
||||||
{
|
{
|
||||||
UINT EventID;
|
UINT EventID;
|
||||||
UINT EventCallbackID;
|
UINT EventCallbackID;
|
||||||
HSI_EVENT_TYPE EventType;
|
HSI_EVENT_TYPE EventType;
|
||||||
HSI_EVENT_RESPONSE_TYPE EventResponse;
|
HSI_EVENT_RESPONSE_TYPE EventResponse;
|
||||||
char EventData[HSI_MaxStringLength + 1];
|
char EventData[HSI_MaxStringLength + 1];
|
||||||
void Init()
|
|
||||||
{
|
void Init()
|
||||||
EventID = 0;
|
{
|
||||||
EventCallbackID = 0;
|
EventID = 0;
|
||||||
EventType = HSI_EVENT_NONE;
|
EventCallbackID = 0;
|
||||||
EventResponse = HSI_EVENT_CALLBACK;
|
EventType = HSI_EVENT_NONE;
|
||||||
memset(EventData, 0, (HSI_MaxStringLength + 1)*sizeof(char));
|
EventResponse = HSI_EVENT_CALLBACK;
|
||||||
};
|
memset(EventData, 0, (HSI_MaxStringLength + 1) * sizeof(char));
|
||||||
sHSIEventProperties()
|
};
|
||||||
{
|
|
||||||
Init();
|
sHSIEventProperties()
|
||||||
}
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// >>>> In Interfaces
|
// >>>> In Interfaces
|
||||||
typedef VOID(WINAPI *pEventCallback)(HSI_EVENT_TYPE EventType, HSI_EVENT_RESPONSE_TYPE ResponseType, UINT EventID, char EventData[HSI_MaxStringLength + 1], UINT &EventCallbackID);
|
using pEventCallback = VOID(WINAPI *)(HSI_EVENT_TYPE EventType, HSI_EVENT_RESPONSE_TYPE ResponseType, UINT EventID,
|
||||||
|
char EventData[HSI_MaxStringLength + 1], UINT& EventCallbackID);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly);
|
HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT &APIVersionMajor, UINT &APIVersionMinor);
|
HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT& APIVersionMajor, UINT& APIVersionMinor);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes);
|
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int& _NumMachineTypes);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback);
|
HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
||||||
|
|
||||||
@@ -249,120 +305,145 @@ HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
|||||||
|
|
||||||
enum HSI_MOTION_TYPE
|
enum HSI_MOTION_TYPE
|
||||||
{
|
{
|
||||||
HSI_MOTION_SUPPORTS_DCC_CONTROL = 0x0001,
|
HSI_MOTION_SUPPORTS_DCC_CONTROL = 0x0001,
|
||||||
HSI_MOTION_SUPPORTS_MANUAL_CONTROL = 0x0002,
|
HSI_MOTION_SUPPORTS_MANUAL_CONTROL = 0x0002,
|
||||||
HSI_MOTION_SUPPORTS_HOMING = 0x0004,
|
HSI_MOTION_SUPPORTS_HOMING = 0x0004,
|
||||||
HSI_MOTION_SUPPORTS_CIRCULAR_MOVES = 0x0008,
|
HSI_MOTION_SUPPORTS_CIRCULAR_MOVES = 0x0008,
|
||||||
HSI_MOTION_SUPPORTS_CMM_WRIST = 0x0010,
|
HSI_MOTION_SUPPORTS_CMM_WRIST = 0x0010,
|
||||||
HSI_MOTION_SUPPORTS_BUFFERED_MOVES = 0x0020,
|
HSI_MOTION_SUPPORTS_BUFFERED_MOVES = 0x0020,
|
||||||
HSI_MOTION_SUPPORTS_FLY_MOVES = 0x0040,
|
HSI_MOTION_SUPPORTS_FLY_MOVES = 0x0040,
|
||||||
HSI_MOTION_SUPPORTS_SCAN = 0x0080,
|
HSI_MOTION_SUPPORTS_SCAN = 0x0080,
|
||||||
HSI_MOTION_SUPPORTS_ALL_AXIS_MOVE = 0x0100,
|
HSI_MOTION_SUPPORTS_ALL_AXIS_MOVE = 0x0100,
|
||||||
HSI_MOTION_SUPPORTS_MEASPOINT_VW = 0x0200
|
HSI_MOTION_SUPPORTS_MEASPOINT_VW = 0x0200
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_MOTION_AXIS_TYPE
|
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_X = 0x0001,
|
||||||
HSI_MOTION_AXIS_Y = 0x0002, // This is the default "Sensor level" Y Axis - use on single Y axis machines
|
// This is the default "Sensor level" X Axis - use on single X axis machines
|
||||||
HSI_MOTION_AXIS_Z = 0x0004, // This is the default "Sensor level" Z Axis - use on single Z axis machines
|
HSI_MOTION_AXIS_Y = 0x0002,
|
||||||
HSI_MOTION_AXIS_R = 0x0008, // This is the default "Sensor level" R Axis - use on single R axis machines
|
// This is the default "Sensor level" Y Axis - use on single Y 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_Z = 0x0004,
|
||||||
HSI_MOTION_AXIS_Y1 = 0x0020, // This is the 1st Y Axis - use on multiple axis machines when specific axis needed
|
// This is the default "Sensor level" Z Axis - use on single Z axis machines
|
||||||
HSI_MOTION_AXIS_Z1 = 0x0040, // This is the 1st Z Axis - use on multiple axis machines when specific axis needed
|
HSI_MOTION_AXIS_R = 0x0008,
|
||||||
HSI_MOTION_AXIS_R1 = 0x0080, // This is the 1st R Axis - use on multiple axis machines when specific axis needed
|
// This is the default "Sensor level" R Axis - use on single R axis machines
|
||||||
HSI_MOTION_AXIS_X2 = 0x0100, // This is the 2nd X Axis - use on multiple axis machines when specific axis needed
|
HSI_MOTION_AXIS_X1 = 0x0010,
|
||||||
HSI_MOTION_AXIS_Y2 = 0x0200, // This is the 2nd Y Axis - use on multiple axis machines when specific axis needed
|
// This is the 1st X 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_Y1 = 0x0020,
|
||||||
HSI_MOTION_AXIS_R2 = 0x0800, // This is the 2nd R Axis - use on multiple axis machines when specific axis needed
|
// This is the 1st Y 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_Z1 = 0x0040,
|
||||||
HSI_MOTION_AXIS_Y3 = 0x2000, // This is the 3rd Y Axis - use on multiple axis machines when specific axis needed
|
// This is the 1st Z 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_R1 = 0x0080,
|
||||||
HSI_MOTION_AXIS_R3 = 0x8000 // This is the 3rd R Axis - use on multiple axis machines when specific axis needed
|
// 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
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_MOTION_IO_TYPE
|
enum HSI_MOTION_IO_TYPE
|
||||||
{
|
{
|
||||||
HSI_MOTION_INPUT = 0x0001,
|
HSI_MOTION_INPUT = 0x0001,
|
||||||
HSI_MOTION_INPUT_LIMIT_SWITCH,
|
HSI_MOTION_INPUT_LIMIT_SWITCH,
|
||||||
HSI_MOTION_INPUT_CH1,//固高、众为兴、EF1输入
|
HSI_MOTION_INPUT_CH1,
|
||||||
HSI_MOTION_INPUT_CH2,
|
//固高、众为兴、EF1输入
|
||||||
HSI_MOTION_INPUT_CH3,//串口控制器输入
|
HSI_MOTION_INPUT_CH2,
|
||||||
HSI_MOTION_INPUT_CH4,//众为兴运动控制卡测试输入
|
HSI_MOTION_INPUT_CH3,
|
||||||
HSI_MOTION_INPUT_ALARM,//驱动报警
|
//串口控制器输入
|
||||||
|
HSI_MOTION_INPUT_CH4,
|
||||||
|
//众为兴运动控制卡测试输入
|
||||||
|
HSI_MOTION_INPUT_ALARM,
|
||||||
|
//驱动报警
|
||||||
|
|
||||||
HSI_MOTION_OUTPUT = 0x0100,
|
HSI_MOTION_OUTPUT = 0x0100,
|
||||||
HSI_MOTION_OUTPUT_LASER_PEN,
|
HSI_MOTION_OUTPUT_LASER_PEN,
|
||||||
HSI_MOTION_OUTPUT_CH1,//固高、众为兴、EF1输出
|
HSI_MOTION_OUTPUT_CH1,
|
||||||
HSI_MOTION_OUTPUT_CH2,
|
//固高、众为兴、EF1输出
|
||||||
HSI_MOTION_OUTPUT_CH3,//串口控制器输出
|
HSI_MOTION_OUTPUT_CH2,
|
||||||
HSI_MOTION_OUTPUT_CH4//众为兴运动控制卡测试输出
|
HSI_MOTION_OUTPUT_CH3,
|
||||||
|
//串口控制器输出
|
||||||
|
HSI_MOTION_OUTPUT_CH4 //众为兴运动控制卡测试输出
|
||||||
};
|
};
|
||||||
|
|
||||||
const UINT HSI_MOTION_AXIS_ALL = HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_Y | HSI_MOTION_AXIS_Z;
|
const UINT HSI_MOTION_AXIS_ALL = HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_Y | HSI_MOTION_AXIS_Z;
|
||||||
|
|
||||||
enum HSI_MOTION_MOVE_TYPE
|
enum HSI_MOTION_MOVE_TYPE
|
||||||
{
|
{
|
||||||
HSI_MOTION_MOVE_WAIT = 1,
|
HSI_MOTION_MOVE_WAIT = 1,
|
||||||
HSI_MOTION_MOVE_NOWAIT = 2,
|
HSI_MOTION_MOVE_NOWAIT = 2,
|
||||||
HSI_MOTION_MOVE_INTERMEDIATE_POSITION = 3,
|
HSI_MOTION_MOVE_INTERMEDIATE_POSITION = 3,
|
||||||
HSI_MOTION_MOVE_FINAL_POSITION = 4,
|
HSI_MOTION_MOVE_FINAL_POSITION = 4,
|
||||||
HSI_MOTION_IN_POSITION_EVENT = 5,
|
HSI_MOTION_IN_POSITION_EVENT = 5,
|
||||||
HSI_MOTION_MOVE_FLYMODE = 6,
|
HSI_MOTION_MOVE_FLYMODE = 6,
|
||||||
HSI_MOTION_MOVE_START_POSITION = 7,
|
HSI_MOTION_MOVE_START_POSITION = 7,
|
||||||
HSI_MOTION_MOVE_START_FINAL_POSITION = 8
|
HSI_MOTION_MOVE_START_FINAL_POSITION = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_MOTION_AXIS_R_MOVE_TYPE
|
enum HSI_MOTION_AXIS_R_MOVE_TYPE
|
||||||
{
|
{
|
||||||
HSI_MOTION_AXIS_R_CLOCKWISE = 1,
|
HSI_MOTION_AXIS_R_CLOCKWISE = 1,
|
||||||
HSI_MOTION_AXIS_R_ANTICLOCKWISE = 2,
|
HSI_MOTION_AXIS_R_ANTICLOCKWISE = 2,
|
||||||
HSI_MOTION_AXIS_R_FASTEST = 3
|
HSI_MOTION_AXIS_R_FASTEST = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_SCAN_MOTION_TYPE
|
enum HSI_SCAN_MOTION_TYPE
|
||||||
{
|
{
|
||||||
HSI_SCAN_MOTION_LINEAR = 1,
|
HSI_SCAN_MOTION_LINEAR = 1,
|
||||||
HSI_SCAN_MOTION_CIRCULAR,
|
HSI_SCAN_MOTION_CIRCULAR,
|
||||||
|
|
||||||
HSI_SCAN_MOTION_SPEC_LOCA = 100,//EF1
|
HSI_SCAN_MOTION_SPEC_LOCA = 100,
|
||||||
HSI_SCAN_MOTION_EQ_DIS,
|
//EF1
|
||||||
HSI_SCAN_MOTION_EQ_DIS_II,
|
HSI_SCAN_MOTION_EQ_DIS,
|
||||||
HSI_SCAN_MOTION_LINEAR_TEST,//测试使用
|
HSI_SCAN_MOTION_EQ_DIS_II,
|
||||||
HSI_SCAN_MOTION_EQ_TEST,//测试使用
|
HSI_SCAN_MOTION_LINEAR_TEST,
|
||||||
HSI_SCAN_MOTION_MANUAL_TEST//测试使用
|
//测试使用
|
||||||
|
HSI_SCAN_MOTION_EQ_TEST,
|
||||||
|
//测试使用
|
||||||
|
HSI_SCAN_MOTION_MANUAL_TEST //测试使用
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum HSI_ZOOM_TYPE
|
enum HSI_ZOOM_TYPE
|
||||||
{
|
{
|
||||||
HSI_ZOOM_MANUAL = 0,
|
HSI_ZOOM_MANUAL = 0,
|
||||||
HSI_ZOOM_NAVITAR=3
|
HSI_ZOOM_NAVITAR=3
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct
|
using Point = struct
|
||||||
{
|
{
|
||||||
double x;
|
double x;
|
||||||
double y;
|
double y;
|
||||||
double z;
|
double z;
|
||||||
}Point;
|
};
|
||||||
const int HSI_MAX_POSITIONS_STORED = 500;
|
const int HSI_MAX_POSITIONS_STORED = 500;
|
||||||
|
|
||||||
// >>>> In Interfaces
|
// >>>> In Interfaces
|
||||||
// 第一阶段需要重写的API 函数
|
// 第一阶段需要重写的API 函数
|
||||||
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion);
|
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_MOTION_SHUTDOWN();
|
||||||
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double &Speed);
|
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double& Speed);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_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_JOG(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_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_POSITION_XYZ(UINT AxisTypes, double& PositionX, double& PositionY,
|
||||||
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);
|
double& PositionZ, double& Time);
|
||||||
|
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_ABORT_MOTION();
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION();
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool& bHomed);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types);
|
||||||
@@ -391,7 +472,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
|||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED_EX(UINT AxisTypes, UINT &Types);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED_EX(UINT AxisTypes, UINT &Types);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP_EX(UINT AxisTypes, bool bHome);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP_EX(UINT AxisTypes, bool bHome);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION_EX(UINT AxisTypes, double &Scale);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION_EX(UINT AxisTypes, double &Scale);
|
||||||
@@ -420,7 +500,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
|||||||
#ifdef USE_Illumination_API
|
#ifdef USE_Illumination_API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Illumination API
|
// Illumination API
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -505,19 +584,34 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SHUTDOWN();
|
|||||||
#endif // !USE_Illumination_API
|
#endif // !USE_Illumination_API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class HSI
|
class HSI
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HSI() : hWnd(nullptr), bOfflineOnly(false){}
|
HSI() : hWnd(nullptr), bOfflineOnly(false)
|
||||||
virtual ~HSI(){}
|
{
|
||||||
virtual HSI_STATUS IsSupported(UINT &Types){ Types = 0; return HSI_STATUS_NORMAL; }
|
}
|
||||||
virtual HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly){ hWnd = _hWnd; bOfflineOnly = _bOfflineOnly; return HSI_STATUS_NORMAL; }
|
|
||||||
virtual HSI_STATUS Shutdown(){ return HSI_STATUS_NORMAL; }
|
|
||||||
protected:
|
|
||||||
HWND hWnd;
|
|
||||||
bool bOfflineOnly;
|
|
||||||
sHSIEventProperties sEvenProp;
|
|
||||||
|
|
||||||
|
virtual ~HSI()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual HSI_STATUS IsSupported(UINT& Types)
|
||||||
|
{
|
||||||
|
Types = 0;
|
||||||
|
return HSI_STATUS_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||||
|
{
|
||||||
|
hWnd = _hWnd;
|
||||||
|
bOfflineOnly = _bOfflineOnly;
|
||||||
|
return HSI_STATUS_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual HSI_STATUS Shutdown() { return HSI_STATUS_NORMAL; }
|
||||||
|
protected:
|
||||||
|
HWND hWnd;
|
||||||
|
bool bOfflineOnly;
|
||||||
|
sHSIEventProperties sEvenProp;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -76,6 +76,7 @@
|
|||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<IncludePath>\DirectXLib\Include;$(IncludePath)</IncludePath>
|
<IncludePath>\DirectXLib\Include;$(IncludePath)</IncludePath>
|
||||||
<OutDir>$(MSBuildProjectDirectory)\$(Platform)\$(Configuration)\</OutDir>
|
<OutDir>$(MSBuildProjectDirectory)\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(MSBuildProjectDirectory)\obj</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
@@ -171,6 +172,7 @@ xcopy "$(OutDir)\$(ProjectName).pdb" ..\HSI_GOOGOL_GTS800_WPFTest\bin\Debug\HSI.
|
|||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="ACS\ACSC.h" />
|
||||||
<ClInclude Include="HSI.h" />
|
<ClInclude Include="HSI.h" />
|
||||||
<ClInclude Include="SevenOcean\CMMIO_BASE.H" />
|
<ClInclude Include="SevenOcean\CMMIO_BASE.H" />
|
||||||
<ClInclude Include="logger.h" />
|
<ClInclude Include="logger.h" />
|
||||||
@@ -196,6 +198,9 @@ xcopy "$(OutDir)\$(ProjectName).pdb" ..\HSI_GOOGOL_GTS800_WPFTest\bin\Debug\HSI.
|
|||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Library Include="ACS\ACSCL_x64.LIB" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
|||||||
@@ -20,5 +20,9 @@
|
|||||||
<ClInclude Include="targetver.h" />
|
<ClInclude Include="targetver.h" />
|
||||||
<ClInclude Include="version.h" />
|
<ClInclude Include="version.h" />
|
||||||
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
||||||
|
<ClInclude Include="ACS\ACSC.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Library Include="ACS\ACSCL_x64.LIB" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
+1995
-1694
File diff suppressed because it is too large
Load Diff
+388
-370
@@ -3,7 +3,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "SevenOcean\CMMIO_SERIAL.H"
|
#include "SevenOcean/CMMIO_SERIAL.H"
|
||||||
|
|
||||||
#define TCPIP_THREAD_RUNNING 0
|
#define TCPIP_THREAD_RUNNING 0
|
||||||
#define TCPIP_THREAD_PAUSED 1
|
#define TCPIP_THREAD_PAUSED 1
|
||||||
@@ -16,114 +16,129 @@
|
|||||||
const double SCALE_UNITS = 1000.0;
|
const double SCALE_UNITS = 1000.0;
|
||||||
static CLogger* g_pLogger;
|
static CLogger* g_pLogger;
|
||||||
static CLogger* g_pLogger2;
|
static CLogger* g_pLogger2;
|
||||||
static bool g_IsClose;//用于DoEvents()的退出,而不异常
|
static bool g_IsClose; //用于DoEvents()的退出,而不异常
|
||||||
|
|
||||||
enum E_SO7_MOTION_TYPE
|
enum E_SO7_MOTION_TYPE
|
||||||
{
|
{
|
||||||
E_SO7_MOTION_NONE,
|
E_SO7_MOTION_NONE,
|
||||||
E_SO7_MOTION_JOG,
|
E_SO7_MOTION_JOG,
|
||||||
E_SO7_MOTION_MOVETO,
|
E_SO7_MOTION_MOVETO,
|
||||||
E_SO7_MOTION
|
E_SO7_MOTION
|
||||||
};
|
};
|
||||||
|
|
||||||
enum E_EF3_HOME_STATUS
|
enum E_EF3_HOME_STATUS
|
||||||
{
|
{
|
||||||
E_EF3_HOME_NONE,//0表示从未回过回原点
|
E_EF3_HOME_NONE,
|
||||||
E_EF3_HOME_ING,//1表示正在回原点
|
//0表示从未回过回原点
|
||||||
E_EF3_HOME_FINISHED,//2表示已经回过原点
|
E_EF3_HOME_ING,
|
||||||
|
//1表示正在回原点
|
||||||
|
E_EF3_HOME_FINISHED,
|
||||||
|
//2表示已经回过原点
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FUN_CMD //第一级指令
|
enum FUN_CMD //第一级指令
|
||||||
{
|
{
|
||||||
CT_MOTOR = 0x01, //MOTOR
|
CT_MOTOR = 0x01,
|
||||||
CT_LIGHT, //LIGHT
|
//MOTOR
|
||||||
CT_PORT, //PORT
|
CT_LIGHT,
|
||||||
CT_ORDER, //ORDER
|
//LIGHT
|
||||||
CT_SOFTSTOP, //STOP
|
CT_PORT,
|
||||||
CT_GLUEDISPENSER, //点胶
|
//PORT
|
||||||
CT_TURNTABLE,
|
CT_ORDER,
|
||||||
|
//ORDER
|
||||||
|
CT_SOFTSTOP,
|
||||||
|
//STOP
|
||||||
|
CT_GLUEDISPENSER,
|
||||||
|
//点胶
|
||||||
|
CT_TURNTABLE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_CMD //第二级指令
|
enum MOTOR_CMD //第二级指令
|
||||||
{
|
{
|
||||||
CT_MOTOR_SET = 0x01,
|
CT_MOTOR_SET = 0x01,
|
||||||
CT_START_JOG_POS, //
|
CT_START_JOG_POS,
|
||||||
CT_START_JOG_NEG,
|
//
|
||||||
CT_START_POSITION, //_POS,
|
CT_START_JOG_NEG,
|
||||||
CT_STOP,
|
CT_START_POSITION,
|
||||||
CT_GOHOME,
|
//_POS,
|
||||||
CT_TRIGGER_DATA,
|
CT_STOP,
|
||||||
CT_SIX_LIGHT,
|
CT_GOHOME,
|
||||||
CT_MDATA_INIT,
|
CT_TRIGGER_DATA,
|
||||||
CT_MDATA_COM,
|
CT_SIX_LIGHT,
|
||||||
CT_POSFLAG_CLEAR,
|
CT_MDATA_INIT,
|
||||||
CT_START_LATCH,
|
CT_MDATA_COM,
|
||||||
CT_ROCKER,
|
CT_POSFLAG_CLEAR,
|
||||||
CT_CIRCLERUN_POSITION,
|
CT_START_LATCH,
|
||||||
CT_GLUEDISPENSER_SET,
|
CT_ROCKER,
|
||||||
CT_GLUEDISPENSER_CLEAR,
|
CT_CIRCLERUN_POSITION,
|
||||||
CT_GLUEDISPENSER_START,
|
CT_GLUEDISPENSER_SET,
|
||||||
CT_GLUEDISPENSER_STOP,
|
CT_GLUEDISPENSER_CLEAR,
|
||||||
//转盘时启用
|
CT_GLUEDISPENSER_START,
|
||||||
CT_RTSET,
|
CT_GLUEDISPENSER_STOP,
|
||||||
CT_BINSDATA,
|
//转盘时启用
|
||||||
CT_RTSTOP,
|
CT_RTSET,
|
||||||
// CT_MOTOR_UPDATE, // up date all the aixs
|
CT_BINSDATA,
|
||||||
|
CT_RTSTOP,
|
||||||
|
// CT_MOTOR_UPDATE, // up date all the aixs
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_START_POSOTION //
|
enum MOTOR_START_POSOTION //
|
||||||
{
|
{
|
||||||
INTERPOLATION = 0x61,//插补
|
INTERPOLATION = 0x61,
|
||||||
GANGED = 0x41,//独立
|
//插补
|
||||||
CIRCLER = 0x64,
|
GANGED = 0x41,
|
||||||
CIRCLEL = 0x65,
|
//独立
|
||||||
|
CIRCLER = 0x64,
|
||||||
|
CIRCLEL = 0x65,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||||
{
|
{
|
||||||
AXIS_X = 0x01,
|
AXIS_X = 0x01,
|
||||||
AXIS_Y = 0x02,
|
AXIS_Y = 0x02,
|
||||||
AXIS_Z = 0x04,
|
AXIS_Z = 0x04,
|
||||||
AXIS_U = 0x08,
|
AXIS_U = 0x08,
|
||||||
AXIS_XY = 0x03,
|
AXIS_XY = 0x03,
|
||||||
AXIS_XZ = 0x05,
|
AXIS_XZ = 0x05,
|
||||||
AXIS_XU = 0x09,
|
AXIS_XU = 0x09,
|
||||||
AXIS_YZ = 0x06,
|
AXIS_YZ = 0x06,
|
||||||
AXIS_YU = 0x0a,
|
AXIS_YU = 0x0a,
|
||||||
AXIS_ZU = 0x0c,
|
AXIS_ZU = 0x0c,
|
||||||
AXIS_XYZ = 0x07,
|
AXIS_XYZ = 0x07,
|
||||||
AXIS_XYU = 0x0b,
|
AXIS_XYU = 0x0b,
|
||||||
AXIS_XZU = 0x0d,
|
AXIS_XZU = 0x0d,
|
||||||
AXIS_YZU = 0x0e,
|
AXIS_YZU = 0x0e,
|
||||||
AXIS_XYZU = 0x0f,
|
AXIS_XYZU = 0x0f,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_SET_KIND //第四级指令
|
enum MOTOR_SET_KIND //第四级指令
|
||||||
{
|
{
|
||||||
JOG_SPEED_ACC_DEC,
|
JOG_SPEED_ACC_DEC,
|
||||||
POSITION_SPEED_ACC_DEC_POS,
|
POSITION_SPEED_ACC_DEC_POS,
|
||||||
HOME_LIMIT_SPEED_ACC_DEC,
|
HOME_LIMIT_SPEED_ACC_DEC,
|
||||||
HOME_ORG_SPEED_ACC_DEC,
|
HOME_ORG_SPEED_ACC_DEC,
|
||||||
SOFT_LIMIT_POS_NEG,
|
SOFT_LIMIT_POS_NEG,
|
||||||
POS_CLEAR,
|
POS_CLEAR,
|
||||||
HOME_CLEAR,
|
HOME_CLEAR,
|
||||||
ENC_POS_DIR,
|
ENC_POS_DIR,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CMD_ORDER
|
enum CMD_ORDER
|
||||||
{
|
{
|
||||||
IOSTATE,
|
IOSTATE,
|
||||||
MOTORPOSITION,
|
MOTORPOSITION,
|
||||||
MOTORSTATE
|
MOTORSTATE
|
||||||
};
|
};
|
||||||
|
|
||||||
enum E_SO7_MOTION_READ_TYPE
|
enum E_SO7_MOTION_READ_TYPE
|
||||||
{
|
{
|
||||||
E_DATA_TYPE_NONE,
|
E_DATA_TYPE_NONE,
|
||||||
E_DATA_TYPE_GET_POS,
|
E_DATA_TYPE_GET_POS,
|
||||||
E_DATA_TYPE_IO,
|
E_DATA_TYPE_IO,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
using TCPIP_RETURN_CODE = enum
|
||||||
|
{
|
||||||
TCPIP_CONNECT_OK = 0,
|
TCPIP_CONNECT_OK = 0,
|
||||||
TCPIP_INIT_WINSOCK_ERROR,
|
TCPIP_INIT_WINSOCK_ERROR,
|
||||||
TCPIP_INVAILD_SOCKET,
|
TCPIP_INVAILD_SOCKET,
|
||||||
@@ -134,59 +149,58 @@ typedef enum {
|
|||||||
TCPIP_TIMEOUT,
|
TCPIP_TIMEOUT,
|
||||||
TCPIP_WSAEWOULDBLOCK = 10035,
|
TCPIP_WSAEWOULDBLOCK = 10035,
|
||||||
TCPIP_CONNECT_STATUS_UNKNOWN
|
TCPIP_CONNECT_STATUS_UNKNOWN
|
||||||
|
};
|
||||||
} TCPIP_RETURN_CODE;
|
|
||||||
|
|
||||||
class HSI_Motion : public HSI
|
class HSI_Motion : public HSI
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HSI_Motion();
|
HSI_Motion();
|
||||||
~HSI_Motion();
|
~HSI_Motion() override;
|
||||||
HSI_STATUS IsSupported(UINT &Types);
|
HSI_STATUS IsSupported(UINT& Types) override;
|
||||||
|
HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly) override;
|
||||||
virtual HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly);
|
HSI_STATUS GetFirmwareVersion(byte* version);
|
||||||
|
|
||||||
HSI_STATUS GetFirmwareVersion(byte *version);
|
|
||||||
|
|
||||||
HSI_STATUS HomeMachine(bool bHomed);
|
HSI_STATUS HomeMachine(bool bHomed);
|
||||||
HSI_STATUS HomeJog(short AxisNumber, short Dir, bool Wait = false);
|
HSI_STATUS HomeJog(short AxisNumber, short Dir, bool Wait = false);
|
||||||
HSI_STATUS HomeFindIndex();
|
HSI_STATUS HomeFindIndex();
|
||||||
HSI_STATUS ZeroPos(bool bZeroPos);
|
HSI_STATUS ZeroPos(bool bZeroPos);
|
||||||
HSI_STATUS IsHomed(bool &bHomed);
|
HSI_STATUS IsHomed(bool& bHomed);
|
||||||
HSI_STATUS GetSpeedXyz(int AxisNum, double &Speed);
|
HSI_STATUS GetSpeedXyz(int AxisNum, double& Speed);
|
||||||
HSI_STATUS SetSpeedXyz(double Speed);
|
HSI_STATUS SetSpeedXyz(double Speed);
|
||||||
HSI_STATUS GetFocusSpeed(double &Speed);
|
HSI_STATUS GetFocusSpeed(double& Speed);
|
||||||
HSI_STATUS SetFocusSpeed(double Speed);
|
HSI_STATUS SetFocusSpeed(double Speed);
|
||||||
HSI_STATUS GetAccelerationXyz(double &AccelX, double &AccelY, double &AccelZ);
|
HSI_STATUS GetAccelerationXyz(double& AccelX, double& AccelY, double& AccelZ);
|
||||||
HSI_STATUS SetAccelerationXyz(double AccelX, double AccelY, double AccelZ);
|
HSI_STATUS SetAccelerationXyz(double AccelX, double AccelY, double AccelZ);
|
||||||
HSI_STATUS GetSpeedR(double &Speed);
|
HSI_STATUS GetSpeedR(double& Speed);
|
||||||
HSI_STATUS SetSpeedR(double Speed);
|
HSI_STATUS SetSpeedR(double Speed);
|
||||||
|
|
||||||
HSI_STATUS GetScaleResolution(double &_ScaleX, double &_ScaleY, double &_ScaleZ);
|
HSI_STATUS GetScaleResolution(double& _ScaleX, double& _ScaleY, double& _ScaleZ);
|
||||||
HSI_STATUS SetScaleResolution(double _ScaleX, double _ScaleY, double _ScaleZ);
|
HSI_STATUS SetScaleResolution(double _ScaleX, double _ScaleY, double _ScaleZ);
|
||||||
|
|
||||||
HSI_STATUS GetDeadBand(double &DeadbandX, double &DeadbandY, double &DeadbandZ, double &DeadbandR);
|
HSI_STATUS GetDeadBand(double& DeadbandX, double& DeadbandY, double& DeadbandZ, double& DeadbandR);
|
||||||
HSI_STATUS GetRefreshDeadBand(double &Deadband);
|
HSI_STATUS GetRefreshDeadBand(double& Deadband);
|
||||||
|
|
||||||
HSI_STATUS Jog(UINT AxisTypes, double Speed);
|
HSI_STATUS Jog(UINT AxisTypes, double Speed);
|
||||||
HSI_STATUS JoyStick(UINT AxisTypes, long Speed);
|
HSI_STATUS JoyStick(UINT AxisTypes, long Speed);
|
||||||
HSI_STATUS StopJog();
|
HSI_STATUS StopJog();
|
||||||
|
|
||||||
HSI_STATUS StopJogEx(UINT AxisTypes);
|
HSI_STATUS StopJogEx(UINT AxisTypes);
|
||||||
|
|
||||||
HSI_STATUS GetPositionEncPrfMulti(UINT AxisTypes, double *EncPos, double *PrfPos, int Count);
|
HSI_STATUS GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
|
||||||
HSI_STATUS GetPositionXyz(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time);
|
HSI_STATUS GetPositionXyz(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ, double& Time);
|
||||||
HSI_STATUS GetPositionXyzaProbe(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &PositionA);
|
HSI_STATUS GetPositionXyzaProbe(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ,
|
||||||
HSI_STATUS GetEncoderXyz(long *lEncoderVal);
|
double& PositionA);
|
||||||
|
HSI_STATUS GetEncoderXyz(long* lEncoderVal);
|
||||||
HSI_STATUS JogProbe(UINT AxisTypes, double Speed);
|
HSI_STATUS JogProbe(UINT AxisTypes, double Speed);
|
||||||
void ProbeRetractManDist(int RetractManDist);
|
void ProbeRetractManDist(int RetractManDist);
|
||||||
int CaculateStepMotorACC(int pos, int maxacc, int minacc);
|
int CaculateStepMotorACC(int pos, int maxacc, int minacc);
|
||||||
HSI_STATUS SetPositionXyz(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
|
HSI_STATUS SetPositionXyz(UINT AxisTypes, double PositionX, double PositionY, double PositionZ,
|
||||||
HSI_STATUS SetPositionXyza(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA, HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
|
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
|
||||||
HSI_STATUS SetPositionXyzCache(UINT AxisTypes, HSI_MOTION_MOVE_TYPE eType, int DataCount, Point *CacheData);
|
HSI_STATUS SetPositionXyza(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA,
|
||||||
HSI_STATUS GetPositionR(UINT AxisTypes, double &PositionR, double &Time);
|
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
|
||||||
HSI_STATUS SetPositionR(UINT AxisTypes, double PositionR, HSI_MOTION_AXIS_R_MOVE_TYPE DirectionType, bool bWait);
|
HSI_STATUS SetPositionXyzCache(UINT AxisTypes, HSI_MOTION_MOVE_TYPE eType, int DataCount, Point* CacheData);
|
||||||
HSI_STATUS SetCircleInterpolate(double PositionX, double PositionY, double PositionZ);
|
HSI_STATUS GetPositionR(UINT AxisTypes, double& PositionR, double& Time);
|
||||||
|
HSI_STATUS SetPositionR(UINT AxisTypes, double PositionR, HSI_MOTION_AXIS_R_MOVE_TYPE DirectionType, bool bWait);
|
||||||
|
HSI_STATUS SetCircleInterpolate(double PositionX, double PositionY, double PositionZ);
|
||||||
HSI_STATUS Load_EF3_Motion_Inifile(CString GoogolIniFile);
|
HSI_STATUS Load_EF3_Motion_Inifile(CString GoogolIniFile);
|
||||||
HSI_STATUS Load_EF3_Config_Inifile(CString GoogolIniFile);
|
HSI_STATUS Load_EF3_Config_Inifile(CString GoogolIniFile);
|
||||||
HSI_STATUS AbortMotion();
|
HSI_STATUS AbortMotion();
|
||||||
@@ -194,280 +208,283 @@ public:
|
|||||||
HSI_STATUS GetDIO(UINT IOChannel, UINT& _Status);
|
HSI_STATUS GetDIO(UINT IOChannel, UINT& _Status);
|
||||||
HSI_STATUS SetDIO(UINT IOChannel, UINT _Status);
|
HSI_STATUS SetDIO(UINT IOChannel, UINT _Status);
|
||||||
HSI_STATUS GetAxisStatus(int* _Status);
|
HSI_STATUS GetAxisStatus(int* _Status);
|
||||||
HSI_STATUS GetAppPath(CString &Path);
|
HSI_STATUS GetAppPath(CString& Path);
|
||||||
virtual HSI_STATUS Shutdown();
|
HSI_STATUS Shutdown() override;
|
||||||
|
|
||||||
HSI_STATUS IsSupportedEx(UINT AxisTypes, UINT &Types);
|
HSI_STATUS IsSupportedEx(UINT AxisTypes, UINT& Types);
|
||||||
HSI_STATUS StartupEx(UINT AxisTypes, bool bHome);
|
HSI_STATUS StartupEx(UINT AxisTypes, bool bHome);
|
||||||
HSI_STATUS GetScaleResolutionEx(UINT AxisTypes, double &Scale);
|
HSI_STATUS GetScaleResolutionEx(UINT AxisTypes, double& Scale);
|
||||||
HSI_STATUS SetScaleResolutionEx(UINT AxisTypes, double Scale);
|
HSI_STATUS SetScaleResolutionEx(UINT AxisTypes, double Scale);
|
||||||
HSI_STATUS GetPositionEx(UINT AxisTypes, double &Position, double &Time);
|
HSI_STATUS GetPositionEx(UINT AxisTypes, double& Position, double& Time);
|
||||||
HSI_STATUS SetPositionStep(UINT AxisTypes, double Position, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
HSI_STATUS SetPositionStep(UINT AxisTypes, double Position, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||||
HSI_STATUS SetPositionEx(UINT AxisTypes, double Position, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
HSI_STATUS SetPositionEx(UINT AxisTypes, double Position, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||||
HSI_STATUS GetSpeedEx(UINT AxisTypes, double &Speed);
|
HSI_STATUS GetSpeedEx(UINT AxisTypes, double& Speed);
|
||||||
HSI_STATUS SetSpeedEx(UINT AxisTypes, double Speed);
|
HSI_STATUS SetSpeedEx(UINT AxisTypes, double Speed);
|
||||||
HSI_STATUS GetAccelerationEx(UINT AxisTypes, double &Accel);
|
HSI_STATUS GetAccelerationEx(UINT AxisTypes, double& Accel);
|
||||||
HSI_STATUS SetAccelerationEx(UINT AxisTypes, double Accel);
|
HSI_STATUS SetAccelerationEx(UINT AxisTypes, double Accel);
|
||||||
|
|
||||||
HSI_STATUS SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor,int triggleMode, double* Intensities);
|
HSI_STATUS SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor, int triggleMode,
|
||||||
HSI_STATUS DCCPPStartPoint(double *startPoint);
|
double* Intensities);
|
||||||
|
HSI_STATUS DCCPPStartPoint(double* startPoint);
|
||||||
HSI_STATUS DCCScanSetData(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis);
|
HSI_STATUS DCCScanSetData(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis);
|
||||||
HSI_STATUS DCCScanStart();
|
HSI_STATUS DCCScanStart();
|
||||||
HSI_STATUS DCCScanStop();
|
HSI_STATUS DCCScanStop();
|
||||||
HSI_STATUS DCCForLightPlate();
|
HSI_STATUS DCCForLightPlate();
|
||||||
|
|
||||||
HSI_STATUS IOStep(bool RunSts);
|
HSI_STATUS IOStep(bool RunSts);
|
||||||
HSI_STATUS IOprogram(byte* SendData,int length);
|
HSI_STATUS IOprogram(byte* SendData, int length);
|
||||||
|
|
||||||
HSI_STATUS FindOriginTest(bool state);
|
HSI_STATUS FindOriginTest(bool state);
|
||||||
|
|
||||||
HSI_STATUS StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea,int filterTime1, int filterTime2,int pluseSumDis);
|
HSI_STATUS StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, int filterTime1, int filterTime2,
|
||||||
|
int pluseSumDis);
|
||||||
HSI_STATUS SendBinResult(int* BinResult);
|
HSI_STATUS SendBinResult(int* BinResult);
|
||||||
HSI_STATUS GetTriggleCount(int* nCount, int& nArea);
|
HSI_STATUS GetTriggleCount(int* nCount, int& nArea);
|
||||||
HSI_STATUS GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData, int num);
|
HSI_STATUS GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData,
|
||||||
HSI_STATUS GlueDispenser(int* index, int* cirdirection , double* gluePos, int num);
|
int num);
|
||||||
|
HSI_STATUS GlueDispenser(int* index, int* cirdirection, double* gluePos, int num);
|
||||||
HSI_STATUS GlueDispenserStart(double xOffset, double yOffset, double qOffset);
|
HSI_STATUS GlueDispenserStart(double xOffset, double yOffset, double qOffset);
|
||||||
HSI_STATUS GetPntsDistance(double& ptpDistance,int& spTimeCount);
|
HSI_STATUS GetPntsDistance(double& ptpDistance, int& spTimeCount);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static int m_Thread_State;
|
static int m_Thread_State;
|
||||||
static HANDLE m_Thread_Id;
|
static HANDLE m_Thread_Id;
|
||||||
static HANDLE m_Thread_Mutex;
|
static HANDLE m_Thread_Mutex;
|
||||||
static HANDLE m_hTriggerEvent;
|
static HANDLE m_hTriggerEvent;
|
||||||
//用于IO发消息的线程
|
//用于IO发消息的线程
|
||||||
static int m_Thread_StateIO;
|
static int m_Thread_StateIO;
|
||||||
static HANDLE m_Thread_IdIO;
|
static HANDLE m_Thread_IdIO;
|
||||||
static HANDLE m_Thread_MutexIO;
|
static HANDLE m_Thread_MutexIO;
|
||||||
static HANDLE m_hTriggerEventIO;
|
static HANDLE m_hTriggerEventIO;
|
||||||
|
|
||||||
//读取EF3的数据状态
|
//读取EF3的数据状态
|
||||||
static int m_Thread_StateData;
|
static int m_Thread_StateData;
|
||||||
static HANDLE m_Thread_IdData;
|
static HANDLE m_Thread_IdData;
|
||||||
static HANDLE m_Thread_MutexData;
|
static HANDLE m_Thread_MutexData;
|
||||||
static HANDLE m_hTriggerEventData;
|
static HANDLE m_hTriggerEventData;
|
||||||
|
|
||||||
//读取EF3的探针状态
|
//读取EF3的探针状态
|
||||||
static int m_Thread_StateProbe;
|
static int m_Thread_StateProbe;
|
||||||
static HANDLE m_Thread_IdProbe;
|
static HANDLE m_Thread_IdProbe;
|
||||||
static HANDLE m_Thread_MutexProbe;
|
static HANDLE m_Thread_MutexProbe;
|
||||||
static HANDLE m_hTriggerEventProbe;
|
static HANDLE m_hTriggerEventProbe;
|
||||||
|
|
||||||
//点胶运行状态
|
//点胶运行状态
|
||||||
static int bRunGlueDispenser;
|
static int bRunGlueDispenser;
|
||||||
|
|
||||||
//读取EF3的JOG stop 的状态
|
//读取EF3的JOG stop 的状态
|
||||||
static int m_Thread_StateJOGStop;
|
static int m_Thread_StateJOGStop;
|
||||||
static HANDLE m_Thread_IdJOGStop;
|
static HANDLE m_Thread_IdJOGStop;
|
||||||
static HANDLE m_Thread_MutexJOGStop;
|
static HANDLE m_Thread_MutexJOGStop;
|
||||||
static HANDLE m_hTriggerEventJOGStop;
|
static HANDLE m_hTriggerEventJOGStop;
|
||||||
|
|
||||||
static HANDLE g_RW_Data_Mutex;
|
static HANDLE g_RW_Data_Mutex;
|
||||||
static HANDLE g_WR_ToMove_Mutex;
|
static HANDLE g_WR_ToMove_Mutex;
|
||||||
static HANDLE g_Lock_JogAndTrigger;
|
static HANDLE g_Lock_JogAndTrigger;
|
||||||
|
|
||||||
double m_Resolution[5];//从1开始,0不用
|
double m_Resolution[5]; //从1开始,0不用
|
||||||
double m_N_Work_Limit[5]; //负限位
|
double m_N_Work_Limit[5]; //负限位
|
||||||
double m_P_Work_Limit[5]; //正限位
|
double m_P_Work_Limit[5]; //正限位
|
||||||
|
|
||||||
int m_Home_AddJogGears[5];
|
int m_Home_AddJogGears[5];
|
||||||
int m_Home_DecJogGears[5];
|
int m_Home_DecJogGears[5];
|
||||||
int m_Home_Time[5];
|
int m_Home_Time[5];
|
||||||
int m_SetPotion_Count[5];
|
int m_SetPotion_Count[5];
|
||||||
|
|
||||||
//定位参数
|
//定位参数
|
||||||
int m_SetPotion_StartSpeed[5];
|
int m_SetPotion_StartSpeed[5];
|
||||||
int m_SetPotion_DriveSpeed[5];
|
int m_SetPotion_DriveSpeed[5];
|
||||||
int m_SetPotion_Line[5];
|
int m_SetPotion_Line[5];
|
||||||
int m_SetPotion_Buffer[5];
|
int m_SetPotion_Buffer[5];
|
||||||
int m_SetPotion_AccCurve[5];
|
int m_SetPotion_AccCurve[5];
|
||||||
int m_SetPotion_DecCurve[5];
|
int m_SetPotion_DecCurve[5];
|
||||||
int m_SpeedAdjustPeriod[5];
|
int m_SpeedAdjustPeriod[5];
|
||||||
int m_SpeedMax[5];
|
int m_SpeedMax[5];
|
||||||
int m_stepPosition_L_speed[10];
|
int m_stepPosition_L_speed[10];
|
||||||
int m_stepPosition_H_speed[10];
|
int m_stepPosition_H_speed[10];
|
||||||
int m_stepPosition_Load[10];
|
int m_stepPosition_Load[10];
|
||||||
int m_stepPosition_acc[10];
|
int m_stepPosition_acc[10];
|
||||||
double m_PositionA;//第四轴的地位位置
|
double m_PositionA; //第四轴的地位位置
|
||||||
|
|
||||||
//jog 参数
|
//jog 参数
|
||||||
int m_JogDriveSpeed[5][5];//5:轴号,从1开始;5:档位
|
int m_JogDriveSpeed[5][5]; //5:轴号,从1开始;5:档位
|
||||||
int m_JogStartSpeed[5][5];
|
int m_JogStartSpeed[5][5];
|
||||||
int m_JogAccLine[5][5];
|
int m_JogAccLine[5][5];
|
||||||
int m_JogDecLine[5][5];
|
int m_JogDecLine[5][5];
|
||||||
int m_JogAccCurve[5][5];
|
int m_JogAccCurve[5][5];
|
||||||
int m_JogDecCurve[5][5];
|
int m_JogDecCurve[5][5];
|
||||||
int m_Jog_Auto_Focus;//变焦使用的速度
|
int m_Jog_Auto_Focus; //变焦使用的速度
|
||||||
|
|
||||||
int m_LogIsOpen[5];//是否打开记录,0为打开,非0为关闭
|
int m_LogIsOpen[5]; //是否打开记录,0为打开,非0为关闭
|
||||||
|
|
||||||
unsigned int m_precisionCount[5];
|
unsigned int m_precisionCount[5]; //回家误差脉冲个数
|
||||||
unsigned int m_precisionTime[5];
|
unsigned int m_precisionTime[5]; //超时时间(0.1ms)
|
||||||
int m_StopJogMode[5];//JOG模式采用急停还是平滑停止
|
int m_StopJogMode[5]; //JOG模式采用急停还是平滑停止
|
||||||
double m_PosThread[5];//SetpositionXyz的目标位置
|
double m_PosThread[5]; //SetpositionXyz的目标位置
|
||||||
int m_PosNow[5];//调用SetpositionXyz时,读取当前位置
|
int m_PosNow[5]; //调用SetpositionXyz时,读取当前位置
|
||||||
|
|
||||||
double targetpos_n[5];
|
double targetpos_n[5];
|
||||||
double targetpos_l[5];
|
double targetpos_l[5];
|
||||||
|
|
||||||
short m_AxisThread;
|
short m_AxisThread;
|
||||||
int m_IsExMotion; //0是xyz用的,1是单轴用的,2都不用
|
int m_IsExMotion; //0是xyz用的,1是单轴用的,2都不用
|
||||||
int m_Home_Machine_Axis[5];//用于启动时需要回原点的轴号选择
|
int m_Home_Machine_Axis[5]; //用于启动时需要回原点的轴号选择
|
||||||
int m_Home_Pos_Axis[5];//记住关闭电源时的位置,用于判断是否还需要回原点
|
int m_Home_Pos_Axis[5]; //记住关闭电源时的位置,用于判断是否还需要回原点
|
||||||
int m_IsHomeEncPos; //是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
int m_IsHomeEncPos; //是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||||
int m_IsHomePrfPos; //是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
int m_IsHomePrfPos; //是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||||
|
|
||||||
int m_IsIOFuntion;//是否启动IO功能,1为打开,0为关闭
|
int m_IsIOFuntion; //是否启动IO功能,1为打开,0为关闭
|
||||||
int m_IsStartInput;//是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
int m_IsStartInput; //是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
||||||
UINT m_StartInputPort;//外部输入按钮启动程序
|
UINT m_StartInputPort; //外部输入按钮启动程序
|
||||||
UINT m_InputStatus;
|
UINT m_InputStatus;
|
||||||
UINT m_ForStatus;
|
UINT m_ForStatus;
|
||||||
int m_Set_XYZA_Reserve;//XYZA轴方向
|
int m_Set_XYZA_Reserve; //XYZA轴方向
|
||||||
int m_motorType;//电机类型 1为伺服电机 0为步进电机
|
int m_motorType; //电机类型 1为伺服电机 0为步进电机
|
||||||
int m_setPositionDelay;//设置定位超时
|
int m_setPositionDelay; //设置定位超时
|
||||||
int m_setPositionPrecision;//设置定位精度
|
int m_setPositionPrecision; //设置定位精度
|
||||||
int m_setPositionNum;
|
int m_setPositionNum;
|
||||||
CString m_AppPath;
|
CString m_AppPath;
|
||||||
//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
|
//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
|
||||||
bool m_MSTRunFlag;
|
bool m_MSTRunFlag;
|
||||||
int m_IsUse_HSICompensation;//是否启用HSI进行定位补偿 0为不启用 1为启用 默认为0
|
int m_IsUse_HSICompensation; //是否启用HSI进行定位补偿 0为不启用 1为启用 默认为0
|
||||||
int m_Compensation_Pluse;//补偿脉冲数
|
int m_Compensation_Pluse; //补偿脉冲数
|
||||||
int m_IsHardLimit; //设备轴硬限位设置 为0表示所有轴都为软限位 1为X轴为硬限位 2为Y轴 3为XY轴 4为Z轴 7为XYZ轴 默认为7
|
int m_IsHardLimit; //设备轴硬限位设置 为0表示所有轴都为软限位 1为X轴为硬限位 2为Y轴 3为XY轴 4为Z轴 7为XYZ轴 默认为7
|
||||||
int m_IsEnableAxis; //设备启用轴设置 为0表示所有轴不启用 1为X轴启用 2为Y轴启用 3为XY轴启用 4为Z轴启用 7为XYZ轴启用 默认为7
|
int m_IsEnableAxis; //设备启用轴设置 为0表示所有轴不启用 1为X轴启用 2为Y轴启用 3为XY轴启用 4为Z轴启用 7为XYZ轴启用 默认为7
|
||||||
int m_IsUseExternalTrigger; //是否启用外触发功能 0为不启用 1为启用 默认为1
|
int m_IsUseExternalTrigger; //是否启用外触发功能 0为不启用 1为启用 默认为1
|
||||||
int m_IsUseSixRingEightArea; //是否启用六环八区灯功能 0为不启用 1为启用 2为二环八区灯 默认为0
|
int m_IsUseSixRingEightArea; //是否启用六环八区灯功能 0为不启用 1为启用 2为二环八区灯 默认为0
|
||||||
int m_SixEightSubArea[8]; //六环八区分区功能
|
int m_SixEightSubArea[8]; //六环八区分区功能
|
||||||
int m_IsUseTwentySixLight;//是否启用26路灯光 0为不启用 1位启用 默认为0
|
int m_IsUseTwentySixLight; //是否启用26路灯光 0为不启用 1位启用 默认为0
|
||||||
int m_IsUseEF3;//是否启用EF3
|
int m_IsUseEF3; //是否启用EF3
|
||||||
int m_DeviceType;//设备类型,0为通用设备,1为三激光, 2为大视野,3为转盘设备 默认为0
|
int m_DeviceType; //设备类型,0为通用设备,1为三激光, 2为大视野,3为转盘设备 默认为0
|
||||||
int m_UseAxisNum;//转盘设备使用轴号
|
int m_UseAxisNum; //转盘设备使用轴号
|
||||||
int m_IbinCount;//记录获取到的分bin数
|
int m_IbinCount; //记录获取到的分bin数
|
||||||
bool m_IsUsePPS;
|
bool m_IsUsePPS;
|
||||||
int m_iJoyStick;//遥感类型:0:无 1:老式摇杆
|
int m_iJoyStick; //摇杆类型:0:无 1:老式摇杆
|
||||||
int m_bISUseMoreLights;
|
int m_bISUseMoreLights; //更多灯光
|
||||||
int m_EF3LightType;
|
int m_EF3LightType;
|
||||||
int m_LightType;
|
int m_LightType;
|
||||||
int m_IsUseFourthSpeed;
|
int m_IsUseFourthSpeed;
|
||||||
CString m_IsOpenTCPIP[4];//可提供的tcp通信的ip
|
CString m_IsOpenTCPIP[4]; //可提供的tcp通信的ip
|
||||||
bool m_tcpCntFlag[4];
|
bool m_tcpCntFlag[4];
|
||||||
int m_selectedIndex;
|
int m_selectedIndex;
|
||||||
bool m_Led8MotionFlag[4];//是否为8路光源板
|
bool m_Led8MotionFlag[4]; //是否为8路光源板
|
||||||
int m_IsHavePattern;//是否有光栅
|
int m_IsHavePattern; //是否有光栅
|
||||||
int m_AxisHomeDirection;//轴回家时的方向
|
int m_AxisHomeDirection; //轴回家时的方向
|
||||||
int m_IsUseJerk;//是否启用急停 0为不启用 1为启用
|
int m_IsUseJerk; //是否启用急停 0为不启用 1为启用
|
||||||
DWORD t_start;//获取jog运行的开始时间
|
DWORD t_start; //获取jog运行的开始时间
|
||||||
DWORD t_end;//获取jog运行的结束时间
|
DWORD t_end; //获取jog运行的结束时间
|
||||||
DWORD set_start;//获取定位运行开始时间
|
DWORD set_start; //获取定位运行开始时间
|
||||||
DWORD set_end;//获取定位运行结束时间
|
DWORD set_end; //获取定位运行结束时间
|
||||||
//是否启用探针捕获功能,1启用,默认0关闭
|
//是否启用探针捕获功能,1启用,默认0关闭
|
||||||
int m_IsProbe;
|
int m_IsProbe;
|
||||||
//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
||||||
int m_ProbeAllAxis;
|
int m_ProbeAllAxis;
|
||||||
long m_ProbeCapturePos[5];//锁存各轴的位置
|
long m_ProbeCapturePos[5]; //锁存各轴的位置
|
||||||
double m_ProbeReturnPos;//探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
double m_ProbeReturnPos; //探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
||||||
int m_ProbeReturnSpeed;//探针触发后,轴的回退速度
|
int m_ProbeReturnSpeed; //探针触发后,轴的回退速度
|
||||||
int m_isOKGlint; //是否开启ok/ng 闪烁
|
int m_isOKGlint; //是否开启ok/ng 闪烁
|
||||||
int m_ETIPort;//外部触发拍照输入端口号
|
int m_ETIPort; //外部触发拍照输入端口号
|
||||||
int m_axisStatus;//运动各轴的状态
|
int m_axisStatus; //运动各轴的状态
|
||||||
int m_axisAlarmStatus;//轴报警状态
|
int m_axisAlarmStatus; //轴报警状态
|
||||||
int m_EF3COMPort;//EF3板com口,默认为2
|
int m_EF3COMPort; //EF3板com口,默认为2
|
||||||
int m_ForSoft;//针对使用软件 0为MST 1为Metus
|
int m_ForSoft; //针对使用软件 0为MST 1为Metus
|
||||||
int m_IsUseManualRunin;//是否开启手动插补(只针对步进电机)
|
int m_IsUseManualRunin; //是否开启手动插补(只针对步进电机)
|
||||||
|
|
||||||
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
||||||
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
||||||
int m_IsCloseRocker;
|
int m_IsCloseRocker;
|
||||||
int m_IsLightDebug;//是否不回家也能调试灯光 0为不启用 1为启用 默认为0
|
int m_IsLightDebug; //是否不回家也能调试灯光 0为不启用 1为启用 默认为0
|
||||||
int m_rockerHStartSpeed[4];//摇杆XYZ轴高初始速度
|
int m_rockerHStartSpeed[4]; //摇杆XYZ轴高初始速度
|
||||||
int m_rockerHDriveSpeed[4];//摇杆XYZ轴高驱动速度
|
int m_rockerHDriveSpeed[4]; //摇杆XYZ轴高驱动速度
|
||||||
int m_rockerLStartSpeed[4];//摇杆XYZ轴低初始速度
|
int m_rockerLStartSpeed[4]; //摇杆XYZ轴低初始速度
|
||||||
int m_rockerLDriveSpeed[4];//摇杆XYZ轴低驱动速度
|
int m_rockerLDriveSpeed[4]; //摇杆XYZ轴低驱动速度
|
||||||
int m_rockerASpeed[4]; //XYZ轴加减速1
|
int m_rockerASpeed[4]; //XYZ轴加减速1
|
||||||
int m_rockerDSpeed[4]; //XYZ轴加减速2
|
int m_rockerDSpeed[4]; //XYZ轴加减速2
|
||||||
int m_SaveAxisNum;//保存轴号
|
int m_SaveAxisNum; //保存轴号
|
||||||
int m_SaveAxisSpeed;//保存速度
|
int m_SaveAxisSpeed; //保存速度
|
||||||
bool bSaveSpeedFlag;
|
bool bSaveSpeedFlag;
|
||||||
bool fourthAxisFlag;
|
bool fourthAxisFlag;
|
||||||
bool bCircleRun;//圆弧插补
|
bool bCircleRun; //圆弧插补
|
||||||
int iCircleRunPnt[5];//圆弧插补时的圆心位置
|
int iCircleRunPnt[5]; //圆弧插补时的圆心位置
|
||||||
int jogAxisNum;//jog运动的轴号
|
int jogAxisNum; //jog运动的轴号
|
||||||
int jogspeed;
|
int jogspeed;
|
||||||
bool jogMoving;
|
bool jogMoving;
|
||||||
bool jogDirFlag;
|
bool jogDirFlag;
|
||||||
bool m_bEmergencyState;
|
bool m_bEmergencyState;
|
||||||
bool bUseGlueDispenser;//是否开启点胶
|
bool bUseGlueDispenser; //是否开启点胶
|
||||||
int m_iGlueStartSpeed;
|
int m_iGlueStartSpeed;
|
||||||
int m_iGlueDriveSpeed;
|
int m_iGlueDriveSpeed;
|
||||||
int m_iGlueAccSpeed;
|
int m_iGlueAccSpeed;
|
||||||
int GlueDispenserindexNum;//点胶段数
|
int GlueDispenserindexNum; //点胶段数
|
||||||
int GluerunCount;
|
int GluerunCount;
|
||||||
|
|
||||||
int m_iSpeedType;
|
int m_iSpeedType;
|
||||||
int m_axisDirX;//探针运动时X轴的运动方向
|
int m_axisDirX; //探针运动时X轴的运动方向
|
||||||
int m_axisDirY;//探针运动时Y轴的运动方向
|
int m_axisDirY; //探针运动时Y轴的运动方向
|
||||||
int m_axisDirZ;//探针运动时Z轴的运动方向
|
int m_axisDirZ; //探针运动时Z轴的运动方向
|
||||||
int m_probeSeekSpeed;
|
int m_probeSeekSpeed;
|
||||||
|
|
||||||
int m_isUseAport;//A串口
|
int m_isUseAport; //A串口
|
||||||
int m_portAnum;
|
int m_portAnum;
|
||||||
int m_isUseBport;//B串口
|
int m_isUseBport; //B串口
|
||||||
int m_portBnum;
|
int m_portBnum;
|
||||||
|
|
||||||
int SpCompleteTStart;
|
int SpCompleteTStart;
|
||||||
int SpCompleteTEnd;
|
int SpCompleteTEnd;
|
||||||
int SpTimeCount;
|
int SpTimeCount;
|
||||||
bool SetPotionRunEnd;
|
bool SetPotionRunEnd;
|
||||||
double PntToPntDistance;
|
double PntToPntDistance;
|
||||||
|
|
||||||
double m_LockPos[5];
|
double m_LockPos[5];
|
||||||
double m_ijk[5];
|
double m_ijk[5];
|
||||||
int m_AxisHex[5];
|
int m_AxisHex[5];
|
||||||
bool setLightFlag;
|
bool setLightFlag;
|
||||||
|
|
||||||
double m_EncPos[5];
|
double m_EncPos[5];
|
||||||
double m_PrfPos[5];
|
double m_PrfPos[5];
|
||||||
double m_PosForAllAxis[5];//记录4轴位置
|
double m_PosForAllAxis[5]; //记录4轴位置
|
||||||
bool m_bConnected;
|
bool m_bConnected;
|
||||||
int m_SendDataLength;
|
int m_SendDataLength;
|
||||||
unsigned char m_cSendData[64];
|
unsigned char m_cSendData[64];
|
||||||
unsigned char m_direct_pos;
|
unsigned char m_direct_pos;
|
||||||
unsigned char axis_start;
|
unsigned char axis_start;
|
||||||
|
|
||||||
CPSerial m_SO7_Serial;
|
CPSerial m_SO7_Serial;
|
||||||
DWORD m_WriteByte;
|
DWORD m_WriteByte;
|
||||||
BOOL Send_Command(int com, const char* _SendData, DWORD _SendDataLength);
|
BOOL Send_Command(int com, const char* _SendData, DWORD _SendDataLength);
|
||||||
BOOL Receive_Data();
|
BOOL Receive_Data();
|
||||||
bool PortInit(int iSerialComPort, int iBuadRate);
|
bool PortInit(int iSerialComPort, int iBuadRate);
|
||||||
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
||||||
DWORD m_RecvDataSize;
|
DWORD m_RecvDataSize;
|
||||||
E_EF3_HOME_STATUS CurrentHomeMachineState;
|
E_EF3_HOME_STATUS CurrentHomeMachineState;
|
||||||
|
|
||||||
//刷新探针状态
|
//刷新探针状态
|
||||||
static unsigned __stdcall m_ThreadProbe(LPVOID pThis);
|
static unsigned __stdcall m_ThreadProbe(LPVOID pThis);
|
||||||
void CreateThreadProbe();
|
void CreateThreadProbe();
|
||||||
void CloseThreadProbe();
|
void CloseThreadProbe();
|
||||||
void UpdateMotionStateProbe();
|
void UpdateMotionStateProbe();
|
||||||
|
|
||||||
//刷新位置状态
|
//刷新位置状态
|
||||||
static unsigned __stdcall m_Thread(LPVOID pThis);
|
static unsigned __stdcall m_Thread(LPVOID pThis);
|
||||||
void CreateThread();
|
void CreateThread();
|
||||||
void CloseThread();
|
void CloseThread();
|
||||||
void UpdateMotionState();
|
void UpdateMotionState();
|
||||||
void UpdateMotionStateEx();
|
void UpdateMotionStateEx();
|
||||||
void GluedispenserDone();
|
void GluedispenserDone();
|
||||||
|
|
||||||
//IO发消息使用
|
//IO发消息使用
|
||||||
static unsigned __stdcall m_ThreadIO(LPVOID pThis);
|
static unsigned __stdcall m_ThreadIO(LPVOID pThis);
|
||||||
void CreateThreadIO();
|
void CreateThreadIO();
|
||||||
void CloseThreadIO();
|
void CloseThreadIO();
|
||||||
void UpdateMotionStateIO();
|
void UpdateMotionStateIO();
|
||||||
|
|
||||||
//读取EF3的数据状态
|
//读取EF3的数据状态
|
||||||
static unsigned __stdcall m_ThreadData(LPVOID pThis);
|
static unsigned __stdcall m_ThreadData(LPVOID pThis);
|
||||||
void CreateThreadData();
|
void CreateThreadData();
|
||||||
void CloseThreadData();
|
void CloseThreadData();
|
||||||
void UpdateMotionStateData();
|
void UpdateMotionStateData();
|
||||||
|
|
||||||
//读取EF3的JOG位置 以便停止JOG运动
|
//读取EF3的JOG位置 以便停止JOG运动
|
||||||
static unsigned __stdcall m_ThreadJOGStop(LPVOID pThis);
|
static unsigned __stdcall m_ThreadJOGStop(LPVOID pThis);
|
||||||
void CreateThreadJOGStop();
|
void CreateThreadJOGStop();
|
||||||
void CloseThreadJOGStop();
|
void CloseThreadJOGStop();
|
||||||
@@ -476,12 +493,15 @@ public:
|
|||||||
void SendMsgMotionFinished();
|
void SendMsgMotionFinished();
|
||||||
void SendMsgProbeFinished();
|
void SendMsgProbeFinished();
|
||||||
VOID EventCallback(sHSIEventProperties& sEventProp);
|
VOID EventCallback(sHSIEventProperties& sEventProp);
|
||||||
int SpeedPercent(int AxisNum, double &Speed,int &DriveSpeed,int &StartSpeed, int &AccLine, int &DecLine,int &AccCurve,int &DecCurve);
|
int SpeedPercent(int AxisNum, double& Speed, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
|
||||||
bool SpeedPercentJoyStick(int AxisNum, long &Speed, int &DriveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve);
|
int& AccCurve, int& DecCurve);
|
||||||
void HomeJogGearsChoice(int AxisType, int JogGears, int &DriveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve);
|
bool SpeedPercentJoyStick(int AxisNum, long& Speed, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
|
||||||
|
int& AccCurve, int& DecCurve);
|
||||||
|
void HomeJogGearsChoice(int AxisType, int JogGears, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
|
||||||
|
int& AccCurve, int& DecCurve);
|
||||||
short AxisConvertIndex(UINT AxisTypes);
|
short AxisConvertIndex(UINT AxisTypes);
|
||||||
short IndexConvertAxis(int Index);
|
short IndexConvertAxis(int Index);
|
||||||
double LimitOver(UINT AxisTypes, double &LimitPos);
|
double LimitOver(UINT AxisTypes, double& LimitPos);
|
||||||
int P2P(short AxisNumber, long Pos, double Speed, double Acc);
|
int P2P(short AxisNumber, long Pos, double Speed, double Acc);
|
||||||
void DoEvents();
|
void DoEvents();
|
||||||
HSI_STATUS DriverAlarmStatus();
|
HSI_STATUS DriverAlarmStatus();
|
||||||
@@ -490,46 +510,44 @@ public:
|
|||||||
HSI_STATUS SpecialMotorMove(short AxisNum, double Position);
|
HSI_STATUS SpecialMotorMove(short AxisNum, double Position);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UINT ActiveAxis;
|
UINT ActiveAxis;
|
||||||
int iaxisNum;
|
int iaxisNum;
|
||||||
int iScanMotionType;
|
int iScanMotionType;
|
||||||
int iTriggleNum;
|
int iTriggleNum;
|
||||||
int iMotionDirection;
|
int iMotionDirection;
|
||||||
int begin_position[5]; //外触发到初始点需要发送的脉冲数
|
int begin_position[5]; //外触发到初始点需要发送的脉冲数
|
||||||
HINSTANCE m_Hinst;
|
HINSTANCE m_Hinst;
|
||||||
E_SO7_MOTION_TYPE CurrentMotionState;
|
E_SO7_MOTION_TYPE CurrentMotionState;
|
||||||
E_SO7_MOTION_READ_TYPE CurrentReadDataType;
|
E_SO7_MOTION_READ_TYPE CurrentReadDataType;
|
||||||
|
|
||||||
//网口通信添加
|
//网口通信添加
|
||||||
private:
|
private:
|
||||||
TCPIP_RETURN_CODE TCPConnect(int index,char* Address, u_short port);
|
TCPIP_RETURN_CODE TCPConnect(int index, char* Address, u_short port);
|
||||||
void DisConnect();
|
void DisConnect();
|
||||||
static unsigned __stdcall m_ThreadSendTCP(LPVOID pThis);
|
static unsigned __stdcall m_ThreadSendTCP(LPVOID pThis);
|
||||||
static HANDLE m_ThreadTCP_Id;
|
static HANDLE m_ThreadTCP_Id;
|
||||||
static int m_ThreadTCP_State;
|
static int m_ThreadTCP_State;
|
||||||
TCPIP_RETURN_CODE TCPSend();
|
TCPIP_RETURN_CODE TCPSend();
|
||||||
unsigned char tReciveData[TCPIP_MAX_DAT_SIZE];
|
unsigned char tReciveData[TCPIP_MAX_DAT_SIZE];
|
||||||
bool first;
|
bool first;
|
||||||
unsigned char IOdata[64];
|
unsigned char IOdata[64];
|
||||||
unsigned char Orderdata[64];
|
unsigned char Orderdata[64];
|
||||||
unsigned char IOCheck[64];
|
unsigned char IOCheck[64];
|
||||||
unsigned char TempData[64];
|
unsigned char TempData[64];
|
||||||
int OrderSend;
|
int OrderSend;
|
||||||
int IOSend;
|
int IOSend;
|
||||||
private:
|
private:
|
||||||
void Create_Thread();
|
void Create_Thread();
|
||||||
void Exit_Thread();
|
void Exit_Thread();
|
||||||
int Init_Winsock();
|
int Init_Winsock();
|
||||||
public:
|
|
||||||
unsigned char lightdata[64];
|
|
||||||
int LightSend;
|
|
||||||
public:
|
public:
|
||||||
HSI_STATUS CollectPos(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle); //位置采集打开/关闭
|
unsigned char lightdata[64];
|
||||||
|
int LightSend;
|
||||||
|
public:
|
||||||
|
HSI_STATUS CollectPos(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle); //位置采集打开/关闭
|
||||||
private:
|
private:
|
||||||
HSI_STATUS SetAllGears(); //下发所有档位数据
|
HSI_STATUS SetAllGears(); //下发所有档位数据
|
||||||
};
|
};
|
||||||
|
|
||||||
extern HSI_Motion *g_pHSI_Motion;
|
extern HSI_Motion* g_pHSI_Motion;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,23 +11,24 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_Sevenocean_EF3 *g_pHSI_Sevenocean_EF3 = nullptr;
|
HSI_Sevenocean_EF3* g_pHSI_Sevenocean_EF3 = nullptr;
|
||||||
|
|
||||||
pEventCallback HSI_Sevenocean_EF3::m_pEventCallback = nullptr;
|
pEventCallback HSI_Sevenocean_EF3::m_pEventCallback = nullptr;
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_Sevenocean_EF3::HSI_Sevenocean_EF3()
|
HSI_Sevenocean_EF3::HSI_Sevenocean_EF3()
|
||||||
{
|
{
|
||||||
hWnd = NULL;
|
hWnd = nullptr;
|
||||||
bOfflineOnly = false;
|
bOfflineOnly = false;
|
||||||
TRACE0("HSI_Sevenocean_EF3 Constructor!\n");
|
TRACE0("HSI_Sevenocean_EF3 Constructor!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_Sevenocean_EF3::~HSI_Sevenocean_EF3()
|
HSI_Sevenocean_EF3::~HSI_Sevenocean_EF3()
|
||||||
{
|
{
|
||||||
TRACE0("HSI_Sevenocean_EF3 Destructor!\n");
|
TRACE0("HSI_Sevenocean_EF3 Destructor!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
/**
|
/**
|
||||||
* HSI ³õʼ»¯
|
* HSI ³õʼ»¯
|
||||||
@@ -38,45 +39,50 @@ HSI_Sevenocean_EF3::~HSI_Sevenocean_EF3()
|
|||||||
*/
|
*/
|
||||||
HSI_STATUS HSI_Sevenocean_EF3::Startup(HWND _hWnd, bool _bOfflineOnly)
|
HSI_STATUS HSI_Sevenocean_EF3::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
hWnd = _hWnd;
|
hWnd = _hWnd;
|
||||||
bOfflineOnly = _bOfflineOnly;
|
bOfflineOnly = _bOfflineOnly;
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Sevenocean_EF3::GetMachineInfo(int &_NumMachineTypes)
|
HSI_STATUS HSI_Sevenocean_EF3::GetMachineInfo(int& _NumMachineTypes)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
_NumMachineTypes = HSI_MACHINE_EF3;
|
_NumMachineTypes = HSI_MACHINE_EF3; //»úÆ÷ÀàÐÍEF3
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Sevenocean_EF3::SetEventCallback(pEventCallback _pCallback)
|
HSI_STATUS HSI_Sevenocean_EF3::SetEventCallback(pEventCallback _pCallback)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (_pCallback)
|
if (_pCallback)
|
||||||
{
|
{
|
||||||
m_pEventCallback = _pCallback;
|
m_pEventCallback = _pCallback;
|
||||||
//sEvenProp.EventType = HSI_EVENT_FUNCTION;
|
//sEvenProp.EventType = HSI_EVENT_FUNCTION;
|
||||||
//sEvenProp.EventID = HSI_EVENT_DEBUG_LOG;
|
//sEvenProp.EventID = HSI_EVENT_DEBUG_LOG;
|
||||||
//sEvenProp.EventCallbackID = 0;
|
//sEvenProp.EventCallbackID = 0;
|
||||||
//sEvenProp.EventResponse = HSI_EVENT_FUNCTION_OK;
|
//sEvenProp.EventResponse = HSI_EVENT_FUNCTION_OK;
|
||||||
//strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Set callback succeed!");
|
//strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Set callback succeed!");
|
||||||
//EventCallback(sEvenProp);
|
//EventCallback(sEvenProp);
|
||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
VOID HSI_Sevenocean_EF3::EventCallback(sHSIEventProperties& _sEventProp)
|
VOID HSI_Sevenocean_EF3::EventCallback(sHSIEventProperties& _sEventProp)
|
||||||
{
|
{
|
||||||
if (m_pEventCallback)
|
if (m_pEventCallback)
|
||||||
{
|
{
|
||||||
m_pEventCallback(_sEventProp.EventType, _sEventProp.EventResponse, _sEventProp.EventID, _sEventProp.EventData, _sEventProp.EventCallbackID);
|
m_pEventCallback(_sEventProp.EventType, _sEventProp.EventResponse, _sEventProp.EventID, _sEventProp.EventData,
|
||||||
}
|
_sEventProp.EventCallbackID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Sevenocean_EF3::Shutdown()
|
HSI_STATUS HSI_Sevenocean_EF3::Shutdown()
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,20 +11,18 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
|
||||||
class HSI_Sevenocean_EF3 :public HSI
|
class HSI_Sevenocean_EF3 : public HSI
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HSI_Sevenocean_EF3();
|
HSI_Sevenocean_EF3();
|
||||||
~HSI_Sevenocean_EF3();
|
~HSI_Sevenocean_EF3() override;
|
||||||
virtual HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly);
|
HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly) override;
|
||||||
HSI_STATUS GetMachineInfo(int &_NumMachineTypes);
|
HSI_STATUS GetMachineInfo(int& _NumMachineTypes);
|
||||||
HSI_STATUS SetEventCallback(pEventCallback _pCallback);
|
HSI_STATUS SetEventCallback(pEventCallback _pCallback);
|
||||||
virtual HSI_STATUS Shutdown();
|
HSI_STATUS Shutdown() override;
|
||||||
static VOID EventCallback(sHSIEventProperties& sEventProp);
|
static VOID EventCallback(sHSIEventProperties& sEventProp);
|
||||||
private:
|
private:
|
||||||
static pEventCallback m_pEventCallback;
|
static pEventCallback m_pEventCallback;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern HSI_Sevenocean_EF3 *g_pHSI_Sevenocean_EF3;
|
extern HSI_Sevenocean_EF3* g_pHSI_Sevenocean_EF3;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,244 +14,247 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
void CMMIO::Init()
|
void CMMIO::Init()
|
||||||
{
|
{
|
||||||
m_RXTempPtr = NULL;
|
m_RXTempPtr = nullptr;
|
||||||
m_RXHead=NULL;
|
m_RXHead = nullptr;
|
||||||
m_RXTail=NULL;
|
m_RXTail = nullptr;
|
||||||
m_SXTempPtr = NULL;
|
m_SXTempPtr = nullptr;
|
||||||
m_SXHead=NULL;
|
m_SXHead = nullptr;
|
||||||
m_SXTail=NULL;
|
m_SXTail = nullptr;
|
||||||
CurrentPointer=0;
|
CurrentPointer = 0;
|
||||||
m_iNbMsgWaiting=0;
|
m_iNbMsgWaiting = 0;
|
||||||
m_terminator='\0';
|
m_terminator = '\0';
|
||||||
m_usesTerminator=FALSE;
|
m_usesTerminator = FALSE;
|
||||||
m_pReceiveNotify = NULL;
|
m_pReceiveNotify = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMMIO::SetCallback(CMMIO::p_fstr ptr)
|
void CMMIO::SetCallback(p_fstr ptr)
|
||||||
{
|
{
|
||||||
m_pReceiveNotify = ptr;
|
m_pReceiveNotify = ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD CMMIO::Send(CString buffer, BOOL needsResponse/*=FALSE*/)
|
DWORD CMMIO::Send(CString buffer, BOOL needsResponse/*=FALSE*/)
|
||||||
{
|
{
|
||||||
//ZH 12-12-05 EnterCriticalSection(&m_QueueLock); //ZH-122904
|
//ZH 12-12-05 EnterCriticalSection(&m_QueueLock); //ZH-122904
|
||||||
|
|
||||||
char LocBuffer[MAX_OUTPUT_BUFFER_SIZE];
|
char LocBuffer[MAX_OUTPUT_BUFFER_SIZE];
|
||||||
int length = buffer.GetLength ();
|
int length = buffer.GetLength();
|
||||||
if (length >MAX_OUTPUT_BUFFER_SIZE)
|
if (length > MAX_OUTPUT_BUFFER_SIZE)
|
||||||
{
|
{
|
||||||
length = MAX_OUTPUT_BUFFER_SIZE;
|
length = MAX_OUTPUT_BUFFER_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short* ptr = (unsigned short*)buffer.GetBuffer (MAX_OUTPUT_BUFFER_SIZE);
|
auto ptr = (unsigned short*)buffer.GetBuffer(MAX_OUTPUT_BUFFER_SIZE);
|
||||||
|
|
||||||
for (int i=0;i<length;i++)
|
for (int i = 0; i < length; i++)
|
||||||
{
|
{
|
||||||
LocBuffer[i] = (char)(ptr[i] & 0xff);
|
LocBuffer[i] = static_cast<char>(ptr[i] & 0xff);
|
||||||
}
|
}
|
||||||
DWORD res = Send(LocBuffer,length, needsResponse);
|
DWORD res = Send(LocBuffer, length, needsResponse);
|
||||||
|
|
||||||
//ZH 12-12-05 LeaveCriticalSection( &m_QueueLock ); //ZH-122904
|
//ZH 12-12-05 LeaveCriticalSection( &m_QueueLock ); //ZH-122904
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNextReceived() : Helper function, rreturns receives messages placed in the queue
|
// GetNextReceived() : Helper function, rreturns receives messages placed in the queue
|
||||||
// by LineReceive()
|
// by LineReceive()
|
||||||
//
|
//
|
||||||
int CMMIO::GetNextReceived(char *inputBuf)
|
int CMMIO::GetNextReceived(char* inputBuf)
|
||||||
{
|
{
|
||||||
struct SerialList *Free;
|
struct SerialList* Free;
|
||||||
int cnt=0;
|
int cnt = 0;
|
||||||
|
|
||||||
// If there is a previous block then delete it
|
// If there is a previous block then delete it
|
||||||
if (NULL != m_RXTempPtr)
|
if (nullptr != m_RXTempPtr)
|
||||||
delete[] m_RXTempPtr;
|
delete[] m_RXTempPtr;
|
||||||
m_RXTempPtr = NULL;
|
m_RXTempPtr = nullptr;
|
||||||
|
|
||||||
// We are messing with pointers so use the CriticalSection
|
// We are messing with pointers so use the CriticalSection
|
||||||
// EnterCriticalSection(&m_QueueLock);
|
// EnterCriticalSection(&m_QueueLock);
|
||||||
|
|
||||||
// If there any more to return
|
// If there any more to return
|
||||||
if( m_RXHead )
|
if (m_RXHead)
|
||||||
{
|
{
|
||||||
Free = m_RXHead;
|
Free = m_RXHead;
|
||||||
m_RXHead = m_RXHead->Next;
|
m_RXHead = m_RXHead->Next;
|
||||||
|
|
||||||
// Point the temp pointer at the block
|
// Point the temp pointer at the block
|
||||||
m_RXTempPtr = Free->Buffer;
|
m_RXTempPtr = Free->Buffer;
|
||||||
cnt = Free->Bytes;
|
cnt = Free->Bytes;
|
||||||
// delete the list entry
|
// delete the list entry
|
||||||
delete Free;
|
delete Free;
|
||||||
--m_iNbMsgWaiting; // mp
|
--m_iNbMsgWaiting; // mp
|
||||||
|
|
||||||
// move over the data to the user's buffer
|
// move over the data to the user's buffer
|
||||||
if (NULL != inputBuf)
|
if (nullptr != inputBuf)
|
||||||
memcpy (inputBuf, m_RXTempPtr, cnt);
|
memcpy(inputBuf, m_RXTempPtr, cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_RXHead == NULL )
|
if (m_RXHead == nullptr)
|
||||||
m_RXTail = NULL;
|
m_RXTail = nullptr;
|
||||||
|
|
||||||
// All done so out of the CriticalSection
|
// All done so out of the CriticalSection
|
||||||
// LeaveCriticalSection( &m_QueueLock );
|
// LeaveCriticalSection( &m_QueueLock );
|
||||||
|
|
||||||
return(cnt);
|
return (cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CMMIO::AddReceived( const char *Buffer,DWORD Bytes)
|
int CMMIO::AddReceived(const char* Buffer, DWORD Bytes)
|
||||||
{
|
{
|
||||||
DWORD index = 0; //primary buffer index
|
DWORD index = 0; //primary buffer index
|
||||||
struct SerialList *Ptr;
|
struct SerialList* Ptr;
|
||||||
static char Buffer2[MAX_RECIEVE_BUFFER_SIZE]; // result buffer
|
static char Buffer2[MAX_RECIEVE_BUFFER_SIZE]; // result buffer
|
||||||
static char* pBuffer2 = &Buffer2[0];
|
static char* pBuffer2 = &Buffer2[0];
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
bool bArmed;
|
bool bArmed;
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* Greg Guilbeau - 2011/08/23 */
|
/* Greg Guilbeau - 2011/08/23 */
|
||||||
/* The following line(s) have been modified to handle x64 conversion */
|
/* The following line(s) have been modified to handle x64 conversion */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* int count; */
|
/* int count; */
|
||||||
INT_PTR count;
|
INT_PTR count;
|
||||||
static int escape = 0;
|
static int escape = 0;
|
||||||
static int tilde = 0;
|
static int tilde = 0;
|
||||||
static int tildeseqcount = 0;
|
static int tildeseqcount = 0;
|
||||||
|
|
||||||
bool bDone = false;
|
bool bDone = false;
|
||||||
bool bEventRequest = false;
|
bool bEventRequest = false;
|
||||||
|
|
||||||
//TRACE(_T("AddReceived> pBuffer2 = %x\n"),pBuffer2);
|
//TRACE(_T("AddReceived> pBuffer2 = %x\n"),pBuffer2);
|
||||||
// TRACE(_T("Content %s\n"),Buffer);
|
// TRACE(_T("Content %s\n"),Buffer);
|
||||||
if (FALSE /*Bytes==0*/)
|
if (FALSE /*Bytes==0*/)
|
||||||
{
|
{
|
||||||
TRACE(_T("CMMIO> Exiting , no real input"));
|
TRACE(_T("CMMIO> Exiting , no real input"));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
bArmed = false;
|
bArmed = false;
|
||||||
|
|
||||||
for (;index<Bytes;index++)
|
for (; index < Bytes; index++)
|
||||||
{
|
{
|
||||||
c=Buffer[index] & 0xff;
|
c = Buffer[index] & 0xff;
|
||||||
//TRACE(_T("== %02x% ==\n"),c); //copy char one by one
|
//TRACE(_T("== %02x% ==\n"),c); //copy char one by one
|
||||||
*(pBuffer2++) = c ; //copy char one by one
|
*(pBuffer2++) = c; //copy char one by one
|
||||||
|
|
||||||
// check for end of packet. ignore if this is the last char anyways
|
// check for end of packet. ignore if this is the last char anyways
|
||||||
if (m_usesTerminator && c == m_terminator && (index < Bytes - 1))
|
if (m_usesTerminator && c == m_terminator && (index < Bytes - 1))
|
||||||
{
|
{
|
||||||
bArmed = TRUE;
|
bArmed = TRUE;
|
||||||
index++;
|
index++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index == Bytes)
|
if (index == Bytes)
|
||||||
bArmed = bDone = true;
|
bArmed = bDone = true;
|
||||||
|
|
||||||
// We are messing with pointers so use the CriticalSection
|
// We are messing with pointers so use the CriticalSection
|
||||||
if (bArmed )
|
if (bArmed)
|
||||||
{
|
{
|
||||||
// EnterCriticalSection(&m_QueueLock);
|
// EnterCriticalSection(&m_QueueLock);
|
||||||
//Allocate a new list and add it in
|
//Allocate a new list and add it in
|
||||||
count = pBuffer2-(&Buffer2[0]);
|
count = pBuffer2 - (&Buffer2[0]);
|
||||||
if (m_pReceiveNotify)
|
if (m_pReceiveNotify)
|
||||||
{ // send a string to callback or,
|
{
|
||||||
char* pLocalBuffer = new char[count+1];
|
// send a string to callback or,
|
||||||
if (pLocalBuffer)
|
auto pLocalBuffer = new char[count + 1];
|
||||||
{
|
if (pLocalBuffer)
|
||||||
memcpy (pLocalBuffer,Buffer2,count);
|
{
|
||||||
pLocalBuffer[count] = 0;
|
memcpy(pLocalBuffer, Buffer2, count);
|
||||||
CString LocalStr(pLocalBuffer);
|
pLocalBuffer[count] = 0;
|
||||||
(*m_pReceiveNotify)(LocalStr);
|
CString LocalStr(pLocalBuffer);
|
||||||
delete pLocalBuffer;
|
(*m_pReceiveNotify)(LocalStr);
|
||||||
}
|
delete pLocalBuffer;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{ // add it as before to received data ....
|
else
|
||||||
Ptr = new struct SerialList;
|
{
|
||||||
Ptr->Buffer = new char[count + 1 ];
|
// add it as before to received data ....
|
||||||
/************************************************************************/
|
Ptr = new struct SerialList;
|
||||||
/* Greg Guilbeau - 2011/08/23 */
|
Ptr->Buffer = new char[count + 1];
|
||||||
/* The following line(s) have been modified to handle x64 conversion */
|
/************************************************************************/
|
||||||
/************************************************************************/
|
/* Greg Guilbeau - 2011/08/23 */
|
||||||
/* Ptr->Bytes = count; */
|
/* The following line(s) have been modified to handle x64 conversion */
|
||||||
|
/************************************************************************/
|
||||||
|
/* Ptr->Bytes = count; */
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
Ptr->Bytes = WAI64bit::to32bit(count,__FILE__,__LINE__);
|
Ptr->Bytes = WAI64bit::to32bit(count,__FILE__,__LINE__);
|
||||||
#else
|
#else
|
||||||
Ptr->Bytes = count,__FILE__,__LINE__;
|
Ptr->Bytes = count,__FILE__,__LINE__;
|
||||||
#endif
|
#endif
|
||||||
Ptr->Next = NULL;
|
Ptr->Next = nullptr;
|
||||||
memcpy( Ptr->Buffer, Buffer2, count );
|
memcpy(Ptr->Buffer, Buffer2, count);
|
||||||
Ptr->Buffer[count] = 0;
|
Ptr->Buffer[count] = 0;
|
||||||
|
|
||||||
memcpy(m_sLastMessage,Buffer2,count); //copy to last message
|
memcpy(m_sLastMessage, Buffer2, count); //copy to last message
|
||||||
m_sLastMessage[count]=0;
|
m_sLastMessage[count] = 0;
|
||||||
|
|
||||||
if( m_RXTail )
|
if (m_RXTail)
|
||||||
m_RXTail->Next = Ptr;
|
m_RXTail->Next = Ptr;
|
||||||
else
|
else
|
||||||
m_RXHead = Ptr;
|
m_RXHead = Ptr;
|
||||||
m_RXTail = Ptr;
|
m_RXTail = Ptr;
|
||||||
|
|
||||||
// All done so out of the CriticalSection
|
// All done so out of the CriticalSection
|
||||||
++m_iNbMsgWaiting;
|
++m_iNbMsgWaiting;
|
||||||
}
|
}
|
||||||
// LeaveCriticalSection( &m_QueueLock );
|
// LeaveCriticalSection( &m_QueueLock );
|
||||||
pBuffer2=&Buffer2[0]; // reset out buffer
|
pBuffer2 = &Buffer2[0]; // reset out buffer
|
||||||
count = 0;
|
count = 0;
|
||||||
bEventRequest = true;
|
bEventRequest = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (!bDone);
|
while (!bDone);
|
||||||
//TRACE (_T("CMMIO> Done\n"));
|
//TRACE (_T("CMMIO> Done\n"));
|
||||||
|
|
||||||
return(TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMMIO::LineReceive(char* s, int nbCharAvail, BOOL ignoreDelimiter /*= FALSE*/)
|
void CMMIO::LineReceive(char* s, int nbCharAvail, BOOL ignoreDelimiter /*= FALSE*/)
|
||||||
{
|
{
|
||||||
if (nbCharAvail != -1)
|
if (nbCharAvail != -1)
|
||||||
{
|
{
|
||||||
//TRACE(_T("LineReceive got %d chars \n"),nbCharAvail);
|
//TRACE(_T("LineReceive got %d chars \n"),nbCharAvail);
|
||||||
char c;
|
char c;
|
||||||
for (int i=0 ; i<nbCharAvail ; i++ )
|
for (int i = 0; i < nbCharAvail; i++)
|
||||||
{
|
{
|
||||||
c=s[i];
|
c = s[i];
|
||||||
m_InputBuffer[CurrentPointer++] = c;
|
m_InputBuffer[CurrentPointer++] = c;
|
||||||
|
|
||||||
// only add a packet if we have a delimiter
|
// only add a packet if we have a delimiter
|
||||||
if ((!m_usesTerminator && i == nbCharAvail -1) || (m_usesTerminator && c == m_terminator) || ignoreDelimiter)
|
if ((!m_usesTerminator && i == nbCharAvail - 1) || (m_usesTerminator && c == m_terminator) ||
|
||||||
{
|
ignoreDelimiter)
|
||||||
m_InputBuffer[CurrentPointer] = '\0';
|
{
|
||||||
AddReceived(m_InputBuffer, CurrentPointer);
|
m_InputBuffer[CurrentPointer] = '\0';
|
||||||
CurrentPointer = 0;
|
AddReceived(m_InputBuffer, CurrentPointer);
|
||||||
}
|
CurrentPointer = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
DWORD CMMIO::Close()
|
DWORD CMMIO::Close()
|
||||||
{
|
{
|
||||||
struct SerialList *Free;
|
struct SerialList* Free;
|
||||||
|
|
||||||
// Delete the contents of the temp rx pointer if any
|
// Delete the contents of the temp rx pointer if any
|
||||||
delete[] m_RXTempPtr;
|
delete[] m_RXTempPtr;
|
||||||
m_RXTempPtr = NULL;
|
m_RXTempPtr = nullptr;
|
||||||
|
|
||||||
// Clear down all internal lists
|
// Clear down all internal lists
|
||||||
// EnterCriticalSection( &m_QueueLock );
|
// EnterCriticalSection( &m_QueueLock );
|
||||||
while( m_RXHead )
|
while (m_RXHead)
|
||||||
{
|
{
|
||||||
Free = m_RXHead;
|
Free = m_RXHead;
|
||||||
m_RXHead = m_RXHead->Next;
|
m_RXHead = m_RXHead->Next;
|
||||||
delete[] Free->Buffer;
|
delete[] Free->Buffer;
|
||||||
delete Free;
|
delete Free;
|
||||||
}
|
}
|
||||||
m_RXHead = NULL;
|
m_RXHead = nullptr;
|
||||||
|
|
||||||
// for now we are not using the Transmit list
|
// for now we are not using the Transmit list
|
||||||
#if 0
|
#if 0
|
||||||
|
|
||||||
while( m_TXHead )
|
while( m_TXHead )
|
||||||
@@ -263,11 +266,10 @@ DWORD CMMIO::Close()
|
|||||||
}
|
}
|
||||||
m_TXHead = NULL;
|
m_TXHead = NULL;
|
||||||
#endif
|
#endif
|
||||||
// LeaveCriticalSection( &m_QueueLock );
|
// LeaveCriticalSection( &m_QueueLock );
|
||||||
return(TRUE);
|
return (TRUE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// END OF BASE CLASS CMMIO
|
// END OF BASE CLASS CMMIO
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@@ -7,109 +7,120 @@
|
|||||||
|
|
||||||
#define MAX_OUTPUT_BUFFER_SIZE 2048
|
#define MAX_OUTPUT_BUFFER_SIZE 2048
|
||||||
#define MAX_RECIEVE_BUFFER_SIZE 3000
|
#define MAX_RECIEVE_BUFFER_SIZE 3000
|
||||||
|
|
||||||
// TCP, serial style routines
|
// TCP, serial style routines
|
||||||
struct SerialList
|
struct SerialList
|
||||||
{
|
{
|
||||||
struct SerialList *Next;
|
struct SerialList* Next;
|
||||||
DWORD Bytes;
|
DWORD Bytes;
|
||||||
int Item;
|
int Item;
|
||||||
char *Buffer;
|
char* Buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CMMIO
|
class CMMIO
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
// For now we are not using the transmit list
|
// For now we are not using the transmit list
|
||||||
// struct SerialList *m_TXHead;
|
// struct SerialList *m_TXHead;
|
||||||
char m_terminator;
|
char m_terminator;
|
||||||
BOOL m_usesTerminator;
|
BOOL m_usesTerminator;
|
||||||
char m_InputBuffer[MAX_RECIEVE_BUFFER_SIZE];
|
char m_InputBuffer[MAX_RECIEVE_BUFFER_SIZE];
|
||||||
int CurrentPointer;
|
int CurrentPointer;
|
||||||
char m_sLastMessage[MAX_RECIEVE_BUFFER_SIZE];
|
char m_sLastMessage[MAX_RECIEVE_BUFFER_SIZE];
|
||||||
|
|
||||||
struct SerialList *m_RXHead;
|
struct SerialList* m_RXHead;
|
||||||
struct SerialList *m_RXTail;
|
struct SerialList* m_RXTail;
|
||||||
char *m_RXTempPtr;
|
char* m_RXTempPtr;
|
||||||
CString m_LastError;
|
CString m_LastError;
|
||||||
BOOL m_hasError;
|
BOOL m_hasError;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CString m_lastErrMsg;
|
CString m_lastErrMsg;
|
||||||
int m_iNbMsgWaiting;
|
int m_iNbMsgWaiting;
|
||||||
BOOL m_UseBuffferedSend;
|
BOOL m_UseBuffferedSend;
|
||||||
CRITICAL_SECTION m_QueueLock;
|
CRITICAL_SECTION m_QueueLock; //ÁÙ½çÇø
|
||||||
CRITICAL_SECTION m_ReadLock;
|
CRITICAL_SECTION m_ReadLock;
|
||||||
CRITICAL_SECTION m_WriteLock;
|
CRITICAL_SECTION m_WriteLock;
|
||||||
|
|
||||||
struct SerialList *m_SXHead;
|
struct SerialList* m_SXHead;
|
||||||
struct SerialList *m_SXTail;
|
struct SerialList* m_SXTail;
|
||||||
char *m_SXTempPtr;
|
char* m_SXTempPtr;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void Init();
|
virtual void Init();
|
||||||
int AddReceived( const char *Buffer,DWORD Bytes); // [7/30/2004]
|
int AddReceived(const char* Buffer, DWORD Bytes); // [7/30/2004]
|
||||||
void Error(CString sErr) {
|
void Error(CString sErr)
|
||||||
TRACE(sErr);
|
{
|
||||||
m_LastError = sErr;
|
TRACE(sErr);
|
||||||
m_hasError = TRUE;
|
m_LastError = sErr;
|
||||||
}
|
m_hasError = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
virtual DWORD Close();
|
virtual DWORD Close();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CMMIO()
|
CMMIO()
|
||||||
{
|
{
|
||||||
InitializeCriticalSection( &m_QueueLock ); // Sean Flynn mutex needs to be initialized prior to attempting to lock otherwise it will core
|
InitializeCriticalSection(&m_QueueLock);
|
||||||
InitializeCriticalSection( &m_ReadLock ); // initializing here will ensure the mutex is always initialized
|
// Sean Flynn mutex needs to be initialized prior to attempting to lock otherwise it will core
|
||||||
InitializeCriticalSection( &m_WriteLock );
|
InitializeCriticalSection(&m_ReadLock); // initializing here will ensure the mutex is always initialized
|
||||||
Init();
|
InitializeCriticalSection(&m_WriteLock);
|
||||||
};
|
Init();
|
||||||
|
};
|
||||||
|
|
||||||
virtual ~CMMIO()
|
virtual ~CMMIO()
|
||||||
{
|
{
|
||||||
DeleteCriticalSection( &m_QueueLock ); // Clean up the mutexes resources when the destructor is called.
|
DeleteCriticalSection(&m_QueueLock); // Clean up the mutexes resources when the destructor is called.
|
||||||
DeleteCriticalSection( &m_ReadLock );
|
DeleteCriticalSection(&m_ReadLock);
|
||||||
DeleteCriticalSection( &m_WriteLock );
|
DeleteCriticalSection(&m_WriteLock);
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual DWORD Open() {
|
virtual DWORD Open()
|
||||||
return 0;
|
{
|
||||||
}
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL getError(CString& sErr) {
|
BOOL getError(CString& sErr)
|
||||||
BOOL hasError = m_hasError;
|
{
|
||||||
if (m_hasError)
|
BOOL hasError = m_hasError;
|
||||||
{
|
if (m_hasError)
|
||||||
sErr = m_LastError;
|
{
|
||||||
m_hasError = FALSE;
|
sErr = m_LastError;
|
||||||
}
|
m_hasError = FALSE;
|
||||||
return (hasError);
|
}
|
||||||
}
|
return (hasError);
|
||||||
|
}
|
||||||
|
|
||||||
virtual int GetNextReceived(char *inputBuf=NULL);
|
virtual int GetNextReceived(char* inputBuf = nullptr);
|
||||||
|
|
||||||
virtual int HasNextReceived(void) {
|
virtual int HasNextReceived(void)
|
||||||
return (m_RXHead ? m_RXHead->Bytes : FALSE);
|
{
|
||||||
}
|
return (m_RXHead ? m_RXHead->Bytes : FALSE);
|
||||||
virtual void SetTerminateChar(char ch) {
|
}
|
||||||
m_terminator=ch;
|
|
||||||
m_usesTerminator=TRUE;
|
|
||||||
}
|
|
||||||
virtual void LineReceive(char* s, int nbCharAvail, BOOL ignoreDelimiter = FALSE);
|
|
||||||
virtual CString GetLastErrStr() {
|
|
||||||
return m_lastErrMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef void(*p_fstr)(CString);
|
virtual void SetTerminateChar(char ch)
|
||||||
void SetCallback(p_fstr);
|
{
|
||||||
|
m_terminator = ch;
|
||||||
|
m_usesTerminator = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
virtual DWORD Send(LPCSTR buffer, int l, BOOL needsResponse=FALSE) = 0; // [8/11/2004]
|
virtual void LineReceive(char* s, int nbCharAvail, BOOL ignoreDelimiter = FALSE);
|
||||||
virtual DWORD Send(CString buffer, BOOL needsResponse=FALSE); // [8/11/2004]
|
|
||||||
|
|
||||||
virtual bool IsValid() = 0; // pure virtual function
|
virtual CString GetLastErrStr()
|
||||||
|
{
|
||||||
|
return m_lastErrMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
using p_fstr = void(*)(CString);
|
||||||
|
void SetCallback(p_fstr);
|
||||||
|
|
||||||
|
virtual DWORD Send(LPCSTR buffer, int l, BOOL needsResponse = FALSE) = 0; // [8/11/2004]
|
||||||
|
virtual DWORD Send(CString buffer, BOOL needsResponse = FALSE); // [8/11/2004]
|
||||||
|
|
||||||
|
virtual bool IsValid() = 0; // pure virtual function
|
||||||
protected:
|
protected:
|
||||||
p_fstr m_pReceiveNotify;
|
p_fstr m_pReceiveNotify;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif // CMMIO_BASE_H
|
#endif // CMMIO_BASE_H
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -31,166 +31,166 @@ unsigned int WINAPI CSerialTask(LPVOID CSerialPtr);
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Useful serial codes
|
// Useful serial codes
|
||||||
const char CS_NUL = 0;
|
const char CS_NUL = 0;
|
||||||
const char CS_SOH = 1;
|
const char CS_SOH = 1;
|
||||||
const char CS_STX = 2;
|
const char CS_STX = 2;
|
||||||
const char CS_ETX = 3;
|
const char CS_ETX = 3;
|
||||||
const char CS_EOT = 4;
|
const char CS_EOT = 4;
|
||||||
const char CS_ENQ = 5;
|
const char CS_ENQ = 5;
|
||||||
const char CS_ACK = 6;
|
const char CS_ACK = 6;
|
||||||
const char CS_BEL = 7;
|
const char CS_BEL = 7;
|
||||||
const char CS_LF = 10;
|
const char CS_LF = 10;
|
||||||
const char CS_DLE = 16;
|
const char CS_DLE = 16;
|
||||||
const char CS_X_ON = 17;
|
const char CS_X_ON = 17;
|
||||||
const char CS_X_OFF = 19;
|
const char CS_X_OFF = 19;
|
||||||
const char CS_NAK = 21;
|
const char CS_NAK = 21;
|
||||||
const char CS_ETB = 23;
|
const char CS_ETB = 23;
|
||||||
const char CS_CAN = 24;
|
const char CS_CAN = 24;
|
||||||
const char CS_ESC = 27;
|
const char CS_ESC = 27;
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Handshake settings
|
// Handshake settings
|
||||||
const int CS_HANDSHAKE_RTSCTS = 1;
|
const int CS_HANDSHAKE_RTSCTS = 1;
|
||||||
const int CS_HANDSHAKE_XONXOFF = 2;
|
const int CS_HANDSHAKE_XONXOFF = 2;
|
||||||
const int CS_HANDSHAKE_NONE = 3;
|
const int CS_HANDSHAKE_NONE = 3;
|
||||||
const int CS_HANDSHAKE_RTSCTS_DTRDSR = 4;
|
const int CS_HANDSHAKE_RTSCTS_DTRDSR = 4;
|
||||||
const int CS_HANDSHAKE_FOR_SO7 = 5;
|
const int CS_HANDSHAKE_FOR_SO7 = 5;
|
||||||
const int CS_HANDSHAKE_FOR_TRESASTR_E = 6;
|
const int CS_HANDSHAKE_FOR_TRESASTR_E = 6;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Debug constants
|
// Debug constants
|
||||||
const int CS_DEBUG_SIZE = 1024;
|
const int CS_DEBUG_SIZE = 1024;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Timeouts (ms)
|
// Timeouts (ms)
|
||||||
const int CS_DEFAULT_RX_TIMEOUT = 25;
|
const int CS_DEFAULT_RX_TIMEOUT = 25;
|
||||||
const int CS_DEFAULT_TX_TIMEOUT = 1000;
|
const int CS_DEFAULT_TX_TIMEOUT = 1000;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// The CPSerial class
|
// The CPSerial class
|
||||||
|
|
||||||
class CPSerial : public CMMIO
|
class CPSerial : public CMMIO
|
||||||
{
|
{
|
||||||
// Construction
|
// Construction
|
||||||
public:
|
public:
|
||||||
CPSerial();
|
CPSerial();
|
||||||
|
|
||||||
// Implementation
|
// Implementation
|
||||||
public:
|
public:
|
||||||
virtual ~CPSerial();
|
~CPSerial() override;
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
public:
|
public:
|
||||||
|
// Operations
|
||||||
// Operations
|
|
||||||
public:
|
public:
|
||||||
// Open the serial port ( if possible ) using the parameters set by SetPort()
|
// Open the serial port ( if possible ) using the parameters set by SetPort()
|
||||||
DWORD Open();
|
DWORD Open() override;
|
||||||
// Setup the serial port prior to opening it
|
// Setup the serial port prior to opening it
|
||||||
int SetPort( int Port, int Baud = 0, char Parity = 0, int Bits = 0,
|
int SetPort(int Port, int Baud = 0, char Parity = 0, int Bits = 0,
|
||||||
int StopBits = 0, int HandShake = 0 );
|
int StopBits = 0, int HandShake = 0);
|
||||||
// Set up the port timeouts
|
// Set up the port timeouts
|
||||||
void SetTimeouts( int RXTimeout = CS_DEFAULT_RX_TIMEOUT,
|
void SetTimeouts(int RXTimeout = CS_DEFAULT_RX_TIMEOUT,
|
||||||
int TXTimeout = CS_DEFAULT_TX_TIMEOUT );
|
int TXTimeout = CS_DEFAULT_TX_TIMEOUT);
|
||||||
// Get the serial port settings
|
// Get the serial port settings
|
||||||
void GetPortData( int *Port, int *Baud, char *Parity, int *Bits,
|
void GetPortData(int* Port, int* Baud, char* Parity, int* Bits,
|
||||||
int *StopBits, int *HandShake );
|
int* StopBits, int* HandShake);
|
||||||
// Test if the serial port is open
|
// Test if the serial port is open
|
||||||
bool IsValid() {
|
bool IsValid() override
|
||||||
return IsOpen()!=0;
|
{
|
||||||
}
|
return IsOpen() != 0;
|
||||||
int IsOpen( void );
|
}
|
||||||
// Close the serial port
|
|
||||||
DWORD Close( void );
|
|
||||||
// Flush all data in any serial port buffers
|
|
||||||
int FlushPort( void );
|
|
||||||
// Attempt to read the specified number of bytes
|
|
||||||
DWORD ReadPort( char *Buffer, DWORD Bytes );
|
|
||||||
DWORD ReadPort( CString &Buffer, DWORD Bytes );
|
|
||||||
// Attempt to write the specified number of bytes
|
|
||||||
DWORD WritePort( const char *Buffer, DWORD Bytes );
|
|
||||||
DWORD SendWriteFile(const char *Buffer, DWORD Bytes);
|
|
||||||
// Send the specifed number of bytes out when possible
|
|
||||||
int Transmit( const char *Buffer, DWORD Bytes );
|
|
||||||
// Add a block of data to the internal list of receieved blocks
|
|
||||||
int AddReceived( const char *Buffer, DWORD Bytes );
|
|
||||||
// Get the next block of data added with AddReceived()
|
|
||||||
// char *GetNextReceived( void );
|
|
||||||
// Find the maximum port number available
|
|
||||||
int MaxPort( void );
|
|
||||||
// Add text to the debug output
|
|
||||||
void AddToDebug( const char *Ptr, DWORD BytesToCopy, int State );
|
|
||||||
// Attach this serial port to a debug window
|
|
||||||
//CSerialRaw *AttachWnd( CWnd *Wnd );
|
|
||||||
// Convert ascii hex into an int
|
|
||||||
int HexToInt( char *Data, int Bytes );
|
|
||||||
|
|
||||||
virtual DWORD Send(LPCSTR buffer, int l, BOOL needsResponse=FALSE);
|
int IsOpen(void);
|
||||||
//virtual DWORD Send(CString what);
|
// Close the serial port
|
||||||
|
DWORD Close(void) override;
|
||||||
|
// Flush all data in any serial port buffers
|
||||||
|
int FlushPort(void);
|
||||||
|
// Attempt to read the specified number of bytes
|
||||||
|
DWORD ReadPort(char* Buffer, DWORD Bytes);
|
||||||
|
DWORD ReadPort(CString& Buffer, DWORD Bytes);
|
||||||
|
// Attempt to write the specified number of bytes
|
||||||
|
DWORD WritePort(const char* Buffer, DWORD Bytes);
|
||||||
|
DWORD SendWriteFile(const char* Buffer, DWORD Bytes);
|
||||||
|
// Send the specifed number of bytes out when possible
|
||||||
|
int Transmit(const char* Buffer, DWORD Bytes);
|
||||||
|
// Add a block of data to the internal list of receieved blocks
|
||||||
|
int AddReceived(const char* Buffer, DWORD Bytes);
|
||||||
|
// Get the next block of data added with AddReceived()
|
||||||
|
// char *GetNextReceived( void );
|
||||||
|
// Find the maximum port number available
|
||||||
|
int MaxPort(void);
|
||||||
|
// Add text to the debug output
|
||||||
|
void AddToDebug(const char* Ptr, DWORD BytesToCopy, int State);
|
||||||
|
// Attach this serial port to a debug window
|
||||||
|
//CSerialRaw *AttachWnd( CWnd *Wnd );
|
||||||
|
// Convert ascii hex into an int
|
||||||
|
int HexToInt(char* Data, int Bytes);
|
||||||
|
|
||||||
// Called when data is received on the serial port
|
DWORD Send(LPCSTR buffer, int l, BOOL needsResponse = FALSE) override;
|
||||||
virtual void OnReceive( void );
|
//virtual DWORD Send(CString what);
|
||||||
// Called when data has been sent using the Transmit() function
|
|
||||||
virtual void OnTransmit( int Item, DWORD Error );
|
// Called when data is received on the serial port
|
||||||
|
virtual void OnReceive(void);
|
||||||
|
// Called when data has been sent using the Transmit() function
|
||||||
|
virtual void OnTransmit(int Item, DWORD Error);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Private so no comment :-)
|
// Private so no comment :-)
|
||||||
void RegisterDebugWindow(void);
|
void RegisterDebugWindow(void);
|
||||||
void SendBuffer(int Next);
|
void SendBuffer(int Next);
|
||||||
void ReceiveTask(void);
|
void ReceiveTask(void);
|
||||||
int ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,int HandShake);
|
int ProgramPort(int Port, int Baud, char Parity, int Bits, int StopBits, int HandShake);
|
||||||
int ReadBlock(BYTE *abIn, int MaxLength);
|
int ReadBlock(BYTE* abIn, int MaxLength);
|
||||||
// Attributes
|
// Attributes
|
||||||
protected:
|
protected:
|
||||||
int m_RXTimeout;
|
int m_RXTimeout;
|
||||||
int m_TXTimeout;
|
int m_TXTimeout;
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
private:
|
private:
|
||||||
char m_Parity;
|
char m_Parity;
|
||||||
// char m_DebugData[CS_DEBUG_SIZE];
|
// char m_DebugData[CS_DEBUG_SIZE];
|
||||||
// char m_DebugState[CS_DEBUG_SIZE];
|
// char m_DebugState[CS_DEBUG_SIZE];
|
||||||
// char *m_RXTempPtr;
|
// char *m_RXTempPtr;
|
||||||
int m_Port;
|
int m_Port;
|
||||||
int m_Baud;
|
int m_Baud;
|
||||||
int m_Bits;
|
int m_Bits;
|
||||||
int m_StopBits;
|
int m_StopBits;
|
||||||
int m_HandShake;
|
int m_HandShake;
|
||||||
int m_MaxTXRetries;
|
int m_MaxTXRetries;
|
||||||
int m_DebugInPtr;
|
int m_DebugInPtr;
|
||||||
int m_DebugCount;
|
int m_DebugCount;
|
||||||
int m_Item;
|
int m_Item;
|
||||||
// struct SerialList *m_TXHead;
|
// struct SerialList *m_TXHead;
|
||||||
// struct SerialList *m_TXTail;
|
// struct SerialList *m_TXTail;
|
||||||
// struct SerialList *m_RXHead;
|
// struct SerialList *m_RXHead;
|
||||||
// struct SerialList *m_RXTail;
|
// struct SerialList *m_RXTail;
|
||||||
OVERLAPPED m_ReceiveOLap;
|
OVERLAPPED m_ReceiveOLap;
|
||||||
OVERLAPPED m_TransmitOLap;
|
OVERLAPPED m_TransmitOLap;
|
||||||
OVERLAPPED m_ReadOLap;
|
OVERLAPPED m_ReadOLap;
|
||||||
OVERLAPPED m_WriteOLap;
|
OVERLAPPED m_WriteOLap;
|
||||||
HANDLE m_PortHandle;
|
HANDLE m_PortHandle;
|
||||||
HANDLE m_ThreadHandle;
|
HANDLE m_ThreadHandle;
|
||||||
HANDLE m_ReceiveTaskEvent;
|
HANDLE m_ReceiveTaskEvent;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend unsigned int WINAPI CSerialTask(LPVOID CSerialPtr);
|
friend unsigned int WINAPI CSerialTask(LPVOID CSerialPtr);
|
||||||
|
|
||||||
//Buffer for incomming commands:
|
//Buffer for incomming commands:
|
||||||
int CurrentPointer;
|
int CurrentPointer;
|
||||||
BOOL m_IsWrtingData;
|
BOOL m_IsWrtingData;
|
||||||
public:
|
public:
|
||||||
HANDLE m_hWaitCMMResponse;
|
HANDLE m_hWaitCMMResponse;
|
||||||
HANDLE m_hNewRx;
|
HANDLE m_hNewRx;
|
||||||
|
|
||||||
// BV Nov 2001: Made public
|
// BV Nov 2001: Made public
|
||||||
// CRITICAL_SECTION m_QueueLock;
|
// CRITICAL_SECTION m_QueueLock;
|
||||||
BOOL m_iRecvState;
|
BOOL m_iRecvState;
|
||||||
INT m_iRecvBytes;
|
INT m_iRecvBytes;
|
||||||
INT m_iRecvCount;
|
INT m_iRecvCount;
|
||||||
unsigned char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
unsigned char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CMMIO_SERIAL_H
|
#endif // CMMIO_SERIAL_H
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.28307.2092
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WAI64Bit", "WAI64Bit.vcxproj", "{6936CAC7-384F-4EDC-BF1E-D549E2A37465}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{6936CAC7-384F-4EDC-BF1E-D549E2A37465}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {4ABC1E18-7BBA-419C-A745-5EBAF5089457}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
@@ -5,109 +5,113 @@
|
|||||||
|
|
||||||
void CLogger::SendAtTime(const TCHAR* buffer)
|
void CLogger::SendAtTime(const TCHAR* buffer)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_lockLogger);
|
EnterCriticalSection(&m_lockLogger);
|
||||||
if (!m_File)
|
if (!m_File)
|
||||||
{
|
{
|
||||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
||||||
}
|
}
|
||||||
if(m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
CTime _cTime=CTime::GetCurrentTime();
|
CTime _cTime = CTime::GetCurrentTime();
|
||||||
CString csTime=_cTime.Format("[%m/%d %H:%M] ");
|
CString csTime = _cTime.Format("[%m/%d %H:%M] ");
|
||||||
_ftprintf(m_File,_T("%s"), csTime);
|
_ftprintf(m_File,_T("%s"), csTime);
|
||||||
_ftprintf(m_File, _T("%s\r\n"), buffer);
|
_ftprintf(m_File, _T("%s\r\n"), buffer);
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&m_lockLogger);
|
LeaveCriticalSection(&m_lockLogger);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLogger::Send(LPCTSTR format, ...)
|
void CLogger::Send(LPCTSTR format, ...)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_lockLogger);
|
EnterCriticalSection(&m_lockLogger);
|
||||||
if (!m_File)
|
if (!m_File)
|
||||||
{
|
{
|
||||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
||||||
}
|
}
|
||||||
int length = 0;
|
int length = 0;
|
||||||
va_list list;
|
va_list list;
|
||||||
va_start(list, format);
|
va_start(list, format);
|
||||||
length = vswprintf_s(m_Str,5000, format, list);
|
length = vswprintf_s(m_Str, 5000, format, list);
|
||||||
if(m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
_ftprintf(m_File, m_Str);
|
_ftprintf(m_File, m_Str);
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&m_lockLogger);
|
LeaveCriticalSection(&m_lockLogger);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLogger::SendAndFlush(LPCTSTR format, ...)
|
void CLogger::SendAndFlush(LPCTSTR format, ...)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_lockLogger);
|
EnterCriticalSection(&m_lockLogger);
|
||||||
int length = 0;
|
int length = 0;
|
||||||
va_list list;
|
va_list list;
|
||||||
|
|
||||||
va_start(list, format);
|
va_start(list, format);
|
||||||
length = vswprintf_s(m_Str2,5000, format, list);
|
length = vswprintf_s(m_Str2, 5000, format, list);
|
||||||
Send(m_Str2);
|
Send(m_Str2);
|
||||||
|
|
||||||
if(m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
fclose(m_File);
|
fclose(m_File);
|
||||||
m_File = NULL;
|
m_File = nullptr;
|
||||||
if(m_FileName.GetLength() > 0)
|
if (m_FileName.GetLength() > 0)
|
||||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&m_lockLogger);
|
LeaveCriticalSection(&m_lockLogger);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_lockLogger);
|
EnterCriticalSection(&m_lockLogger);
|
||||||
if (!IsEnabledLog)
|
if (!IsEnabledLog)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!m_File)
|
if (!m_File)
|
||||||
{
|
{
|
||||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYNO);
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYNO);
|
||||||
}
|
}
|
||||||
if(m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
int length = 0;
|
int length = 0;
|
||||||
va_list list;
|
va_list list;
|
||||||
va_start(list, format);
|
va_start(list, format);
|
||||||
length = vswprintf_s(m_Str2,5000, format, list);
|
length = vswprintf_s(m_Str2, 5000, format, list);
|
||||||
CTime _cTime=CTime::GetCurrentTime();
|
CTime _cTime = CTime::GetCurrentTime();
|
||||||
CString csTime=_cTime.Format("[%m/%d %H:%M:%S");
|
CString csTime = _cTime.Format("[%m/%d %H:%M:%S");
|
||||||
struct _timeb timebuffer;
|
struct _timeb timebuffer;
|
||||||
_ftime64_s(&timebuffer);
|
_ftime64_s(&timebuffer);
|
||||||
if (m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
_ftprintf(m_File, _T("%s:%03d] "), csTime, timebuffer.millitm);
|
_ftprintf(m_File, _T("%s:%03d] "), csTime, timebuffer.millitm);
|
||||||
}
|
}
|
||||||
if (m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
_ftprintf(m_File, m_Str2);
|
_ftprintf(m_File, m_Str2);
|
||||||
}
|
}
|
||||||
if (m_File)
|
if (m_File)
|
||||||
{
|
{
|
||||||
fclose(m_File);
|
fclose(m_File);
|
||||||
m_File = NULL;
|
m_File = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&m_lockLogger);
|
LeaveCriticalSection(&m_lockLogger);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLogger::SendAndFlushPerMode(LPCTSTR format, ...)
|
void CLogger::SendAndFlushPerMode(LPCTSTR format, ...)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_lockLogger);
|
EnterCriticalSection(&m_lockLogger);
|
||||||
int length = 0;
|
int length = 0;
|
||||||
va_list list;
|
va_list list;
|
||||||
|
|
||||||
va_start(list, format);
|
va_start(list, format);
|
||||||
length = vswprintf_s(m_Str2,5000, format, list);
|
length = vswprintf_s(m_Str2, 5000, format, list);
|
||||||
Send(m_Str2);
|
Send(m_Str2);
|
||||||
|
|
||||||
if((m_lLogMask & LOGFLUSH) && m_File)
|
if ((m_lLogMask & LOGFLUSH) && m_File)
|
||||||
{
|
{
|
||||||
fclose(m_File);
|
fclose(m_File);
|
||||||
m_File = NULL;
|
m_File = nullptr;
|
||||||
if(m_FileName.GetLength() > 0)
|
if (m_FileName.GetLength() > 0)
|
||||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&m_lockLogger);
|
LeaveCriticalSection(&m_lockLogger);
|
||||||
}
|
}
|
||||||
|
|||||||
+43
-42
@@ -9,54 +9,55 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
const long LOGINIT = 0x0001;
|
const long LOGINIT = 0x0001;
|
||||||
const long LOGACTIONS = 0x0002;
|
const long LOGACTIONS = 0x0002;
|
||||||
const long LOGCOMM = 0x0004;
|
const long LOGCOMM = 0x0004;
|
||||||
const long LOGFLUSH = 0x0008;
|
const long LOGFLUSH = 0x0008;
|
||||||
|
|
||||||
class CLogger
|
class CLogger
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
CLogger(CString m_Name)
|
||||||
|
{
|
||||||
|
IsEnabledLog = false;
|
||||||
|
m_File = nullptr;
|
||||||
|
CString Path = _T(""); // Speed optimization - noticed slow in GlowCode
|
||||||
|
if (Path.IsEmpty())
|
||||||
|
{
|
||||||
|
CString tmpPath;
|
||||||
|
GetModuleFileName(nullptr, tmpPath.GetBuffer(255), 255);
|
||||||
|
tmpPath.ReleaseBuffer();
|
||||||
|
tmpPath.TrimRight();
|
||||||
|
int nLastSlash = tmpPath.ReverseFind('\\');
|
||||||
|
if (nLastSlash >= 0)
|
||||||
|
tmpPath = tmpPath.Left(nLastSlash);
|
||||||
|
else
|
||||||
|
tmpPath.Empty();
|
||||||
|
Path = tmpPath;
|
||||||
|
}
|
||||||
|
m_FileName = Path + m_Name; //_T("\\SO7_SSILog.txt");
|
||||||
|
m_lLogMask = 0;
|
||||||
|
InitializeCriticalSection(&m_lockLogger);
|
||||||
|
};
|
||||||
|
|
||||||
CLogger(CString m_Name)
|
~CLogger()
|
||||||
{
|
{
|
||||||
IsEnabledLog = false;
|
if (m_File)
|
||||||
m_File = NULL;
|
fclose(m_File);
|
||||||
CString Path=_T(""); // Speed optimization - noticed slow in GlowCode
|
DeleteCriticalSection(&m_lockLogger);
|
||||||
if (Path.IsEmpty()) {
|
};
|
||||||
CString tmpPath;
|
void SendAtTime(const TCHAR* buffer);
|
||||||
GetModuleFileName(NULL,tmpPath.GetBuffer(255),255);
|
void Send(LPCTSTR, ...);
|
||||||
tmpPath.ReleaseBuffer();
|
void SendAndFlush(LPCTSTR, ...);
|
||||||
tmpPath.TrimRight();
|
void SendAndFlushPerMode(LPCTSTR, ...);
|
||||||
int nLastSlash = tmpPath.ReverseFind('\\');
|
void SendAndFlushWithTime(LPCTSTR, ...);
|
||||||
if (nLastSlash >= 0)
|
bool IsEnabledLog/* = false*/; //是否启用日志
|
||||||
tmpPath = tmpPath.Left(nLastSlash);
|
CString m_FileName;
|
||||||
else
|
long m_lLogMask;
|
||||||
tmpPath.Empty();
|
FILE* m_File;
|
||||||
Path=tmpPath;
|
_TCHAR m_Str[20000];
|
||||||
}
|
_TCHAR m_Str2[20000];
|
||||||
m_FileName=Path + m_Name;//_T("\\SO7_SSILog.txt");
|
CRITICAL_SECTION m_lockLogger;
|
||||||
m_lLogMask=0;
|
|
||||||
InitializeCriticalSection(&m_lockLogger);
|
|
||||||
};
|
|
||||||
~CLogger()
|
|
||||||
{
|
|
||||||
if (m_File)
|
|
||||||
fclose(m_File);
|
|
||||||
DeleteCriticalSection(&m_lockLogger);
|
|
||||||
};
|
|
||||||
void SendAtTime(const TCHAR* buffer);
|
|
||||||
void Send(LPCTSTR, ...);
|
|
||||||
void SendAndFlush(LPCTSTR, ...);
|
|
||||||
void SendAndFlushPerMode(LPCTSTR, ...);
|
|
||||||
void SendAndFlushWithTime(LPCTSTR, ...);
|
|
||||||
bool IsEnabledLog/* = false*/;//是否启用日志
|
|
||||||
CString m_FileName;
|
|
||||||
long m_lLogMask;
|
|
||||||
FILE *m_File;
|
|
||||||
_TCHAR m_Str[20000];
|
|
||||||
_TCHAR m_Str2[20000];
|
|
||||||
CRITICAL_SECTION m_lockLogger;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // !defined(LOGGER_H__5142BB38_5565_4124_88A4_56EA08298154__INCLUDED_)
|
#endif // !defined(LOGGER_H__5142BB38_5565_4124_88A4_56EA08298154__INCLUDED_)
|
||||||
|
|||||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,2 @@
|
|||||||
|
#TargetFrameworkVersion=:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native64Bit:WindowsTargetPlatformVersion=10.0.19041.0
|
||||||
|
Debug|x64|E:\HexagonProjects\2022-05-直线电机平台\LM-Middleware\|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -12,5 +12,5 @@
|
|||||||
#define HSI_VERSION_REVNUM
|
#define HSI_VERSION_REVNUM
|
||||||
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
|
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
|
||||||
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
|
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
|
||||||
#define HSI_FILE_DESCRIPTION "2022.10.10 / 11:34 "
|
#define HSI_FILE_DESCRIPTION "2022.10.12 / 9:29 "
|
||||||
#define HSI_FILE_CSDESCRIPTION _T("2022.10.10 / 11:34 ")
|
#define HSI_FILE_CSDESCRIPTION _T("2022.10.12 / 9:29 ")
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.19041.0
|
|
||||||
Debug|x64|E:\HexagonProjects\2022-05-直线电机平台\LM-Middleware\|
|
|
||||||
@@ -32,7 +32,7 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
|||||||
public static extern Def.HSI_STATUS Shutdown();
|
public static extern Def.HSI_STATUS Shutdown();
|
||||||
|
|
||||||
// <<<< Out Interfacess
|
// <<<< Out Interfacess
|
||||||
|
//事件回调函数
|
||||||
public static void EventCallback(Def.HSI_EVENT_TYPE eventType, Def.HSI_EVENT_RESPONSE_TYPE responseType,
|
public static void EventCallback(Def.HSI_EVENT_TYPE eventType, Def.HSI_EVENT_RESPONSE_TYPE responseType,
|
||||||
uint eventId, string eventData, ref uint eventCallbackId)
|
uint eventId, string eventData, ref uint eventCallbackId)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
[JOG_SPEED]
|
||||||
|
JOG_SPEED_0=200.0
|
||||||
|
JOG_STARTV_0=5.0
|
||||||
|
JOG_ACC_TIME_0=0.2
|
||||||
|
JOG_DEC_TIME_0=0.2
|
||||||
|
JOG_SPEED_1=150.0
|
||||||
|
JOG_STARTV_1=5.0
|
||||||
|
JOG_ACC_TIME_1=0.2
|
||||||
|
JOG_DEC_TIME_1=0.2
|
||||||
|
JOG_SPEED_2=100.0
|
||||||
|
JOG_STARTV_2=5.0
|
||||||
|
JOG_ACC_TIME_2=0.2
|
||||||
|
JOG_DEC_TIME_2=0.2
|
||||||
|
JOG_SPEED_3=10.0
|
||||||
|
JOG_STARTV_3=5.0
|
||||||
|
JOG_ACC_TIME_3=0.2
|
||||||
|
JOG_DEC_TIME_3=0.2
|
||||||
|
JOG_SPEED_4=1.0
|
||||||
|
JOG_STARTV_4=5.0
|
||||||
|
JOG_ACC_TIME_4=0.2
|
||||||
|
JOG_DEC_TIME_4=0.2
|
||||||
|
[RESOLUTION]
|
||||||
|
SCALE_RESOLUTION_1=0.0004
|
||||||
|
SCALE_RESOLUTION_2=0.0004
|
||||||
|
SCALE_RESOLUTION_3=0.0004
|
||||||
|
SCALE_RESOLUTION_4=0.0004
|
||||||
|
[LIMIT]
|
||||||
|
NEG_WORKING_LIMIT_1=-260.0
|
||||||
|
POS_WORKING_LIMIT_1=40.0
|
||||||
|
NEG_WORKING_LIMIT_2=-40.0
|
||||||
|
POS_WORKING_LIMIT_2=160.0
|
||||||
|
NEG_WORKING_LIMIT_3=-40.0
|
||||||
|
POS_WORKING_LIMIT_3=160.0
|
||||||
|
NEG_WORKING_LIMIT_4=-40.0
|
||||||
|
POS_WORKING_LIMIT_4=200.0
|
||||||
|
[HOME]
|
||||||
|
HOME_HIGH_SPEED_1=200.0
|
||||||
|
HOME_HIGH_ACC_TIME_1=0.2
|
||||||
|
HOME_LOW_SPEED_1=180.0
|
||||||
|
HOME_LOW_ACC_TIME_1=0.2
|
||||||
|
HOME_TIME_1=1000
|
||||||
|
HOME_MACHINE_AXIS_1=1
|
||||||
|
HOME_HIGH_SPEED_2=200.0
|
||||||
|
HOME_HIGH_ACC_TIME_2=0.2
|
||||||
|
HOME_LOW_SPEED_2=180.0
|
||||||
|
HOME_LOW_ACC_TIME_2=0.2
|
||||||
|
HOME_TIME_2=1000
|
||||||
|
HOME_MACHINE_AXIS_2=1
|
||||||
|
HOME_HIGH_SPEED_3=200.0
|
||||||
|
HOME_HIGH_ACC_TIME_3=0.2
|
||||||
|
HOME_LOW_SPEED_3=180.0
|
||||||
|
HOME_LOW_ACC_TIME_3=0.2
|
||||||
|
HOME_TIME_3=1000
|
||||||
|
HOME_MACHINE_AXIS_3=1
|
||||||
|
HOME_HIGH_SPEED_4=200.0
|
||||||
|
HOME_HIGH_ACC_TIME_4=0.2
|
||||||
|
HOME_LOW_SPEED_4=180.0
|
||||||
|
HOME_LOW_ACC_TIME_4=0.2
|
||||||
|
HOME_TIME_4=1000
|
||||||
|
HOME_MACHINE_AXIS_4=0
|
||||||
|
[PRECISION]
|
||||||
|
PRECISION_COUNT_1=8
|
||||||
|
PRECISION_TIME_1=20000
|
||||||
|
PRECISION_COUNT_2=8
|
||||||
|
PRECISION_TIME_2=20000
|
||||||
|
PRECISION_COUNT_3=8
|
||||||
|
PRECISION_TIME_3=20000
|
||||||
|
PRECISION_COUNT_4=8
|
||||||
|
PRECISION_TIME_4=20000
|
||||||
|
[SET_POSITION_SPEED]
|
||||||
|
SET_POTION_SPEED_1=500.0
|
||||||
|
SET_POTION_ACC_TIME_1=0.2
|
||||||
|
SET_POTION_DEC_TIME_1=0.2
|
||||||
|
SET_POSITION_COUNT_1=240
|
||||||
|
SET_POTION_SPEED_2=500.0
|
||||||
|
SET_POTION_ACC_TIME_2=0.2
|
||||||
|
SET_POTION_DEC_TIME_2=0.2
|
||||||
|
SET_POSITION_COUNT_2=240
|
||||||
|
SET_POTION_SPEED_3=500.0
|
||||||
|
SET_POTION_ACC_TIME_3=0.2
|
||||||
|
SET_POTION_DEC_TIME_3=0.2
|
||||||
|
SET_POSITION_COUNT_3=240
|
||||||
|
SET_POTION_SPEED_4=500.0
|
||||||
|
SET_POTION_ACC_TIME_4=0.2
|
||||||
|
SET_POTION_DEC_TIME_4=0.2
|
||||||
|
SET_POSITION_COUNT_4=240
|
||||||
@@ -0,0 +1,337 @@
|
|||||||
|
[JOG_SPEED]
|
||||||
|
JOG速度(pulse/ms)
|
||||||
|
JOG_SPEED_0=200.0
|
||||||
|
JOG_SPEED_1=150.0
|
||||||
|
JOG_SPEED_2=50
|
||||||
|
JOG_SPEED_3=10
|
||||||
|
JOG_SPEED_4=1
|
||||||
|
|
||||||
|
;JOG加速度(pulse/ms^2)
|
||||||
|
JOG_ACC_0=2.0
|
||||||
|
JOG_ACC_1=2.0
|
||||||
|
JOG_ACC_2=2.0
|
||||||
|
JOG_ACC_3=1.0
|
||||||
|
JOG_ACC_4=1.0
|
||||||
|
|
||||||
|
;JOG减速度(pulse/ms^2)
|
||||||
|
JOG_DEC_0=2.0
|
||||||
|
JOG_DEC_1=2.0
|
||||||
|
JOG_DEC_2=2.0
|
||||||
|
JOG_DEC_3=1.0
|
||||||
|
JOG_DEC_4=1.0
|
||||||
|
|
||||||
|
;JOG模式采用急停还是平滑停止,0是平滑停止1为急停,默认0
|
||||||
|
JOG_STOP_MODE_1=0
|
||||||
|
JOG_STOP_MODE_2=0
|
||||||
|
JOG_STOP_MODE_3=0
|
||||||
|
JOG_STOP_MODE_4=0
|
||||||
|
JOG_STOP_MODE_5=0
|
||||||
|
JOG_STOP_MODE_6=0
|
||||||
|
JOG_STOP_MODE_7=0
|
||||||
|
JOG_STOP_MODE_8=0
|
||||||
|
JOG_STOP_MODE=0
|
||||||
|
JOG_SPEED_GEAR0_1=200.0
|
||||||
|
JOG_ACC_GEAR0_1=2.0
|
||||||
|
JOG_DEC_GEAR0_1=2.0
|
||||||
|
JOG_SPEED_GEAR0_2=200.0
|
||||||
|
JOG_ACC_GEAR0_2=2.0
|
||||||
|
JOG_DEC_GEAR0_2=2.0
|
||||||
|
JOG_SPEED_GEAR0_3=150.0
|
||||||
|
JOG_ACC_GEAR0_3=2.0
|
||||||
|
JOG_DEC_GEAR0_3=2.0
|
||||||
|
JOG_SPEED_GEAR0_4=200.0
|
||||||
|
JOG_ACC_GEAR0_4=2.0
|
||||||
|
JOG_DEC_GEAR0_4=2.0
|
||||||
|
JOG_SPEED_GEAR1_1=100.0
|
||||||
|
JOG_ACC_GEAR1_1=2.0
|
||||||
|
JOG_DEC_GEAR1_1=2.0
|
||||||
|
JOG_SPEED_GEAR1_2=100.0
|
||||||
|
JOG_ACC_GEAR1_2=2.0
|
||||||
|
JOG_DEC_GEAR1_2=2.0
|
||||||
|
JOG_SPEED_GEAR1_3=80.0
|
||||||
|
JOG_ACC_GEAR1_3=2.0
|
||||||
|
JOG_DEC_GEAR1_3=2.0
|
||||||
|
JOG_SPEED_GEAR1_4=100.0
|
||||||
|
JOG_ACC_GEAR1_4=2.0
|
||||||
|
JOG_DEC_GEAR1_4=2.0
|
||||||
|
JOG_SPEED_GEAR2_1=50.0
|
||||||
|
JOG_ACC_GEAR2_1=2.0
|
||||||
|
JOG_DEC_GEAR2_1=2.0
|
||||||
|
JOG_SPEED_GEAR2_2=50.0
|
||||||
|
JOG_ACC_GEAR2_2=2.0
|
||||||
|
JOG_DEC_GEAR2_2=2.0
|
||||||
|
JOG_SPEED_GEAR2_3=50.0
|
||||||
|
JOG_ACC_GEAR2_3=2.0
|
||||||
|
JOG_DEC_GEAR2_3=2.0
|
||||||
|
JOG_SPEED_GEAR2_4=50.0
|
||||||
|
JOG_ACC_GEAR2_4=2.0
|
||||||
|
JOG_DEC_GEAR2_4=2.0
|
||||||
|
JOG_SPEED_GEAR3_1=10.0
|
||||||
|
JOG_ACC_GEAR3_1=1.0
|
||||||
|
JOG_DEC_GEAR3_1=1.0
|
||||||
|
JOG_SPEED_GEAR3_2=10.0
|
||||||
|
JOG_ACC_GEAR3_2=1.0
|
||||||
|
JOG_DEC_GEAR3_2=1.0
|
||||||
|
JOG_SPEED_GEAR3_3=10.0
|
||||||
|
JOG_ACC_GEAR3_3=1.0
|
||||||
|
JOG_DEC_GEAR3_3=1.0
|
||||||
|
JOG_SPEED_GEAR3_4=10.0
|
||||||
|
JOG_ACC_GEAR3_4=1.0
|
||||||
|
JOG_DEC_GEAR3_4=1.0
|
||||||
|
JOG_SPEED_GEAR4_1=1.0
|
||||||
|
JOG_ACC_GEAR4_1=1.0
|
||||||
|
JOG_DEC_GEAR4_1=1.0
|
||||||
|
JOG_SPEED_GEAR4_2=1.0
|
||||||
|
JOG_ACC_GEAR4_2=1.0
|
||||||
|
JOG_DEC_GEAR4_2=1.0
|
||||||
|
JOG_SPEED_GEAR4_3=1.0
|
||||||
|
JOG_ACC_GEAR4_3=1.0
|
||||||
|
JOG_DEC_GEAR4_3=1.0
|
||||||
|
JOG_SPEED_GEAR4_4=1.0
|
||||||
|
JOG_ACC_GEAR4_4=1.0
|
||||||
|
JOG_DEC_GEAR4_4=1.0
|
||||||
|
|
||||||
|
;0:都使用(正常情况) 1:只使用灯,而不使用控制器;默认0
|
||||||
|
[USE_LIGHT]
|
||||||
|
ONLY_USE_LIGHT=0
|
||||||
|
|
||||||
|
[RESOLUTION]
|
||||||
|
;光栅尺的分辨率(mm)
|
||||||
|
SCALE_RESOLUTION_1=0.0004
|
||||||
|
SCALE_RESOLUTION_2=0.0004
|
||||||
|
SCALE_RESOLUTION_3=0.0004
|
||||||
|
SCALE_RESOLUTION_4=0.0004
|
||||||
|
SCALE_RESOLUTION_5=0.0004
|
||||||
|
SCALE_RESOLUTION_6=0.0004
|
||||||
|
SCALE_RESOLUTION_7=0.0004
|
||||||
|
SCALE_RESOLUTION_8=0.0004
|
||||||
|
|
||||||
|
[LIMIT]
|
||||||
|
;负限位(mm),必须是负数
|
||||||
|
NEG_WORKING_LIMIT_1=-260.0
|
||||||
|
NEG_WORKING_LIMIT_2=-40.0
|
||||||
|
NEG_WORKING_LIMIT_3=-40.0
|
||||||
|
NEG_WORKING_LIMIT_4=-40.0
|
||||||
|
NEG_WORKING_LIMIT_5=-40.0
|
||||||
|
NEG_WORKING_LIMIT_6=-40.0
|
||||||
|
NEG_WORKING_LIMIT_7=-40.0
|
||||||
|
NEG_WORKING_LIMIT_8=-40.0
|
||||||
|
|
||||||
|
;正限位(mm),必须是正数
|
||||||
|
POS_WORKING_LIMIT_1=40.0
|
||||||
|
POS_WORKING_LIMIT_2=160.0
|
||||||
|
POS_WORKING_LIMIT_3=160.0
|
||||||
|
POS_WORKING_LIMIT_4=200.0
|
||||||
|
POS_WORKING_LIMIT_5=200.0
|
||||||
|
POS_WORKING_LIMIT_6=200.0
|
||||||
|
POS_WORKING_LIMIT_7=200.0
|
||||||
|
POS_WORKING_LIMIT_8=200.0
|
||||||
|
|
||||||
|
[HOME]
|
||||||
|
;选择需要回家的轴号,改为1
|
||||||
|
HOME_MACHINE_AXIS_1=1
|
||||||
|
HOME_MACHINE_AXIS_2=1
|
||||||
|
HOME_MACHINE_AXIS_3=1
|
||||||
|
HOME_MACHINE_AXIS_4=0
|
||||||
|
HOME_MACHINE_AXIS_5=0
|
||||||
|
HOME_MACHINE_AXIS_6=0
|
||||||
|
HOME_MACHINE_AXIS_7=0
|
||||||
|
HOME_MACHINE_AXIS_8=0
|
||||||
|
|
||||||
|
;是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||||
|
IS_HOME_ENC_POS=0
|
||||||
|
;是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||||
|
IS_HOME_PRF_POS=1
|
||||||
|
|
||||||
|
;关闭电源时记住当前的位置,用于判断是否需要回家
|
||||||
|
HOME_POS_AXIS_1=0
|
||||||
|
HOME_POS_AXIS_2=0
|
||||||
|
HOME_POS_AXIS_3=0
|
||||||
|
HOME_POS_AXIS_4=0
|
||||||
|
HOME_POS_AXIS_5=0
|
||||||
|
HOME_POS_AXIS_6=0
|
||||||
|
HOME_POS_AXIS_7=0
|
||||||
|
HOME_POS_AXIS_8=0
|
||||||
|
|
||||||
|
;回家第一段速度(pulse/ms)
|
||||||
|
HOME_HIGH_SPEED_1=200.0
|
||||||
|
HOME_HIGH_SPEED_2=200.0
|
||||||
|
HOME_HIGH_SPEED_3=200.0
|
||||||
|
HOME_HIGH_SPEED_4=200.0
|
||||||
|
HOME_HIGH_SPEED_5=200.0
|
||||||
|
HOME_HIGH_SPEED_6=200.0
|
||||||
|
HOME_HIGH_SPEED_7=200.0
|
||||||
|
HOME_HIGH_SPEED_8=200.0
|
||||||
|
|
||||||
|
;回家第一段加速度(pulse/ms^2)
|
||||||
|
HOME_HIGH_ACC_1=2.0
|
||||||
|
HOME_HIGH_ACC_2=2.0
|
||||||
|
HOME_HIGH_ACC_3=2.0
|
||||||
|
HOME_HIGH_ACC_4=2.0
|
||||||
|
HOME_HIGH_ACC_5=2.0
|
||||||
|
HOME_HIGH_ACC_6=2.0
|
||||||
|
HOME_HIGH_ACC_7=2.0
|
||||||
|
HOME_HIGH_ACC_8=2.0
|
||||||
|
|
||||||
|
;回家第二段速度(pulse/ms)
|
||||||
|
HOME_LOW_SPEED_1=180.0
|
||||||
|
HOME_LOW_SPEED_2=180.0
|
||||||
|
HOME_LOW_SPEED_3=180.0
|
||||||
|
HOME_LOW_SPEED_4=180.0
|
||||||
|
HOME_LOW_SPEED_5=180.0
|
||||||
|
HOME_LOW_SPEED_6=180.0
|
||||||
|
HOME_LOW_SPEED_7=180.0
|
||||||
|
HOME_LOW_SPEED_8=180.0
|
||||||
|
|
||||||
|
;回家第二段加速度(pulse/ms^2)
|
||||||
|
HOME_LOW_ACC_1=2.0
|
||||||
|
HOME_LOW_ACC_2=2.0
|
||||||
|
HOME_LOW_ACC_3=2.0
|
||||||
|
HOME_LOW_ACC_4=2.0
|
||||||
|
HOME_LOW_ACC_5=2.0
|
||||||
|
HOME_LOW_ACC_6=2.0
|
||||||
|
HOME_LOW_ACC_7=2.0
|
||||||
|
HOME_LOW_ACC_8=2.0
|
||||||
|
|
||||||
|
;回家延时时间(ms)
|
||||||
|
HOME_TIME_1=1000
|
||||||
|
HOME_TIME_2=1000
|
||||||
|
HOME_TIME_3=1000
|
||||||
|
HOME_TIME_4=1000
|
||||||
|
HOME_TIME_5=1000
|
||||||
|
HOME_TIME_6=1000
|
||||||
|
HOME_TIME_7=1000
|
||||||
|
HOME_TIME_8=1000
|
||||||
|
|
||||||
|
[PID]
|
||||||
|
;PID比例调节,应从0.01递增开始调试
|
||||||
|
PID_KP_1=1.20
|
||||||
|
PID_KP_2=1.20
|
||||||
|
PID_KP_3=1.20
|
||||||
|
PID_KP_4=1.20
|
||||||
|
PID_KP_5=1.20
|
||||||
|
PID_KP_6=1.20
|
||||||
|
PID_KP_7=1.20
|
||||||
|
PID_KP_8=1.20
|
||||||
|
|
||||||
|
[PRECISION]
|
||||||
|
;超时时间(0.1ms)
|
||||||
|
PRECISION_TIME_1=20000
|
||||||
|
PRECISION_TIME_2=20000
|
||||||
|
PRECISION_TIME_3=20000
|
||||||
|
PRECISION_TIME_4=20000
|
||||||
|
PRECISION_TIME_5=20000
|
||||||
|
PRECISION_TIME_6=20000
|
||||||
|
PRECISION_TIME_7=20000
|
||||||
|
PRECISION_TIME_8=20000
|
||||||
|
|
||||||
|
;回家误差脉冲个数
|
||||||
|
PRECISION_COUNT_1=8
|
||||||
|
PRECISION_COUNT_2=8
|
||||||
|
PRECISION_COUNT_3=8
|
||||||
|
PRECISION_COUNT_4=8
|
||||||
|
PRECISION_COUNT_5=8
|
||||||
|
PRECISION_COUNT_6=8
|
||||||
|
PRECISION_COUNT_7=8
|
||||||
|
PRECISION_COUNT_8=8
|
||||||
|
|
||||||
|
[SET_POSITION_SPEED]
|
||||||
|
;XYZ定位的合成速度(pulse/ms)
|
||||||
|
SET_POTION_SPEED_1=500.0
|
||||||
|
SET_POTION_SPEED_2=500.0
|
||||||
|
SET_POTION_SPEED_3=500.0
|
||||||
|
SET_POTION_SPEED_4=500.0
|
||||||
|
SET_POTION_SPEED_5=500.0
|
||||||
|
SET_POTION_SPEED_6=500.0
|
||||||
|
SET_POTION_SPEED_7=500.0
|
||||||
|
SET_POTION_SPEED_8=500.0
|
||||||
|
|
||||||
|
;XYZ定位的合成加速度(pulse/ms^2)
|
||||||
|
SET_POTION_ACC_1=2.5
|
||||||
|
SET_POTION_ACC_2=2.5
|
||||||
|
SET_POTION_ACC_3=2.5
|
||||||
|
SET_POTION_ACC_4=2.5
|
||||||
|
SET_POTION_ACC_5=2.5
|
||||||
|
SET_POTION_ACC_6=2.5
|
||||||
|
SET_POTION_ACC_7=2.5
|
||||||
|
SET_POTION_ACC_8=2.5
|
||||||
|
|
||||||
|
;XYZ定位的终点速度(pulse/ms)
|
||||||
|
SET_POTION_DEC_1=1.0
|
||||||
|
SET_POTION_DEC_2=1.0
|
||||||
|
SET_POTION_DEC_3=1.0
|
||||||
|
SET_POTION_DEC_4=1.0
|
||||||
|
SET_POTION_DEC_5=1.0
|
||||||
|
SET_POTION_DEC_6=1.0
|
||||||
|
SET_POTION_DEC_7=1.0
|
||||||
|
SET_POTION_DEC_8=1.0
|
||||||
|
|
||||||
|
;XYZ定到位判断次数
|
||||||
|
SET_POSITION_COUNT_1=240
|
||||||
|
SET_POSITION_COUNT_2=240
|
||||||
|
SET_POSITION_COUNT_3=240
|
||||||
|
SET_POSITION_COUNT_4=240
|
||||||
|
SET_POSITION_COUNT_5=240
|
||||||
|
SET_POSITION_COUNT_6=240
|
||||||
|
SET_POSITION_COUNT_7=240
|
||||||
|
SET_POSITION_COUNT_8=240
|
||||||
|
|
||||||
|
[COMPORT]
|
||||||
|
;灯光控制器类型选择
|
||||||
|
;0:启用c++调用灯光,不使用STM32 USB控制时,需要把下面的IS_STM32_USB改为0
|
||||||
|
;1:wpf直接调用;
|
||||||
|
;2:DP光源控制器;
|
||||||
|
;3:旧的6环8区为3(环形可调);
|
||||||
|
;4:新的6环8区为4(扇区可调);
|
||||||
|
;5:STM32控制器,IP地址在exe目录下的CameraNum.ini中修改
|
||||||
|
;61:OPT光源控制器网络模式(111ms),IP地址在exe目录下的CameraNum.ini中修改,串口模式62(44ms);
|
||||||
|
COM_PORT_CPP_WPF=0
|
||||||
|
|
||||||
|
;使用stm32时,是否使用USB通讯,使用该功能时,COM_PORT_CPP_WPF必须等于0
|
||||||
|
IS_STM32_USB=0
|
||||||
|
|
||||||
|
;是否打开第一个串,1为打开,0为关闭,默认0
|
||||||
|
IS_COM_PORT_A=0
|
||||||
|
COM_PORT_A=2
|
||||||
|
COM_PORT_A_LED_1=1
|
||||||
|
COM_PORT_A_LED_2=1
|
||||||
|
COM_PORT_A_LED_3=1
|
||||||
|
COM_PORT_A_LED_4=1
|
||||||
|
|
||||||
|
;是否打开第二个串,1为打开,0为关闭,默认0
|
||||||
|
IS_COM_PORT_B=0
|
||||||
|
COM_PORT_B=6
|
||||||
|
COM_PORT_B_LED_1=1
|
||||||
|
COM_PORT_B_LED_2=1
|
||||||
|
COM_PORT_B_LED_3=1
|
||||||
|
COM_PORT_B_LED_4=1
|
||||||
|
|
||||||
|
[TRRIGER]
|
||||||
|
;线性点触发的脉冲宽度
|
||||||
|
LINEAR_PULSE_WIDTH=500
|
||||||
|
|
||||||
|
;等间距触发的脉冲宽度
|
||||||
|
INTERVAL_PULSE_WIDTH=500
|
||||||
|
|
||||||
|
;手动触发
|
||||||
|
HOLD_TIME=150
|
||||||
|
|
||||||
|
[LOG]
|
||||||
|
;是否打开记录,默认0为关闭,1位打开,;LOG_IS_OPEN_0为是否打开记录功能
|
||||||
|
LOG_IS_OPEN_0=1
|
||||||
|
LOG_IS_OPEN_1=1
|
||||||
|
LOG_IS_OPEN_2=1
|
||||||
|
LOG_IS_OPEN_3=1
|
||||||
|
LOG_IS_OPEN_4=0
|
||||||
|
LOG_IS_OPEN_5=0
|
||||||
|
LOG_IS_OPEN_6=0
|
||||||
|
LOG_IS_OPEN_7=0
|
||||||
|
LOG_IS_OPEN_8=0
|
||||||
|
;是否启用统计定位函数的时间日志,1:启用,默认0关闭
|
||||||
|
LOG2_IS_OPEN=0
|
||||||
|
;定位几次后,计算这几次总共用时mm,默认4次
|
||||||
|
LOG_SUM_COUNT=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -0,0 +1,337 @@
|
|||||||
|
[JOG_SPEED]
|
||||||
|
JOG速度(pulse/ms)
|
||||||
|
JOG_SPEED_0=200.0
|
||||||
|
JOG_SPEED_1=150.0
|
||||||
|
JOG_SPEED_2=50
|
||||||
|
JOG_SPEED_3=10
|
||||||
|
JOG_SPEED_4=1
|
||||||
|
|
||||||
|
;JOG加速度(pulse/ms^2)
|
||||||
|
JOG_ACC_0=2.0
|
||||||
|
JOG_ACC_1=2.0
|
||||||
|
JOG_ACC_2=2.0
|
||||||
|
JOG_ACC_3=1.0
|
||||||
|
JOG_ACC_4=1.0
|
||||||
|
|
||||||
|
;JOG减速度(pulse/ms^2)
|
||||||
|
JOG_DEC_0=2.0
|
||||||
|
JOG_DEC_1=2.0
|
||||||
|
JOG_DEC_2=2.0
|
||||||
|
JOG_DEC_3=1.0
|
||||||
|
JOG_DEC_4=1.0
|
||||||
|
|
||||||
|
;JOG模式采用急停还是平滑停止,0是平滑停止1为急停,默认0
|
||||||
|
JOG_STOP_MODE_1=0
|
||||||
|
JOG_STOP_MODE_2=0
|
||||||
|
JOG_STOP_MODE_3=0
|
||||||
|
JOG_STOP_MODE_4=0
|
||||||
|
JOG_STOP_MODE_5=0
|
||||||
|
JOG_STOP_MODE_6=0
|
||||||
|
JOG_STOP_MODE_7=0
|
||||||
|
JOG_STOP_MODE_8=0
|
||||||
|
JOG_STOP_MODE=0
|
||||||
|
JOG_SPEED_GEAR0_1=200.0
|
||||||
|
JOG_ACC_GEAR0_1=2.0
|
||||||
|
JOG_DEC_GEAR0_1=2.0
|
||||||
|
JOG_SPEED_GEAR0_2=200.0
|
||||||
|
JOG_ACC_GEAR0_2=2.0
|
||||||
|
JOG_DEC_GEAR0_2=2.0
|
||||||
|
JOG_SPEED_GEAR0_3=150.0
|
||||||
|
JOG_ACC_GEAR0_3=2.0
|
||||||
|
JOG_DEC_GEAR0_3=2.0
|
||||||
|
JOG_SPEED_GEAR0_4=200.0
|
||||||
|
JOG_ACC_GEAR0_4=2.0
|
||||||
|
JOG_DEC_GEAR0_4=2.0
|
||||||
|
JOG_SPEED_GEAR1_1=100.0
|
||||||
|
JOG_ACC_GEAR1_1=2.0
|
||||||
|
JOG_DEC_GEAR1_1=2.0
|
||||||
|
JOG_SPEED_GEAR1_2=100.0
|
||||||
|
JOG_ACC_GEAR1_2=2.0
|
||||||
|
JOG_DEC_GEAR1_2=2.0
|
||||||
|
JOG_SPEED_GEAR1_3=80.0
|
||||||
|
JOG_ACC_GEAR1_3=2.0
|
||||||
|
JOG_DEC_GEAR1_3=2.0
|
||||||
|
JOG_SPEED_GEAR1_4=100.0
|
||||||
|
JOG_ACC_GEAR1_4=2.0
|
||||||
|
JOG_DEC_GEAR1_4=2.0
|
||||||
|
JOG_SPEED_GEAR2_1=50.0
|
||||||
|
JOG_ACC_GEAR2_1=2.0
|
||||||
|
JOG_DEC_GEAR2_1=2.0
|
||||||
|
JOG_SPEED_GEAR2_2=50.0
|
||||||
|
JOG_ACC_GEAR2_2=2.0
|
||||||
|
JOG_DEC_GEAR2_2=2.0
|
||||||
|
JOG_SPEED_GEAR2_3=50.0
|
||||||
|
JOG_ACC_GEAR2_3=2.0
|
||||||
|
JOG_DEC_GEAR2_3=2.0
|
||||||
|
JOG_SPEED_GEAR2_4=50.0
|
||||||
|
JOG_ACC_GEAR2_4=2.0
|
||||||
|
JOG_DEC_GEAR2_4=2.0
|
||||||
|
JOG_SPEED_GEAR3_1=10.0
|
||||||
|
JOG_ACC_GEAR3_1=1.0
|
||||||
|
JOG_DEC_GEAR3_1=1.0
|
||||||
|
JOG_SPEED_GEAR3_2=10.0
|
||||||
|
JOG_ACC_GEAR3_2=1.0
|
||||||
|
JOG_DEC_GEAR3_2=1.0
|
||||||
|
JOG_SPEED_GEAR3_3=10.0
|
||||||
|
JOG_ACC_GEAR3_3=1.0
|
||||||
|
JOG_DEC_GEAR3_3=1.0
|
||||||
|
JOG_SPEED_GEAR3_4=10.0
|
||||||
|
JOG_ACC_GEAR3_4=1.0
|
||||||
|
JOG_DEC_GEAR3_4=1.0
|
||||||
|
JOG_SPEED_GEAR4_1=1.0
|
||||||
|
JOG_ACC_GEAR4_1=1.0
|
||||||
|
JOG_DEC_GEAR4_1=1.0
|
||||||
|
JOG_SPEED_GEAR4_2=1.0
|
||||||
|
JOG_ACC_GEAR4_2=1.0
|
||||||
|
JOG_DEC_GEAR4_2=1.0
|
||||||
|
JOG_SPEED_GEAR4_3=1.0
|
||||||
|
JOG_ACC_GEAR4_3=1.0
|
||||||
|
JOG_DEC_GEAR4_3=1.0
|
||||||
|
JOG_SPEED_GEAR4_4=1.0
|
||||||
|
JOG_ACC_GEAR4_4=1.0
|
||||||
|
JOG_DEC_GEAR4_4=1.0
|
||||||
|
|
||||||
|
;0:都使用(正常情况) 1:只使用灯,而不使用控制器;默认0
|
||||||
|
[USE_LIGHT]
|
||||||
|
ONLY_USE_LIGHT=0
|
||||||
|
|
||||||
|
[RESOLUTION]
|
||||||
|
;光栅尺的分辨率(mm)
|
||||||
|
SCALE_RESOLUTION_1=0.0004
|
||||||
|
SCALE_RESOLUTION_2=0.0004
|
||||||
|
SCALE_RESOLUTION_3=0.0004
|
||||||
|
SCALE_RESOLUTION_4=0.0004
|
||||||
|
SCALE_RESOLUTION_5=0.0004
|
||||||
|
SCALE_RESOLUTION_6=0.0004
|
||||||
|
SCALE_RESOLUTION_7=0.0004
|
||||||
|
SCALE_RESOLUTION_8=0.0004
|
||||||
|
|
||||||
|
[LIMIT]
|
||||||
|
;负限位(mm),必须是负数
|
||||||
|
NEG_WORKING_LIMIT_1=-260.0
|
||||||
|
NEG_WORKING_LIMIT_2=-40.0
|
||||||
|
NEG_WORKING_LIMIT_3=-40.0
|
||||||
|
NEG_WORKING_LIMIT_4=-40.0
|
||||||
|
NEG_WORKING_LIMIT_5=-40.0
|
||||||
|
NEG_WORKING_LIMIT_6=-40.0
|
||||||
|
NEG_WORKING_LIMIT_7=-40.0
|
||||||
|
NEG_WORKING_LIMIT_8=-40.0
|
||||||
|
|
||||||
|
;正限位(mm),必须是正数
|
||||||
|
POS_WORKING_LIMIT_1=40.0
|
||||||
|
POS_WORKING_LIMIT_2=160.0
|
||||||
|
POS_WORKING_LIMIT_3=160.0
|
||||||
|
POS_WORKING_LIMIT_4=200.0
|
||||||
|
POS_WORKING_LIMIT_5=200.0
|
||||||
|
POS_WORKING_LIMIT_6=200.0
|
||||||
|
POS_WORKING_LIMIT_7=200.0
|
||||||
|
POS_WORKING_LIMIT_8=200.0
|
||||||
|
|
||||||
|
[HOME]
|
||||||
|
;选择需要回家的轴号,改为1
|
||||||
|
HOME_MACHINE_AXIS_1=1
|
||||||
|
HOME_MACHINE_AXIS_2=1
|
||||||
|
HOME_MACHINE_AXIS_3=1
|
||||||
|
HOME_MACHINE_AXIS_4=0
|
||||||
|
HOME_MACHINE_AXIS_5=0
|
||||||
|
HOME_MACHINE_AXIS_6=0
|
||||||
|
HOME_MACHINE_AXIS_7=0
|
||||||
|
HOME_MACHINE_AXIS_8=0
|
||||||
|
|
||||||
|
;是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||||
|
IS_HOME_ENC_POS=0
|
||||||
|
;是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||||
|
IS_HOME_PRF_POS=1
|
||||||
|
|
||||||
|
;关闭电源时记住当前的位置,用于判断是否需要回家
|
||||||
|
HOME_POS_AXIS_1=0
|
||||||
|
HOME_POS_AXIS_2=0
|
||||||
|
HOME_POS_AXIS_3=0
|
||||||
|
HOME_POS_AXIS_4=0
|
||||||
|
HOME_POS_AXIS_5=0
|
||||||
|
HOME_POS_AXIS_6=0
|
||||||
|
HOME_POS_AXIS_7=0
|
||||||
|
HOME_POS_AXIS_8=0
|
||||||
|
|
||||||
|
;回家第一段速度(pulse/ms)
|
||||||
|
HOME_HIGH_SPEED_1=200.0
|
||||||
|
HOME_HIGH_SPEED_2=200.0
|
||||||
|
HOME_HIGH_SPEED_3=200.0
|
||||||
|
HOME_HIGH_SPEED_4=200.0
|
||||||
|
HOME_HIGH_SPEED_5=200.0
|
||||||
|
HOME_HIGH_SPEED_6=200.0
|
||||||
|
HOME_HIGH_SPEED_7=200.0
|
||||||
|
HOME_HIGH_SPEED_8=200.0
|
||||||
|
|
||||||
|
;回家第一段加速度(pulse/ms^2)
|
||||||
|
HOME_HIGH_ACC_1=2.0
|
||||||
|
HOME_HIGH_ACC_2=2.0
|
||||||
|
HOME_HIGH_ACC_3=2.0
|
||||||
|
HOME_HIGH_ACC_4=2.0
|
||||||
|
HOME_HIGH_ACC_5=2.0
|
||||||
|
HOME_HIGH_ACC_6=2.0
|
||||||
|
HOME_HIGH_ACC_7=2.0
|
||||||
|
HOME_HIGH_ACC_8=2.0
|
||||||
|
|
||||||
|
;回家第二段速度(pulse/ms)
|
||||||
|
HOME_LOW_SPEED_1=180.0
|
||||||
|
HOME_LOW_SPEED_2=180.0
|
||||||
|
HOME_LOW_SPEED_3=180.0
|
||||||
|
HOME_LOW_SPEED_4=180.0
|
||||||
|
HOME_LOW_SPEED_5=180.0
|
||||||
|
HOME_LOW_SPEED_6=180.0
|
||||||
|
HOME_LOW_SPEED_7=180.0
|
||||||
|
HOME_LOW_SPEED_8=180.0
|
||||||
|
|
||||||
|
;回家第二段加速度(pulse/ms^2)
|
||||||
|
HOME_LOW_ACC_1=2.0
|
||||||
|
HOME_LOW_ACC_2=2.0
|
||||||
|
HOME_LOW_ACC_3=2.0
|
||||||
|
HOME_LOW_ACC_4=2.0
|
||||||
|
HOME_LOW_ACC_5=2.0
|
||||||
|
HOME_LOW_ACC_6=2.0
|
||||||
|
HOME_LOW_ACC_7=2.0
|
||||||
|
HOME_LOW_ACC_8=2.0
|
||||||
|
|
||||||
|
;回家延时时间(ms)
|
||||||
|
HOME_TIME_1=1000
|
||||||
|
HOME_TIME_2=1000
|
||||||
|
HOME_TIME_3=1000
|
||||||
|
HOME_TIME_4=1000
|
||||||
|
HOME_TIME_5=1000
|
||||||
|
HOME_TIME_6=1000
|
||||||
|
HOME_TIME_7=1000
|
||||||
|
HOME_TIME_8=1000
|
||||||
|
|
||||||
|
[PID]
|
||||||
|
;PID比例调节,应从0.01递增开始调试
|
||||||
|
PID_KP_1=1.20
|
||||||
|
PID_KP_2=1.20
|
||||||
|
PID_KP_3=1.20
|
||||||
|
PID_KP_4=1.20
|
||||||
|
PID_KP_5=1.20
|
||||||
|
PID_KP_6=1.20
|
||||||
|
PID_KP_7=1.20
|
||||||
|
PID_KP_8=1.20
|
||||||
|
|
||||||
|
[PRECISION]
|
||||||
|
;超时时间(0.1ms)
|
||||||
|
PRECISION_TIME_1=20000
|
||||||
|
PRECISION_TIME_2=20000
|
||||||
|
PRECISION_TIME_3=20000
|
||||||
|
PRECISION_TIME_4=20000
|
||||||
|
PRECISION_TIME_5=20000
|
||||||
|
PRECISION_TIME_6=20000
|
||||||
|
PRECISION_TIME_7=20000
|
||||||
|
PRECISION_TIME_8=20000
|
||||||
|
|
||||||
|
;回家误差脉冲个数
|
||||||
|
PRECISION_COUNT_1=8
|
||||||
|
PRECISION_COUNT_2=8
|
||||||
|
PRECISION_COUNT_3=8
|
||||||
|
PRECISION_COUNT_4=8
|
||||||
|
PRECISION_COUNT_5=8
|
||||||
|
PRECISION_COUNT_6=8
|
||||||
|
PRECISION_COUNT_7=8
|
||||||
|
PRECISION_COUNT_8=8
|
||||||
|
|
||||||
|
[SET_POSITION_SPEED]
|
||||||
|
;XYZ定位的合成速度(pulse/ms)
|
||||||
|
SET_POTION_SPEED_1=500.0
|
||||||
|
SET_POTION_SPEED_2=500.0
|
||||||
|
SET_POTION_SPEED_3=500.0
|
||||||
|
SET_POTION_SPEED_4=500.0
|
||||||
|
SET_POTION_SPEED_5=500.0
|
||||||
|
SET_POTION_SPEED_6=500.0
|
||||||
|
SET_POTION_SPEED_7=500.0
|
||||||
|
SET_POTION_SPEED_8=500.0
|
||||||
|
|
||||||
|
;XYZ定位的合成加速度(pulse/ms^2)
|
||||||
|
SET_POTION_ACC_1=2.5
|
||||||
|
SET_POTION_ACC_2=2.5
|
||||||
|
SET_POTION_ACC_3=2.5
|
||||||
|
SET_POTION_ACC_4=2.5
|
||||||
|
SET_POTION_ACC_5=2.5
|
||||||
|
SET_POTION_ACC_6=2.5
|
||||||
|
SET_POTION_ACC_7=2.5
|
||||||
|
SET_POTION_ACC_8=2.5
|
||||||
|
|
||||||
|
;XYZ定位的终点速度(pulse/ms)
|
||||||
|
SET_POTION_DEC_1=1.0
|
||||||
|
SET_POTION_DEC_2=1.0
|
||||||
|
SET_POTION_DEC_3=1.0
|
||||||
|
SET_POTION_DEC_4=1.0
|
||||||
|
SET_POTION_DEC_5=1.0
|
||||||
|
SET_POTION_DEC_6=1.0
|
||||||
|
SET_POTION_DEC_7=1.0
|
||||||
|
SET_POTION_DEC_8=1.0
|
||||||
|
|
||||||
|
;XYZ定到位判断次数
|
||||||
|
SET_POSITION_COUNT_1=240
|
||||||
|
SET_POSITION_COUNT_2=240
|
||||||
|
SET_POSITION_COUNT_3=240
|
||||||
|
SET_POSITION_COUNT_4=240
|
||||||
|
SET_POSITION_COUNT_5=240
|
||||||
|
SET_POSITION_COUNT_6=240
|
||||||
|
SET_POSITION_COUNT_7=240
|
||||||
|
SET_POSITION_COUNT_8=240
|
||||||
|
|
||||||
|
[COMPORT]
|
||||||
|
;灯光控制器类型选择
|
||||||
|
;0:启用c++调用灯光,不使用STM32 USB控制时,需要把下面的IS_STM32_USB改为0
|
||||||
|
;1:wpf直接调用;
|
||||||
|
;2:DP光源控制器;
|
||||||
|
;3:旧的6环8区为3(环形可调);
|
||||||
|
;4:新的6环8区为4(扇区可调);
|
||||||
|
;5:STM32控制器,IP地址在exe目录下的CameraNum.ini中修改
|
||||||
|
;61:OPT光源控制器网络模式(111ms),IP地址在exe目录下的CameraNum.ini中修改,串口模式62(44ms);
|
||||||
|
COM_PORT_CPP_WPF=0
|
||||||
|
|
||||||
|
;使用stm32时,是否使用USB通讯,使用该功能时,COM_PORT_CPP_WPF必须等于0
|
||||||
|
IS_STM32_USB=0
|
||||||
|
|
||||||
|
;是否打开第一个串,1为打开,0为关闭,默认0
|
||||||
|
IS_COM_PORT_A=0
|
||||||
|
COM_PORT_A=2
|
||||||
|
COM_PORT_A_LED_1=1
|
||||||
|
COM_PORT_A_LED_2=1
|
||||||
|
COM_PORT_A_LED_3=1
|
||||||
|
COM_PORT_A_LED_4=1
|
||||||
|
|
||||||
|
;是否打开第二个串,1为打开,0为关闭,默认0
|
||||||
|
IS_COM_PORT_B=0
|
||||||
|
COM_PORT_B=6
|
||||||
|
COM_PORT_B_LED_1=1
|
||||||
|
COM_PORT_B_LED_2=1
|
||||||
|
COM_PORT_B_LED_3=1
|
||||||
|
COM_PORT_B_LED_4=1
|
||||||
|
|
||||||
|
[TRRIGER]
|
||||||
|
;线性点触发的脉冲宽度
|
||||||
|
LINEAR_PULSE_WIDTH=500
|
||||||
|
|
||||||
|
;等间距触发的脉冲宽度
|
||||||
|
INTERVAL_PULSE_WIDTH=500
|
||||||
|
|
||||||
|
;手动触发
|
||||||
|
HOLD_TIME=150
|
||||||
|
|
||||||
|
[LOG]
|
||||||
|
;是否打开记录,默认0为关闭,1位打开,;LOG_IS_OPEN_0为是否打开记录功能
|
||||||
|
LOG_IS_OPEN_0=1
|
||||||
|
LOG_IS_OPEN_1=1
|
||||||
|
LOG_IS_OPEN_2=1
|
||||||
|
LOG_IS_OPEN_3=1
|
||||||
|
LOG_IS_OPEN_4=0
|
||||||
|
LOG_IS_OPEN_5=0
|
||||||
|
LOG_IS_OPEN_6=0
|
||||||
|
LOG_IS_OPEN_7=0
|
||||||
|
LOG_IS_OPEN_8=0
|
||||||
|
;是否启用统计定位函数的时间日志,1:启用,默认0关闭
|
||||||
|
LOG2_IS_OPEN=0
|
||||||
|
;定位几次后,计算这几次总共用时mm,默认4次
|
||||||
|
LOG_SUM_COUNT=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,186 @@
|
|||||||
|
[IO]
|
||||||
|
;是否启用IO功能,1为启用,0为关闭,默认0
|
||||||
|
IS_IO_FUNTION=1
|
||||||
|
|
||||||
|
;是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
||||||
|
IS_START_INPUT=0
|
||||||
|
;启动软件运行的输入端口号,1为EXI0,2为EXI1,4为EXI2,8为EXI3,32768为EXI15默认1
|
||||||
|
START_INPUT_PORT=1
|
||||||
|
|
||||||
|
;是否启用急停功能,1为启用,0为关闭,默认0
|
||||||
|
IS_QUICK_STOP=0
|
||||||
|
;急停的输入端口号,EXI15:32768,EXI14:16384,EXI13:8192,EXI7:128,默认128
|
||||||
|
QUICK_STOP_IN_PORT=128
|
||||||
|
;急停对应的输出端口号,是关闭Robot的传送带使能,EXO15:EXO15:32768,,EXO14:16384,EXO13:8192 默认32768
|
||||||
|
QUICK_STOP_OUT_PORT=32768
|
||||||
|
|
||||||
|
;是否启用安全光栅功能,1为启用,0为关闭,默认0
|
||||||
|
IS_SAFE_STOP=0
|
||||||
|
;安全光栅的端口号
|
||||||
|
;EXI15:32768,EXI14:16384,EXI13:8192,EXI12:4096,默认32768
|
||||||
|
SAFE_STOP_PORT=32768
|
||||||
|
;安全光栅采用停止模式0,还是暂停模式1,默认0停止模式
|
||||||
|
SAFE_STOP_MODE=0
|
||||||
|
|
||||||
|
;是否启用外部驱动器报警输出功能,1为启用,0为关闭,默认0
|
||||||
|
IS_ALARM_OUTPUT_PORT=0
|
||||||
|
;驱动器报警输出的端口号
|
||||||
|
;EXO15:32767,EXO14:49151,EXO13:57343 默认32767
|
||||||
|
ALARM_OUTPUT_PORT=32767
|
||||||
|
|
||||||
|
;是否启用回家之前发信号给机械手,1为启用,0为关闭,默认0
|
||||||
|
IS_HOME_TO_ROBOT=0
|
||||||
|
;给机械手的输出端口号,获取优先启动权,不使用改为65535
|
||||||
|
;EXO15:32767,EXO14:49151,EXO13:57343,EXO12:61439,EXO11:63487,EXO7:65407 默认65407
|
||||||
|
HOME_TO_ROBOT_FIRST_OUT_PORT=65535
|
||||||
|
;给机械手的输出端口号,机械手需要的复位信号,默认57343,不使用改为65535,一般只用这个输出
|
||||||
|
HOME_TO_ROBOT_RESET_OUT_PORT=57343
|
||||||
|
;给机械手的输出端口号,机械手真正启动信号,默认63487,不使用改为65535
|
||||||
|
HOME_TO_ROBOT_START_OUT_PORT=65535
|
||||||
|
;给机械手的输出端口号,机械手停止信号,默认49151,不使用改为65535
|
||||||
|
HOME_TO_ROBOT_STOP_OUT_PORT=65535
|
||||||
|
;给机械手停止信号的ON电平的时间,默认500ms,不使用改为0
|
||||||
|
HOME_TO_ROBOT_FIRST_TIME=0
|
||||||
|
;给机械手真正启动的ON时间,默认200ms,不使用改为0
|
||||||
|
HOME_TO_ROBOT_START_TIME=0
|
||||||
|
;给机械手停止信号的OFF电平的时间,默认500ms,不使用改为0
|
||||||
|
HOME_TO_ROBOT_STOP_TIME=0
|
||||||
|
;读取机械手发来的输入端口号,准许回家,不使用改为0,一般只用这个输入
|
||||||
|
;EXI15:32767,EXI14:49151,EXI13:57343,EXI12:61439,EXI11:63487,默认32767
|
||||||
|
HOME_TO_ROBOT_OK_IN_PORT=57343
|
||||||
|
;读取机械手发来的输入端口号,需要复位,默认49151,不使用改为0
|
||||||
|
HOME_TO_ROBOT_RESET_IN_PORT=0
|
||||||
|
|
||||||
|
;是否启用第四轴为传送带功能,1为启用,0为关闭,默认0
|
||||||
|
IS_TRANSPORER=0
|
||||||
|
;启动传送带输入端口号,当该端口号为低电平时启动传送带
|
||||||
|
;EXI15:32768,EXI14:16384,EXI15:32768,EXI10:1024,EXI9:512,EXI8:256,默认16384
|
||||||
|
TRANSPORER_START_PORT=16384
|
||||||
|
;停止传送带输入端口号,当该端口号为低电平时停止传送带
|
||||||
|
;EXI15:32768,EXI14:16384,EXI15:32768,EXI10:1024,EXI9:512,EXI8:256,默认32768
|
||||||
|
TRANSPORER_STOP_PORT=32768
|
||||||
|
;给机械手的输出端口号,当停止传送带时,该端口号为高电平,EXO15:16,默认16
|
||||||
|
TRANSPORER_TO_ROBOOT_PORT=16
|
||||||
|
;传送带运行速度JOG档位和方向,要改变方向在前面加个负号即可
|
||||||
|
;第四档:1.0,第三档:0.8,第二档:0.6,第一档:0.4,第零档:0.2,默认3档,正方向
|
||||||
|
TRANSPORER_SPEED_GEAR=0.2
|
||||||
|
;传送带使用的轴号,8表示第4轴,默认8
|
||||||
|
TRANSPORER_AXIS=8
|
||||||
|
|
||||||
|
;是否启用点击停止按钮时输出特定的端口号,可多个同时输出,1为启用,0为关闭,默认0
|
||||||
|
IS_ABORT_MOTION_OUT_PORT=0
|
||||||
|
;输出特定的端口号,默认65535(关闭所有),只关闭EXO15:32767,只关闭EXO15和EXO14:16383
|
||||||
|
ABORT_MOTION_OUT_PORT=65471
|
||||||
|
|
||||||
|
;是否启用某一轴先回家,即先跑到限位的一边,最后还是一起找原点的,1为启用,0为关闭,默认0
|
||||||
|
IS_AXIS_FIRST_HOME=0
|
||||||
|
;启用的轴号,默认3:1轴,2:2轴,3:3轴,4:4轴
|
||||||
|
AXIS_NUM_FIRST_HOME=3
|
||||||
|
|
||||||
|
;是否启用XY轴插补,默认0关闭,1启用
|
||||||
|
IS_SET_POS_XY=0
|
||||||
|
|
||||||
|
;是否启用IO的顺序控制(搬运部分),默认0关闭,1启用,为1时会启动该线程
|
||||||
|
IS_IO_STEP=0
|
||||||
|
;第四轴在上面取完料位置mm,默认0.0
|
||||||
|
IO_STEP_UP_4=-62.0
|
||||||
|
;第四轴在左边下面取料位置mm,默认0.0
|
||||||
|
IO_STEP_LEFT_DOWN_4=-103.0
|
||||||
|
;第四轴在右边下面取料位置mm,默认0.0
|
||||||
|
IO_STEP_RIGHT_DOWN_4=-87.5
|
||||||
|
;第三轴左边位置mm,默认0.0
|
||||||
|
IO_STEP_LEFT_3=-3.8
|
||||||
|
;第三轴右边位置mm,默认0.0
|
||||||
|
IO_STEP_RIGHT_3=-564.2
|
||||||
|
;左边可以下去取料输出端口,端口为开时,启动4轴下去取料,信号关闭时,不下去取料,默认65531:EXO2,65534:EXO0
|
||||||
|
IO_STEP_LEFT_LOAD_OUT_PORT=65531
|
||||||
|
;左边第4轴取完料后,输出信号为开时,告诉第一台电脑可以继续出去测量,14:EXO14,自动+1
|
||||||
|
IO_STEP_LEFT_CONTINUE_OUT_PORT=14
|
||||||
|
;右边可以下去放料的输入端口,端口为开时,启动4轴下去放料,默认16384:EXI14,32768:EXI15
|
||||||
|
IO_STEP_RIGHT_UPLOAD_IN_PORT=16384
|
||||||
|
;右边第4轴放完料后,端口为开时,告诉第二台电脑可以继续出去测量的输出信号,默认15:EXO15,14:EXO14,自动+1
|
||||||
|
IO_STEP_RIGHT_CONTINUE_OUT_PORT=15
|
||||||
|
;第三轴的搬运吸盘的输出端口,默认4:EXO4,5:EXO5,内部按位输出,自动+1(从1到16)
|
||||||
|
IO_STEP_SUCKER_OUT_PORT=4
|
||||||
|
;模具上是否有料的输入端口(上料感应),默认1:EXI0,8:EXI3
|
||||||
|
IO_STEP_LOADING_IN_PORT=32768
|
||||||
|
|
||||||
|
[SAFETY_LOCK]
|
||||||
|
;是否启用轴之间的安全互锁,1启用,默认0关闭
|
||||||
|
IS_SAFETY_LOCK=0
|
||||||
|
;当互锁条件成立时需要锁住的轴号A,默认3轴
|
||||||
|
SAFETY_LOCK_AXIS_A=2
|
||||||
|
;当互锁条件成立时需要锁住的轴号B,默认3轴
|
||||||
|
SAFETY_LOCK_AXIS_B=3
|
||||||
|
;当互锁条件的输入端口号A,默认32768为EXI15,1为EXI0,2为EXI1,4为EXI2,8为EXI3
|
||||||
|
SAFETY_LOCK_INPORT_A=32768
|
||||||
|
;当互锁条件的输入端口号B,默认32768为EXI15,1为EXI0,2为EXI1,4为EXI2,8为EXI3
|
||||||
|
SAFETY_LOCK_INPORT_B=32768
|
||||||
|
|
||||||
|
[SERIAL_PORT]
|
||||||
|
;是否打开串口控制器,1启用,默认0关闭
|
||||||
|
IS_SERIAL_PORT=0
|
||||||
|
;使用的端口号,默认端口号3
|
||||||
|
SERIAL_PORT_NUM=5
|
||||||
|
|
||||||
|
[PROBE]
|
||||||
|
;是否启用探针捕获功能,1启用,默认0关闭
|
||||||
|
IS_PROBE=0
|
||||||
|
;探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
||||||
|
PROBE_ALL_AXIS=3
|
||||||
|
;探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
||||||
|
PROBE_RETURN_POS=5.0
|
||||||
|
|
||||||
|
[OK_NG]
|
||||||
|
;是否启用软件内部OK/NG判断功能,1启用,默认0关闭
|
||||||
|
IS_OK_NG=0
|
||||||
|
;工位1输出端口号,EXO0:65534,EXO1:65533,EXO2:65531,EXO3:65527,不输出为65535,默认65535
|
||||||
|
OK_NG_OUT_PORT1=65533
|
||||||
|
;工位2输出端口号,EXO0:65534,EXO1:65533,EXO2:65531,EXO3:65527,不输出为65535,默认65535
|
||||||
|
OK_NG_OUT_PORT2=65534
|
||||||
|
|
||||||
|
[HOME]
|
||||||
|
;回家精度判断,默认4个脉冲
|
||||||
|
HOME_PULSE_1=4
|
||||||
|
HOME_PULSE_2=4
|
||||||
|
HOME_PULSE_3=4
|
||||||
|
HOME_PULSE_4=4
|
||||||
|
HOME_PULSE_5=4
|
||||||
|
HOME_PULSE_6=4
|
||||||
|
HOME_PULSE_7=4
|
||||||
|
HOME_PULSE_8=4
|
||||||
|
|
||||||
|
[JOG]
|
||||||
|
;是否启用Z轴JOG速度独立,1启用,默认0关闭
|
||||||
|
IS_JOG_AXIS_3=0
|
||||||
|
;Z轴JOG速度是XY的几倍,默认1.0
|
||||||
|
JOG_AXIS_3_GEAR=0.5
|
||||||
|
|
||||||
|
[SPECIAL_MOTOR]
|
||||||
|
;是否启用第4轴步进电机控制,该电机没有编码器和光栅尺反馈,回家采用限位当做原点,1启用,默认0关闭
|
||||||
|
IS_SPECIAL_MOTOR=0
|
||||||
|
|
||||||
|
[DOUBLE_SWITCH]
|
||||||
|
;是否启用2个脚踏开关,1启用,默认0关闭
|
||||||
|
IS_DOUBLE_SWITCH=0
|
||||||
|
;2个开关的间隔时间ms,超过间隔时间,即使2个开关都已按下也无效,默认500ms
|
||||||
|
DOUBLE_SWITCH_TIME=500
|
||||||
|
;第一个开关的输入端口号,1为EXI0,2为EXI1,4为EXI2,8为EXI3,32768为EXI15,默认1
|
||||||
|
DOUBLE_SWITCH_INPUT_PORT_A=1
|
||||||
|
;第二个开关的输入端口号,1为EXI0,2为EXI1,4为EXI2,8为EXI3,32768为EXI15,默认2
|
||||||
|
DOUBLE_SWITCH_INPUT_PORT_B=2
|
||||||
|
|
||||||
|
[SEND_OUTPUT]
|
||||||
|
;是否启用满足输出信号和位置高度时,输出对应端口,1启用,默认0关闭
|
||||||
|
IS_OUTPUT_HIGH=0
|
||||||
|
;判断是否满足条件的输出端口号,1为EXO0,2为EXO1,4为EXO2,8为EXO3,32768为EXO15,默认1
|
||||||
|
OUTPUT_HIGH_ENABLE_OUT=1
|
||||||
|
;轴号,默认1:1轴
|
||||||
|
OUTPUT_HIGH_AXIS=1
|
||||||
|
;位置,默认0.0,单位mm
|
||||||
|
OUTPUT_HIGH_POS=0.0
|
||||||
|
;输出对应的端口号,EXO0:0,EXO1:1,EXO2:2,EXO3:3,默认0
|
||||||
|
OUTPUT_HIGH_OUTPORT=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,839 @@
|
|||||||
|
[profile1]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=3.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile2]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=5.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile3]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=5.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile4]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=1.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile5]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=1.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile6]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=1.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile7]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=1.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[profile8]
|
||||||
|
active=1
|
||||||
|
decSmoothStop=1.000000
|
||||||
|
decAbruptStop=1000.000000
|
||||||
|
[axis1]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=1
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=1
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x1
|
||||||
|
encMap=0x1
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis2]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=-1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=2
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=2
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x2
|
||||||
|
encMap=0x2
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis3]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=3
|
||||||
|
limitPositiveType=1
|
||||||
|
limitPositiveIndex=3
|
||||||
|
limitNegativeType=0
|
||||||
|
limitNegativeIndex=3
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x4
|
||||||
|
encMap=0x4
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis4]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=-1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=4
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=4
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x8
|
||||||
|
encMap=0x8
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis5]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=-1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=5
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=5
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x10
|
||||||
|
encMap=0x10
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis6]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=-1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=6
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=6
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x20
|
||||||
|
encMap=0x20
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis7]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=-1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=7
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=7
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x40
|
||||||
|
encMap=0x40
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[axis8]
|
||||||
|
active=1
|
||||||
|
alarmType=2
|
||||||
|
alarmIndex=-1
|
||||||
|
limitPositiveType=0
|
||||||
|
limitPositiveIndex=8
|
||||||
|
limitNegativeType=1
|
||||||
|
limitNegativeIndex=8
|
||||||
|
smoothStopType=4
|
||||||
|
smoothStopIndex=-1
|
||||||
|
abruptStopType=4
|
||||||
|
abruptStopIndex=-1
|
||||||
|
prfMap=0x80
|
||||||
|
encMap=0x80
|
||||||
|
prfMapAlpha1=1
|
||||||
|
prfMapBeta1=1
|
||||||
|
prfMapAlpha2=1
|
||||||
|
prfMapBeta2=1
|
||||||
|
encMapAlpha1=1
|
||||||
|
encMapBeta1=1
|
||||||
|
encMapAlpha2=1
|
||||||
|
encMapBeta2=1
|
||||||
|
[control1]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=2000
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control2]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=32767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control3]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=52767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control4]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=32767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control5]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=32767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control6]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=32767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control7]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=32767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[control8]
|
||||||
|
active=0
|
||||||
|
axis=-1
|
||||||
|
encoder1=-1
|
||||||
|
encoder2=-1
|
||||||
|
errorLimit=32767
|
||||||
|
filterType1=0
|
||||||
|
filterType2=0
|
||||||
|
filterType3=0
|
||||||
|
encoderSmooth=8
|
||||||
|
controlSmooth=8
|
||||||
|
[dac1]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=1
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac2]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=0
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac3]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=1
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac4]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=0
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac5]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=1
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac6]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=0
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac7]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=1
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[dac8]
|
||||||
|
active=0
|
||||||
|
control=-1
|
||||||
|
reverse=1
|
||||||
|
bias=0
|
||||||
|
limit=32767
|
||||||
|
[step1]
|
||||||
|
active=1
|
||||||
|
axis=1
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step2]
|
||||||
|
active=1
|
||||||
|
axis=2
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step3]
|
||||||
|
active=1
|
||||||
|
axis=3
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step4]
|
||||||
|
active=1
|
||||||
|
axis=4
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step5]
|
||||||
|
active=1
|
||||||
|
axis=5
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step6]
|
||||||
|
active=1
|
||||||
|
axis=6
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step7]
|
||||||
|
active=1
|
||||||
|
axis=7
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[step8]
|
||||||
|
active=1
|
||||||
|
axis=8
|
||||||
|
mode=0
|
||||||
|
parameter=0
|
||||||
|
reverse=0
|
||||||
|
[encoder1]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder2]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder3]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder4]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder5]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder6]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder7]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder8]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[encoder9]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterType=0
|
||||||
|
captureSource=0
|
||||||
|
captureHomeSense=0
|
||||||
|
captureIndexSense=0
|
||||||
|
[enable1]
|
||||||
|
active=1
|
||||||
|
axis=1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable2]
|
||||||
|
active=1
|
||||||
|
axis=2
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable3]
|
||||||
|
active=1
|
||||||
|
axis=3
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable4]
|
||||||
|
active=1
|
||||||
|
axis=4
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable5]
|
||||||
|
active=1
|
||||||
|
axis=5
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable6]
|
||||||
|
active=1
|
||||||
|
axis=6
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable7]
|
||||||
|
active=1
|
||||||
|
axis=7
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[enable8]
|
||||||
|
active=1
|
||||||
|
axis=8
|
||||||
|
axisItem=-1
|
||||||
|
reverse=1
|
||||||
|
[clear1]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear2]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear3]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear4]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear5]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear6]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear7]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[clear8]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo1]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo2]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo3]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo4]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo5]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo6]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo7]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo8]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo9]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo10]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo11]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo12]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo13]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo14]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo15]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[gpo16]
|
||||||
|
active=1
|
||||||
|
axis=-1
|
||||||
|
axisItem=-1
|
||||||
|
reverse=0
|
||||||
|
[limitPositive1]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive2]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive3]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive4]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive5]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive6]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive7]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitPositive8]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative1]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative2]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative3]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative4]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative5]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative6]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative7]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[limitNegative8]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[alarm1]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[alarm2]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[alarm3]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[alarm4]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[alarm5]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[alarm6]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[alarm7]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[alarm8]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home1]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home2]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home3]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home4]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home5]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home6]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home7]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[home8]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=3
|
||||||
|
[gpi1]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi2]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi3]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi4]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi5]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi6]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi7]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi8]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi9]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi10]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi11]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi12]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi13]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi14]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi15]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[gpi16]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[arrive1]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=8
|
||||||
|
[arrive2]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=8
|
||||||
|
[arrive3]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=8
|
||||||
|
[arrive4]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=9
|
||||||
|
[arrive5]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=8
|
||||||
|
[arrive6]
|
||||||
|
active=1
|
||||||
|
reverse=0
|
||||||
|
filterTime=3
|
||||||
|
[arrive7]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=8
|
||||||
|
[arrive8]
|
||||||
|
active=1
|
||||||
|
reverse=1
|
||||||
|
filterTime=8
|
||||||
@@ -0,0 +1,337 @@
|
|||||||
|
[JOG_SPEED]
|
||||||
|
JOG速度(pulse/ms)
|
||||||
|
JOG_SPEED_0=200.0
|
||||||
|
JOG_SPEED_1=150.0
|
||||||
|
JOG_SPEED_2=50
|
||||||
|
JOG_SPEED_3=10
|
||||||
|
JOG_SPEED_4=1
|
||||||
|
|
||||||
|
;JOG加速度(pulse/ms^2)
|
||||||
|
JOG_ACC_0=2.0
|
||||||
|
JOG_ACC_1=2.0
|
||||||
|
JOG_ACC_2=2.0
|
||||||
|
JOG_ACC_3=1.0
|
||||||
|
JOG_ACC_4=1.0
|
||||||
|
|
||||||
|
;JOG减速度(pulse/ms^2)
|
||||||
|
JOG_DEC_0=2.0
|
||||||
|
JOG_DEC_1=2.0
|
||||||
|
JOG_DEC_2=2.0
|
||||||
|
JOG_DEC_3=1.0
|
||||||
|
JOG_DEC_4=1.0
|
||||||
|
|
||||||
|
;JOG模式采用急停还是平滑停止,0是平滑停止1为急停,默认0
|
||||||
|
JOG_STOP_MODE_1=0
|
||||||
|
JOG_STOP_MODE_2=0
|
||||||
|
JOG_STOP_MODE_3=0
|
||||||
|
JOG_STOP_MODE_4=0
|
||||||
|
JOG_STOP_MODE_5=0
|
||||||
|
JOG_STOP_MODE_6=0
|
||||||
|
JOG_STOP_MODE_7=0
|
||||||
|
JOG_STOP_MODE_8=0
|
||||||
|
JOG_STOP_MODE=0
|
||||||
|
JOG_SPEED_GEAR0_1=200.0
|
||||||
|
JOG_ACC_GEAR0_1=2.0
|
||||||
|
JOG_DEC_GEAR0_1=2.0
|
||||||
|
JOG_SPEED_GEAR0_2=200.0
|
||||||
|
JOG_ACC_GEAR0_2=2.0
|
||||||
|
JOG_DEC_GEAR0_2=2.0
|
||||||
|
JOG_SPEED_GEAR0_3=150.0
|
||||||
|
JOG_ACC_GEAR0_3=2.0
|
||||||
|
JOG_DEC_GEAR0_3=2.0
|
||||||
|
JOG_SPEED_GEAR0_4=200.0
|
||||||
|
JOG_ACC_GEAR0_4=2.0
|
||||||
|
JOG_DEC_GEAR0_4=2.0
|
||||||
|
JOG_SPEED_GEAR1_1=100.0
|
||||||
|
JOG_ACC_GEAR1_1=2.0
|
||||||
|
JOG_DEC_GEAR1_1=2.0
|
||||||
|
JOG_SPEED_GEAR1_2=100.0
|
||||||
|
JOG_ACC_GEAR1_2=2.0
|
||||||
|
JOG_DEC_GEAR1_2=2.0
|
||||||
|
JOG_SPEED_GEAR1_3=80.0
|
||||||
|
JOG_ACC_GEAR1_3=2.0
|
||||||
|
JOG_DEC_GEAR1_3=2.0
|
||||||
|
JOG_SPEED_GEAR1_4=100.0
|
||||||
|
JOG_ACC_GEAR1_4=2.0
|
||||||
|
JOG_DEC_GEAR1_4=2.0
|
||||||
|
JOG_SPEED_GEAR2_1=50.0
|
||||||
|
JOG_ACC_GEAR2_1=2.0
|
||||||
|
JOG_DEC_GEAR2_1=2.0
|
||||||
|
JOG_SPEED_GEAR2_2=50.0
|
||||||
|
JOG_ACC_GEAR2_2=2.0
|
||||||
|
JOG_DEC_GEAR2_2=2.0
|
||||||
|
JOG_SPEED_GEAR2_3=50.0
|
||||||
|
JOG_ACC_GEAR2_3=2.0
|
||||||
|
JOG_DEC_GEAR2_3=2.0
|
||||||
|
JOG_SPEED_GEAR2_4=50.0
|
||||||
|
JOG_ACC_GEAR2_4=2.0
|
||||||
|
JOG_DEC_GEAR2_4=2.0
|
||||||
|
JOG_SPEED_GEAR3_1=10.0
|
||||||
|
JOG_ACC_GEAR3_1=1.0
|
||||||
|
JOG_DEC_GEAR3_1=1.0
|
||||||
|
JOG_SPEED_GEAR3_2=10.0
|
||||||
|
JOG_ACC_GEAR3_2=1.0
|
||||||
|
JOG_DEC_GEAR3_2=1.0
|
||||||
|
JOG_SPEED_GEAR3_3=10.0
|
||||||
|
JOG_ACC_GEAR3_3=1.0
|
||||||
|
JOG_DEC_GEAR3_3=1.0
|
||||||
|
JOG_SPEED_GEAR3_4=10.0
|
||||||
|
JOG_ACC_GEAR3_4=1.0
|
||||||
|
JOG_DEC_GEAR3_4=1.0
|
||||||
|
JOG_SPEED_GEAR4_1=1.0
|
||||||
|
JOG_ACC_GEAR4_1=1.0
|
||||||
|
JOG_DEC_GEAR4_1=1.0
|
||||||
|
JOG_SPEED_GEAR4_2=1.0
|
||||||
|
JOG_ACC_GEAR4_2=1.0
|
||||||
|
JOG_DEC_GEAR4_2=1.0
|
||||||
|
JOG_SPEED_GEAR4_3=1.0
|
||||||
|
JOG_ACC_GEAR4_3=1.0
|
||||||
|
JOG_DEC_GEAR4_3=1.0
|
||||||
|
JOG_SPEED_GEAR4_4=1.0
|
||||||
|
JOG_ACC_GEAR4_4=1.0
|
||||||
|
JOG_DEC_GEAR4_4=1.0
|
||||||
|
|
||||||
|
;0:都使用(正常情况) 1:只使用灯,而不使用控制器;默认0
|
||||||
|
[USE_LIGHT]
|
||||||
|
ONLY_USE_LIGHT=0
|
||||||
|
|
||||||
|
[RESOLUTION]
|
||||||
|
;光栅尺的分辨率(mm)
|
||||||
|
SCALE_RESOLUTION_1=0.0004
|
||||||
|
SCALE_RESOLUTION_2=0.0004
|
||||||
|
SCALE_RESOLUTION_3=0.0004
|
||||||
|
SCALE_RESOLUTION_4=0.0004
|
||||||
|
SCALE_RESOLUTION_5=0.0004
|
||||||
|
SCALE_RESOLUTION_6=0.0004
|
||||||
|
SCALE_RESOLUTION_7=0.0004
|
||||||
|
SCALE_RESOLUTION_8=0.0004
|
||||||
|
|
||||||
|
[LIMIT]
|
||||||
|
;负限位(mm),必须是负数
|
||||||
|
NEG_WORKING_LIMIT_1=-260.0
|
||||||
|
NEG_WORKING_LIMIT_2=-40.0
|
||||||
|
NEG_WORKING_LIMIT_3=-40.0
|
||||||
|
NEG_WORKING_LIMIT_4=-40.0
|
||||||
|
NEG_WORKING_LIMIT_5=-40.0
|
||||||
|
NEG_WORKING_LIMIT_6=-40.0
|
||||||
|
NEG_WORKING_LIMIT_7=-40.0
|
||||||
|
NEG_WORKING_LIMIT_8=-40.0
|
||||||
|
|
||||||
|
;正限位(mm),必须是正数
|
||||||
|
POS_WORKING_LIMIT_1=40.0
|
||||||
|
POS_WORKING_LIMIT_2=160.0
|
||||||
|
POS_WORKING_LIMIT_3=160.0
|
||||||
|
POS_WORKING_LIMIT_4=200.0
|
||||||
|
POS_WORKING_LIMIT_5=200.0
|
||||||
|
POS_WORKING_LIMIT_6=200.0
|
||||||
|
POS_WORKING_LIMIT_7=200.0
|
||||||
|
POS_WORKING_LIMIT_8=200.0
|
||||||
|
|
||||||
|
[HOME]
|
||||||
|
;选择需要回家的轴号,改为1
|
||||||
|
HOME_MACHINE_AXIS_1=1
|
||||||
|
HOME_MACHINE_AXIS_2=1
|
||||||
|
HOME_MACHINE_AXIS_3=1
|
||||||
|
HOME_MACHINE_AXIS_4=0
|
||||||
|
HOME_MACHINE_AXIS_5=0
|
||||||
|
HOME_MACHINE_AXIS_6=0
|
||||||
|
HOME_MACHINE_AXIS_7=0
|
||||||
|
HOME_MACHINE_AXIS_8=0
|
||||||
|
|
||||||
|
;是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||||
|
IS_HOME_ENC_POS=0
|
||||||
|
;是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||||
|
IS_HOME_PRF_POS=1
|
||||||
|
|
||||||
|
;关闭电源时记住当前的位置,用于判断是否需要回家
|
||||||
|
HOME_POS_AXIS_1=0
|
||||||
|
HOME_POS_AXIS_2=0
|
||||||
|
HOME_POS_AXIS_3=0
|
||||||
|
HOME_POS_AXIS_4=0
|
||||||
|
HOME_POS_AXIS_5=0
|
||||||
|
HOME_POS_AXIS_6=0
|
||||||
|
HOME_POS_AXIS_7=0
|
||||||
|
HOME_POS_AXIS_8=0
|
||||||
|
|
||||||
|
;回家第一段速度(pulse/ms)
|
||||||
|
HOME_HIGH_SPEED_1=200.0
|
||||||
|
HOME_HIGH_SPEED_2=200.0
|
||||||
|
HOME_HIGH_SPEED_3=200.0
|
||||||
|
HOME_HIGH_SPEED_4=200.0
|
||||||
|
HOME_HIGH_SPEED_5=200.0
|
||||||
|
HOME_HIGH_SPEED_6=200.0
|
||||||
|
HOME_HIGH_SPEED_7=200.0
|
||||||
|
HOME_HIGH_SPEED_8=200.0
|
||||||
|
|
||||||
|
;回家第一段加速度(pulse/ms^2)
|
||||||
|
HOME_HIGH_ACC_1=2.0
|
||||||
|
HOME_HIGH_ACC_2=2.0
|
||||||
|
HOME_HIGH_ACC_3=2.0
|
||||||
|
HOME_HIGH_ACC_4=2.0
|
||||||
|
HOME_HIGH_ACC_5=2.0
|
||||||
|
HOME_HIGH_ACC_6=2.0
|
||||||
|
HOME_HIGH_ACC_7=2.0
|
||||||
|
HOME_HIGH_ACC_8=2.0
|
||||||
|
|
||||||
|
;回家第二段速度(pulse/ms)
|
||||||
|
HOME_LOW_SPEED_1=180.0
|
||||||
|
HOME_LOW_SPEED_2=180.0
|
||||||
|
HOME_LOW_SPEED_3=180.0
|
||||||
|
HOME_LOW_SPEED_4=180.0
|
||||||
|
HOME_LOW_SPEED_5=180.0
|
||||||
|
HOME_LOW_SPEED_6=180.0
|
||||||
|
HOME_LOW_SPEED_7=180.0
|
||||||
|
HOME_LOW_SPEED_8=180.0
|
||||||
|
|
||||||
|
;回家第二段加速度(pulse/ms^2)
|
||||||
|
HOME_LOW_ACC_1=2.0
|
||||||
|
HOME_LOW_ACC_2=2.0
|
||||||
|
HOME_LOW_ACC_3=2.0
|
||||||
|
HOME_LOW_ACC_4=2.0
|
||||||
|
HOME_LOW_ACC_5=2.0
|
||||||
|
HOME_LOW_ACC_6=2.0
|
||||||
|
HOME_LOW_ACC_7=2.0
|
||||||
|
HOME_LOW_ACC_8=2.0
|
||||||
|
|
||||||
|
;回家延时时间(ms)
|
||||||
|
HOME_TIME_1=1000
|
||||||
|
HOME_TIME_2=1000
|
||||||
|
HOME_TIME_3=1000
|
||||||
|
HOME_TIME_4=1000
|
||||||
|
HOME_TIME_5=1000
|
||||||
|
HOME_TIME_6=1000
|
||||||
|
HOME_TIME_7=1000
|
||||||
|
HOME_TIME_8=1000
|
||||||
|
|
||||||
|
[PID]
|
||||||
|
;PID比例调节,应从0.01递增开始调试
|
||||||
|
PID_KP_1=1.20
|
||||||
|
PID_KP_2=1.20
|
||||||
|
PID_KP_3=1.20
|
||||||
|
PID_KP_4=1.20
|
||||||
|
PID_KP_5=1.20
|
||||||
|
PID_KP_6=1.20
|
||||||
|
PID_KP_7=1.20
|
||||||
|
PID_KP_8=1.20
|
||||||
|
|
||||||
|
[PRECISION]
|
||||||
|
;超时时间(0.1ms)
|
||||||
|
PRECISION_TIME_1=20000
|
||||||
|
PRECISION_TIME_2=20000
|
||||||
|
PRECISION_TIME_3=20000
|
||||||
|
PRECISION_TIME_4=20000
|
||||||
|
PRECISION_TIME_5=20000
|
||||||
|
PRECISION_TIME_6=20000
|
||||||
|
PRECISION_TIME_7=20000
|
||||||
|
PRECISION_TIME_8=20000
|
||||||
|
|
||||||
|
;回家误差脉冲个数
|
||||||
|
PRECISION_COUNT_1=8
|
||||||
|
PRECISION_COUNT_2=8
|
||||||
|
PRECISION_COUNT_3=8
|
||||||
|
PRECISION_COUNT_4=8
|
||||||
|
PRECISION_COUNT_5=8
|
||||||
|
PRECISION_COUNT_6=8
|
||||||
|
PRECISION_COUNT_7=8
|
||||||
|
PRECISION_COUNT_8=8
|
||||||
|
|
||||||
|
[SET_POSITION_SPEED]
|
||||||
|
;XYZ定位的合成速度(pulse/ms)
|
||||||
|
SET_POTION_SPEED_1=500.0
|
||||||
|
SET_POTION_SPEED_2=500.0
|
||||||
|
SET_POTION_SPEED_3=500.0
|
||||||
|
SET_POTION_SPEED_4=500.0
|
||||||
|
SET_POTION_SPEED_5=500.0
|
||||||
|
SET_POTION_SPEED_6=500.0
|
||||||
|
SET_POTION_SPEED_7=500.0
|
||||||
|
SET_POTION_SPEED_8=500.0
|
||||||
|
|
||||||
|
;XYZ定位的合成加速度(pulse/ms^2)
|
||||||
|
SET_POTION_ACC_1=2.5
|
||||||
|
SET_POTION_ACC_2=2.5
|
||||||
|
SET_POTION_ACC_3=2.5
|
||||||
|
SET_POTION_ACC_4=2.5
|
||||||
|
SET_POTION_ACC_5=2.5
|
||||||
|
SET_POTION_ACC_6=2.5
|
||||||
|
SET_POTION_ACC_7=2.5
|
||||||
|
SET_POTION_ACC_8=2.5
|
||||||
|
|
||||||
|
;XYZ定位的终点速度(pulse/ms)
|
||||||
|
SET_POTION_DEC_1=1.0
|
||||||
|
SET_POTION_DEC_2=1.0
|
||||||
|
SET_POTION_DEC_3=1.0
|
||||||
|
SET_POTION_DEC_4=1.0
|
||||||
|
SET_POTION_DEC_5=1.0
|
||||||
|
SET_POTION_DEC_6=1.0
|
||||||
|
SET_POTION_DEC_7=1.0
|
||||||
|
SET_POTION_DEC_8=1.0
|
||||||
|
|
||||||
|
;XYZ定到位判断次数
|
||||||
|
SET_POSITION_COUNT_1=240
|
||||||
|
SET_POSITION_COUNT_2=240
|
||||||
|
SET_POSITION_COUNT_3=240
|
||||||
|
SET_POSITION_COUNT_4=240
|
||||||
|
SET_POSITION_COUNT_5=240
|
||||||
|
SET_POSITION_COUNT_6=240
|
||||||
|
SET_POSITION_COUNT_7=240
|
||||||
|
SET_POSITION_COUNT_8=240
|
||||||
|
|
||||||
|
[COMPORT]
|
||||||
|
;灯光控制器类型选择
|
||||||
|
;0:启用c++调用灯光,不使用STM32 USB控制时,需要把下面的IS_STM32_USB改为0
|
||||||
|
;1:wpf直接调用;
|
||||||
|
;2:DP光源控制器;
|
||||||
|
;3:旧的6环8区为3(环形可调);
|
||||||
|
;4:新的6环8区为4(扇区可调);
|
||||||
|
;5:STM32控制器,IP地址在exe目录下的CameraNum.ini中修改
|
||||||
|
;61:OPT光源控制器网络模式(111ms),IP地址在exe目录下的CameraNum.ini中修改,串口模式62(44ms);
|
||||||
|
COM_PORT_CPP_WPF=0
|
||||||
|
|
||||||
|
;使用stm32时,是否使用USB通讯,使用该功能时,COM_PORT_CPP_WPF必须等于0
|
||||||
|
IS_STM32_USB=0
|
||||||
|
|
||||||
|
;是否打开第一个串,1为打开,0为关闭,默认0
|
||||||
|
IS_COM_PORT_A=0
|
||||||
|
COM_PORT_A=2
|
||||||
|
COM_PORT_A_LED_1=1
|
||||||
|
COM_PORT_A_LED_2=1
|
||||||
|
COM_PORT_A_LED_3=1
|
||||||
|
COM_PORT_A_LED_4=1
|
||||||
|
|
||||||
|
;是否打开第二个串,1为打开,0为关闭,默认0
|
||||||
|
IS_COM_PORT_B=0
|
||||||
|
COM_PORT_B=6
|
||||||
|
COM_PORT_B_LED_1=1
|
||||||
|
COM_PORT_B_LED_2=1
|
||||||
|
COM_PORT_B_LED_3=1
|
||||||
|
COM_PORT_B_LED_4=1
|
||||||
|
|
||||||
|
[TRRIGER]
|
||||||
|
;线性点触发的脉冲宽度
|
||||||
|
LINEAR_PULSE_WIDTH=500
|
||||||
|
|
||||||
|
;等间距触发的脉冲宽度
|
||||||
|
INTERVAL_PULSE_WIDTH=500
|
||||||
|
|
||||||
|
;手动触发
|
||||||
|
HOLD_TIME=150
|
||||||
|
|
||||||
|
[LOG]
|
||||||
|
;是否打开记录,默认0为关闭,1位打开,;LOG_IS_OPEN_0为是否打开记录功能
|
||||||
|
LOG_IS_OPEN_0=1
|
||||||
|
LOG_IS_OPEN_1=1
|
||||||
|
LOG_IS_OPEN_2=1
|
||||||
|
LOG_IS_OPEN_3=1
|
||||||
|
LOG_IS_OPEN_4=0
|
||||||
|
LOG_IS_OPEN_5=0
|
||||||
|
LOG_IS_OPEN_6=0
|
||||||
|
LOG_IS_OPEN_7=0
|
||||||
|
LOG_IS_OPEN_8=0
|
||||||
|
;是否启用统计定位函数的时间日志,1:启用,默认0关闭
|
||||||
|
LOG2_IS_OPEN=0
|
||||||
|
;定位几次后,计算这几次总共用时mm,默认4次
|
||||||
|
LOG_SUM_COUNT=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[Default]
|
||||||
|
MotionControlSpeed=1
|
||||||
|
ControllerType=1
|
||||||
Reference in New Issue
Block a user