GuillaumeGomez / sysinfo

Cross-platform library to fetch system information
MIT License
2k stars 298 forks source link

sunxi-therm_temp1 temperature in wrong scale #1204

Open thomas725 opened 7 months ago

thomas725 commented 7 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 6 months ago

Is it an embedded linux?

thomas725 commented 6 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 6 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 6 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.