我只想确认一下电池的温度数据。
我使用GetSystemPowerStatusEx2 API来获取c++用于windows设备的电池温度。
我使用的变量是"SYSTEM_POWER_STATUS_EX2".类型的"psse"
On success,返回的电池温度值如下:
psse.BatteryTemperature = 29 //which is of dword type.
我怀疑电池的实际温度代表是什么?
是2.9摄氏度还是29摄氏度&为什么?
请回答。提前谢谢。
发布于 2012-10-15 17:03:47
根据关于MSDN的文档
电池温度以摄氏度为单位。该成员的值可在-3,276.8至3,276.7之间;增量为0.1摄氏度。
所以29的值意味着2.9摄氏度。
发布于 2012-10-16 03:41:10
在调用函数之前,您是否将BatteryStatusEx2结构内存调零为零?
OTOH原始设备制造商可以,但不需要填写所有的值正确。因此,如果函数返回29,即2.9°C,我假设OEM没有正确地填充这个值。无论它是29摄氏度,这也不是一个真正的值,随着时间的推移,因为电池的温度应该上升,在使用期间的设备。
显然,OEM提供了一个新的固件或服务版本的设备,纠正错误的读数。
这些值的准确性取决于驱动程序的实现。可能电池根本不暴露任何温度,驱动程序总是将29值填充到结构中。
不要太信任原始设备制造商执行所有的功能,始终纠正。
~约瑟夫
https://stackoverflow.com/questions/12900408
复制相似问题