From c942af6b08f93b5b8f9cae045129102be9b5e427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferit=20Yi=C4=9Fit=20BALABAN?= Date: Fri, 17 Nov 2023 18:16:29 +0300 Subject: [PATCH] Refactor temperature reading in main.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ferit Yiğit BALABAN --- main.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/main.c b/main.c index 9647e14..8738c3b 100644 --- a/main.c +++ b/main.c @@ -27,9 +27,9 @@ int getFanStatus(); int writeFanStatus(int); +int getCoreTemperature(); + int main(int argc, char **argv) { - int fd; - char buffer[6]; int fanRunning; double temperature; int threshold; @@ -69,20 +69,7 @@ int main(int argc, char **argv) { logMessage("Fan status: %d\n", fanRunning); gpioSetMode(FAN_PIN, PI_OUTPUT); - fd = open(TEMP_PATH, O_RDONLY); - 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; + temperature = getCoreTemperature(); logMessage("CPU Temperature: %.2f°C\n", temperature); if (!fanRunning && temperature >= threshold + variance) { @@ -167,3 +154,23 @@ int writeFanStatus(int status) { fclose(f); 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); +}