修复Camera.cs中的TemperatureDataReceived事件名称错误

This commit is contained in:
zqm
2025-10-31 10:59:46 +08:00

View File

@@ -31,6 +31,11 @@ namespace JoyD.Windows.CS.Toprie
// 信息图像,用于显示额外信息
private Image _infoImage = null;
// 最近一次获取到的温度数据
private TemperatureData _lastTemperatureData = null;
// 用于保护_lastTemperatureData的线程锁
private readonly object _lastTemperatureDataLock = new object();
// 用于保护_lastImage的线程锁
private readonly object _lastImageLock = new object();
@@ -67,6 +72,50 @@ namespace JoyD.Windows.CS.Toprie
}
}
/// <summary>
/// 获取最近一次接收到的温度数据
/// </summary>
public TemperatureData LastTemperatureData
{
get
{
lock (_lastTemperatureDataLock)
{
return _lastTemperatureData;
}
}
}
/// <summary>
/// 设备管理器温度数据接收事件处理
/// </summary>
private void DeviceManager_TemperatureReceived(object sender, DeviceManager.TemperatureReceivedEventArgs e)
{
if (DesignMode) return;
try
{
// 确保事件参数有效
if (e == null || e.TemperatureData == null)
{
Console.WriteLine("接收到无效的温度数据事件参数");
return;
}
// 更新最近一次温度数据
lock (_lastTemperatureDataLock)
{
_lastTemperatureData = e.TemperatureData;
}
Console.WriteLine("温度数据已更新");
}
catch (Exception ex)
{
Console.WriteLine($"处理接收到的温度数据时出错: {ex.Message}");
}
}
// 显示错误的定时器
@@ -340,6 +389,9 @@ namespace JoyD.Windows.CS.Toprie
// 注册连接异常事件
_deviceManager.ConnectionException += DeviceManager_ConnectionException;
// 注册温度数据接收事件
_deviceManager.TemperatureReceived += DeviceManager_TemperatureReceived;
}
}
@@ -985,6 +1037,13 @@ namespace JoyD.Windows.CS.Toprie
}
}
// 当TCP连接断开时将最近一次温度数据实例设为null
lock (_lastTemperatureDataLock)
{
_lastTemperatureData = null;
Console.WriteLine("温度数据实例已清空");
}
// 设置连接状态后调用更新Info
UpdateInfo();
@@ -1627,6 +1686,13 @@ namespace JoyD.Windows.CS.Toprie
_deviceManager.ImageReceived -= DeviceManager_ImageReceived;
_deviceManager.ConnectionStatusChanged -= DeviceManager_ConnectionStatusChanged;
_deviceManager.ConnectionException -= DeviceManager_ConnectionException;
_deviceManager.TemperatureReceived -= DeviceManager_TemperatureReceived;
// 释放温度数据资源
lock (_lastTemperatureDataLock)
{
_lastTemperatureData = null;
}
// 释放设备管理器资源
_deviceManager.Dispose();
_deviceManager = null;