myRadio.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #ifndef __MY_RADIO_H
  2. #define __MY_RADIO_H
  3. /* Includes ------------------------------------------------------------------*/
  4. #include <stdio.h>
  5. #include <stdbool.h>
  6. #include <stdint.h>
  7. #include <string.h>
  8. #define MAX_RF_PACKET_LEN 128
  9. typedef enum
  10. {
  11. RF_TX_PWR_P_5,
  12. RF_TX_PWR_P_6,
  13. RF_TX_PWR_P_7,
  14. RF_TX_PWR_P_8,
  15. RF_TX_PWR_P_9,
  16. RF_TX_PWR_P_10,
  17. RF_TX_PWR_P_11,
  18. RF_TX_PWR_P_12,
  19. RF_TX_PWR_P_13,
  20. RF_TX_PWR_P_14,
  21. RF_TX_PWR_P_15,
  22. RF_TX_PWR_P_16,
  23. RF_TX_PWR_P_17,
  24. RF_TX_PWR_P_18,
  25. RF_TX_PWR_P_19,
  26. RF_TX_PWR_P_20,
  27. RF_TX_PWR_MAX_COUNT,
  28. }rf_txPwr_te;
  29. typedef enum
  30. {
  31. DVTP_VG2389S433N0S1,
  32. DVTP_VG2389S490N0S1,
  33. DVTP_VG2387S868N0S1,
  34. DVTP_VG2387S915N0S1,
  35. DVTP_MAX_COUNT,
  36. }deviceType_te;
  37. typedef enum
  38. {
  39. RF_BAUDRATE_90,
  40. RF_BAUDRATE_610,
  41. RF_BAUDRATE_1220,
  42. RF_BAUDRATE_2440,
  43. RF_BAUDRATE_5000,
  44. RF_BAUDRATE_12500,
  45. RF_BAUDRATE_37500,
  46. RF_BAUDRATE_62500,
  47. MAX_RF_BAUDRATE_COUNT, //
  48. }rfBaudrate_te;
  49. typedef enum
  50. {
  51. FREQ_BAND_315,
  52. FREQ_BAND_433,
  53. FREQ_BAND_490,
  54. FREQ_BAND_868,
  55. FREQ_BAND_915,
  56. MAX_FREQ_BAND_COUNT,
  57. }freqBand_te;
  58. //! \brief Structure for the TX Packet
  59. typedef struct
  60. {
  61. uint8_t rmvAddr[8]; //
  62. uint32_t absTime; //
  63. uint8_t len; //
  64. uint8_t payload[MAX_RF_PACKET_LEN]; //
  65. } rfTxPacket_ts;
  66. typedef struct
  67. {
  68. uint8_t rmvAddr[8]; //
  69. int16_t rssi; //
  70. uint32_t absTime; //
  71. uint32_t rxTimeout; //
  72. uint8_t len; //
  73. uint8_t payload[MAX_RF_PACKET_LEN];
  74. } rfRxPacket_ts;
  75. typedef struct
  76. {
  77. uint8_t SignalBw; // LORA [0: 7.8 kHz, 1: 10.4 kHz, 2: 15.6 kHz, 3: 20.8 kHz, 4: 31.2 kHz,
  78. // 5: 41.6 kHz, 6: 62.5 kHz, 7: 125 kHz, 8: 250 kHz, 9: 500 kHz, other: Reserved]
  79. uint8_t SpreadingFactor; // LORA [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips]
  80. uint8_t ErrorCoding; // LORA [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
  81. }loraBaudrateFrame_ts;
  82. typedef enum
  83. {
  84. RADIO_EXT_CONTROL_TX_UNMODULATED, //데潼꺼묘쪽꿎桿
  85. RADIO_EXT_CONTROL_RX_SENSITIVITY, //쌈澗쥣츌똑꿎桿
  86. RADIO_EXT_CONTROL_TX_MODULATED, //젯崎딧齡꿎桿
  87. }controlMode_te;
  88. typedef enum
  89. {
  90. RX_STA_SECCESS,
  91. RX_STA_TIMEOUT,
  92. RX_STA_PAYLOAD_ERROR,
  93. TX_STA_SECCESS,
  94. TX_STA_ERROR,
  95. }rxStatus_te;
  96. typedef void (*rfRxCallBack)(uint8_t status, rfRxPacket_ts packet);
  97. void myRadio_init(int agr0, void *agr1_ptr);
  98. void myRadio_abort(void);
  99. uint32_t myRadio_getFrequency(void);
  100. void myRadio_setFrequency(uint32_t freq);
  101. int8_t myRadio_getTxPower(void);
  102. void myRadio_setTxPower(int8_t power);
  103. uint32_t myRadio_getBaudrate(void);
  104. void myRadio_setBaudrate(uint32_t br);
  105. void myRadio_setRfParams(uint8_t sf, uint8_t bw, uint8_t cr);
  106. void myRadio_setChipType(uint8_t type);
  107. uint8_t myRadio_getChipType(void);
  108. int16_t myRadio_getRssi(void);
  109. void myRadio_transmit(rfTxPacket_ts *packet);
  110. void myRadio_receiver(void);
  111. void myRadio_setCtrl(controlMode_te mode, uint32_t value);
  112. #endif