新增 dll 通过串口获取 EF3固件版本号
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,134 +1,150 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using HSI_SEVENOCEAN_EF1_CsTest;
|
||||
using HSI_SEVENOCEAN_EF1_CsTest.HSI;
|
||||
|
||||
namespace HSI_SEVENOCEAN_EF1_CsTest
|
||||
{
|
||||
class Program
|
||||
{
|
||||
private static Interface.PEventCallback _eventCallback;
|
||||
internal class Program
|
||||
{
|
||||
private static Interface.PEventCallback _eventCallback;
|
||||
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
//获取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);
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
uint major = Def.HSI_APIVersionMajor;
|
||||
uint minjor = Def.HSI_APIVersionMinor;
|
||||
var rStatus = Interface.GetInterfaceVersion(ref major, ref minjor);
|
||||
Console.WriteLine("Interface.GetInterfaceVersion:{0}", rStatus);
|
||||
Console.WriteLine("Version:{0}.{1}", major, minjor);
|
||||
var mainIntPtr = User32Api.GetCurrentWindowHandle();
|
||||
rStatus = Interface.Startup(mainIntPtr, false);
|
||||
Console.WriteLine("Interface.Startup:{0}", rStatus);
|
||||
//HSI 初始化
|
||||
var mainIntPtr = User32Api.GetCurrentWindowHandle();
|
||||
rStatus = Interface.Startup(mainIntPtr, false);
|
||||
Console.WriteLine("Interface.Startup: {0}", rStatus);
|
||||
|
||||
Interface.HsiCallback=new Interface.PEventCallback(Interface.EventCallback);
|
||||
rStatus = Interface.SetEventCallback(Interface.HsiCallback);
|
||||
Console.WriteLine("SetEventCallback:{0}", rStatus);
|
||||
//获取机器类型
|
||||
var machineVersion = Def.HSI_EF3Version;
|
||||
rStatus = Interface.GetMachineInfo(ref machineVersion);
|
||||
Console.WriteLine("Interface.GetMachineInfo: {0}", rStatus);
|
||||
Console.WriteLine("HSI EF3 Version: {0}", machineVersion);
|
||||
|
||||
//if (Motion.IsActive(true))
|
||||
{
|
||||
rStatus = Motion.Startup(true);
|
||||
Console.WriteLine("Motion.Startup:{0}", rStatus);
|
||||
|
||||
|
||||
var bHomed = true;
|
||||
rStatus = Motion.IsHomed(ref bHomed);
|
||||
Console.WriteLine("Motion.IsHomed:{0}", rStatus);
|
||||
var bexit = false;
|
||||
double SpeedGear = 1.0;
|
||||
var dPos = new double[3];
|
||||
do
|
||||
{
|
||||
var info = Console.ReadKey();
|
||||
double dTime = 0;
|
||||
switch (info.Key)
|
||||
{
|
||||
case ConsoleKey.P:
|
||||
dPos[0] += 10.0;
|
||||
dPos[1] += 10.0;
|
||||
rStatus = Motion.SetPositionXyz(Def.HSI_MOTION_AXIS_ALL, dPos[0], dPos[1], dPos[2], Def.HSI_MOTION_MOVE_TYPE.HSI_MOTION_MOVE_NOWAIT, 0.0);
|
||||
//设置回调,方便根据回调结果进行提醒
|
||||
Interface.HsiCallback = Interface.EventCallback;
|
||||
rStatus = Interface.SetEventCallback(Interface.HsiCallback);
|
||||
Console.WriteLine("SetEventCallback:{0}", rStatus); //事件回调成功
|
||||
|
||||
break;
|
||||
case ConsoleKey.Enter:
|
||||
rStatus = Motion.GetPositionXyz(Def.HSI_MOTION_AXIS_ALL, ref dPos[0], ref dPos[1], ref dPos[2], ref dTime);
|
||||
Console.WriteLine("Motion.GetPositionXyz:{0}", rStatus);
|
||||
Console.WriteLine("Motion.XYZ:{0},{1},{2}", dPos[0], dPos[1], dPos[2]);
|
||||
break;
|
||||
case ConsoleKey.Escape:
|
||||
bexit = true;
|
||||
break;
|
||||
case ConsoleKey.Spacebar:
|
||||
rStatus = Motion.StopJog();
|
||||
Console.WriteLine("Motion.StopJog:{0}", rStatus);
|
||||
break;
|
||||
case ConsoleKey.NumPad1:
|
||||
case ConsoleKey.D1:
|
||||
SpeedGear = 1.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.NumPad2:
|
||||
case ConsoleKey.D2:
|
||||
SpeedGear = 2.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.NumPad3:
|
||||
case ConsoleKey.D3:
|
||||
SpeedGear = 3.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.NumPad4:
|
||||
case ConsoleKey.D4:
|
||||
SpeedGear = 4.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.LeftArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X, -SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(X,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.RightArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X, SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(X,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.DownArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y, -SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Y,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.UpArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y, SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Y,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.PageUp:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z, SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Z,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.PageDown:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z, -SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Z,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Invalid");
|
||||
break;
|
||||
}
|
||||
} while (!bexit);
|
||||
//if (Motion.IsActive(true))
|
||||
{
|
||||
rStatus = Motion.Startup(true); //运动初始化
|
||||
Console.WriteLine("Motion.Startup:{0}", rStatus);
|
||||
|
||||
//获取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));
|
||||
|
||||
var bHomed = true;
|
||||
rStatus = Motion.IsHomed(ref bHomed);
|
||||
Console.WriteLine("Motion.IsHomed:{0}", rStatus);
|
||||
var bexit = false;
|
||||
var SpeedGear = 1.0;
|
||||
var dPos = new double[3];
|
||||
do
|
||||
{
|
||||
var info = Console.ReadKey();
|
||||
double dTime = 0;
|
||||
switch (info.Key)
|
||||
{
|
||||
case ConsoleKey.P:
|
||||
dPos[0] += 10.0;
|
||||
dPos[1] += 10.0;
|
||||
rStatus = Motion.SetPositionXyz(Def.HSI_MOTION_AXIS_ALL, dPos[0], dPos[1], dPos[2],
|
||||
Def.HSI_MOTION_MOVE_TYPE.HSI_MOTION_MOVE_NOWAIT, 0.0);
|
||||
|
||||
break;
|
||||
case ConsoleKey.Enter:
|
||||
rStatus = Motion.GetPositionXyz(Def.HSI_MOTION_AXIS_ALL, ref dPos[0], ref dPos[1],
|
||||
ref dPos[2], ref dTime);
|
||||
Console.WriteLine("Motion.GetPositionXyz:{0}", rStatus);
|
||||
Console.WriteLine("Motion.XYZ:{0},{1},{2}", dPos[0], dPos[1], dPos[2]);
|
||||
break;
|
||||
case ConsoleKey.Escape:
|
||||
bexit = true;
|
||||
break;
|
||||
case ConsoleKey.Spacebar:
|
||||
rStatus = Motion.StopJog();
|
||||
Console.WriteLine("Motion.StopJog:{0}", rStatus);
|
||||
break;
|
||||
case ConsoleKey.NumPad1:
|
||||
case ConsoleKey.D1:
|
||||
SpeedGear = 1.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.NumPad2:
|
||||
case ConsoleKey.D2:
|
||||
SpeedGear = 2.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.NumPad3:
|
||||
case ConsoleKey.D3:
|
||||
SpeedGear = 3.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.NumPad4:
|
||||
case ConsoleKey.D4:
|
||||
SpeedGear = 4.0;
|
||||
Console.WriteLine("Motion.SpeedGera:{0}", SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.LeftArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X, -SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(X,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.RightArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_X, SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(X,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.DownArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y, -SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Y,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.UpArrow:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Y, SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Y,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.PageUp:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z, SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Z,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
case ConsoleKey.PageDown:
|
||||
rStatus = Motion.Jog((uint)Def.HSI_MOTION_AXIS_TYPE.HSI_MOTION_AXIS_Z, -SpeedGear);
|
||||
Console.WriteLine("Motion.Jog(Z,{1}):{0}", rStatus, SpeedGear);
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Invalid");
|
||||
break;
|
||||
}
|
||||
} while (!bexit);
|
||||
|
||||
|
||||
rStatus = Motion.Shutdown();
|
||||
Console.WriteLine("Motion.Startup:{0}", rStatus);
|
||||
}
|
||||
|
||||
|
||||
rStatus = Motion.Shutdown();
|
||||
Console.WriteLine("Motion.Startup:{0}", rStatus);
|
||||
}
|
||||
rStatus = Interface.Shutdown();
|
||||
Console.WriteLine("Interface.Shutdown:{0}", rStatus);
|
||||
|
||||
|
||||
rStatus = Interface.Shutdown();
|
||||
Console.WriteLine("Interface.Shutdown:{0}", rStatus);
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Press any key to exit...");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Press any key to exit...");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user