修改断连更新逻辑
This commit is contained in:
@@ -1528,6 +1528,10 @@ namespace JoyD.Windows.CS.Toprie
|
||||
if (!_isPaused)
|
||||
{
|
||||
UpdateInfo();
|
||||
// 连接成功时,更新实时温度信息,确保测温区立即显示
|
||||
UpdateRealTimeInfoOnUI();
|
||||
// 直接调用UpdateImageOnUI(),确保界面立即刷新
|
||||
UpdateImageOnUI();
|
||||
}
|
||||
break;
|
||||
case ConnectionStatus.Disconnected:
|
||||
@@ -1550,7 +1554,17 @@ namespace JoyD.Windows.CS.Toprie
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 连接断开时,清空_displayImage,不显示测温区
|
||||
lock (_displayImageLock)
|
||||
{
|
||||
if (_displayImage != null)
|
||||
{
|
||||
using (Graphics g = Graphics.FromImage(_displayImage))
|
||||
{
|
||||
g.Clear(Color.Transparent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按照README中要求的修改流程第2点和第5点:断开或连接时,设置连接状态,只在非暂停状态下调用更新Info
|
||||
if (!_isPaused)
|
||||
@@ -1579,6 +1593,18 @@ namespace JoyD.Windows.CS.Toprie
|
||||
WriteLog($"正在重新连接设备...{(!string.IsNullOrEmpty(e.DeviceInfo) ? " " + e.DeviceInfo : "")}");
|
||||
ShowError(string.Empty); // 清除之前的错误信息
|
||||
|
||||
// 正在重连时,清空_displayImage,不显示测温区
|
||||
lock (_displayImageLock)
|
||||
{
|
||||
if (_displayImage != null)
|
||||
{
|
||||
using (Graphics g = Graphics.FromImage(_displayImage))
|
||||
{
|
||||
g.Clear(Color.Transparent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按照README中要求的修改流程第2点和第6点:连接状态变化时,只在非暂停状态下调用更新Info
|
||||
if (_isFirst || !_isPaused)
|
||||
{
|
||||
@@ -3172,6 +3198,9 @@ namespace JoyD.Windows.CS.Toprie
|
||||
g.Clear(Color.Transparent);
|
||||
|
||||
if (_deviceManager.CurrentImageMode == ImageMode.Infrared)
|
||||
{
|
||||
// 只有在设备连接状态下才绘制测温区
|
||||
if (_deviceManager.ConnectionStatus == ConnectionStatus.Connected)
|
||||
{
|
||||
// 1. 先绘制区域框线,不受温度数据影响,只受显示设置影响
|
||||
if (_showAreaTemperature)
|
||||
@@ -3210,7 +3239,11 @@ namespace JoyD.Windows.CS.Toprie
|
||||
Console.WriteLine($"绘制区域框时发生异常: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 只有在设备连接状态下才绘制温度数据
|
||||
if (_deviceManager.ConnectionStatus == ConnectionStatus.Connected)
|
||||
{
|
||||
// 2. 温度数据绘制逻辑,仍受温度数据有效性影响
|
||||
TemperatureData temperatureData = _deviceManager.LastTemperature;
|
||||
if (temperatureData != null && temperatureData.Timestamp != null)
|
||||
@@ -3308,9 +3341,7 @@ namespace JoyD.Windows.CS.Toprie
|
||||
// 设置显示状态标志
|
||||
_isDisplayingInfo = true;
|
||||
}
|
||||
|
||||
// 标记信息正在显示
|
||||
_isDisplayingInfo = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ using System.Runtime.InteropServices;
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.2.5")]
|
||||
[assembly: AssemblyFileVersion("1.0.2.6")]
|
||||
[assembly: AssemblyFileVersion("1.0.2.7")]
|
||||
|
||||
// NuGet包相关信息已在项目文件中配置
|
||||
|
||||
Reference in New Issue
Block a user