修复内容:

1. 完善温度显示状态变量更新 :在 LoadMenuConfig 方法中添加了对平均温度( _showAverageTemperature )和最低温度( _showMinTemperature )状态变量的设置,确保所有温度显示相关的状态都能正确加载。
2. 添加温度显示互斥逻辑 :实现了全局温度和区域温度的互斥处理,确保两者不会同时被选中,保持菜单状态的一致性。
3. 更新实时温度显示 :在加载配置后调用 UpdateRealTimeInfoOnUI() 方法,确保温度显示能够根据加载的配置实时更新。
4. 应用色彩模式到设备 :添加了逻辑将加载的色彩模式(如白热、黑热、铁红等)应用到设备,确保视觉效果与菜单选择一致。
5. 应用图像模式到设备 :添加了逻辑将加载的图像模式(红外模式或自然模式)应用到设备,确保图像显示模式与菜单选择一致。
This commit is contained in:
zqm
2025-12-23 10:34:37 +08:00
parent 98ff31fab8
commit 461bd08ba5

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
@@ -2318,6 +2318,25 @@ namespace JoyD.Windows.CS.Toprie
_showAreaTemperature = areaTemperatureToolStripMenuItem.Checked;
if (maxTemperatureToolStripMenuItem != null)
_showMaxTemperature = maxTemperatureToolStripMenuItem.Checked;
if (avgTemperatureToolStripMenuItem != null)
_showAverageTemperature = avgTemperatureToolStripMenuItem.Checked;
if (minTemperatureToolStripMenuItem != null)
_showMinTemperature = minTemperatureToolStripMenuItem.Checked;
// 处理温度显示菜单项的互斥逻辑
if (_showGlobalTemperature && _showAreaTemperature)
{
// 如果两者都被选中,默认保持全局温度选中,取消区域温度
_showAreaTemperature = false;
if (areaTemperatureToolStripMenuItem != null)
areaTemperatureToolStripMenuItem.Checked = false;
}
// 更新实时温度信息显示,只在非暂停状态下调用
if (!_isPaused)
{
UpdateRealTimeInfoOnUI();
}
// 色彩模式菜单 - 添加空值检查
if (whiteHotToolStripMenuItem != null)
@@ -2337,12 +2356,86 @@ namespace JoyD.Windows.CS.Toprie
if (rainbow2ToolStripMenuItem != null)
ApplyMenuState(menuStates, "rainbow2", rainbow2ToolStripMenuItem);
// 应用选中的色彩模式到设备
if (_deviceManager != null)
{
try
{
if (whiteHotToolStripMenuItem != null && whiteHotToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.WhiteHot);
Console.WriteLine("应用白热色彩模式到设备");
}
else if (blackHotToolStripMenuItem != null && blackHotToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.BlackHot);
Console.WriteLine("应用黑热色彩模式到设备");
}
else if (ironRedToolStripMenuItem != null && ironRedToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.IronRed);
Console.WriteLine("应用铁红色彩模式到设备");
}
else if (lavaToolStripMenuItem != null && lavaToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.Lava);
Console.WriteLine("应用熔岩色彩模式到设备");
}
else if (rainbowToolStripMenuItem != null && rainbowToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.Rainbow);
Console.WriteLine("应用彩虹色彩模式到设备");
}
else if (ironGrayToolStripMenuItem != null && ironGrayToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.IronGray);
Console.WriteLine("应用铁灰色彩模式到设备");
}
else if (redHotToolStripMenuItem != null && redHotToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.RedHot);
Console.WriteLine("应用红热色彩模式到设备");
}
else if (rainbow2ToolStripMenuItem != null && rainbow2ToolStripMenuItem.Checked)
{
_deviceManager.SetPaletteType(PaletteType.Rainbow2);
Console.WriteLine("应用彩虹2色彩模式到设备");
}
}
catch (Exception ex)
{
Console.WriteLine($"应用色彩模式到设备失败: {ex.Message}");
}
}
// 图像模式菜单 - 添加空值检查
if (thermalModeToolStripMenuItem != null)
ApplyMenuState(menuStates, "thermalMode", thermalModeToolStripMenuItem);
if (visibleModeToolStripMenuItem != null)
ApplyMenuState(menuStates, "visibleMode", visibleModeToolStripMenuItem);
// 应用选中的图像模式到设备
if (_deviceManager != null)
{
try
{
if (thermalModeToolStripMenuItem != null && thermalModeToolStripMenuItem.Checked)
{
_deviceManager.SetImageMode(ImageMode.Infrared);
Console.WriteLine("应用红外图像模式到设备");
}
else if (visibleModeToolStripMenuItem != null && visibleModeToolStripMenuItem.Checked)
{
_deviceManager.SetImageMode(ImageMode.Natural);
Console.WriteLine("应用自然图像模式到设备");
}
}
catch (Exception ex)
{
Console.WriteLine($"应用图像模式到设备失败: {ex.Message}");
}
}
string successMsg = "菜单配置已从CSV文件成功加载并应用";
Console.WriteLine(successMsg);
WriteLog(successMsg);