Show N/A instead of 0KHz when CPU frequency is not available.

This commit is contained in:
Arnavion 2019-08-10 11:37:35 -07:00
parent 1d5e6a27a0
commit 1acfb0a752
2 changed files with 18 additions and 12 deletions

View File

@ -68,6 +68,10 @@ static void CPUMeter_updateValues(Meter* this, char* buffer, int size) {
/* Initial frequency is in KHz. Divide it by 1000 till it's less than 1000, and emit unit accordingly */
double cpuFrequency = this->values[CPU_METER_FREQUENCY];
char unit = 'K';
char cpuFrequencyBuffer[16];
if (cpuFrequency < 0) {
xSnprintf(cpuFrequencyBuffer, sizeof(cpuFrequencyBuffer), "N/A");
} else {
if (cpuFrequency > 1000) {
cpuFrequency /= 1000;
unit = 'M';
@ -76,10 +80,12 @@ static void CPUMeter_updateValues(Meter* this, char* buffer, int size) {
cpuFrequency /= 1000;
unit = 'G';
}
xSnprintf(cpuFrequencyBuffer, 15, "%.3f%cHz", cpuFrequency, unit);
}
if (this->pl->settings->showCPUUsage) {
xSnprintf(buffer, size, "%5.1f%% %.3f%cHz", percent, cpuFrequency, unit);
xSnprintf(buffer, size, "%5.1f%% %s", percent, cpuFrequencyBuffer);
} else {
xSnprintf(buffer, size, "%.3f%cHz", cpuFrequency, unit);
xSnprintf(buffer, size, "%s", cpuFrequencyBuffer);
}
} else if (this->pl->settings->showCPUUsage) {
xSnprintf(buffer, size, "%5.1f%%", percent);

View File

@ -193,10 +193,10 @@ double Platform_setCPUValues(Meter* this, int cpu) {
percent = CLAMP(percent, 0.0, 100.0);
if (isnan(percent)) percent = 0.0;
v[CPU_METER_FREQUENCY] = 0;
v[CPU_METER_FREQUENCY] = -1;
if (this->pl->settings->showCPUFrequency) {
char filename[63+1];
xSnprintf(filename, 63, "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", cpu - 1);
char filename[64];
xSnprintf(filename, sizeof(filename), "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", cpu - 1);
FILE* fd = fopen(filename, "r");
if (fd) {
unsigned int cpuFrequency;