Skip to content
Snippets Groups Projects
Select Git revision
  • 9555d8ac457a79be3025ed9849afaee1c12646a9
  • main default protected
2 results

dummy.c

Blame
  • dummy.c 1.20 KiB
    #include "../../../common/include/measurement.h"
    #include "../../../common/include/userspace_comm.h"
    #include <errno.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]),
        };
    
        if (send_userspace_message(&userspace_send_handle, measurement) == -1) {
          if (errno == EIDRM || errno == EINVAL) {
            printf("Message queue got closed\n");
            break;
          }
          perror("Failed to send message");
        }
    
        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;
    }