修复系统状态更新流程第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,8 +110,11 @@ namespace JoyD.Windows.CS.Toprie
Console.WriteLine("温度数据已更新"); Console.WriteLine("温度数据已更新");
// 按照README中要求的修改流程第4点温度数据更新时调用更新Info // 按照README中要求的修改流程第4点和第6点:温度数据更新时,只在非暂停状态下调用更新Info
UpdateInfo(); if (!_isPaused)
{
UpdateInfo();
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -683,13 +686,15 @@ 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
{ {
UpdateImageOnUI(); if (!_isPaused)
{
UpdateImageOnUI();
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -1016,8 +1021,11 @@ namespace JoyD.Windows.CS.Toprie
} }
} }
// 设置连接状态后,调用更新Info // 按照README中要求的修改流程第2点和第6点连接状态变化时只在非暂停状态下调用更新Info
UpdateInfo(); if (!_isPaused)
{
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
UpdateInfo(); if (!_isPaused)
{
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
UpdateInfo(); if (!_isPaused)
{
UpdateInfo();
}
break; break;
} }
} }
@@ -1614,9 +1628,12 @@ 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;
UpdateInfo(); if (!_isPaused)
{
UpdateInfo();
}
} }
/// <summary> /// <summary>