Je sais que vous pouvez obtenir la température en utilisant l'outil vcgencmd mais je me demandais s'il y avait une API que je peux utiliser en C pour obtenir la température par programme sans lire la sortie standard de vcgencmd?
c
temperature
opc0de
la source
la source
Réponses:
Vous pouvez lire le fichier
/sys/class/thermal/thermal_zone0/temp
, comme spécifié dans cette réponse . Il s'agit de mesurer à partir de la ligne de commande, et le fichier est lu aveccat
. Mais vous devriez pouvoir simplement ouvrir le fichier en C. La température est renvoyée en milli-degrés centigrades et en nombres ASCII. Peut-être comme ça, non testé :)la source
open()
et à laread()
place - mais YMMV. Il y a aussi un "libsysfs", mais il a été abandonné et les développeurs du noyau ont explicitement dit aux gens de s'en éloigner.Comme l'a dit @Frepa, il existe maintenant un pilote thermique du noyau pour RaspberryPi, donc le moyen le plus simple est de l'utiliser. Pour autant que je sache, ce n'est pas ainsi que cela
vgencmd
fonctionne. Il était capable de lire la température avant même l'existence du pilote de noyau thermique. Il utilise un mécanisme de communication spécial disponible sur RaspberryPi appelémailbox
afin de communiquer avec VideoCore OS fonctionnant sur GPU. Il est en partie documenté ici .la source