diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt index 8e025abdcd7745350d2c269912cc3598f57971df..b2abca374ba8ae98875041c30d1782e7ecd55fce 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 0000000000000000000000000000000000000000..4ce702104e3f19fea12811208af9aff791f19cde --- /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 0000000000000000000000000000000000000000..7e53656f02123d5cc4eb5cc34dcf5babd919d0cc --- /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; +}