Refactor temperature reading in main.c

Signed-off-by: Ferit Yiğit BALABAN <fybalaban@fybx.dev>
This commit is contained in:
Ferit Yiğit BALABAN 2023-11-17 18:16:29 +03:00
parent abd1b012fd
commit c942af6b08
Signed by: fyb
GPG Key ID: E21FEB2C244CB7EB

39
main.c
View File

@ -27,9 +27,9 @@ int getFanStatus();
int writeFanStatus(int); int writeFanStatus(int);
int getCoreTemperature();
int main(int argc, char **argv) { int main(int argc, char **argv) {
int fd;
char buffer[6];
int fanRunning; int fanRunning;
double temperature; double temperature;
int threshold; int threshold;
@ -69,20 +69,7 @@ int main(int argc, char **argv) {
logMessage("Fan status: %d\n", fanRunning); logMessage("Fan status: %d\n", fanRunning);
gpioSetMode(FAN_PIN, PI_OUTPUT); gpioSetMode(FAN_PIN, PI_OUTPUT);
fd = open(TEMP_PATH, O_RDONLY); temperature = getCoreTemperature();
if (fd < 0) {
logMessage("Error opening temperature file\n");
return 6;
}
if (read(fd, buffer, sizeof(buffer)) < 0) {
logMessage("Error reading temperature\n");
close(fd);
return 7;
}
close(fd);
temperature = atof(buffer) / 1000.0;
logMessage("CPU Temperature: %.2f°C\n", temperature); logMessage("CPU Temperature: %.2f°C\n", temperature);
if (!fanRunning && temperature >= threshold + variance) { if (!fanRunning && temperature >= threshold + variance) {
@ -167,3 +154,23 @@ int writeFanStatus(int status) {
fclose(f); fclose(f);
return 0; return 0;
} }
int getCoreTemperature() {
int fd;
char buffer[6];
fd = open(TEMP_PATH, O_RDONLY);
if (fd < 0) {
logMessage("Error opening temperature file\n");
return -1;
}
if (read(fd, buffer, sizeof(buffer)) < 0) {
logMessage("Error reading temperature\n");
close(fd);
return -2;
}
close(fd);
return (atof(buffer) / 1000.0);
}