diff --git a/Processes/cpu_freq.c b/Processes/cpu_freq.c index 6efd32cf57cc46751d33ee1414854fc46015fb39..c81b4a090a8767ec9c35656e52a6890ceebc1c01 100644 --- a/Processes/cpu_freq.c +++ b/Processes/cpu_freq.c @@ -5,7 +5,7 @@ #include <fcntl.h> #include <string.h> -static const char *PIPE_TWO = "/tmp/pipeTwo"; +static const char *PIPE_TWO = "/tmp/cpu_freq"; static void read_cpu_freq_and_write(int fd) { @@ -25,7 +25,7 @@ static void read_cpu_freq_and_write(int fd) char message[128]; snprintf(message, sizeof(message), "%.3f", freq); - ssize_t written = write(fd, message, strlen(message) + 1); + ssize_t written = write(fd, message, strlen(message)); if (written < 0) { perror("write to pipeTwo"); } else { diff --git a/Processes/cpu_temp.c b/Processes/cpu_temp.c index 9ff26c602c66c144bd5636a123e18c194261f691..5ec6e84e3a0030918ea0af3b6b162a1a1b460fc8 100644 --- a/Processes/cpu_temp.c +++ b/Processes/cpu_temp.c @@ -5,7 +5,7 @@ #include <fcntl.h> #include <string.h> -static const char *PIPE_ONE = "/tmp/pipeOne"; +static const char *PIPE_ONE = "/tmp/cpu_temp"; static void read_cpu_temp_and_write(int fd) { @@ -27,7 +27,7 @@ static void read_cpu_temp_and_write(int fd) // Schreiben, aber NICHT den FD schließen. // Nur so viele Bytes schreiben, wie tatsächlich gebraucht werden. - ssize_t written = write(fd, message, strlen(message) + 1); + ssize_t written = write(fd, message, strlen(message)); if (written < 0) { perror("write to pipeOne"); } else { diff --git a/Processes/process_monitoring.sh b/Processes/process_monitoring.sh index a8b758862ca9030a509c905f4e17ec592e689710..47848e8fb16942342cd25e829702b178cf5f7b5d 100644 --- a/Processes/process_monitoring.sh +++ b/Processes/process_monitoring.sh @@ -1,8 +1,15 @@ #!/bin/bash +#Prozesse starten /usr/local/bin/cpu_temp & /usr/local/bin/cpu_freq & +sleep 200 + +# Gleiche Argumente in die main übergeben +/usr/local/bin/main "$@" + +# Damit das Skript nicht sofort beendet, bleibst du in einer Endlosschleife while true do sleep 3600 diff --git a/main b/main index 98261929dd7adb1a4010b1d036332b20244b822a..9b5e3faf7da65f04e5d1a3cfde69861fbd95f710 100755 Binary files a/main and b/main differ diff --git a/main.c b/main.c index bf5a88a53d21fad97d28bba5487c833228217cc1..d7837d1c9265ca195709cac695a4a0953e398a93 100644 --- a/main.c +++ b/main.c @@ -60,7 +60,7 @@ void build_crc_checksum(char *package, size_t package_size) { char tmp[32]; // z.B. " CRC=0x1A2B3C4D" - snprintf(tmp, sizeof(tmp), " CRC=0x%08lX", (unsigned long)c); + snprintf(tmp, sizeof(tmp), " CRC=0x%08lX", c); // ans package anhängen strncat(package, tmp, package_size - strlen(package) - 1); @@ -70,7 +70,7 @@ void send_package(const char *package, const int fdCharDev) { char transmitBuf[256] = {0}; // Kopiere Package in transmitBuf - snprintf(transmitBuf, sizeof(transmitBuf), package); + snprintf(transmitBuf, sizeof(transmitBuf), "%s", package); const ssize_t written = write(fdCharDev, transmitBuf, strlen(transmitBuf)); if (written < 0) { @@ -142,6 +142,7 @@ int main(const int argc, char *argv[]) { return 1; } } + build_crc_checksum(package, sizeof(package)); // Jetzt an /dev/packet_receiver schicken if (strlen(package) > 0) { diff --git a/process-monitor.service b/process-monitor.service new file mode 100644 index 0000000000000000000000000000000000000000..d09ad71be4f14ca5fc63510e8e56c88f50d65b51 --- /dev/null +++ b/process-monitor.service @@ -0,0 +1,11 @@ +[Unit] +Description=Monitoring Processes and sending to character device +After=network.target + +[Service] +Type=simple +ExecStart=/usr/local/bin/process_monitoring.sh /tmp/cpu_temp /tmp/cpu_freq +Restart=always + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/tracking.service b/tracking.service deleted file mode 100644 index f4c409b19dbaa5dce6eef7b49ba97f7d30ed1e03..0000000000000000000000000000000000000000 --- a/tracking.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Monitoring Processes -After=network.target - -[Service] -Type=simple -ExecStart=/usr/local/bin/process_monitoring.sh -Restart=always - -[Install] -WantedBy=multi-user.target \ No newline at end of file