1172 lines
32 KiB
C#
1172 lines
32 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Runtime.InteropServices;
|
||
|
||
namespace JoyD.Windows.CS.Toprie
|
||
{
|
||
/// <summary>
|
||
/// A8SDK设备控制类,用于与A8热成像设备进行通信和控制
|
||
/// </summary>
|
||
public class A8SDK
|
||
{
|
||
/// <summary>
|
||
/// 区域位置结构体,包含启用状态和位置坐标信息
|
||
/// </summary>
|
||
public struct AreaPos
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 区域左上角X坐标
|
||
/// </summary>
|
||
public int x;
|
||
/// <summary>
|
||
/// 区域左上角Y坐标
|
||
/// </summary>
|
||
public int y;
|
||
/// <summary>
|
||
/// 区域宽度
|
||
/// </summary>
|
||
public int width;
|
||
/// <summary>
|
||
/// 区域高度
|
||
/// </summary>
|
||
public int height;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 点位置结构体,用于定义测量点的位置
|
||
/// </summary>
|
||
public struct SpotPos
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 点的X坐标
|
||
/// </summary>
|
||
public int x;
|
||
/// <summary>
|
||
/// 点的Y坐标
|
||
/// </summary>
|
||
public int y;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 线位置结构体,用于定义测量线的起始和结束位置
|
||
/// </summary>
|
||
public struct LinePos
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 起始点X坐标
|
||
/// </summary>
|
||
public int sta_x;
|
||
/// <summary>
|
||
/// 起始点Y坐标
|
||
/// </summary>
|
||
public int sta_y;
|
||
/// <summary>
|
||
/// 结束点X坐标
|
||
/// </summary>
|
||
public int end_x;
|
||
/// <summary>
|
||
/// 结束点Y坐标
|
||
/// </summary>
|
||
public int end_y;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 图像位置结构体,包含所有测量区域、点和线的位置信息
|
||
/// </summary>
|
||
public struct ImagePos
|
||
{
|
||
/// <summary>
|
||
/// 区域位置数组,最多支持6个区域
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||
public AreaPos[] area;
|
||
/// <summary>
|
||
/// 点位置数组,最多支持6个点
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||
public SpotPos[] spot;
|
||
/// <summary>
|
||
/// 线位置
|
||
/// </summary>
|
||
public LinePos line;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 区域温度结构体,包含区域的温度统计数据
|
||
/// </summary>
|
||
public struct AreaTemp
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 最高温度值
|
||
/// </summary>
|
||
public int max_temp;
|
||
/// <summary>
|
||
/// 最高温度点的X坐标
|
||
/// </summary>
|
||
public int max_temp_x;
|
||
/// <summary>
|
||
/// 最高温度点的Y坐标
|
||
/// </summary>
|
||
public int max_temp_y;
|
||
/// <summary>
|
||
/// 最低温度值
|
||
/// </summary>
|
||
public int min_temp;
|
||
/// <summary>
|
||
/// 最低温度点的X坐标
|
||
/// </summary>
|
||
public int min_temp_x;
|
||
/// <summary>
|
||
/// 最低温度点的Y坐标
|
||
/// </summary>
|
||
public int min_temp_y;
|
||
/// <summary>
|
||
/// 平均温度值
|
||
/// </summary>
|
||
public int ave_temp;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 点温度结构体,包含单个测量点的温度信息
|
||
/// </summary>
|
||
public struct SpotTemp
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 温度值
|
||
/// </summary>
|
||
public int temp;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 线温度结构体,包含测量线的温度统计数据
|
||
/// </summary>
|
||
public struct LineTemp
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 最高温度值
|
||
/// </summary>
|
||
public int max_temp;
|
||
/// <summary>
|
||
/// 最高温度点的X坐标
|
||
/// </summary>
|
||
public int max_temp_x;
|
||
/// <summary>
|
||
/// 最高温度点的Y坐标
|
||
/// </summary>
|
||
public int max_temp_y;
|
||
/// <summary>
|
||
/// 最低温度值
|
||
/// </summary>
|
||
public int min_temp;
|
||
/// <summary>
|
||
/// 最低温度点的X坐标
|
||
/// </summary>
|
||
public int min_temp_x;
|
||
/// <summary>
|
||
/// 最低温度点的Y坐标
|
||
/// </summary>
|
||
public int min_temp_y;
|
||
/// <summary>
|
||
/// 平均温度值
|
||
/// </summary>
|
||
public int ave_temp;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 全局温度结构体,包含整个图像的温度统计数据
|
||
/// </summary>
|
||
public struct GlobaTemp
|
||
{
|
||
/// <summary>
|
||
/// 最高温度值
|
||
/// </summary>
|
||
public int max_temp;
|
||
/// <summary>
|
||
/// 最高温度点的X坐标
|
||
/// </summary>
|
||
public int max_temp_x;
|
||
/// <summary>
|
||
/// 最高温度点的Y坐标
|
||
/// </summary>
|
||
public int max_temp_y;
|
||
/// <summary>
|
||
/// 最低温度值
|
||
/// </summary>
|
||
public int min_temp;
|
||
/// <summary>
|
||
/// 最低温度点的X坐标
|
||
/// </summary>
|
||
public int min_temp_x;
|
||
/// <summary>
|
||
/// 最低温度点的Y坐标
|
||
/// </summary>
|
||
public int min_temp_y;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 图像温度结构体,包含所有温度测量数据
|
||
/// </summary>
|
||
public struct ImageTemp
|
||
{
|
||
/// <summary>
|
||
/// 区域温度数组,最多支持6个区域
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||
public AreaTemp[] area;
|
||
/// <summary>
|
||
/// 点温度数组,最多支持6个点
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||
public SpotTemp[] spot;
|
||
/// <summary>
|
||
/// 线温度
|
||
/// </summary>
|
||
public LineTemp line;
|
||
/// <summary>
|
||
/// 全局温度
|
||
/// </summary>
|
||
public GlobaTemp globa;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 邮件服务器配置结构体
|
||
/// </summary>
|
||
public struct EmailServer
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 收件人邮箱地址
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] recv_addr;
|
||
/// <summary>
|
||
/// 发件人邮箱地址
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] send_addr;
|
||
/// <summary>
|
||
/// 发件人邮箱密码
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] send_pwd;
|
||
}
|
||
|
||
/// <summary>
|
||
/// TFTP服务器配置结构体
|
||
/// </summary>
|
||
public struct TftpServer
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// TFTP服务器地址
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] tftp_addr;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 网络以太网配置结构体
|
||
/// </summary>
|
||
public struct NetworkEth
|
||
{
|
||
/// <summary>
|
||
/// 启用状态,0表示禁用,1表示启用
|
||
/// </summary>
|
||
public int enable;
|
||
/// <summary>
|
||
/// 静态IP地址
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] static_ip;
|
||
/// <summary>
|
||
/// 子网掩码
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] netmask;
|
||
/// <summary>
|
||
/// 默认网关
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] gateway;
|
||
/// <summary>
|
||
/// 主DNS服务器地址
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] dns1;
|
||
/// <summary>
|
||
/// 备DNS服务器地址
|
||
/// </summary>
|
||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||
public char[] dns2;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 环境参数结构体,用于温度补偿计算
|
||
/// </summary>
|
||
public struct EnvirParam
|
||
{
|
||
/// <summary>
|
||
/// 计算方法
|
||
/// </summary>
|
||
public int method;
|
||
/// <summary>
|
||
/// 参数编号
|
||
/// </summary>
|
||
public int num;
|
||
/// <summary>
|
||
/// 发射率
|
||
/// </summary>
|
||
public float emissivity;
|
||
/// <summary>
|
||
/// 环境温度
|
||
/// </summary>
|
||
public float airTemp;
|
||
/// <summary>
|
||
/// 目标温度
|
||
/// </summary>
|
||
public float targetTemp;
|
||
/// <summary>
|
||
/// 大气透过率
|
||
/// </summary>
|
||
public float atmosTrans;
|
||
/// <summary>
|
||
/// 测量距离
|
||
/// </summary>
|
||
public float distance;
|
||
/// <summary>
|
||
/// 红外温度
|
||
/// </summary>
|
||
public float infraredTemp;
|
||
/// <summary>
|
||
/// 红外辐射率
|
||
/// </summary>
|
||
public float infraredRadia;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 报警参数结构体,用于配置报警功能
|
||
/// </summary>
|
||
public struct AlarmParam
|
||
{
|
||
/// <summary>
|
||
/// 报警方法
|
||
/// </summary>
|
||
public int method;
|
||
/// <summary>
|
||
/// 参数编号
|
||
/// </summary>
|
||
public int num;
|
||
/// <summary>
|
||
/// 激活状态
|
||
/// </summary>
|
||
public int active;
|
||
/// <summary>
|
||
/// 报警条件
|
||
/// </summary>
|
||
public int condition;
|
||
/// <summary>
|
||
/// 截图功能
|
||
/// </summary>
|
||
public int captrue;
|
||
/// <summary>
|
||
/// 禁用校准
|
||
/// </summary>
|
||
public int disableCalib;
|
||
/// <summary>
|
||
/// 邮件报警
|
||
/// </summary>
|
||
public int email;
|
||
/// <summary>
|
||
/// 数字输出
|
||
/// </summary>
|
||
public int digital;
|
||
/// <summary>
|
||
/// FTP上传
|
||
/// </summary>
|
||
public int ftp;
|
||
/// <summary>
|
||
/// 报警阈值
|
||
/// </summary>
|
||
public float threshold;
|
||
/// <summary>
|
||
/// 滞后值
|
||
/// </summary>
|
||
public float hysteresis;
|
||
/// <summary>
|
||
/// 阈值时间
|
||
/// </summary>
|
||
public int thresholeTime;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 焦距参数结构体,用于自动对焦功能
|
||
/// </summary>
|
||
public struct FocusParam
|
||
{
|
||
/// <summary>
|
||
/// 对焦方法
|
||
/// </summary>
|
||
public int method;
|
||
/// <summary>
|
||
/// 对焦区域X坐标
|
||
/// </summary>
|
||
public int x;
|
||
/// <summary>
|
||
/// 对焦区域Y坐标
|
||
/// </summary>
|
||
public int y;
|
||
/// <summary>
|
||
/// 对焦区域宽度
|
||
/// </summary>
|
||
public int width;
|
||
/// <summary>
|
||
/// 对焦区域高度
|
||
/// </summary>
|
||
public int height;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 时间参数结构体,用于设备时间设置
|
||
/// </summary>
|
||
public struct TimeParam
|
||
{
|
||
/// <summary>
|
||
/// 年份
|
||
/// </summary>
|
||
public int year;
|
||
/// <summary>
|
||
/// 月份
|
||
/// </summary>
|
||
public char month;
|
||
/// <summary>
|
||
/// 日期
|
||
/// </summary>
|
||
public char day;
|
||
/// <summary>
|
||
/// 小时
|
||
/// </summary>
|
||
public char hour;
|
||
/// <summary>
|
||
/// 分钟
|
||
/// </summary>
|
||
public char minute;
|
||
/// <summary>
|
||
/// 秒
|
||
/// </summary>
|
||
public char second;
|
||
}
|
||
|
||
private readonly string deviceIp;
|
||
private readonly V8 v8Instance;
|
||
|
||
/// <summary>
|
||
/// 初始化A8SDK实例
|
||
/// </summary>
|
||
/// <param name="ip">设备IP地址</param>
|
||
public A8SDK(string ip)
|
||
{
|
||
deviceIp = ip;
|
||
v8Instance = new V8(ip);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 析构函数,释放资源
|
||
/// </summary>
|
||
~A8SDK()
|
||
{
|
||
}
|
||
|
||
/// <summary>
|
||
/// 初始化SDK
|
||
/// </summary>
|
||
/// <returns>初始化结果,0表示成功</returns>
|
||
public static int SDK_initialize()
|
||
{
|
||
return V8.SDK_initialize();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 销毁SDK
|
||
/// </summary>
|
||
/// <returns>销毁结果,0表示成功</returns>
|
||
public static int SDK_destroy()
|
||
{
|
||
return V8.SDK_destroy();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 搜索设备
|
||
/// </summary>
|
||
/// <param name="list_len">最大搜索设备数量</param>
|
||
/// <returns>搜索结果字符串,设备IP地址以分号分隔</returns>
|
||
public static String SDK_serch_device(int list_len)
|
||
{
|
||
return V8.SDK_serch_device(list_len);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 执行快门校正
|
||
/// </summary>
|
||
public void Shutter_correction()
|
||
{
|
||
v8Instance.Shutter_correction();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置快门次数
|
||
/// </summary>
|
||
public int Shutter_times
|
||
{
|
||
get
|
||
{
|
||
return v8Instance.Shutter_times;
|
||
}
|
||
set
|
||
{
|
||
v8Instance.Shutter_times = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置色板模式
|
||
/// </summary>
|
||
public int Color_plate
|
||
{
|
||
get
|
||
{
|
||
return GetColorPlate();
|
||
}
|
||
set
|
||
{
|
||
SetColorPlate(value);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取当前色彩模式
|
||
/// </summary>
|
||
/// <returns>当前色彩模式的值</returns>
|
||
public int GetColorPlate()
|
||
{
|
||
return v8Instance.GetColorPlate();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置色彩模式
|
||
/// </summary>
|
||
/// <param name="value">要设置的色彩模式值</param>
|
||
/// <returns>设置是否成功</returns>
|
||
public bool SetColorPlate(int value)
|
||
{
|
||
return v8Instance.SetColorPlate(value);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置镜像模式
|
||
/// </summary>
|
||
public int Mirror_mode
|
||
{
|
||
get
|
||
{
|
||
return v8Instance.Mirror_mode;
|
||
}
|
||
set
|
||
{
|
||
v8Instance.Mirror_mode = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置视频模式
|
||
/// </summary>
|
||
public int Video_mode
|
||
{
|
||
get
|
||
{
|
||
return v8Instance.Video_mode;
|
||
}
|
||
set
|
||
{
|
||
v8Instance.Video_mode = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置区域位置
|
||
/// </summary>
|
||
/// <param name="index">区域索引</param>
|
||
/// <param name="area_data">区域位置数据</param>
|
||
public void Set_area_pos(int index, SharedStructures.AreaPos area_data)
|
||
{
|
||
v8Instance.Set_area_pos(index, area_data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取区域位置
|
||
/// </summary>
|
||
/// <param name="index">区域索引</param>
|
||
/// <returns>区域位置数据</returns>
|
||
public SharedStructures.AreaPos Get_area_pos(int index)
|
||
{
|
||
return v8Instance.Get_area_pos(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置点位置
|
||
/// </summary>
|
||
/// <param name="index">点索引</param>
|
||
/// <param name="spot_data">点位置数据</param>
|
||
public void Set_spot_pos(int index, SharedStructures.SpotPos spot_data)
|
||
{
|
||
v8Instance.Set_spot_pos(index, spot_data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取点位置
|
||
/// </summary>
|
||
/// <param name="index">点索引</param>
|
||
/// <returns>点位置数据</returns>
|
||
public SharedStructures.SpotPos Get_spot_pos(int index)
|
||
{
|
||
return v8Instance.Get_spot_pos(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置线位置
|
||
/// </summary>
|
||
public SharedStructures.LinePos Line_pos
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Line_pos = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Line_pos;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取所有位置信息
|
||
/// </summary>
|
||
public SharedStructures.ImagePos All_pos
|
||
{
|
||
get
|
||
{
|
||
return v8Instance.All_pos;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置温度范围
|
||
/// </summary>
|
||
public int Temp_range
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Temp_range = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Temp_range;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置视频ISP X偏移
|
||
/// </summary>
|
||
public int Video_isp_x_offset
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Video_isp_x_offset = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Video_isp_x_offset;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置视频ISP Y偏移
|
||
/// </summary>
|
||
public int Video_isp_y_offset
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Video_isp_y_offset = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Video_isp_y_offset;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置视频ISP X缩放
|
||
/// </summary>
|
||
public int Video_isp_x_scale
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Video_isp_x_scale = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Video_isp_x_scale;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置视频ISP Y缩放
|
||
/// </summary>
|
||
public int Video_isp_y_scale
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Video_isp_y_scale = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Video_isp_y_scale;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置LED设置
|
||
/// </summary>
|
||
public int Set_led
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Set_led = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Set_led;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置邮件服务器配置
|
||
/// </summary>
|
||
public SharedStructures.EmailServer Email_server
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Email_server = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Email_server;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置TFTP服务器配置
|
||
/// </summary>
|
||
public SharedStructures.TftpServer Tftp_server
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Tftp_server = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Tftp_server;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置网络以太网配置
|
||
/// </summary>
|
||
public SharedStructures.NetworkEth Network_eth
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Network_eth = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Network_eth;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置融合距离
|
||
/// </summary>
|
||
public int Fusion_distance
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Fusion_distance = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Fusion_distance;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置环境参数
|
||
/// </summary>
|
||
/// <param name="data">环境参数数据</param>
|
||
public void Set_envir_param(SharedStructures.EnvirParam data)
|
||
{
|
||
v8Instance.Set_envir_param(data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取区域环境参数
|
||
/// </summary>
|
||
/// <param name="index">区域索引</param>
|
||
/// <returns>环境参数数据</returns>
|
||
public SharedStructures.EnvirParam Get_area_envir_param(int index)
|
||
{
|
||
return v8Instance.Get_area_envir_param(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取点环境参数
|
||
/// </summary>
|
||
/// <param name="index">点索引</param>
|
||
/// <returns>环境参数数据</returns>
|
||
public SharedStructures.EnvirParam Get_spot_envir_param(int index)
|
||
{
|
||
return v8Instance.Get_spot_envir_param(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取线环境参数
|
||
/// </summary>
|
||
/// <returns>环境参数数据</returns>
|
||
public SharedStructures.EnvirParam Get_line_envir_param()
|
||
{
|
||
return v8Instance.Get_line_envir_param();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取全局环境参数
|
||
/// </summary>
|
||
/// <returns>环境参数数据</returns>
|
||
public SharedStructures.EnvirParam Get_globa_envir_param()
|
||
{
|
||
return v8Instance.Get_globa_envir_param();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置报警参数
|
||
/// </summary>
|
||
/// <param name="data">报警参数数据</param>
|
||
public void Set_alarm_param(SharedStructures.AlarmParam data)
|
||
{
|
||
v8Instance.Set_alarm_param(data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取区域报警参数
|
||
/// </summary>
|
||
/// <param name="index">区域索引</param>
|
||
/// <returns>报警参数数据</returns>
|
||
public SharedStructures.AlarmParam Get_area_alarm_param(int index)
|
||
{
|
||
return v8Instance.Get_area_alarm_param(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取点报警参数
|
||
/// </summary>
|
||
/// <param name="index">点索引</param>
|
||
/// <returns>报警参数数据</returns>
|
||
public SharedStructures.AlarmParam Get_spot_alarm_param(int index)
|
||
{
|
||
return v8Instance.Get_spot_alarm_param(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取全局报警参数
|
||
/// </summary>
|
||
/// <returns>报警参数数据</returns>
|
||
public SharedStructures.AlarmParam Get_globa_alarm_param()
|
||
{
|
||
return v8Instance.Get_globa_alarm_param();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取线报警参数
|
||
/// </summary>
|
||
/// <returns>报警参数数据</returns>
|
||
public SharedStructures.AlarmParam Get_line_alarm_param()
|
||
{
|
||
return v8Instance.Get_line_alarm_param();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取区域温度
|
||
/// </summary>
|
||
/// <param name="index">区域索引</param>
|
||
/// <returns>区域温度数据</returns>
|
||
public SharedStructures.AreaTemp Get_area_temp(int index)
|
||
{
|
||
return v8Instance.Get_area_temp(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取点温度
|
||
/// </summary>
|
||
/// <param name="index">点索引</param>
|
||
/// <returns>点温度数据</returns>
|
||
public SharedStructures.SpotTemp Get_spot_temp(int index)
|
||
{
|
||
return v8Instance.Get_spot_temp(index);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取线温度
|
||
/// </summary>
|
||
/// <returns>线温度数据</returns>
|
||
public SharedStructures.LineTemp Get_line_temp()
|
||
{
|
||
return v8Instance.Get_line_temp();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取全局温度
|
||
/// </summary>
|
||
/// <returns>全局温度数据</returns>
|
||
public SharedStructures.GlobaTemp Get_globa_temp()
|
||
{
|
||
return v8Instance.Get_globa_temp();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取所有温度数据
|
||
/// </summary>
|
||
/// <returns>图像温度数据</returns>
|
||
public SharedStructures.ImageTemp Get_all_temp()
|
||
{
|
||
return v8Instance.Get_all_temp();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设备电源重启
|
||
/// </summary>
|
||
public void Power_reboot()
|
||
{
|
||
v8Instance.Power_reboot();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 参数恢复
|
||
/// </summary>
|
||
public void Param_recover()
|
||
{
|
||
v8Instance.Param_recover();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新设备配置
|
||
/// </summary>
|
||
public void Update()
|
||
{
|
||
v8Instance.Update();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 心跳检测
|
||
/// </summary>
|
||
/// <returns>心跳状态,1表示正常</returns>
|
||
public int Heartbeat()
|
||
{
|
||
return v8Instance.Heartbeat();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置串口参数
|
||
/// </summary>
|
||
/// <param name="nSpeed">波特率</param>
|
||
/// <param name="nBits">数据位</param>
|
||
/// <param name="nEvent">校验位</param>
|
||
/// <param name="nStop">停止位</param>
|
||
public void Set_uart(int nSpeed, int nBits, char nEvent, int nStop)
|
||
{
|
||
v8Instance.Set_uart(nSpeed, nBits, nEvent, nStop);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 发送串口命令
|
||
/// </summary>
|
||
/// <param name="cmd">命令字节数组</param>
|
||
public void Send_uart_command(byte[] cmd)
|
||
{
|
||
v8Instance.Send_uart_command(cmd);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 自动对焦
|
||
/// </summary>
|
||
/// <param name="data">焦距参数</param>
|
||
public void Autofocus(SharedStructures.FocusParam data)
|
||
{
|
||
v8Instance.Autofocus(data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置设备名称
|
||
/// </summary>
|
||
/// <param name="data">设备名称字符串</param>
|
||
public void Set_device_name(string data)
|
||
{
|
||
v8Instance.Set_device_name(data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取设备名称
|
||
/// </summary>
|
||
/// <returns>设备名称字符串</returns>
|
||
public string Get_device_name()
|
||
{
|
||
return v8Instance.Get_device_name();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取检测数量
|
||
/// </summary>
|
||
/// <returns>检测数量字节数组</returns>
|
||
public byte[] Get_detect_number()
|
||
{
|
||
return v8Instance.Get_detect_number();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置温度帧
|
||
/// </summary>
|
||
public char Temp_frame
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Temp_frame = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Temp_frame;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取或设置报警状态
|
||
/// </summary>
|
||
public char Alarm
|
||
{
|
||
set
|
||
{
|
||
v8Instance.Alarm = value;
|
||
}
|
||
get
|
||
{
|
||
return v8Instance.Alarm;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取补偿温度
|
||
/// </summary>
|
||
public float Comp_temp
|
||
{
|
||
get
|
||
{
|
||
return v8Instance.Comp_temp;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置设备时间
|
||
/// </summary>
|
||
/// <param name="data">时间参数</param>
|
||
public void Set_time(SharedStructures.TimeParam data)
|
||
{
|
||
v8Instance.Set_time(data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取视频模式
|
||
/// </summary>
|
||
/// <returns>视频模式值</returns>
|
||
public int GetVideoMode()
|
||
{
|
||
return v8Instance.GetVideoMode();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置视频模式
|
||
/// </summary>
|
||
/// <param name="mode">视频模式值</param>
|
||
public void SetVideoMode(int mode)
|
||
{
|
||
v8Instance.SetVideoMode(mode);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取图像数据
|
||
/// </summary>
|
||
/// <returns>图像数据字节数组</returns>
|
||
public byte[] GetImageData()
|
||
{
|
||
return v8Instance.GetImageData();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 搜索可用设备
|
||
/// </summary>
|
||
/// <returns>设备IP地址列表</returns>
|
||
public static List<string> SearchDevices()
|
||
{
|
||
List<string> devices = new List<string>();
|
||
const int maxDevices = 10;
|
||
string searchResult = SDK_serch_device(maxDevices);
|
||
if (!string.IsNullOrEmpty(searchResult))
|
||
{
|
||
string[] deviceList = searchResult.Split(';');
|
||
foreach (string device in deviceList)
|
||
{
|
||
if (!string.IsNullOrEmpty(device))
|
||
{
|
||
devices.Add(device);
|
||
}
|
||
}
|
||
}
|
||
return devices;
|
||
}
|
||
}
|
||
}
|