GuillaumeGomez / sysinfo

Cross-platform library to fetch system information
MIT License
2.19k stars 321 forks source link

sunxi-therm_temp1 temperature in wrong scale #1204

Open thomas725 opened 10 months ago

thomas725 commented 10 months ago

Hi there! I just upgraded the sysinfo dependency from 0.29 to 0.30.5 for my tool and found that on one of my systems it now now finds a component where it previously found none. Sadly the temperature returned is in the wrong scale, returning (for example) 0.028999999165534973 where the function documentation states it should return °C. I believe this needs to be interpreted as the same value times 1000 in °C, so 28.999999165534973°C

The component is called "sunxi-therm temp1" and it's on a RoboRock Q7 Max vacuum cleaning robot flashed with Valetudo firmware.

Is there some way to make your lib interpret it the correct way or do I need to just multiply the value by 1000 in that specific case (and add code to identify that case) on my side?

GuillaumeGomez commented 10 months ago

Is it an embedded linux?

thomas725 commented 10 months ago

well, kind of I guess you could call it that. It's a vacuum robot, but I've seen much smaller linux machines ;)

GuillaumeGomez commented 10 months ago

Well, there was no change to how temperature is computed as far as I can see, so you'll need to debug what's wrong. It's in src/unix/linux/component.rs.

thomas725 commented 10 months ago

Well, I guess it's the same problem as with /sys/class/thermal/thermal_zone*/temp on this system, which gives °C instead of 1000*x°C like most Linux systems I've come across so far.