Ben vcgencmd aracını kullanarak sıcaklık alabilirsiniz biliyorum ama ben vcgencmd stdout okumadan sıcaklık programlı olarak sıcaklık almak için C kullanabilirsiniz herhangi bir API olup olmadığını merak ediyordum?
Ben vcgencmd aracını kullanarak sıcaklık alabilirsiniz biliyorum ama ben vcgencmd stdout okumadan sıcaklık programlı olarak sıcaklık almak için C kullanabilirsiniz herhangi bir API olup olmadığını merak ediyordum?
Yanıtlar:
Bu cevapta/sys/class/thermal/thermal_zone0/temp belirtildiği gibi dosyayı okuyabilirsiniz . Orada komut satırından ölçüm hakkında ve dosya ile okunur . Ancak dosyayı sadece C cinsinden açabilmelisiniz. Sıcaklık mili derece Santigrat ve ASCII numaraları olarak döndürülür. Belki böyle, test edilmedi :)cat
FILE *temperatureFile;
double T;
temperatureFile = fopen ("/sys/class/thermal/thermal_zone0/temp", "r");
if (temperatureFile == NULL)
; //print some message
fscanf (temperatureFile, "%lf", &T);
T /= 1000;
printf ("The temperature is %6.3f C.\n", T);
fclose (temperatureFile);
open()ve read()bunun yerine ve kullanmalısınız - YMMV. Bir de "libsysfs" var, ama terk edilmiş ve çekirdek geliştiricileri açıkça insanlardan ondan uzak durmalarını söylemişti.
@Frepa'nın dediği gibi, RaspberryPi için çekirdek termal sürücüsü var, bu yüzden en kolay yol onu kullanmaktır. Bildiğim kadarıyla böyle değil vgencmd. Termal çekirdek sürücüsü bulunmadan önce bile sıcaklığı okuyabiliyordu. mailboxGPU üzerinde çalışan VideoCore OS ile iletişim kurmak için RaspberryPi'de bulunan özel iletişim mekanizması kullanıyor . Kısmen burada belgelenmiştir .