告警与传感器数值不一致问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:openUBMC 25.09;
- 涉及功能:告警&事件;
- 触发条件:使用 setprop 修改 scanner 值,而未更新 DescArgs 参数源。
- 业务表现:告警详情里正常的详情信息应该是:当前温度15.00V超过了13.2V所以产生告警;实际告警详情里报的内容是:当前温度11.911V超过了上门限值13.2V产生了告警
问题复现步骤
- 以 BCU1 VCC_12V0_1 (V) 传感器为例;执行命令setprop set Scanner_12v1_010102 bmc.kepler.Scanner Value 3000构造高温告警
- web查看门限传感器值为15V,已超过上门限值并触发了告警
- 告警详情里报的内容是:当前温度11.911V超过了上门限值13.2V产生了告警
关键日志信息
告警详情里报的内容是:当前温度11.911V超过了上门限值13.2V产生了告警
定位过程
- 传感器数值更新(如通过 setprop 修改 Scanner.Value)仅影响传感器对象本身。
- 告警事件的描述文本(如 “voltage (11.911 V)”)是由事件生成机制从底层寄存器或缓存中获取的,不会自动同步最新的模拟值。
因此,即使传感器页面显示已更新为 15 V,事件描述仍可能使用旧的原始读数 11.911 V,导致信息不一致。
问题原因
告警事件中的描述值来源于原始硬件或缓存数据源,而非实时更新的传感器对象读数。
解决方案
为确保告警事件中显示正确的模拟值,必须同时更新事件描述所依赖的底层参数源,而不仅仅是 sensor scanner。