添加注释
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,9 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace JoyD.Windows.CS.Toprie
|
namespace JoyD.Windows.CS.Toprie
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 相机控件类,用于显示和处理相机图像
|
||||||
|
/// </summary>
|
||||||
public partial class Camera : UserControl
|
public partial class Camera : UserControl
|
||||||
{
|
{
|
||||||
// 测温区配置类
|
// 测温区配置类
|
||||||
@@ -487,6 +490,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 相机控件构造函数
|
||||||
|
/// </summary>
|
||||||
public Camera()
|
public Camera()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -3145,7 +3151,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// imageBox双击事件处理方法
|
/// imageBox双击事件处理方法
|
||||||
/// 双击后弹出检测配置窗口
|
/// 双击后弹出检测配置窗口
|
||||||
|
|||||||
@@ -16,9 +16,21 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public enum ConnectionStatus
|
public enum ConnectionStatus
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 未连接状态
|
||||||
|
/// </summary>
|
||||||
Disconnected,
|
Disconnected,
|
||||||
|
/// <summary>
|
||||||
|
/// 正在连接状态
|
||||||
|
/// </summary>
|
||||||
Connecting,
|
Connecting,
|
||||||
|
/// <summary>
|
||||||
|
/// 已连接状态
|
||||||
|
/// </summary>
|
||||||
Connected,
|
Connected,
|
||||||
|
/// <summary>
|
||||||
|
/// 正在重连状态
|
||||||
|
/// </summary>
|
||||||
Reconnecting
|
Reconnecting
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +41,13 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public enum ImageMode
|
public enum ImageMode
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 红外模式
|
||||||
|
/// </summary>
|
||||||
Infrared, // 红外模式
|
Infrared, // 红外模式
|
||||||
|
/// <summary>
|
||||||
|
/// 自然模式
|
||||||
|
/// </summary>
|
||||||
Natural // 自然模式
|
Natural // 自然模式
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,13 +57,37 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public enum PaletteType
|
public enum PaletteType
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 白热,对应SDK参数0
|
||||||
|
/// </summary>
|
||||||
WhiteHot, // 白热,对应SDK参数0
|
WhiteHot, // 白热,对应SDK参数0
|
||||||
|
/// <summary>
|
||||||
|
/// 黑热,对应SDK参数1
|
||||||
|
/// </summary>
|
||||||
BlackHot, // 黑热,对应SDK参数1
|
BlackHot, // 黑热,对应SDK参数1
|
||||||
|
/// <summary>
|
||||||
|
/// 铁红,对应SDK参数2
|
||||||
|
/// </summary>
|
||||||
IronRed, // 铁红,对应SDK参数2
|
IronRed, // 铁红,对应SDK参数2
|
||||||
|
/// <summary>
|
||||||
|
/// 熔岩,对应SDK参数3
|
||||||
|
/// </summary>
|
||||||
Lava, // 熔岩,对应SDK参数3
|
Lava, // 熔岩,对应SDK参数3
|
||||||
|
/// <summary>
|
||||||
|
/// 彩虹,对应SDK参数4
|
||||||
|
/// </summary>
|
||||||
Rainbow, // 彩虹,对应SDK参数4
|
Rainbow, // 彩虹,对应SDK参数4
|
||||||
|
/// <summary>
|
||||||
|
/// 铁灰,对应SDK参数5
|
||||||
|
/// </summary>
|
||||||
IronGray, // 铁灰,对应SDK参数5
|
IronGray, // 铁灰,对应SDK参数5
|
||||||
|
/// <summary>
|
||||||
|
/// 红热,对应SDK参数6
|
||||||
|
/// </summary>
|
||||||
RedHot, // 红热,对应SDK参数6
|
RedHot, // 红热,对应SDK参数6
|
||||||
|
/// <summary>
|
||||||
|
/// 彩虹2,对应SDK参数7
|
||||||
|
/// </summary>
|
||||||
Rainbow2 // 彩虹2,对应SDK参数7
|
Rainbow2 // 彩虹2,对应SDK参数7
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,12 +97,33 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public enum VideoMode
|
public enum VideoMode
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 红外,对应SDK参数0
|
||||||
|
/// </summary>
|
||||||
Infrared, // 红外,对应SDK参数0
|
Infrared, // 红外,对应SDK参数0
|
||||||
|
/// <summary>
|
||||||
|
/// 可见光,对应SDK参数1
|
||||||
|
/// </summary>
|
||||||
VisibleLight, // 可见光,对应SDK参数1
|
VisibleLight, // 可见光,对应SDK参数1
|
||||||
|
/// <summary>
|
||||||
|
/// 融合1,对应SDK参数2
|
||||||
|
/// </summary>
|
||||||
Fusion1, // 融合1,对应SDK参数2
|
Fusion1, // 融合1,对应SDK参数2
|
||||||
|
/// <summary>
|
||||||
|
/// 融合2,对应SDK参数3
|
||||||
|
/// </summary>
|
||||||
Fusion2, // 融合2,对应SDK参数3
|
Fusion2, // 融合2,对应SDK参数3
|
||||||
|
/// <summary>
|
||||||
|
/// 融合3,对应SDK参数4
|
||||||
|
/// </summary>
|
||||||
Fusion3, // 融合3,对应SDK参数4
|
Fusion3, // 融合3,对应SDK参数4
|
||||||
|
/// <summary>
|
||||||
|
/// 融合4,对应SDK参数5
|
||||||
|
/// </summary>
|
||||||
Fusion4, // 融合4,对应SDK参数5
|
Fusion4, // 融合4,对应SDK参数5
|
||||||
|
/// <summary>
|
||||||
|
/// 融合5,对应SDK参数6
|
||||||
|
/// </summary>
|
||||||
Fusion5 // 融合5,对应SDK参数6
|
Fusion5 // 融合5,对应SDK参数6
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,9 +151,20 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ConnectionStatusChangedEventArgs : EventArgs
|
public class ConnectionStatusChangedEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 连接状态
|
||||||
|
/// </summary>
|
||||||
public ConnectionStatus Status { get; set; }
|
public ConnectionStatus Status { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 设备信息
|
||||||
|
/// </summary>
|
||||||
public string DeviceInfo { get; set; }
|
public string DeviceInfo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化连接状态改变事件参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="status">连接状态</param>
|
||||||
|
/// <param name="deviceInfo">设备信息</param>
|
||||||
public ConnectionStatusChangedEventArgs(ConnectionStatus status, string deviceInfo = null)
|
public ConnectionStatusChangedEventArgs(ConnectionStatus status, string deviceInfo = null)
|
||||||
{
|
{
|
||||||
Status = status;
|
Status = status;
|
||||||
@@ -104,9 +178,20 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ImageReceivedEventArgs : EventArgs
|
public class ImageReceivedEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 图像数据
|
||||||
|
/// </summary>
|
||||||
public byte[] ImageData { get; set; }
|
public byte[] ImageData { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 图像模式
|
||||||
|
/// </summary>
|
||||||
public ImageMode Mode { get; set; }
|
public ImageMode Mode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化图像接收事件参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="imageData">图像数据</param>
|
||||||
|
/// <param name="mode">图像模式</param>
|
||||||
public ImageReceivedEventArgs(byte[] imageData, ImageMode mode)
|
public ImageReceivedEventArgs(byte[] imageData, ImageMode mode)
|
||||||
{
|
{
|
||||||
ImageData = imageData;
|
ImageData = imageData;
|
||||||
@@ -119,9 +204,20 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ConnectionExceptionEventArgs : EventArgs
|
public class ConnectionExceptionEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 异常对象
|
||||||
|
/// </summary>
|
||||||
public Exception Exception { get; set; }
|
public Exception Exception { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 异常消息
|
||||||
|
/// </summary>
|
||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化连接异常事件参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ex">异常对象</param>
|
||||||
|
/// <param name="message">异常消息</param>
|
||||||
public ConnectionExceptionEventArgs(Exception ex, string message = null)
|
public ConnectionExceptionEventArgs(Exception ex, string message = null)
|
||||||
{
|
{
|
||||||
Exception = ex;
|
Exception = ex;
|
||||||
@@ -157,29 +253,64 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string SerialNumber { get; set; }
|
public string SerialNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回设备信息的字符串表示
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>设备信息字符串</returns>
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return $"设备 {DeviceID} ({IPAddress})";
|
return $"设备 {DeviceID} ({IPAddress})";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 测温区配置类
|
/// <summary>
|
||||||
|
/// 测温区配置类
|
||||||
|
/// </summary>
|
||||||
public class TemperatureZone
|
public class TemperatureZone
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 测温区索引
|
||||||
|
/// </summary>
|
||||||
public int Index { get; set; }
|
public int Index { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 测温区X坐标
|
||||||
|
/// </summary>
|
||||||
public int X { get; set; }
|
public int X { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 测温区Y坐标
|
||||||
|
/// </summary>
|
||||||
public int Y { get; set; }
|
public int Y { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 测温区宽度
|
||||||
|
/// </summary>
|
||||||
public int Width { get; set; }
|
public int Width { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 测温区高度
|
||||||
|
/// </summary>
|
||||||
public int Height { get; set; }
|
public int Height { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 测温区颜色
|
||||||
|
/// </summary>
|
||||||
public Color Color { get; set; }
|
public Color Color { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 温差配置类
|
/// <summary>
|
||||||
|
/// 温差配置类
|
||||||
|
/// </summary>
|
||||||
public class TemperatureDiffConfig
|
public class TemperatureDiffConfig
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 温度图例数据
|
||||||
|
/// </summary>
|
||||||
public List<Tuple<double, Color>> TemperatureLegend { get; set; }
|
public List<Tuple<double, Color>> TemperatureLegend { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 像素温度数据
|
||||||
|
/// </summary>
|
||||||
public Dictionary<Point, double> PixelTemperatureData { get; set; }
|
public Dictionary<Point, double> PixelTemperatureData { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化温差配置类
|
||||||
|
/// </summary>
|
||||||
public TemperatureDiffConfig()
|
public TemperatureDiffConfig()
|
||||||
{
|
{
|
||||||
TemperatureLegend = new List<Tuple<double, Color>>();
|
TemperatureLegend = new List<Tuple<double, Color>>();
|
||||||
@@ -187,12 +318,19 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备管理器类,负责设备的连接、管理和通信
|
||||||
|
/// </summary>
|
||||||
public class DeviceManager : IDisposable
|
public class DeviceManager : IDisposable
|
||||||
{
|
{
|
||||||
// 设计模式标志,用于在设计模式下跳过实际的设备连接和初始化
|
/// <summary>
|
||||||
|
/// 设计模式标志,用于在设计模式下跳过实际的设备连接和初始化
|
||||||
|
/// </summary>
|
||||||
public static bool IsDesignMode { get; set; } = true;
|
public static bool IsDesignMode { get; set; } = true;
|
||||||
|
|
||||||
// 暂停检测标志,用于控制是否进行连接检测和重连操作
|
/// <summary>
|
||||||
|
/// 暂停检测标志,用于控制是否进行连接检测和重连操作
|
||||||
|
/// </summary>
|
||||||
public bool IsDetectionPaused { get; set; } = false;
|
public bool IsDetectionPaused { get; set; } = false;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 最近检查到的温度
|
/// 最近检查到的温度
|
||||||
@@ -249,7 +387,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
private int _reconnectInterval = 2000;
|
private int _reconnectInterval = 2000;
|
||||||
// 重连尝试次数
|
// 重连尝试次数
|
||||||
|
|
||||||
// 最大重连尝试次数
|
/// <summary>
|
||||||
|
/// 最大重连尝试次数
|
||||||
|
/// </summary>
|
||||||
public static int MaxReconnectAttempts = 5;
|
public static int MaxReconnectAttempts = 5;
|
||||||
// 连接检查定时器
|
// 连接检查定时器
|
||||||
private System.Threading.Timer _connectionCheckTimer;
|
private System.Threading.Timer _connectionCheckTimer;
|
||||||
@@ -948,26 +1088,7 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// 启动温度数据清理定时器
|
|
||||||
/// </summary>
|
|
||||||
// 温度数据清理定时器相关方法已移除,改为直接在后台线程处理
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 停止温度数据清理定时器
|
|
||||||
/// </summary>
|
|
||||||
// 温度数据清理定时器相关方法已移除,改为直接在后台线程处理
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 清理温度数据
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="state">定时器状态对象</param>
|
|
||||||
/// <summary>
|
|
||||||
/// 在后台线程处理温度帧数据
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="frameData">温度帧数据</param>
|
|
||||||
/// <param name="width">宽度</param>
|
|
||||||
/// <param name="height">高度</param>
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化温度数据处理线程
|
/// 初始化温度数据处理线程
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1502,7 +1623,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
const int RECEIVE_TIMEOUT = 30000; // 30秒超时
|
const int RECEIVE_TIMEOUT = 30000; // 30秒超时
|
||||||
const int SLEEP_MS = 1000; // 标准等待时间
|
const int SLEEP_MS = 1000; // 标准等待时间
|
||||||
const int CONNECTION_CHECK_INTERVAL_MS = 15000; // 连接检查间隔5秒
|
const int CONNECTION_CHECK_INTERVAL_MS = 15000; // 连接检查间隔5秒
|
||||||
const int LONG_SLEEP_MS = 5000; // 长等待时间
|
|
||||||
const int ERROR_SLEEP_MS = 3000; // 错误后等待时间
|
const int ERROR_SLEEP_MS = 3000; // 错误后等待时间
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -1921,9 +2041,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 设置温度接收状态标志
|
|
||||||
/// </summary>
|
|
||||||
// SetReceivingState方法已移除,因为_isReceivingTemperatureData变量未被使用
|
// SetReceivingState方法已移除,因为_isReceivingTemperatureData变量未被使用
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1936,7 +2053,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
private const int FixedWidth = 512;
|
private const int FixedWidth = 512;
|
||||||
private const int FixedHeight = 384;
|
private const int FixedHeight = 384;
|
||||||
|
|
||||||
/// <param name="dataAccumulator">累积的温度数据包列表</param>
|
|
||||||
// 重入保护标志
|
// 重入保护标志
|
||||||
private bool _isProcessingTemperatureData = false;
|
private bool _isProcessingTemperatureData = false;
|
||||||
|
|
||||||
@@ -4617,6 +4733,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
return _connectionStatus == ConnectionStatus.Connected;
|
return _connectionStatus == ConnectionStatus.Connected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 连接指定ID的设备
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="deviceId">设备ID</param>
|
||||||
public void ConnectDevice(int deviceId)
|
public void ConnectDevice(int deviceId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -4695,7 +4815,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
|
|
||||||
// 使用ManualResetEvent实现连接超时机制
|
// 使用ManualResetEvent实现连接超时机制
|
||||||
var connectionCompleteEvent = new ManualResetEvent(false);
|
var connectionCompleteEvent = new ManualResetEvent(false);
|
||||||
bool timeoutOccurred = false;
|
|
||||||
|
|
||||||
// 真实连接过程
|
// 真实连接过程
|
||||||
System.Threading.ThreadPool.QueueUserWorkItem((state) =>
|
System.Threading.ThreadPool.QueueUserWorkItem((state) =>
|
||||||
@@ -4884,8 +5003,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据设备ID连接设备
|
/// 根据设备ID连接设备
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="deviceId">设备ID</param>
|
|
||||||
// 该方法已在文件上方定义,删除重复实现
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 断开设备连接(兼容Form1)
|
/// 断开设备连接(兼容Form1)
|
||||||
@@ -4895,8 +5012,6 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
Disconnect();
|
Disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestTcpConnection方法不再需要,由A8SDK内部处理连接测试
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 发送连接命令
|
/// 发送连接命令
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -4992,6 +5107,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
// 连接进行中标志(用于防止重连期间再次触发连接)
|
// 连接进行中标志(用于防止重连期间再次触发连接)
|
||||||
private volatile bool _isConnecting = false;
|
private volatile bool _isConnecting = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 启动自动重连机制
|
||||||
|
/// </summary>
|
||||||
public void StartAutoReconnect()
|
public void StartAutoReconnect()
|
||||||
{
|
{
|
||||||
Log($"[{DateTime.Now:HH:mm:ss.fff}] [线程:{Thread.CurrentThread.ManagedThreadId}] StartAutoReconnect() - 开始执行");
|
Log($"[{DateTime.Now:HH:mm:ss.fff}] [线程:{Thread.CurrentThread.ManagedThreadId}] StartAutoReconnect() - 开始执行");
|
||||||
@@ -5856,6 +5974,65 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="filePath">CSV文件路径</param>
|
/// <param name="filePath">CSV文件路径</param>
|
||||||
/// <returns>是否保存成功</returns>
|
/// <returns>是否保存成功</returns>
|
||||||
|
public bool SaveTemperatureDataToCsv(string filePath)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 检查文件路径是否有效
|
||||||
|
if (string.IsNullOrEmpty(filePath))
|
||||||
|
{
|
||||||
|
Console.WriteLine("文件路径无效");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取目录路径
|
||||||
|
string directoryPath = Path.GetDirectoryName(filePath);
|
||||||
|
if (!Directory.Exists(directoryPath))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 创建目录
|
||||||
|
Directory.CreateDirectory(directoryPath);
|
||||||
|
Console.WriteLine($"创建目录: {directoryPath}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"创建目录失败: {ex.Message}");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用默认的LastTemperature数据
|
||||||
|
TemperatureData temperatureData = LastTemperature;
|
||||||
|
if (temperatureData == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("没有可用的温度数据");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 准备CSV数据
|
||||||
|
List<string> csvLines = new List<string>();
|
||||||
|
csvLines.Add("时间,区域ID,点ID,温度,最高温度,最低温度,平均温度,区域类型");
|
||||||
|
|
||||||
|
DateTime timestamp = DateTime.Now;
|
||||||
|
foreach (var zoneTemp in temperatureData.ZoneTemperatures)
|
||||||
|
{
|
||||||
|
string line = $"{timestamp:yyyy-MM-dd HH:mm:ss},{zoneTemp.Value.AreaId},{zoneTemp.Value.SpotId},{zoneTemp.Value.Temperature:F2},{zoneTemp.Value.MaxTemperature:F2},{zoneTemp.Value.MinTemperature:F2},{zoneTemp.Value.AverageTemperature:F2},{zoneTemp.Value.AreaType}";
|
||||||
|
csvLines.Add(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 写入CSV文件
|
||||||
|
File.WriteAllLines(filePath, csvLines, Encoding.UTF8);
|
||||||
|
Console.WriteLine($"温度数据已保存到: {filePath}");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"保存温度数据失败: {ex.Message}");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存温度数据到CSV文件(接受已有的温度数据)
|
/// 保存温度数据到CSV文件(接受已有的温度数据)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("JoyD")]
|
[assembly: AssemblyCompany("JoyD")]
|
||||||
[assembly: AssemblyProduct("com.joyd.toprie")]
|
[assembly: AssemblyProduct("com.joyd.toprie")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2025 JoyD")]
|
[assembly: AssemblyCopyright("Copyright © 2026 JoyD")]
|
||||||
[assembly: AssemblyTrademark("JoyD")]
|
[assembly: AssemblyTrademark("JoyD")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Data;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
@@ -13,10 +11,16 @@ using System.Windows.Forms;
|
|||||||
|
|
||||||
namespace JoyD.Windows.CS
|
namespace JoyD.Windows.CS
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 设置窗口类,用于配置热成像设备的各种参数和检测区域
|
||||||
|
/// </summary>
|
||||||
public partial class Setting : Form
|
public partial class Setting : Form
|
||||||
{
|
{
|
||||||
// 创建并显示检测配置窗口
|
// 创建并显示检测配置窗口
|
||||||
private static Setting _formInstance;
|
private static Setting _formInstance;
|
||||||
|
/// <summary>
|
||||||
|
/// 获取Setting类的单例实例
|
||||||
|
/// </summary>
|
||||||
public static Setting Form
|
public static Setting Form
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -30,7 +34,7 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定时器字段
|
// 定时器字段
|
||||||
private Timer _timer;
|
private readonly Timer _timer;
|
||||||
|
|
||||||
// 绘制模式标志
|
// 绘制模式标志
|
||||||
private bool _isDrawingMode = false;
|
private bool _isDrawingMode = false;
|
||||||
@@ -73,6 +77,9 @@ namespace JoyD.Windows.CS
|
|||||||
private bool _isEraseMode = false; // 擦除模式标志
|
private bool _isEraseMode = false; // 擦除模式标志
|
||||||
private Rectangle _tempDiffTempRectangle = Rectangle.Empty; // 临时温差图矩形预览
|
private Rectangle _tempDiffTempRectangle = Rectangle.Empty; // 临时温差图矩形预览
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化Setting窗体
|
||||||
|
/// </summary>
|
||||||
public Setting()
|
public Setting()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|||||||
@@ -9,170 +9,482 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
public static class SharedStructures
|
public static class SharedStructures
|
||||||
{
|
{
|
||||||
// 位置相关结构体
|
// 位置相关结构体
|
||||||
|
/// <summary>
|
||||||
|
/// 区域位置结构体
|
||||||
|
/// </summary>
|
||||||
public struct AreaPos
|
public struct AreaPos
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 区域左上角X坐标
|
||||||
|
/// </summary>
|
||||||
public int x;
|
public int x;
|
||||||
|
/// <summary>
|
||||||
|
/// 区域左上角Y坐标
|
||||||
|
/// </summary>
|
||||||
public int y;
|
public int y;
|
||||||
|
/// <summary>
|
||||||
|
/// 区域宽度
|
||||||
|
/// </summary>
|
||||||
public int width;
|
public int width;
|
||||||
|
/// <summary>
|
||||||
|
/// 区域高度
|
||||||
|
/// </summary>
|
||||||
public int height;
|
public int height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 点位置结构体
|
||||||
|
/// </summary>
|
||||||
public struct SpotPos
|
public struct SpotPos
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int x;
|
public int x;
|
||||||
|
/// <summary>
|
||||||
|
/// 点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int y;
|
public int y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 线位置结构体
|
||||||
|
/// </summary>
|
||||||
public struct LinePos
|
public struct LinePos
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 起始点X坐标
|
||||||
|
/// </summary>
|
||||||
public int sta_x;
|
public int sta_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 起始点Y坐标
|
||||||
|
/// </summary>
|
||||||
public int sta_y;
|
public int sta_y;
|
||||||
|
/// <summary>
|
||||||
|
/// 结束点X坐标
|
||||||
|
/// </summary>
|
||||||
public int end_x;
|
public int end_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 结束点Y坐标
|
||||||
|
/// </summary>
|
||||||
public int end_y;
|
public int end_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 图像位置结构体
|
||||||
|
/// </summary>
|
||||||
public struct ImagePos
|
public struct ImagePos
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 区域位置数组,最多支持6个区域
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||||||
public AreaPos[] area;
|
public AreaPos[] area;
|
||||||
|
/// <summary>
|
||||||
|
/// 点位置数组,最多支持6个点
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||||||
public SpotPos[] spot;
|
public SpotPos[] spot;
|
||||||
|
/// <summary>
|
||||||
|
/// 线位置
|
||||||
|
/// </summary>
|
||||||
public LinePos line;
|
public LinePos line;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 温度相关结构体
|
// 温度相关结构体
|
||||||
|
/// <summary>
|
||||||
|
/// 区域温度结构体
|
||||||
|
/// </summary>
|
||||||
public struct AreaTemp
|
public struct AreaTemp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度值
|
||||||
|
/// </summary>
|
||||||
public int max_temp;
|
public int max_temp;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int max_temp_x;
|
public int max_temp_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int max_temp_y;
|
public int max_temp_y;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度值
|
||||||
|
/// </summary>
|
||||||
public int min_temp;
|
public int min_temp;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int min_temp_x;
|
public int min_temp_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int min_temp_y;
|
public int min_temp_y;
|
||||||
|
/// <summary>
|
||||||
|
/// 平均温度值
|
||||||
|
/// </summary>
|
||||||
public int ave_temp;
|
public int ave_temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 点温度结构体
|
||||||
|
/// </summary>
|
||||||
public struct SpotTemp
|
public struct SpotTemp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 温度值
|
||||||
|
/// </summary>
|
||||||
public int temp;
|
public int temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 线温度结构体
|
||||||
|
/// </summary>
|
||||||
public struct LineTemp
|
public struct LineTemp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度值
|
||||||
|
/// </summary>
|
||||||
public int max_temp;
|
public int max_temp;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int max_temp_x;
|
public int max_temp_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int max_temp_y;
|
public int max_temp_y;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度值
|
||||||
|
/// </summary>
|
||||||
public int min_temp;
|
public int min_temp;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int min_temp_x;
|
public int min_temp_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int min_temp_y;
|
public int min_temp_y;
|
||||||
|
/// <summary>
|
||||||
|
/// 平均温度值
|
||||||
|
/// </summary>
|
||||||
public int ave_temp;
|
public int ave_temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 全局温度结构体
|
||||||
|
/// </summary>
|
||||||
public struct GlobaTemp
|
public struct GlobaTemp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度值
|
||||||
|
/// </summary>
|
||||||
public int max_temp;
|
public int max_temp;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int max_temp_x;
|
public int max_temp_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 最高温度点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int max_temp_y;
|
public int max_temp_y;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度值
|
||||||
|
/// </summary>
|
||||||
public int min_temp;
|
public int min_temp;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度点的X坐标
|
||||||
|
/// </summary>
|
||||||
public int min_temp_x;
|
public int min_temp_x;
|
||||||
|
/// <summary>
|
||||||
|
/// 最低温度点的Y坐标
|
||||||
|
/// </summary>
|
||||||
public int min_temp_y;
|
public int min_temp_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 图像温度结构体
|
||||||
|
/// </summary>
|
||||||
public struct ImageTemp
|
public struct ImageTemp
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 区域温度数组,最多支持6个区域
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||||||
public AreaTemp[] area;
|
public AreaTemp[] area;
|
||||||
|
/// <summary>
|
||||||
|
/// 点温度数组,最多支持6个点
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
||||||
public SpotTemp[] spot;
|
public SpotTemp[] spot;
|
||||||
|
/// <summary>
|
||||||
|
/// 线温度
|
||||||
|
/// </summary>
|
||||||
public LineTemp line;
|
public LineTemp line;
|
||||||
|
/// <summary>
|
||||||
|
/// 全局温度
|
||||||
|
/// </summary>
|
||||||
public GlobaTemp globa;
|
public GlobaTemp globa;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 配置相关结构体
|
// 配置相关结构体
|
||||||
|
/// <summary>
|
||||||
|
/// 邮件服务器配置结构体
|
||||||
|
/// </summary>
|
||||||
public struct EmailServer
|
public struct EmailServer
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 收件人邮箱地址
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] recv_addr;
|
public char[] recv_addr;
|
||||||
|
/// <summary>
|
||||||
|
/// 发件人邮箱地址
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] send_addr;
|
public char[] send_addr;
|
||||||
|
/// <summary>
|
||||||
|
/// 发件人邮箱密码
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] send_pwd;
|
public char[] send_pwd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// TFTP服务器配置结构体
|
||||||
|
/// </summary>
|
||||||
public struct TftpServer
|
public struct TftpServer
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// TFTP服务器地址
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] tftp_addr;
|
public char[] tftp_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 网络以太网配置结构体
|
||||||
|
/// </summary>
|
||||||
public struct NetworkEth
|
public struct NetworkEth
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 启用状态,0表示禁用,1表示启用
|
||||||
|
/// </summary>
|
||||||
public int enable;
|
public int enable;
|
||||||
|
/// <summary>
|
||||||
|
/// 静态IP地址
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] static_ip;
|
public char[] static_ip;
|
||||||
|
/// <summary>
|
||||||
|
/// 子网掩码
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] netmask;
|
public char[] netmask;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认网关
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] gateway;
|
public char[] gateway;
|
||||||
|
/// <summary>
|
||||||
|
/// 主DNS服务器地址
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] dns1;
|
public char[] dns1;
|
||||||
|
/// <summary>
|
||||||
|
/// 备DNS服务器地址
|
||||||
|
/// </summary>
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
||||||
public char[] dns2;
|
public char[] dns2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 环境参数结构体
|
||||||
|
/// </summary>
|
||||||
public struct EnvirParam
|
public struct EnvirParam
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 计算方法
|
||||||
|
/// </summary>
|
||||||
public int method;
|
public int method;
|
||||||
|
/// <summary>
|
||||||
|
/// 参数编号
|
||||||
|
/// </summary>
|
||||||
public int num;
|
public int num;
|
||||||
|
/// <summary>
|
||||||
|
/// 发射率
|
||||||
|
/// </summary>
|
||||||
public float emissivity;
|
public float emissivity;
|
||||||
|
/// <summary>
|
||||||
|
/// 环境温度
|
||||||
|
/// </summary>
|
||||||
public float airTemp;
|
public float airTemp;
|
||||||
|
/// <summary>
|
||||||
|
/// 目标温度
|
||||||
|
/// </summary>
|
||||||
public float targetTemp;
|
public float targetTemp;
|
||||||
|
/// <summary>
|
||||||
|
/// 大气透过率
|
||||||
|
/// </summary>
|
||||||
public float atmosTrans;
|
public float atmosTrans;
|
||||||
|
/// <summary>
|
||||||
|
/// 测量距离
|
||||||
|
/// </summary>
|
||||||
public float distance;
|
public float distance;
|
||||||
|
/// <summary>
|
||||||
|
/// 红外温度
|
||||||
|
/// </summary>
|
||||||
public float infraredTemp;
|
public float infraredTemp;
|
||||||
|
/// <summary>
|
||||||
|
/// 红外辐射率
|
||||||
|
/// </summary>
|
||||||
public float infraredRadia;
|
public float infraredRadia;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 报警参数结构体
|
||||||
|
/// </summary>
|
||||||
public struct AlarmParam
|
public struct AlarmParam
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 报警方法
|
||||||
|
/// </summary>
|
||||||
public int method;
|
public int method;
|
||||||
|
/// <summary>
|
||||||
|
/// 参数编号
|
||||||
|
/// </summary>
|
||||||
public int num;
|
public int num;
|
||||||
|
/// <summary>
|
||||||
|
/// 激活状态
|
||||||
|
/// </summary>
|
||||||
public int active;
|
public int active;
|
||||||
|
/// <summary>
|
||||||
|
/// 报警条件
|
||||||
|
/// </summary>
|
||||||
public int condition;
|
public int condition;
|
||||||
|
/// <summary>
|
||||||
|
/// 截图功能
|
||||||
|
/// </summary>
|
||||||
public int captrue;
|
public int captrue;
|
||||||
|
/// <summary>
|
||||||
|
/// 禁用校准
|
||||||
|
/// </summary>
|
||||||
public int disableCalib;
|
public int disableCalib;
|
||||||
|
/// <summary>
|
||||||
|
/// 邮件报警
|
||||||
|
/// </summary>
|
||||||
public int email;
|
public int email;
|
||||||
|
/// <summary>
|
||||||
|
/// 数字输出
|
||||||
|
/// </summary>
|
||||||
public int digital;
|
public int digital;
|
||||||
|
/// <summary>
|
||||||
|
/// FTP上传
|
||||||
|
/// </summary>
|
||||||
public int ftp;
|
public int ftp;
|
||||||
|
/// <summary>
|
||||||
|
/// 报警阈值
|
||||||
|
/// </summary>
|
||||||
public float threshold;
|
public float threshold;
|
||||||
|
/// <summary>
|
||||||
|
/// 滞后值
|
||||||
|
/// </summary>
|
||||||
public float hysteresis;
|
public float hysteresis;
|
||||||
|
/// <summary>
|
||||||
|
/// 阈值时间
|
||||||
|
/// </summary>
|
||||||
public int thresholeTime;
|
public int thresholeTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 焦距参数结构体
|
||||||
|
/// </summary>
|
||||||
public struct FocusParam
|
public struct FocusParam
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 对焦方法
|
||||||
|
/// </summary>
|
||||||
public int method;
|
public int method;
|
||||||
|
/// <summary>
|
||||||
|
/// 对焦区域X坐标
|
||||||
|
/// </summary>
|
||||||
public int x;
|
public int x;
|
||||||
|
/// <summary>
|
||||||
|
/// 对焦区域Y坐标
|
||||||
|
/// </summary>
|
||||||
public int y;
|
public int y;
|
||||||
|
/// <summary>
|
||||||
|
/// 对焦区域宽度
|
||||||
|
/// </summary>
|
||||||
public int width;
|
public int width;
|
||||||
|
/// <summary>
|
||||||
|
/// 对焦区域高度
|
||||||
|
/// </summary>
|
||||||
public int height;
|
public int height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 时间参数结构体
|
||||||
|
/// </summary>
|
||||||
public struct TimeParam
|
public struct TimeParam
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 年份
|
||||||
|
/// </summary>
|
||||||
public int year;
|
public int year;
|
||||||
|
/// <summary>
|
||||||
|
/// 月份
|
||||||
|
/// </summary>
|
||||||
public char month;
|
public char month;
|
||||||
|
/// <summary>
|
||||||
|
/// 日期
|
||||||
|
/// </summary>
|
||||||
public char day;
|
public char day;
|
||||||
|
/// <summary>
|
||||||
|
/// 小时
|
||||||
|
/// </summary>
|
||||||
public char hour;
|
public char hour;
|
||||||
|
/// <summary>
|
||||||
|
/// 分钟
|
||||||
|
/// </summary>
|
||||||
public char minute;
|
public char minute;
|
||||||
|
/// <summary>
|
||||||
|
/// 秒
|
||||||
|
/// </summary>
|
||||||
public char second;
|
public char second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,9 +75,34 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ZoneTemperatureData
|
public class ZoneTemperatureData
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 区域ID
|
||||||
|
/// </summary>
|
||||||
|
public int AreaId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 点ID
|
||||||
|
/// </summary>
|
||||||
|
public int SpotId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 区域温度
|
||||||
|
/// </summary>
|
||||||
|
public float Temperature { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 区域最低温度
|
||||||
|
/// </summary>
|
||||||
public float MinTemperature { get; set; }
|
public float MinTemperature { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 区域最高温度
|
||||||
|
/// </summary>
|
||||||
public float MaxTemperature { get; set; }
|
public float MaxTemperature { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 区域平均温度
|
||||||
|
/// </summary>
|
||||||
public float AverageTemperature { get; set; }
|
public float AverageTemperature { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 区域类型
|
||||||
|
/// </summary>
|
||||||
|
public int AreaType { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -267,10 +267,25 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public enum RequestResult
|
public enum RequestResult
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 请求成功
|
||||||
|
/// </summary>
|
||||||
Success,
|
Success,
|
||||||
|
/// <summary>
|
||||||
|
/// 请求超时
|
||||||
|
/// </summary>
|
||||||
Timeout,
|
Timeout,
|
||||||
|
/// <summary>
|
||||||
|
/// 网络错误
|
||||||
|
/// </summary>
|
||||||
NetworkError,
|
NetworkError,
|
||||||
|
/// <summary>
|
||||||
|
/// 处理错误
|
||||||
|
/// </summary>
|
||||||
ProcessingError,
|
ProcessingError,
|
||||||
|
/// <summary>
|
||||||
|
/// 无效响应
|
||||||
|
/// </summary>
|
||||||
InvalidResponse
|
InvalidResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,22 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Net.Sockets;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Threading;
|
||||||
// 导入UDP通信管理器
|
|
||||||
using JoyD.Windows.CS.Toprie;
|
|
||||||
|
|
||||||
namespace JoyD.Windows.CS.Toprie
|
namespace JoyD.Windows.CS.Toprie
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// V8热成像设备SDK封装类
|
||||||
|
/// </summary>
|
||||||
public class V8
|
public class V8
|
||||||
{
|
{
|
||||||
// 结构体引用已移至SharedStructures类
|
// 结构体引用已移至SharedStructures类
|
||||||
|
|
||||||
// 常量定义
|
// 常量定义
|
||||||
private const int SDK_PORT = 8080;
|
|
||||||
private const int BUFFER_SIZE = 4096;
|
|
||||||
private const int TIMEOUT = 3000;
|
|
||||||
private const string CMD_HEAD = "+CMD";
|
private const string CMD_HEAD = "+CMD";
|
||||||
private const int DISCOVERY_UDP_PORT = 18889;
|
|
||||||
private const int SEARCH_DEVICE_MAX_NUM = 99;
|
|
||||||
|
|
||||||
// 日志文件路径
|
// 日志文件路径
|
||||||
private static readonly string LogFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log.txt");
|
private static readonly string LogFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log.txt");
|
||||||
@@ -133,11 +128,18 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
private static bool isSdkInitialized = false;
|
private static bool isSdkInitialized = false;
|
||||||
private static readonly Dictionary<string, V8> deviceInstances = new Dictionary<string, V8>();
|
private static readonly Dictionary<string, V8> deviceInstances = new Dictionary<string, V8>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// V8类构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">设备IP地址</param>
|
||||||
public V8(string ip)
|
public V8(string ip)
|
||||||
{
|
{
|
||||||
deviceIp = ip;
|
deviceIp = ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// V8类析构函数
|
||||||
|
/// </summary>
|
||||||
~V8()
|
~V8()
|
||||||
{
|
{
|
||||||
Disconnect();
|
Disconnect();
|
||||||
@@ -279,6 +281,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SDK核心功能实现 - 不使用DllImport
|
// SDK核心功能实现 - 不使用DllImport
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化SDK
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>0表示成功,-1表示失败</returns>
|
||||||
public static int SDK_initialize()
|
public static int SDK_initialize()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -299,6 +305,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 销毁SDK资源
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>0表示成功,-1表示失败</returns>
|
||||||
public static int SDK_destroy()
|
public static int SDK_destroy()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -323,6 +333,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 搜索设备
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="list_len">设备列表长度(未使用)</param>
|
||||||
|
/// <returns>设备列表字符串</returns>
|
||||||
public static string SDK_serch_device(int list_len)
|
public static string SDK_serch_device(int list_len)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -408,6 +423,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 执行快门校正
|
||||||
|
/// </summary>
|
||||||
public void Shutter_correction()
|
public void Shutter_correction()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -430,6 +448,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取快门校正次数
|
||||||
|
/// </summary>
|
||||||
public int Shutter_times
|
public int Shutter_times
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -688,6 +709,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 保留原属性以保持向后兼容性
|
// 保留原属性以保持向后兼容性
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置色彩板模式
|
||||||
|
/// </summary>
|
||||||
public int Color_plate
|
public int Color_plate
|
||||||
{
|
{
|
||||||
get => GetColorPlate();
|
get => GetColorPlate();
|
||||||
@@ -724,6 +748,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置镜像模式
|
||||||
|
/// </summary>
|
||||||
public int Mirror_mode
|
public int Mirror_mode
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -965,12 +992,20 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 保留原属性以保持向后兼容性
|
// 保留原属性以保持向后兼容性
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置视频模式
|
||||||
|
/// </summary>
|
||||||
public int Video_mode
|
public int Video_mode
|
||||||
{
|
{
|
||||||
get => GetVideoModeInternal();
|
get => GetVideoModeInternal();
|
||||||
set => SetVideoModeInternal(value);
|
set => SetVideoModeInternal(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置区域位置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">区域索引</param>
|
||||||
|
/// <param name="area_data">区域位置数据</param>
|
||||||
public void Set_area_pos(int index, SharedStructures.AreaPos area_data)
|
public void Set_area_pos(int index, SharedStructures.AreaPos area_data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -986,6 +1021,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取区域位置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">区域索引</param>
|
||||||
|
/// <returns>区域位置数据</returns>
|
||||||
public SharedStructures.AreaPos Get_area_pos(int index)
|
public SharedStructures.AreaPos Get_area_pos(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1021,6 +1061,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置点位置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">点索引</param>
|
||||||
|
/// <param name="spot_data">点位置数据</param>
|
||||||
public void Set_spot_pos(int index, SharedStructures.SpotPos spot_data)
|
public void Set_spot_pos(int index, SharedStructures.SpotPos spot_data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1036,6 +1081,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取点位置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">点索引</param>
|
||||||
|
/// <returns>点位置数据</returns>
|
||||||
public SharedStructures.SpotPos Get_spot_pos(int index)
|
public SharedStructures.SpotPos Get_spot_pos(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1069,6 +1119,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置线位置
|
||||||
|
/// </summary>
|
||||||
public SharedStructures.LinePos Line_pos
|
public SharedStructures.LinePos Line_pos
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1121,6 +1174,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取所有位置信息
|
||||||
|
/// </summary>
|
||||||
public SharedStructures.ImagePos All_pos
|
public SharedStructures.ImagePos All_pos
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -1152,6 +1208,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置温度范围
|
||||||
|
/// </summary>
|
||||||
public int Temp_range
|
public int Temp_range
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1196,6 +1255,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置视频ISP X偏移
|
||||||
|
/// </summary>
|
||||||
public int Video_isp_x_offset
|
public int Video_isp_x_offset
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1240,6 +1302,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置视频ISP Y偏移
|
||||||
|
/// </summary>
|
||||||
public int Video_isp_y_offset
|
public int Video_isp_y_offset
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1284,6 +1349,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置视频ISP X缩放
|
||||||
|
/// </summary>
|
||||||
public int Video_isp_x_scale
|
public int Video_isp_x_scale
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1328,6 +1396,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置视频ISP Y缩放
|
||||||
|
/// </summary>
|
||||||
public int Video_isp_y_scale
|
public int Video_isp_y_scale
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1372,6 +1443,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置LED状态
|
||||||
|
/// </summary>
|
||||||
public int Set_led
|
public int Set_led
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1416,6 +1490,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置邮件服务器配置
|
||||||
|
/// </summary>
|
||||||
public SharedStructures.EmailServer Email_server
|
public SharedStructures.EmailServer Email_server
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1466,6 +1543,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置TFTP服务器配置
|
||||||
|
/// </summary>
|
||||||
public SharedStructures.TftpServer Tftp_server
|
public SharedStructures.TftpServer Tftp_server
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1515,6 +1595,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置网络配置
|
||||||
|
/// </summary>
|
||||||
public SharedStructures.NetworkEth Network_eth
|
public SharedStructures.NetworkEth Network_eth
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1564,6 +1647,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置融合距离
|
||||||
|
/// </summary>
|
||||||
public int Fusion_distance
|
public int Fusion_distance
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -1608,6 +1694,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置环境参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">环境参数</param>
|
||||||
public void Set_envir_param(SharedStructures.EnvirParam data)
|
public void Set_envir_param(SharedStructures.EnvirParam data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1632,6 +1722,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取区域环境参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">区域索引</param>
|
||||||
|
/// <returns>环境参数</returns>
|
||||||
public SharedStructures.EnvirParam Get_area_envir_param(int index)
|
public SharedStructures.EnvirParam Get_area_envir_param(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1656,6 +1751,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取点环境参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">点索引</param>
|
||||||
|
/// <returns>环境参数</returns>
|
||||||
public SharedStructures.EnvirParam Get_spot_envir_param(int index)
|
public SharedStructures.EnvirParam Get_spot_envir_param(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1680,6 +1780,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取线环境参数
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>环境参数</returns>
|
||||||
public SharedStructures.EnvirParam Get_line_envir_param()
|
public SharedStructures.EnvirParam Get_line_envir_param()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1704,6 +1808,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取全局环境参数
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>环境参数</returns>
|
||||||
public SharedStructures.EnvirParam Get_globa_envir_param()
|
public SharedStructures.EnvirParam Get_globa_envir_param()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1728,6 +1836,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置报警参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">报警参数</param>
|
||||||
public void Set_alarm_param(SharedStructures.AlarmParam data)
|
public void Set_alarm_param(SharedStructures.AlarmParam data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1750,6 +1862,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取区域报警参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">区域索引</param>
|
||||||
|
/// <returns>报警参数</returns>
|
||||||
public SharedStructures.AlarmParam Get_area_alarm_param(int index)
|
public SharedStructures.AlarmParam Get_area_alarm_param(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1773,6 +1890,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取点报警参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">点索引</param>
|
||||||
|
/// <returns>报警参数</returns>
|
||||||
public SharedStructures.AlarmParam Get_spot_alarm_param(int index)
|
public SharedStructures.AlarmParam Get_spot_alarm_param(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1797,6 +1919,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取全局报警参数
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>报警参数</returns>
|
||||||
public SharedStructures.AlarmParam Get_globa_alarm_param()
|
public SharedStructures.AlarmParam Get_globa_alarm_param()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1821,6 +1947,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取线报警参数
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>报警参数</returns>
|
||||||
public SharedStructures.AlarmParam Get_line_alarm_param()
|
public SharedStructures.AlarmParam Get_line_alarm_param()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1845,6 +1975,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取区域温度
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">区域索引</param>
|
||||||
|
/// <returns>区域温度数据</returns>
|
||||||
public SharedStructures.AreaTemp Get_area_temp(int index)
|
public SharedStructures.AreaTemp Get_area_temp(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1869,6 +2004,11 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取点温度
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="index">点索引</param>
|
||||||
|
/// <returns>点温度数据</returns>
|
||||||
public SharedStructures.SpotTemp Get_spot_temp(int index)
|
public SharedStructures.SpotTemp Get_spot_temp(int index)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1893,6 +2033,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取线温度
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>线温度数据</returns>
|
||||||
public SharedStructures.LineTemp Get_line_temp()
|
public SharedStructures.LineTemp Get_line_temp()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1917,6 +2061,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取全局温度
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>全局温度数据</returns>
|
||||||
public SharedStructures.GlobaTemp Get_globa_temp()
|
public SharedStructures.GlobaTemp Get_globa_temp()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1941,6 +2089,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取所有温度数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>图像温度数据</returns>
|
||||||
public SharedStructures.ImageTemp Get_all_temp()
|
public SharedStructures.ImageTemp Get_all_temp()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1965,6 +2117,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备重启
|
||||||
|
/// </summary>
|
||||||
public void Power_reboot()
|
public void Power_reboot()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1987,6 +2142,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 恢复默认参数
|
||||||
|
/// </summary>
|
||||||
public void Param_recover()
|
public void Param_recover()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2009,6 +2167,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备固件更新
|
||||||
|
/// </summary>
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2032,6 +2193,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 使用SendCommand方法发送心跳命令,与SDK保持一致
|
// 使用SendCommand方法发送心跳命令,与SDK保持一致
|
||||||
|
/// <summary>
|
||||||
|
/// 发送心跳命令
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>心跳响应值</returns>
|
||||||
public int Heartbeat()
|
public int Heartbeat()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2076,6 +2241,13 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <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)
|
public void Set_uart(int nSpeed, int nBits, char nEvent, int nStop)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2098,6 +2270,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 发送串口命令
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="cmd">命令字节数组</param>
|
||||||
public void Send_uart_command(byte[] cmd)
|
public void Send_uart_command(byte[] cmd)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2115,6 +2291,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 自动对焦
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">对焦参数</param>
|
||||||
public void Autofocus(SharedStructures.FocusParam data)
|
public void Autofocus(SharedStructures.FocusParam data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2137,6 +2317,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置设备名称
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">设备名称</param>
|
||||||
public void Set_device_name(string data)
|
public void Set_device_name(string data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2159,6 +2343,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取设备名称
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>设备名称</returns>
|
||||||
public string Get_device_name()
|
public string Get_device_name()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2191,6 +2379,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取检测编号
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>检测编号字节数组</returns>
|
||||||
public byte[] Get_detect_number()
|
public byte[] Get_detect_number()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2226,6 +2418,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置温度帧
|
||||||
|
/// </summary>
|
||||||
public char Temp_frame
|
public char Temp_frame
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -2277,6 +2472,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置报警输出
|
||||||
|
/// </summary>
|
||||||
public char Alarm
|
public char Alarm
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -2331,6 +2529,9 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
// 私有字段,用于存储最后一次成功获取的温补值
|
// 私有字段,用于存储最后一次成功获取的温补值
|
||||||
private int _lastSuccessfulCompTemp = 0;
|
private int _lastSuccessfulCompTemp = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取或设置温补值
|
||||||
|
/// </summary>
|
||||||
public int Comp_temp
|
public int Comp_temp
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -2373,6 +2574,10 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置系统时间
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">时间参数</param>
|
||||||
public void Set_time(SharedStructures.TimeParam data)
|
public void Set_time(SharedStructures.TimeParam data)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -2395,18 +2600,30 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 获取视频模式
|
// 获取视频模式
|
||||||
|
/// <summary>
|
||||||
|
/// 获取视频模式
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>视频模式值</returns>
|
||||||
public int GetVideoMode()
|
public int GetVideoMode()
|
||||||
{
|
{
|
||||||
return GetVideoModeInternal();
|
return GetVideoModeInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置视频模式
|
// 设置视频模式
|
||||||
|
/// <summary>
|
||||||
|
/// 设置视频模式
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="mode">视频模式值</param>
|
||||||
public void SetVideoMode(int mode)
|
public void SetVideoMode(int mode)
|
||||||
{
|
{
|
||||||
SetVideoModeInternal(mode);
|
SetVideoModeInternal(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增方法:获取图像数据
|
// 新增方法:获取图像数据
|
||||||
|
/// <summary>
|
||||||
|
/// 获取图像数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>图像数据字节数组</returns>
|
||||||
public byte[] GetImageData()
|
public byte[] GetImageData()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ if (Test-Path "$output\$packageId.nuspec") { Remove-Item -Path "$output\$package
|
|||||||
# 构建项目(确保生成pdb和xml文件)
|
# 构建项目(确保生成pdb和xml文件)
|
||||||
Write-Host "1. 正在构建项目..."
|
Write-Host "1. 正在构建项目..."
|
||||||
Write-Host "当前目录: $scriptDir"
|
Write-Host "当前目录: $scriptDir"
|
||||||
dotnet build "$scriptDir\Toprie\Toprie.csproj" -c Debug -o "$output" /p:DebugSymbols=true /p:DebugType=full /p:DocumentationFile=JoyD.Windows.CS.Toprie.xml
|
dotnet build "$scriptDir\Toprie\Toprie.csproj" -c Debug /p:DebugSymbols=true /p:DebugType=full
|
||||||
|
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Host "错误: 构建失败!" -ForegroundColor Red
|
Write-Host "错误: 构建失败!" -ForegroundColor Red
|
||||||
@@ -81,11 +81,27 @@ if ($LASTEXITCODE -ne 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# 验证DLL是否存在
|
# 验证DLL是否存在
|
||||||
if (!(Test-Path "$output\$actualDllName")) {
|
$binDebugPath = Join-Path "$scriptDir\Toprie" "bin\Debug"
|
||||||
Write-Host "错误: 在输出目录中找不到$actualDllName!" -ForegroundColor Red
|
if (!(Test-Path "$binDebugPath\$actualDllName")) {
|
||||||
|
Write-Host "错误: 在$binDebugPath目录中找不到$actualDllName!" -ForegroundColor Red
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 将构建文件复制到Output目录
|
||||||
|
Write-Host "正在将构建文件复制到Output目录..."
|
||||||
|
Copy-Item -Path "$binDebugPath\$actualDllName" -Destination $output -Force
|
||||||
|
Write-Host "已复制$actualDllName到$output"
|
||||||
|
|
||||||
|
if (Test-Path "$binDebugPath\$actualPdbName") {
|
||||||
|
Copy-Item -Path "$binDebugPath\$actualPdbName" -Destination $output -Force
|
||||||
|
Write-Host "已复制$actualPdbName到$output"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Test-Path "$binDebugPath\$actualXmlName") {
|
||||||
|
Copy-Item -Path "$binDebugPath\$actualXmlName" -Destination $output -Force
|
||||||
|
Write-Host "已复制$actualXmlName到$output"
|
||||||
|
}
|
||||||
|
|
||||||
# 直接使用原始文件名,无需复制重命名
|
# 直接使用原始文件名,无需复制重命名
|
||||||
Write-Host "使用原始文件名: $actualDllName"
|
Write-Host "使用原始文件名: $actualDllName"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user