Fixed issue that caused the user application to print temperature twice
This commit is contained in:
parent
7e87cabb3c
commit
8ee6467330
@ -9,9 +9,10 @@
|
|||||||
#define GREEN "\033[1;32m"
|
#define GREEN "\033[1;32m"
|
||||||
#define RESET "\033[0m"
|
#define RESET "\033[0m"
|
||||||
|
|
||||||
void read_temp(int fd, const char *unit, int is_simulated) {
|
void read_temp(int fd, const char *unit) {
|
||||||
char buffer[128];
|
char buffer[128];
|
||||||
ssize_t bytes_read;
|
ssize_t bytes_read;
|
||||||
|
int is_simulated = 0;
|
||||||
|
|
||||||
// Writing the desired unit or "simulate" command to the device
|
// Writing the desired unit or "simulate" command to the device
|
||||||
ssize_t bytes_written = write(fd, unit, strlen(unit));
|
ssize_t bytes_written = write(fd, unit, strlen(unit));
|
||||||
@ -25,8 +26,14 @@ void read_temp(int fd, const char *unit, int is_simulated) {
|
|||||||
return; // Exit the function if reading fails
|
return; // Exit the function if reading fails
|
||||||
} else {
|
} else {
|
||||||
buffer[bytes_read] = '\0'; // Null-terminate the string
|
buffer[bytes_read] = '\0'; // Null-terminate the string
|
||||||
|
|
||||||
|
// Check if the temperature is simulated
|
||||||
|
if (strstr(buffer, "(simulated temperature)") != NULL) {
|
||||||
|
is_simulated = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_simulated) {
|
if (is_simulated) {
|
||||||
printf(GREEN "CPU Temperature\n--- -----------\n" RESET "%s (simulated temperature)\n", buffer);
|
printf(GREEN "CPU Temperature\n--- -----------\n" RESET "%s\n", buffer);
|
||||||
} else {
|
} else {
|
||||||
printf(GREEN "CPU Temperature\n--- -----------\n" RESET "%s\n", buffer);
|
printf(GREEN "CPU Temperature\n--- -----------\n" RESET "%s\n", buffer);
|
||||||
}
|
}
|
||||||
@ -49,19 +56,16 @@ int main() {
|
|||||||
|
|
||||||
if (choice == 'C' || choice == 'c') {
|
if (choice == 'C' || choice == 'c') {
|
||||||
// Requesting the temperature in Celsius
|
// Requesting the temperature in Celsius
|
||||||
read_temp(fd, "C", 0);
|
read_temp(fd, "C");
|
||||||
} else if (choice == 'F' || choice == 'f') {
|
} else if (choice == 'F' || choice == 'f') {
|
||||||
// Requesting the temperature in Fahrenheit
|
// Requesting the temperature in Fahrenheit
|
||||||
read_temp(fd, "F", 0);
|
read_temp(fd, "F");
|
||||||
} else {
|
} else {
|
||||||
printf("Invalid choice. Please choose 'C' or 'F'.\n");
|
printf("Invalid choice. Please choose 'C' or 'F'.\n");
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Requesting simulated temperature
|
|
||||||
read_temp(fd, "simulate", 1);
|
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user