修复系统状态更新流程第6点:温度数据更新、Ping状态变化、连接状态变化、图像更新时添加暂停状态检查,确保只在非暂停状态下调用更新,暂停状态下不更新Info和UI

This commit is contained in:
zqm
2025-10-31 13:54:01 +08:00
parent f559f90889
commit 4629798115

View File

@@ -110,9 +110,12 @@ namespace JoyD.Windows.CS.Toprie
Console.WriteLine("温度数据已更新"); Console.WriteLine("温度数据已更新");
// 按照README中要求的修改流程第4点温度数据更新时调用更新Info // 按照README中要求的修改流程第4点和第6点:温度数据更新时,只在非暂停状态下调用更新Info
if (!_isPaused)
{
UpdateInfo(); UpdateInfo();
} }
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"处理接收到的温度数据时出错: {ex.Message}"); Console.WriteLine($"处理接收到的温度数据时出错: {ex.Message}");
@@ -683,14 +686,16 @@ namespace JoyD.Windows.CS.Toprie
return; return;
} }
// 按照README中要求的修改流程第5点图像更新时保存LastImage调用更新到UI // 按照README中要求的修改流程第5点和第6点图像更新时保存LastImage只在非暂停状态下调用更新到UI
// 无论是否暂停都应该保存LastImage并调用更新到UI
this.BeginInvoke(new Action(() => this.BeginInvoke(new Action(() =>
{ {
try try
{
if (!_isPaused)
{ {
UpdateImageOnUI(); UpdateImageOnUI();
} }
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"更新UI图像失败: {ex.Message}"); Console.WriteLine($"更新UI图像失败: {ex.Message}");
@@ -1016,8 +1021,11 @@ namespace JoyD.Windows.CS.Toprie
} }
} }
// 设置连接状态后,调用更新Info // 按照README中要求的修改流程第2点和第6点连接状态变化时只在非暂停状态下调用更新Info
if (!_isPaused)
{
UpdateInfo(); UpdateInfo();
}
break; break;
case ConnectionStatus.Disconnected: case ConnectionStatus.Disconnected:
Console.WriteLine("设备已断开连接"); Console.WriteLine("设备已断开连接");
@@ -1044,8 +1052,11 @@ namespace JoyD.Windows.CS.Toprie
Console.WriteLine("温度数据实例已清空"); Console.WriteLine("温度数据实例已清空");
} }
// 设置连接状态后,调用更新Info // 按照README中要求的修改流程第2点和第6点连接状态变化时只在非暂停状态下调用更新Info
if (!_isPaused)
{
UpdateInfo(); UpdateInfo();
}
if (!string.IsNullOrEmpty(e.DeviceInfo)) if (!string.IsNullOrEmpty(e.DeviceInfo))
{ {
@@ -1064,8 +1075,11 @@ namespace JoyD.Windows.CS.Toprie
Console.WriteLine($"正在重新连接设备...{(!string.IsNullOrEmpty(e.DeviceInfo) ? " " + e.DeviceInfo : "")}"); Console.WriteLine($"正在重新连接设备...{(!string.IsNullOrEmpty(e.DeviceInfo) ? " " + e.DeviceInfo : "")}");
ShowError(string.Empty); // 清除之前的错误信息 ShowError(string.Empty); // 清除之前的错误信息
// 设置重连状态后,调用更新Info // 按照README中要求的修改流程第2点和第6点连接状态变化时只在非暂停状态下调用更新Info
if (!_isPaused)
{
UpdateInfo(); UpdateInfo();
}
break; break;
} }
} }
@@ -1614,10 +1628,13 @@ namespace JoyD.Windows.CS.Toprie
/// <param name="isPingable">是否可Ping通</param> /// <param name="isPingable">是否可Ping通</param>
private void UpdatePingState(bool isPingable) private void UpdatePingState(bool isPingable)
{ {
// 按照README中要求的修改流程第3点Ping通状态变化时修改Ping状态调用更新Info // 按照README中要求的修改流程第3点和第6点Ping通状态变化时修改Ping状态只在非暂停状态下调用更新Info
IsDevicePingable = isPingable; IsDevicePingable = isPingable;
if (!_isPaused)
{
UpdateInfo(); UpdateInfo();
} }
}
/// <summary> /// <summary>
/// 开始设备Ping /// 开始设备Ping