监控、OSD
This commit is contained in:
@@ -131,6 +131,11 @@ internal sealed class HardwareManager : IDisposable
|
||||
|
||||
// 重新遍历以读取最新传感器值(visitor 缓存的是 hardware 引用,sensor 值实时)
|
||||
var groups = new Dictionary<string, SensorGroup>();
|
||||
|
||||
// 为已启用但 LHB 未枚举到的硬件类型预创建空分组,
|
||||
// 确保前端能显示"已启用但无数据"的硬件(而不是直接隐藏,让用户误以为配置未生效)
|
||||
EnsureGroupsForEnabledHardware(groups, snap);
|
||||
|
||||
foreach (var hw in _visitor.AllHardware)
|
||||
{
|
||||
string groupId = hw.HardwareType.ToString().ToLowerInvariant();
|
||||
@@ -164,6 +169,40 @@ internal sealed class HardwareManager : IDisposable
|
||||
return snap;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 为已启用但 LHB 未枚举到的硬件类型预创建空分组。
|
||||
/// 场景:用户在设置中勾选了主板/电池/电源等,但 LHB 在当前权限或机型下检测不到对应硬件,
|
||||
/// 此时仍创建空分组让前端显示"已启用但无数据",避免用户误以为配置未生效。
|
||||
/// GPU 特殊处理:LHB 会枚举到 GpuIntel/GpuAmd/GpuNvidia 之一,不预创建通用分组。
|
||||
/// </summary>
|
||||
private void EnsureGroupsForEnabledHardware(Dictionary<string, SensorGroup> groups, SensorSnapshot snap)
|
||||
{
|
||||
// (configKey, groupId, groupName)
|
||||
// 注意:controller 对应 SuperIO 和 EmbeddedController 两个 HardwareType
|
||||
var mapping = new (string, string, string)[]
|
||||
{
|
||||
("cpu", "cpu", "CPU"),
|
||||
("memory", "memory", "Memory"),
|
||||
("storage", "storage", "Storage"),
|
||||
("motherboard", "motherboard", "Motherboard"),
|
||||
("controller", "superio", "SuperIO"),
|
||||
("controller", "embeddedcontroller", "EmbeddedController"),
|
||||
("battery", "battery", "Battery"),
|
||||
("network", "network", "Network"),
|
||||
("psu", "psu", "Psu"),
|
||||
};
|
||||
|
||||
foreach (var (key, groupId, groupName) in mapping)
|
||||
{
|
||||
if (_config.IsHardwareEnabled(key) && !groups.ContainsKey(groupId))
|
||||
{
|
||||
var g = new SensorGroup { Id = groupId, Name = groupName };
|
||||
groups[groupId] = g;
|
||||
snap.Groups.Add(g);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断硬件是否属于慢通道(低频 Update 即可)。
|
||||
/// 快通道:CPU/GPU/Memory/Network(变化快、查询轻量)
|
||||
|
||||
Reference in New Issue
Block a user