From 3159f224133376d6cc4b9f66a1f9dd4fd44fc8e6 Mon Sep 17 00:00:00 2001
From: "leon.bohnwagner" <leon.bohnwagner@informatik.hs-fulda.de>
Date: Thu, 13 Feb 2025 21:49:28 +0100
Subject: [PATCH] feat: add dummy client

---
 clients/CMakeLists.txt       |  1 +
 clients/dummy/CMakeLists.txt |  8 ++++++
 clients/dummy/src/dummy.c    | 47 ++++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+)
 create mode 100644 clients/dummy/CMakeLists.txt
 create mode 100644 clients/dummy/src/dummy.c

diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt
index 8e025ab..b2abca3 100644
--- a/clients/CMakeLists.txt
+++ b/clients/CMakeLists.txt
@@ -1 +1,2 @@
 add_subdirectory(cpu_temp)
+add_subdirectory(dummy)
diff --git a/clients/dummy/CMakeLists.txt b/clients/dummy/CMakeLists.txt
new file mode 100644
index 0000000..4ce7021
--- /dev/null
+++ b/clients/dummy/CMakeLists.txt
@@ -0,0 +1,8 @@
+add_executable(dummy
+    src/dummy.c
+)
+
+target_link_libraries(dummy
+    PRIVATE common
+    m
+)
diff --git a/clients/dummy/src/dummy.c b/clients/dummy/src/dummy.c
new file mode 100644
index 0000000..7e53656
--- /dev/null
+++ b/clients/dummy/src/dummy.c
@@ -0,0 +1,47 @@
+#include "../../../common/include/measurement.h"
+#include "../../../common/include/userspace_comm.h"
+#include <fcntl.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[]) {
+  if (argc < 3 || argc > 3) {
+    printf("Invalid arguments provided");
+    return EXIT_FAILURE;
+  }
+
+  userspace_send_handle_t userspace_send_handle;
+  if (create_userspace_send_handle(&userspace_send_handle) == -1) {
+    perror("Failed to open message queue");
+    return EXIT_FAILURE;
+  }
+
+  double step = 0.0;
+
+  int sleep_ms = atoi(argv[2]);
+
+  while (1) {
+    measurement_t measurement = {
+        .data.float64 = sin(step),
+        .datatype = FLOAT64,
+        .id = atoi(argv[1]),
+    };
+
+    send_userspace_message(&userspace_send_handle, measurement);
+
+    step += 0.01;
+    if (step >= 2.0 * M_PI) {
+        step = 0.0;
+    }
+
+    usleep(sleep_ms * 1000);
+  }
+
+  destroy_userspace_send_handle(&userspace_send_handle);
+
+  return EXIT_SUCCESS;
+}
-- 
GitLab