A8SDK
This commit is contained in:
@@ -172,89 +172,50 @@ namespace JoyD.Windows.CS.Toprie
|
||||
public char second;
|
||||
}
|
||||
|
||||
// TODO: 添加DllImport声明
|
||||
// [DllImport(@"SDK\a8sdk.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "sdk_initialize")]
|
||||
// private static extern int SdkInitialize();
|
||||
// ... 其他DllImport声明 ...
|
||||
|
||||
private readonly IntPtr ipx;
|
||||
// 使用V8类实例来实现功能
|
||||
private readonly string deviceIp;
|
||||
private readonly V8 v8Instance;
|
||||
|
||||
public A8SDK(string ip)
|
||||
{
|
||||
ipx = Marshal.StringToHGlobalAnsi(ip);
|
||||
deviceIp = ip;
|
||||
v8Instance = new V8(ip);
|
||||
}
|
||||
|
||||
~A8SDK()
|
||||
{
|
||||
Marshal.FreeHGlobal(ipx);
|
||||
// 注意:不再直接调用SdkDestroy(),全局资源由静态方法SDK_destroy()统一管理
|
||||
// V8类的析构函数会自动处理资源释放
|
||||
}
|
||||
|
||||
public static int SDK_initialize()
|
||||
{
|
||||
// TODO: 实现SDK初始化 - 需添加DllImport声明
|
||||
return 0;
|
||||
return V8.SDK_initialize();
|
||||
}
|
||||
|
||||
public static int SDK_destroy()
|
||||
{
|
||||
// TODO: 实现SDK清理 - 需添加DllImport声明
|
||||
return 0;
|
||||
return V8.SDK_destroy();
|
||||
}
|
||||
|
||||
public static String SDK_serch_device(int list_len)
|
||||
{
|
||||
// TODO: 实现设备搜索 - 需添加DllImport声明
|
||||
// 根据list_len参数分配足够的内存,至少128字节
|
||||
int bufferSize = Math.Max(128, list_len);
|
||||
IntPtr device_list = Marshal.AllocHGlobal(bufferSize);
|
||||
|
||||
try
|
||||
{
|
||||
// 调用SDK搜索设备,并检查返回值
|
||||
// int result = SdkSearchDevice(device_list, list_len);
|
||||
// if (result != 0)
|
||||
// {
|
||||
// // 搜索失败,返回空字符串或错误信息
|
||||
// return string.Empty;
|
||||
// }
|
||||
|
||||
// 安全地将非托管内存转换为字符串
|
||||
string str = Marshal.PtrToStringAnsi(device_list);
|
||||
return str;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 捕获可能的异常
|
||||
Console.WriteLine($"搜索设备时出错: {ex.Message}");
|
||||
return string.Empty;
|
||||
}
|
||||
finally
|
||||
{
|
||||
// 确保在任何情况下都释放内存
|
||||
Marshal.FreeHGlobal(device_list);
|
||||
}
|
||||
return V8.SDK_serch_device(list_len);
|
||||
}
|
||||
|
||||
public void Shutter_correction()
|
||||
{
|
||||
// TODO: 实现快门校正 - 需添加DllImport声明
|
||||
// SdkShutterCorrection(ipx);
|
||||
v8Instance.Shutter_correction();
|
||||
}
|
||||
|
||||
public int Shutter_times
|
||||
{
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取快门时间 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetShutterAutoCorrection(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Shutter_times;
|
||||
}
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置快门时间 - 需添加DllImport声明
|
||||
// SdkSetShutterAutoCorrection(ipx, value);
|
||||
v8Instance.Shutter_times = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,15 +223,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取色板 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetColorPlate(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Color_plate;
|
||||
}
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置色板 - 需添加DllImport声明
|
||||
// SdkSetColorPlate(ipx, value);
|
||||
v8Instance.Color_plate = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,15 +235,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取镜像模式 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetVideoMirror(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Mirror_mode;
|
||||
}
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置镜像模式 - 需添加DllImport声明
|
||||
// SdkSetVideoMirror(ipx, value);
|
||||
v8Instance.Mirror_mode = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,62 +247,43 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取视频模式 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetVideoMode(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Video_mode;
|
||||
}
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置视频模式 - 需添加DllImport声明
|
||||
// SdkSetVideoMode(ipx, value);
|
||||
v8Instance.Video_mode = value;
|
||||
}
|
||||
}
|
||||
|
||||
public void Set_area_pos(int index, AreaPos area_data)
|
||||
{
|
||||
// TODO: 实现设置区域位置 - 需添加DllImport声明
|
||||
// unsafe { SdkSetAreaPos(ipx, index, &area_data); }
|
||||
v8Instance.Set_area_pos(index, area_data);
|
||||
}
|
||||
|
||||
public AreaPos Get_area_pos(int index)
|
||||
{
|
||||
// TODO: 实现获取区域位置 - 需添加DllImport声明
|
||||
AreaPos area_data = new AreaPos();
|
||||
// unsafe { SdkGetAreaPos(ipx, index, &area_data); }
|
||||
return area_data;
|
||||
return v8Instance.Get_area_pos(index);
|
||||
}
|
||||
|
||||
public void Set_spot_pos(int index, SpotPos spot_data)
|
||||
{
|
||||
// TODO: 实现设置点位置 - 需添加DllImport声明
|
||||
// unsafe { SdkSetSpotPos(ipx, index, &spot_data); }
|
||||
v8Instance.Set_spot_pos(index, spot_data);
|
||||
}
|
||||
|
||||
public SpotPos Get_spot_pos(int index)
|
||||
{
|
||||
// TODO: 实现获取点位置 - 需添加DllImport声明
|
||||
SpotPos spot_data = new SpotPos();
|
||||
// unsafe { SdkGetSpotPos(ipx, index, &spot_data); }
|
||||
return spot_data;
|
||||
return v8Instance.Get_spot_pos(index);
|
||||
}
|
||||
|
||||
public LinePos Line_pos
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置线位置 - 需添加DllImport声明
|
||||
// unsafe
|
||||
// {
|
||||
// SdkSetLinePos(ipx, &value);
|
||||
// }
|
||||
v8Instance.Line_pos = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取线位置 - 需添加DllImport声明
|
||||
LinePos line_data = new LinePos();
|
||||
// unsafe { SdkGetLinePos(ipx, &line_data); }
|
||||
return line_data;
|
||||
return v8Instance.Line_pos;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,13 +291,7 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取所有位置 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(ImagePos)));
|
||||
ImagePos data = new ImagePos();
|
||||
// SdkGetAllPos(ipx, ip);
|
||||
// data = (ImagePos)Marshal.PtrToStructure(ip, typeof(ImagePos));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.All_pos;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -371,15 +299,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置温度范围 - 需添加DllImport声明
|
||||
// SdkSetTempRange(ipx, value);
|
||||
v8Instance.Temp_range = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取温度范围 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetTempRange(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Temp_range;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -387,15 +311,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置X偏移 - 需添加DllImport声明
|
||||
// SdkSetVideoIspXOffset(ipx, value);
|
||||
v8Instance.Video_isp_x_offset = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取X偏移 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetVideoIspXOffset(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Video_isp_x_offset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,15 +323,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置Y偏移 - 需添加DllImport声明
|
||||
// SdkSetVideoIspYOffset(ipx, value);
|
||||
v8Instance.Video_isp_y_offset = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取Y偏移 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetVideoIspYOffset(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Video_isp_y_offset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,15 +335,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置X缩放 - 需添加DllImport声明
|
||||
// SdkSetVideoIspXScale(ipx, value);
|
||||
v8Instance.Video_isp_x_scale = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取X缩放 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetVideoIspXScale(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Video_isp_x_scale;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,15 +347,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置Y缩放 - 需添加DllImport声明
|
||||
// SdkSetVideoIspYScale(ipx, value);
|
||||
v8Instance.Video_isp_y_scale = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取Y缩放 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetVideoIspYScale(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Video_isp_y_scale;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,15 +359,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置LED - 需添加DllImport声明
|
||||
// SdkSetLed(ipx, value);
|
||||
v8Instance.Set_led = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取LED状态 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetLed(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Set_led;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -467,21 +371,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置邮件服务器 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EmailServer)));
|
||||
Marshal.StructureToPtr(value, ip, true);
|
||||
// SdkSetEmailServer(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Email_server = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取邮件服务器 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EmailServer)));
|
||||
EmailServer data = new EmailServer();
|
||||
// SdkGetEmailServer(ipx, ip);
|
||||
// data = (EmailServer)Marshal.PtrToStructure(ip, typeof(EmailServer));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Email_server;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -489,21 +383,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置TFTP服务器 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TftpServer)));
|
||||
Marshal.StructureToPtr(value, ip, true);
|
||||
// SdkSetTftpServer(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Tftp_server = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取TFTP服务器 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TftpServer)));
|
||||
TftpServer data = new TftpServer();
|
||||
// SdkGetTftpServer(ipx, ip);
|
||||
// data = (TftpServer)Marshal.PtrToStructure(ip, typeof(TftpServer));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Tftp_server;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,21 +395,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置网络参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NetworkEth)));
|
||||
Marshal.StructureToPtr(value, ip, true);
|
||||
// SdkSetNetworkEth(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Network_eth = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取网络参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NetworkEth)));
|
||||
NetworkEth data = new NetworkEth();
|
||||
// SdkGetNetworkEth(ipx, ip);
|
||||
// data = (NetworkEth)Marshal.PtrToStructure(ip, typeof(NetworkEth));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Network_eth;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -533,285 +407,148 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置融合距离 - 需添加DllImport声明
|
||||
// SdkSetFusionDistance(ipx, value);
|
||||
v8Instance.Fusion_distance = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取融合距离 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetFusionDistance(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Fusion_distance;
|
||||
}
|
||||
}
|
||||
|
||||
public void Set_envir_param(EnvirParam data)
|
||||
{
|
||||
// TODO: 实现设置环境参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam)));
|
||||
Marshal.StructureToPtr(data, ip, true);
|
||||
// SdkSetEnvirParam(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Set_envir_param(data);
|
||||
}
|
||||
|
||||
public EnvirParam Get_area_envir_param(int index)
|
||||
{
|
||||
// TODO: 实现获取区域环境参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam)));
|
||||
EnvirParam data = new EnvirParam();
|
||||
// SdkGetAreaEnvirParam(ipx, index, ip);
|
||||
// data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_area_envir_param(index);
|
||||
}
|
||||
|
||||
public EnvirParam Get_spot_envir_param(int index)
|
||||
{
|
||||
// TODO: 实现获取点环境参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam)));
|
||||
EnvirParam data = new EnvirParam();
|
||||
// SdkGetSpotEnvirParam(ipx, index, ip);
|
||||
// data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_spot_envir_param(index);
|
||||
}
|
||||
|
||||
public EnvirParam Get_line_envir_param()
|
||||
{
|
||||
// TODO: 实现获取线环境参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam)));
|
||||
EnvirParam data = new EnvirParam();
|
||||
// SdkGetLineEnvirParam(ipx, 0, ip);
|
||||
// data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_line_envir_param();
|
||||
}
|
||||
|
||||
public EnvirParam Get_globa_envir_param()
|
||||
{
|
||||
// TODO: 实现获取全局环境参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam)));
|
||||
EnvirParam data = new EnvirParam();
|
||||
// SdkGetGlobaEnvirParam(ipx, ip);
|
||||
// data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_globa_envir_param();
|
||||
}
|
||||
|
||||
public void Set_alarm_param(AlarmParam data)
|
||||
{
|
||||
// TODO: 实现设置报警参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam)));
|
||||
Marshal.StructureToPtr(data, ip, true);
|
||||
// SdkSetAlarmParam(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Set_alarm_param(data);
|
||||
}
|
||||
|
||||
public AlarmParam Get_area_alarm_param(int index)
|
||||
{
|
||||
// TODO: 实现获取区域报警参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam)));
|
||||
AlarmParam data = new AlarmParam();
|
||||
// SdkGetAreaAlarmParam(ipx, index, ip);
|
||||
// data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_area_alarm_param(index);
|
||||
}
|
||||
|
||||
public AlarmParam Get_spot_alarm_param(int index)
|
||||
{
|
||||
// TODO: 实现获取点报警参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam)));
|
||||
AlarmParam data = new AlarmParam();
|
||||
// SdkGetSpotAlarmParam(ipx, index, ip);
|
||||
// data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_spot_alarm_param(index);
|
||||
}
|
||||
|
||||
public AlarmParam Get_globa_alarm_param()
|
||||
{
|
||||
// TODO: 实现获取全局报警参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam)));
|
||||
AlarmParam data = new AlarmParam();
|
||||
// SdkGetLineAlarmParam(ipx, 0, ip);
|
||||
// data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_globa_alarm_param();
|
||||
}
|
||||
|
||||
public AlarmParam Get_line_alarm_param()
|
||||
{
|
||||
// TODO: 实现获取线报警参数 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam)));
|
||||
AlarmParam data = new AlarmParam();
|
||||
// SdkGetLineAlarmParam(ipx, 0, ip);
|
||||
// data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_line_alarm_param();
|
||||
}
|
||||
|
||||
public AreaTemp Get_area_temp(int index)
|
||||
{
|
||||
// TODO: 实现获取区域温度 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AreaTemp)));
|
||||
AreaTemp data = new AreaTemp();
|
||||
// SdkGetAreaTempData(ipx, index, ip);
|
||||
// data = (AreaTemp)Marshal.PtrToStructure(ip, typeof(AreaTemp));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_area_temp(index);
|
||||
}
|
||||
|
||||
public SpotTemp Get_spot_temp(int index)
|
||||
{
|
||||
// TODO: 实现获取点温度 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SpotTemp)));
|
||||
SpotTemp data = new SpotTemp();
|
||||
// SdkGetSpotTempData(ipx, index, ip);
|
||||
// data = (SpotTemp)Marshal.PtrToStructure(ip, typeof(SpotTemp));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_spot_temp(index);
|
||||
}
|
||||
|
||||
public LineTemp Get_line_temp()
|
||||
{
|
||||
// TODO: 实现获取线温度 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LineTemp)));
|
||||
LineTemp data = new LineTemp();
|
||||
// SdkGetLineTempData(ipx, 0, ip);
|
||||
// data = (LineTemp)Marshal.PtrToStructure(ip, typeof(LineTemp));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_line_temp();
|
||||
}
|
||||
|
||||
public GlobaTemp Get_globa_temp()
|
||||
{
|
||||
// TODO: 实现获取全局温度 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(GlobaTemp)));
|
||||
GlobaTemp data = new GlobaTemp();
|
||||
// SdkGetGlobaTempData(ipx, ip);
|
||||
// data = (GlobaTemp)Marshal.PtrToStructure(ip, typeof(GlobaTemp));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_globa_temp();
|
||||
}
|
||||
|
||||
public ImageTemp Get_all_temp()
|
||||
{
|
||||
// TODO: 实现获取所有温度数据 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(ImageTemp)));
|
||||
ImageTemp data = new ImageTemp();
|
||||
// SdkGetAllTempData(ipx, ip);
|
||||
// data = (ImageTemp)Marshal.PtrToStructure(ip, typeof(ImageTemp));
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_all_temp();
|
||||
}
|
||||
|
||||
public void Power_reboot()
|
||||
{
|
||||
// TODO: 实现设备重启 - 需添加DllImport声明
|
||||
// SdkPowerReboot(ipx);
|
||||
v8Instance.Power_reboot();
|
||||
}
|
||||
|
||||
public void Param_recover()
|
||||
{
|
||||
// TODO: 实现参数恢复 - 需添加DllImport声明
|
||||
// SdkParamRecover(ipx);
|
||||
v8Instance.Param_recover();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
// TODO: 实现设备更新 - 需添加DllImport声明
|
||||
// SdkUpdate(ipx);
|
||||
v8Instance.Update();
|
||||
}
|
||||
|
||||
public int Heartbeat()
|
||||
{
|
||||
// TODO: 实现心跳检测 - 需添加DllImport声明
|
||||
try
|
||||
{
|
||||
// 确保ipx指针有效
|
||||
if (ipx == IntPtr.Zero)
|
||||
{
|
||||
Console.WriteLine("SDK实例IP指针无效");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// int result = SdkHeartbeat(ipx);
|
||||
return 0; // 默认返回0表示成功
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"心跳检测异常: {ex.Message}");
|
||||
return -1;
|
||||
}
|
||||
return v8Instance.Heartbeat();
|
||||
}
|
||||
|
||||
public void Set_uart(int nSpeed, int nBits, char nEvent, int nStop)
|
||||
{
|
||||
// TODO: 实现设置串口 - 需添加DllImport声明
|
||||
// SdkSetUart(ipx, nSpeed, nBits, nEvent, nStop);
|
||||
v8Instance.Set_uart(nSpeed, nBits, nEvent, nStop);
|
||||
}
|
||||
|
||||
public void Send_uart_command(byte[] cmd)
|
||||
{
|
||||
// TODO: 实现发送串口命令 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(cmd.Length);
|
||||
char len = (char)cmd.Length;
|
||||
// SdkSendUartCommand(ipx, ip, len);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Send_uart_command(cmd);
|
||||
}
|
||||
|
||||
public void Autofocus(FocusParam data)
|
||||
{
|
||||
// TODO: 实现自动对焦 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(FocusParam)));
|
||||
Marshal.StructureToPtr(data, ip, true);
|
||||
// SdkAutofocus(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Autofocus(data);
|
||||
}
|
||||
|
||||
public void Set_device_name(string data)
|
||||
{
|
||||
// TODO: 实现设置设备名称 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.StringToHGlobalAnsi(data);
|
||||
// SdkSetDeviceName(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Set_device_name(data);
|
||||
}
|
||||
|
||||
public string Get_device_name()
|
||||
{
|
||||
// TODO: 实现获取设备名称 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(128);
|
||||
// SdkGetDeviceName(ipx, ip);
|
||||
string str = Marshal.PtrToStringAnsi(ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return str;
|
||||
return v8Instance.Get_device_name();
|
||||
}
|
||||
|
||||
public byte[] Get_detect_number()
|
||||
{
|
||||
// TODO: 实现获取检测编号 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(20);
|
||||
// SdkGetDetectNumber(ipx, ip);
|
||||
byte[] data = new byte[20];
|
||||
// Marshal.Copy(ip, data, 0, 20);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
return data;
|
||||
return v8Instance.Get_detect_number();
|
||||
}
|
||||
|
||||
public char Temp_frame
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置温度帧 - 需添加DllImport声明
|
||||
// SdkSetTempFrame(ipx, value);
|
||||
v8Instance.Temp_frame = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取温度帧 - 需添加DllImport声明
|
||||
char i = (char)0;
|
||||
// unsafe { SdkGetTempFrame(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Temp_frame;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -819,15 +556,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
set
|
||||
{
|
||||
// TODO: 实现设置报警输出 - 需添加DllImport声明
|
||||
// SdkSetAlarmOut(ipx, value);
|
||||
v8Instance.Alarm = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取报警输入 - 需添加DllImport声明
|
||||
char i = (char)0;
|
||||
// unsafe { SdkGetAlarmIn(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Alarm;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -835,20 +568,13 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
get
|
||||
{
|
||||
// TODO: 实现获取补偿温度 - 需添加DllImport声明
|
||||
int i = 0;
|
||||
// unsafe { SdkGetCompTemp(ipx, &i); }
|
||||
return i;
|
||||
return v8Instance.Comp_temp;
|
||||
}
|
||||
}
|
||||
|
||||
public void Set_time(TimeParam data)
|
||||
{
|
||||
// TODO: 实现设置系统时间 - 需添加DllImport声明
|
||||
IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TimeParam)));
|
||||
Marshal.StructureToPtr(data, ip, true);
|
||||
// SdkSetTime(ipx, ip);
|
||||
Marshal.FreeHGlobal(ip);
|
||||
v8Instance.Set_time(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user