Refactor temperature reading in main.c
Signed-off-by: Ferit Yiğit BALABAN <fybalaban@fybx.dev>
This commit is contained in:
parent
abd1b012fd
commit
c942af6b08
39
main.c
39
main.c
@ -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);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user