修复Camera.cs中的TemperatureDataReceived事件名称错误
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -63,9 +68,53 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
_deviceManager.ProjectPath = _projectPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <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;
|
||||
|
||||
Reference in New Issue
Block a user