uhf_module.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include <stddef.h>
  5. #include "uhf_buffer.h"
  6. #define FRAME_END 0x7E
  7. typedef struct{
  8. char* hw_version;
  9. char* sw_version;
  10. char* manufacturer;
  11. }M100ModuleInfo;
  12. typedef enum{
  13. CHINA_900 = 1, // Freq_CH-920.125M
  14. US, // Freq_CH-902.25M
  15. EU, // Freq_CH-865.1M
  16. CHINA_800, // Freq_CH-840.125M
  17. KOREA = 6 // Freq_CH-917.1M
  18. } WorkingArea;
  19. typedef enum{
  20. CHINA_900 = 1, // CH_Index(CN,900MHz) = (Freq_CH-920.125M)/0.25M
  21. US, // CH_Index(US) = (Freq_CH-902.25M)/0.5M
  22. EU, // CH_Index(EU) = (Freq_CH-865.1M)/0.2M
  23. CHINA_800, // CH_Index(CN,800MHz) = (Freq_CH-840.125M)/0.25M
  24. KOREA = 6 // CH_Index(Korea) = (Freq_CH-917.1M)/0.2M
  25. } WorkingChannel;
  26. typedef struct{
  27. M100ModuleInfo* info;
  28. uint16_t baudrate;
  29. WorkingArea area;
  30. WorkingChannel channel;
  31. uint16_t transmitting_power;
  32. bool freq_hopping;
  33. Buffer* buf;
  34. } M100Module;
  35. M100ModuleInfo* m100_module_info_alloc();
  36. void m100_module_info_free(M100ModuleInfo* module_info);
  37. M100Module* m100_module_alloc();
  38. void m100_module_free(M100Module* module);
  39. uint16_t crc16_genibus(const uint8_t* data, size_t length);
  40. uint8_t checksum(const uint8_t* data, size_t length);
  41. // Function prototypes
  42. char* m100_get_hardware_version(M100Module* module);
  43. char* m100_get_software_version(M100Module* module);
  44. char* m100_get_manufacturers(M100Module* module);
  45. void m100_set_baudrate(M100Module* module, uint16_t baudrate);
  46. bool m100_set_working_area(M100Module* module, WorkingArea area);
  47. bool m100_set_working_channel(M100Module* module, WorkingChannel channel);
  48. bool m100_set_transmitting_power(M100Module* module, uint16_t power);
  49. bool m100_set_freq_hopping(M100Module* module, bool hopping);