
Telemetri datası olarak kullanmak için Raspberry Pi CPU Yükü Hesaplama fonksiyonu.
Raspberry pi, işlemci bilgilerini /proc altında stat adında bir belgede tutuyor. Yapılması gereken girip burdan verileri derlemek. Her bir core için ayrı ayrı bilgiler yer alıyor fakat ortalamasını alan bir fonksiyon derledim.
float readCoreUsage() { FILE* fp; static long last_user, last_nice, last_sys; long user, nice, sys; char id[16]; fp = fopen("/proc/stat", "r"); if (fscanf(fp, "%s %ld %ld %ld", id, &last_user, &last_nice, &last_sys) != 4) { fprintf(stderr, "/proc/stat initial read failed\n"); } fclose(fp); sleep(1); fp = fopen("/proc/stat", "r"); if (fscanf(fp, "%s %ld %ld %ld", id, &user, &nice, &sys) != 4) { fprintf(stderr, "/proc/stat read failed\n"); } fclose(fp); float numberOfCpu = 4.0; float core = ((user + nice + sys) - (last_user + last_nice + last_sys)) / numberOfCpu; printf("cpu: %.2f%%\n",core); return core; }
Önceki Raspberry pi işlemci sıcaklığı okuma adlı yazıda olduğu gibi stdio,stdlib ve iostream adlı kütüphaneleri çağırmak gerekli.