From 82c5d97f4ffd601d34db6832ca5a09f0ba7b378a Mon Sep 17 00:00:00 2001
From: fdai7354 <alan.muhemad@informatik.hs-fulda.de>
Date: Sat, 8 Feb 2025 06:09:13 +0100
Subject: [PATCH] Write to the Character Device

---
 main.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/main.c b/main.c
index 8c6a45d..61a4033 100644
--- a/main.c
+++ b/main.c
@@ -9,6 +9,8 @@
 static const char *PIPE_ONE = "/tmp/pipeOne";
 static const char *PIPE_TWO = "/tmp/pipeTwo";
 
+static const char *CHAR_DEV = "/dev/packet_receiver";
+
 int main(void)
 {
     // mkfifo() nur ausführen, wenn die Pipes noch nicht existieren,
@@ -36,6 +38,16 @@ int main(void)
         return 1;
     }
 
+    // Open the char device for writing
+    int fdCharDev = open(CHAR_DEV, O_WRONLY);
+    if (fdCharDev == -1) {
+        perror("open /dev/packet_receiver");
+        close(fdOne);
+        close(fdTwo);
+        return 1;
+    }
+    printf("Opened %s for writing.\n", CHAR_DEV);
+    
     // Dauerhafte Lese-Schleife
     while (1) {
         char bufOne[128] = {0};
@@ -91,6 +103,21 @@ int main(void)
             break;
         }
 
+        // ========= Write to char device =========
+        // Build a packet string. Adapt SENDER / IDs / values to your needs.
+        // Example: "SENDER=1 VID1=10 VAL1=<temp> VID2=11 VAL2=<freq>"
+        char transmitBuf[256] = {0};
+        snprintf(transmitBuf, sizeof(transmitBuf),
+                 "SENDER=1 VID1=10 VAL1=%s VID2=11 VAL2=%s",
+                 bufOne, bufTwo);
+
+        ssize_t written = write(fdCharDev, transmitBuf, strlen(transmitBuf));
+        if (written < 0) {
+            perror("write /dev/packet_receiver");
+        } else {
+            printf("Wrote packet to %s: %s\n", CHAR_DEV, transmitBuf);
+        }
+
         // Kurze Pause, damit CPU-Last nicht durch
         // Dauerschleife hochgetrieben wird
         usleep(200000); // 200 ms
-- 
GitLab