command.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef COMMAND_H
  2. #define COMMAND_H
  3. // Включение необходимых стандартных библиотек
  4. #include <stdint.h>
  5. #include <stddef.h>
  6. #include "Devices//pci.h"
  7. // Определение констант
  8. // Определение макросов
  9. // Объявление глобальных переменных
  10. extern volatile int conn_fd;
  11. extern volatile int pci_fd;
  12. extern void *bar1;
  13. extern reg_addr_pci* pci_bar_1;
  14. // extern uint16_t armCode[1];
  15. // extern uint16_t attCode[1];
  16. typedef void (*command_handler)(const char*);
  17. // Объявление структур
  18. typedef struct {
  19. const char* command;
  20. command_handler handler;
  21. } command;
  22. // Определяем тип функции преобразования
  23. typedef void (*convert_func_type)(const char *str, void *output);
  24. // Прототипы функций
  25. void send_data_qspi(reg_addr_pci* pci_bar_1);
  26. void handle_close_signal(int signal);
  27. void handle_freq_cmd(const char* recv_buff);
  28. void handle_ld_cmd(const char* recv_buff);
  29. void handle_pow_cmd(const char* recv_buff);
  30. void handle_arm_cmd(const char* recv_buff);
  31. void handle_att_cmd(const char* recv_buff);
  32. void handle_idn_cmd(const char* recv_buff);
  33. void handle_offset_cmd(const char* recv_buff);
  34. void handle_slope_cmd(const char* recv_buff);
  35. void process_command(const char* recv_buff);
  36. void convert_to_uint16(const char *str, void *output);
  37. void convert_to_uint64(const char *str, void *output);
  38. void convert_to_double(const char *str, void *output);
  39. void split_lexeme(const char *ptr_scpi, void *out_value, size_t element_size, convert_func_type convert_func);
  40. #endif /* COMMAND_H */