diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index 805baf1..22904dc 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -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);