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