启动函数,回家函数判断,正在调试 读取ACS , EF3, DLL版本号,遗留日志删除功能
This commit is contained in:
@@ -428,6 +428,7 @@ const int HSI_MAX_POSITIONS_STORED = 500;
|
||||
// 第一阶段需要重写的API 函数
|
||||
|
||||
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_SHUTDOWN();
|
||||
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double& Speed);
|
||||
|
||||
@@ -100,9 +100,10 @@
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>hid.lib;setupapi.lib;DirectXLib\lib\x64\d2d1.lib;DirectXLib\lib\x64\d3d9.lib;DirectXLib\lib\x64\d3d10.lib;DirectXLib\lib\x64\d3d10_1.lib;DirectXLib\lib\x64\d3d11.lib;DirectXLib\lib\x64\d3dcompiler.lib;DirectXLib\lib\x64\D3DCSX.lib;DirectXLib\lib\x64\d3dx9.lib;DirectXLib\lib\x64\d3dx10.lib;DirectXLib\lib\x64\d3dx11.lib;DirectXLib\lib\x64\d3dxof.lib;DirectXLib\lib\x64\dinput8.lib;DirectXLib\lib\x64\dsound.lib;DirectXLib\lib\x64\dwrite.lib;DirectXLib\lib\x64\DxErr.lib;DirectXLib\lib\x64\dxgi.lib;DirectXLib\lib\x64\dxguid.lib;DirectXLib\lib\x64\X3DAudio.lib;DirectXLib\lib\x64\xapobase.lib;DirectXLib\lib\x64\XAPOFX.lib;DirectXLib\lib\x64\XInput.lib;%(AdditionalDependencies);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>hid.lib;setupapi.lib;DirectXLib\lib\x64\d2d1.lib;DirectXLib\lib\x64\d3d9.lib;DirectXLib\lib\x64\d3d10.lib;DirectXLib\lib\x64\d3d10_1.lib;DirectXLib\lib\x64\d3d11.lib;DirectXLib\lib\x64\d3dcompiler.lib;DirectXLib\lib\x64\D3DCSX.lib;DirectXLib\lib\x64\d3dx9.lib;DirectXLib\lib\x64\d3dx10.lib;DirectXLib\lib\x64\d3dx11.lib;DirectXLib\lib\x64\d3dxof.lib;DirectXLib\lib\x64\dinput8.lib;DirectXLib\lib\x64\dsound.lib;DirectXLib\lib\x64\dwrite.lib;DirectXLib\lib\x64\DxErr.lib;DirectXLib\lib\x64\dxgi.lib;DirectXLib\lib\x64\dxguid.lib;DirectXLib\lib\x64\X3DAudio.lib;DirectXLib\lib\x64\xapobase.lib;DirectXLib\lib\x64\XAPOFX.lib;DirectXLib\lib\x64\XInput.lib;ACSCL_x64.LIB;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>
|
||||
</ModuleDefinitionFile>
|
||||
<AdditionalLibraryDirectories>$(LocalDebuggerWorkingDirectory)\ACS;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)HSI_SEVENOCEAN_EF1_CsTest\bin\Debug\HSI.dll"</Command>
|
||||
@@ -198,9 +199,6 @@ xcopy "$(OutDir)\$(ProjectName).pdb" ..\HSI_GOOGOL_GTS800_WPFTest\bin\Debug\HSI.
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="ACS\ACSCL_x64.LIB" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
||||
@@ -22,7 +22,4 @@
|
||||
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
||||
<ClInclude Include="ACS\ACSC.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="ACS\ACSCL_x64.LIB" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -18,6 +18,7 @@ using namespace std;
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
HSI_Motion* g_pHSI_Motion = nullptr;
|
||||
CLogger extern* g_pLogger = nullptr;
|
||||
@@ -197,12 +198,16 @@ HSI_Motion::HSI_Motion()
|
||||
{
|
||||
m_SixEightSubArea[i] = 0; //六环八区分区功能
|
||||
}
|
||||
//日志处理
|
||||
//DeleteDirectory()
|
||||
|
||||
CTime tm = CTime::GetCurrentTime();
|
||||
CString csTime = tm.Format("%Y-%m-%d_%H-%M-%S"); //构造时间字符串
|
||||
CString dir = L"\\Log\\" + csTime += L"_EF3.Log";
|
||||
g_pLogger = new CLogger(dir);
|
||||
g_pLogger2 = new CLogger(L"\\Log\\EF3_SumTime.Log");
|
||||
|
||||
//档位参数
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
for (int j = 0; j < 5; j++)
|
||||
@@ -253,7 +258,8 @@ HSI_Motion::HSI_Motion()
|
||||
}
|
||||
GetAppPath(m_AppPath);
|
||||
m_LogIsOpen[0] = GetPrivateProfileInt(L"LOG", L"LOG_IS_OPEN_0", 0, m_AppPath + _T("\\Config\\EF3_Motion.ini"));
|
||||
g_pLogger->IsEnabledLog = m_LogIsOpen[0] == 1 ? true : false;
|
||||
g_pLogger->IsEnabledLog = m_LogIsOpen[0] == 1 ? true : false;//是否启用日志
|
||||
|
||||
m_Set_XYZA_Reserve = 0; //XYZA轴方向
|
||||
m_motorType = 0; //电机类型 1为伺服电机 0为步进电机
|
||||
m_AxisHex[0] = 0;
|
||||
@@ -401,7 +407,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
}
|
||||
m_SO7_Serial.SetTimeouts(1000, 1000);
|
||||
m_bConnected = true;
|
||||
g_pLogger->SendAndFlushWithTime(L"[Startup] Serial is open success\n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[Startup] Serial: [%d] is open success\n", m_EF3COMPort);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -419,7 +425,6 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
L"[ACS Motion] Wait for opening of communication with the controller... \n");
|
||||
|
||||
// 10.0.0.100 - default IP address of the controller
|
||||
|
||||
handleACS = acsc_OpenCommEthernet("10.0.0.100", ACSC_SOCKET_DGRAM_PORT);
|
||||
// for the connection to the controller via local network or Internet
|
||||
// hComm = acsc_OpenCommEthernet("10.0.0.100", ACSC_SOCKET_STREAM_PORT);
|
||||
@@ -437,19 +442,17 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
m_bACSConnected = true;
|
||||
g_pLogger->SendAndFlushWithTime(
|
||||
L"[ACS Motion] Communication with the controller established success\n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] ACS Established Success\n");
|
||||
|
||||
//获取ACS 控制器版本号
|
||||
char Firmware[256];
|
||||
int Received;
|
||||
if(!acsc_GetFirmwareVersion(handleACS,Firmware,255,&Received,nullptr))
|
||||
if (!acsc_GetFirmwareVersion(handleACS, Firmware, 255, &Received, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] GET ACS Controller Version failed\n");
|
||||
}
|
||||
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] ACS Controller Version: %s \n",Firmware);
|
||||
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] ACS Controller Version: %s\n", Firmware);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -722,7 +725,7 @@ HSI_STATUS HSI_Motion::GetFirmwareVersion(byte* version)
|
||||
m_Thread_StateData = HSI_THREAD_PAUSED;
|
||||
Sleep(3);
|
||||
int waite_count = 0;
|
||||
unsigned char senddata[64] = {0};
|
||||
unsigned char senddata[8] = {0};
|
||||
//senddata[0] = 0x04;
|
||||
//senddata[1] = 0x03;
|
||||
|
||||
@@ -1007,7 +1010,7 @@ HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
||||
|
||||
//运行 ACS 控制器内buffer0 自动回家动作
|
||||
//回家后,启用正负限位
|
||||
if (!acsc_RunBuffer(handleACS, 0, NULL, ACSC_SYNCHRONOUS))
|
||||
if (!acsc_RunBuffer(handleACS, ACSC_BUFFER_6, nullptr, ACSC_SYNCHRONOUS))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[HomeMachine] ACS Run Buffer 0 error\n");
|
||||
return HSI_STATUS_FAILED;
|
||||
@@ -1381,8 +1384,9 @@ HSI_STATUS HSI_Motion::IsHomed(bool& bHomed)
|
||||
}
|
||||
|
||||
// 判断是否需要回家,读取ACS控制器回家标志位,来判断本次上电是否已经回过家
|
||||
if (!acsc_ReadInteger(handleACS, ACSC_NONE, "ISHOMED", ACSC_NONE, ACSC_NONE, ACSC_NONE, ACSC_NONE, isHomed,
|
||||
NULL))
|
||||
if (!acsc_ReadInteger(handleACS, ACSC_NONE, "YAW_HOME_DONE", ACSC_NONE, ACSC_NONE, ACSC_NONE, ACSC_NONE,
|
||||
isHomed,
|
||||
nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] ACS Read ISHOMED Flag Error\n");
|
||||
CurrentHomeMachineState = E_EF3_HOME_NONE;
|
||||
@@ -1390,7 +1394,8 @@ HSI_STATUS HSI_Motion::IsHomed(bool& bHomed)
|
||||
bHomed = false;
|
||||
}
|
||||
|
||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] ACS Read ISHOMED X:%d Y1:%d Y2:%d Z:%d\n", isHomed[0], isHomed[1],
|
||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] ACS Read YAW_HOME_DONE X:%d Y1:%d Y2:%d Z:%d\n", isHomed[0],
|
||||
isHomed[1],
|
||||
isHomed[2], isHomed[3]);
|
||||
|
||||
//如果各个轴标志位 已经回过家
|
||||
@@ -1778,7 +1783,6 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
if (CurrentHomeMachineState == E_EF3_HOME_FINISHED)
|
||||
{
|
||||
//软限位
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1806,7 +1810,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
int acsDirection = bJOGDir ? ACSC_POSITIVE_DIRECTION : ACSC_NEGATIVE_DIRECTION;
|
||||
if (!acsc_Jog(handleACS, 0, AxisTypes, acsDirection, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] [%d] 轴 [%s] 方向移动失败",AxisTypes,bJOGDir?"正":"负");
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] [%d] 轴 [%s] 方向移动失败", AxisTypes, bJOGDir ? "正" : "负");
|
||||
}
|
||||
|
||||
jogMoving = true;
|
||||
@@ -2177,7 +2181,7 @@ HSI_STATUS HSI_Motion::StopJogOld()
|
||||
g_pLogger->SendAndFlushWithTime(L"[StopJog] PushButtonTime = %d\n", t_use);
|
||||
Sleep(t_use);
|
||||
}
|
||||
unsigned char m_SendJogData[64] = { 0 };
|
||||
unsigned char m_SendJogData[64] = {0};
|
||||
if (m_IsUseJerk == 0)
|
||||
{
|
||||
m_SendJogData[0] = CT_MOTOR;
|
||||
@@ -2430,8 +2434,9 @@ HSI_STATUS HSI_Motion::GetPositionXyzOld(UINT AxisTypes, double& PositionX, doub
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ,
|
||||
double& Time)
|
||||
double& Time)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
//UNREFERENCED_PARAMETER(AxisTypes)的意思就是告诉编译器,
|
||||
@@ -2467,7 +2472,7 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double& PositionX, double&
|
||||
m_EncPos[1] = PositionX;
|
||||
m_EncPos[2] = PositionY;
|
||||
m_EncPos[3] = PositionZ;
|
||||
m_EncPos[4] = m_PosForAllAxis[4];// m_PosForAllAxis 记录4轴位置
|
||||
m_EncPos[4] = m_PosForAllAxis[4]; // m_PosForAllAxis 记录4轴位置
|
||||
m_PosForAllAxis[1] = PositionX;
|
||||
m_PosForAllAxis[2] = PositionY;
|
||||
m_PosForAllAxis[3] = PositionZ;
|
||||
@@ -2483,7 +2488,7 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double& PositionX, double&
|
||||
m_PosForAllAxis[4] = m_EncPos[4];
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] failed\n");
|
||||
}
|
||||
|
||||
|
||||
Time = set_end - set_start;
|
||||
}
|
||||
return rStatus;
|
||||
@@ -3160,7 +3165,7 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double P
|
||||
m_PosThread[3] = PositionZ;
|
||||
m_PosThread[4] = m_PositionA;
|
||||
|
||||
|
||||
|
||||
//打印当前位置,目标位置
|
||||
//g_pLogger->SendAndFlushWithTime(
|
||||
// L"[SetPositionXyzNowPos] Pos[1] = %.4f,Pos[2] = %.4f,Pos[3] = %.4f,Pos[4] = %.4f\n",
|
||||
@@ -3171,19 +3176,20 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double P
|
||||
PositionY, PositionZ, m_PositionA);
|
||||
|
||||
//打印轴当前运动参数
|
||||
double motionParam[5] = { 0 };
|
||||
double motionParam[5] = {0};
|
||||
GetMotorParam(AXIS_X, motionParam);
|
||||
g_pLogger->SendAndFlushWithTime(
|
||||
L"[SetPositionXyz] axis= %d,GetVelocity = %d,GetAcceleration= %d,GetDeceleration= %d, GetKillDeceleration= %d, GetJerk= %d\n",AXIS_X,motionParam[0],motionParam[1],motionParam[2],motionParam[3],motionParam[4]);
|
||||
L"[SetPositionXyz] axis= %d,GetVelocity = %d,GetAcceleration= %d,GetDeceleration= %d, GetKillDeceleration= %d, GetJerk= %d\n",
|
||||
AXIS_X, motionParam[0], motionParam[1], motionParam[2], motionParam[3], motionParam[4]);
|
||||
|
||||
|
||||
//设置轴运动速度,TO-DO
|
||||
|
||||
|
||||
//开始运动到指定位置
|
||||
int Axes[] = { ACSC_AXIS_0, ACSC_AXIS_1, ACSC_AXIS_2 }; //需要运动的轴
|
||||
double Points[] = { PositionX ,PositionY,PositionZ }; //目标位置点
|
||||
if(!acsc_ToPointM(handleACS, 0, Axes, Points, nullptr))
|
||||
int Axes[] = {ACSC_AXIS_0, ACSC_AXIS_1, ACSC_AXIS_2}; //需要运动的轴
|
||||
double Points[] = {PositionX, PositionY, PositionZ}; //目标位置点
|
||||
if (!acsc_ToPointM(handleACS, 0, Axes, Points, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] ACS Multi Motion Error");
|
||||
}
|
||||
@@ -3194,7 +3200,7 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double P
|
||||
//圆弧插补
|
||||
|
||||
|
||||
if (eType == HSI_MOTION_MOVE_NOWAIT)//非等待
|
||||
if (eType == HSI_MOTION_MOVE_NOWAIT) //非等待
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Nowait SetEvent\n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Nowait move!\n");
|
||||
@@ -3204,7 +3210,7 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double P
|
||||
m_Thread_State = HSI_THREAD_RUNNING;
|
||||
SetEvent(m_hTriggerEvent);
|
||||
}
|
||||
if (eType == HSI_MOTION_MOVE_WAIT)//等待模式
|
||||
if (eType == HSI_MOTION_MOVE_WAIT) //等待模式
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Out Success Wait Mode\n");
|
||||
m_Thread_State = HSI_THREAD_RUNNING;
|
||||
|
||||
@@ -158,6 +158,11 @@ public:
|
||||
~HSI_Motion() override;
|
||||
HSI_STATUS IsSupported(UINT& Types) override;
|
||||
HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly) override;
|
||||
/**
|
||||
* \brief 获取EF3固件版本
|
||||
* \param version
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS GetFirmwareVersion(byte* version);
|
||||
/**
|
||||
* \brief 判断机台是否回家,如果没有,则执行回家动作
|
||||
@@ -272,7 +277,7 @@ public:
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS Shutdown() override;
|
||||
HSI_STATUS ShutdownOld() override;
|
||||
//HSI_STATUS ShutdownOld() override;
|
||||
|
||||
HSI_STATUS IsSupportedEx(UINT AxisTypes, UINT& Types);
|
||||
HSI_STATUS StartupEx(UINT AxisTypes, bool bHome);
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
#include "logger.h"
|
||||
#include <atltime.h>
|
||||
#include <sys/timeb.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
||||
void CLogger::SendAtTime(const TCHAR* buffer)
|
||||
{
|
||||
@@ -115,3 +119,19 @@ void CLogger::SendAndFlushPerMode(LPCTSTR format, ...)
|
||||
}
|
||||
LeaveCriticalSection(&m_lockLogger);
|
||||
}
|
||||
|
||||
|
||||
//void Getfilepath(const char* path, const char* filename, char* filepath)
|
||||
//{
|
||||
// strcpy(filepath, path);
|
||||
// if (filepath[strlen(path) - 1] != '/')
|
||||
// strcat(filepath, "/");
|
||||
// strcat(filepath, filename);
|
||||
// printf("path is = %s\n", filepath);
|
||||
//}
|
||||
|
||||
//删除当前目录下txt文件
|
||||
void CLogger::DeleteOldFile()
|
||||
{
|
||||
|
||||
}
|
||||
@@ -51,6 +51,8 @@ public:
|
||||
void SendAndFlush(LPCTSTR, ...);
|
||||
void SendAndFlushPerMode(LPCTSTR, ...);
|
||||
void SendAndFlushWithTime(LPCTSTR, ...);
|
||||
void CLogger::DeleteOldFile();
|
||||
|
||||
bool IsEnabledLog/* = false*/; //是否启用日志
|
||||
CString m_FileName;
|
||||
long m_lLogMask;
|
||||
|
||||
@@ -12,5 +12,5 @@
|
||||
#define HSI_VERSION_REVNUM
|
||||
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
|
||||
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
|
||||
#define HSI_FILE_DESCRIPTION "2022.10.13 / 17:21 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2022.10.13 / 17:21 ")
|
||||
#define HSI_FILE_DESCRIPTION "2022.10.14 / 11:53 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2022.10.14 / 11:53 ")
|
||||
|
||||
@@ -125,6 +125,7 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_IS_HOMED", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS IsHomed(ref bool bHomed);
|
||||
|
||||
|
||||
[DllImport("HSI.dll", EntryPoint = "HSI_MOTION_GET_SPEED_XYZ", CharSet = CharSet.Unicode)]
|
||||
public static extern Def.HSI_STATUS GetSpeedXyz(ref double speed);
|
||||
|
||||
|
||||
@@ -12,27 +12,25 @@ namespace HSI_SEVENOCEAN_EF1_CsTest
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
//获取HSI Dll版本
|
||||
//1 获取HSI Dll版本
|
||||
uint major = Def.HSI_APIVersionMajor;
|
||||
uint minjor = Def.HSI_APIVersionMinor;
|
||||
var rStatus = Interface.GetInterfaceVersion(ref major, ref minjor);
|
||||
Console.WriteLine("Interface.GetInterfaceVersion: {0}", rStatus);
|
||||
Console.WriteLine("HSI.dll Version: {0}.{1}", major, minjor);
|
||||
|
||||
//HSI 初始化
|
||||
//2 HSI 初始化
|
||||
var mainIntPtr = User32Api.GetCurrentWindowHandle();
|
||||
rStatus = Interface.Startup(mainIntPtr, false);
|
||||
Console.WriteLine("Interface.Startup: {0}", rStatus);
|
||||
|
||||
//获取机器类型
|
||||
//3 获取机器类型
|
||||
var machineVersion = Def.HSI_EF3Version;
|
||||
rStatus = Interface.GetMachineInfo(ref machineVersion);
|
||||
Console.WriteLine("Interface.GetMachineInfo: {0}", rStatus);
|
||||
Console.WriteLine("HSI EF3 Version: {0}", machineVersion);
|
||||
|
||||
|
||||
|
||||
//设置回调,方便根据回调结果进行提醒
|
||||
//4 设置回调,方便根据回调结果进行提醒
|
||||
Interface.HsiCallback = Interface.EventCallback;
|
||||
rStatus = Interface.SetEventCallback(Interface.HsiCallback);
|
||||
Console.WriteLine("SetEventCallback:{0}", rStatus); //事件回调成功
|
||||
@@ -42,14 +40,14 @@ namespace HSI_SEVENOCEAN_EF1_CsTest
|
||||
rStatus = Motion.Startup(true); //运动初始化,回家判断
|
||||
Console.WriteLine("Motion.Startup:{0}", rStatus);
|
||||
|
||||
//获取EF3固件版本号,待测试
|
||||
//5 获取EF3固件版本号,待测试
|
||||
var EF3Version = new byte[20];
|
||||
//IntPtr intPtrEF3Version = IntPtr.Zero;
|
||||
IntPtr intPtrEF3Version = Marshal.StringToHGlobalAnsi("");
|
||||
rStatus = Interface.MotionGetFirewareVerion(intPtrEF3Version);
|
||||
Console.WriteLine("Interface.MotionGetFirewareVerion: {0}", rStatus);
|
||||
Marshal.Copy(intPtrEF3Version, EF3Version, 0, EF3Version.Length);
|
||||
Console.WriteLine("EF3 FirewareVerion Version: {0}", Encoding.Unicode.GetString(EF3Version));
|
||||
Console.WriteLine("EF3 FirewareVerion Version: {0}", Encoding.UTF8.GetString(EF3Version));
|
||||
|
||||
var bHomed = true;
|
||||
rStatus = Motion.IsHomed(ref bHomed);
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user