myRadio.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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_N_12,
  12. RF_TX_PWR_N_6,
  13. RF_TX_PWR_N_4,
  14. RF_TX_PWR_P_0,
  15. RF_TX_PWR_P_1,
  16. RF_TX_PWR_P_3,
  17. RF_TX_PWR_P_4,
  18. RF_TX_PWR_P_7,
  19. RF_TX_PWR_MAX_COUNT,
  20. }rf_txPwr_te;
  21. typedef enum
  22. {
  23. DVTP_VG3512S240N0M1,
  24. DVTP_VG35R2S240N0M1,
  25. DVTP_VG3512S240X0M1,
  26. DVTP_VG35R2S240X0M1,
  27. DVTP_MAX_COUNT,
  28. }deviceType_te;
  29. typedef enum
  30. {
  31. RF_BAUDRATE_1M, //
  32. RF_BAUDRATE_2M, //
  33. RF_BAUDRATE_250k, //
  34. MAX_RF_BAUDRATE_COUNT, //
  35. }rfBaudrate_te;
  36. typedef enum
  37. {
  38. FREQ_BAND_2_4G,
  39. MAX_FREQ_BAND_COUNT,
  40. }freqBand_te;
  41. //! \brief Structure for the TX Packet
  42. typedef struct
  43. {
  44. uint8_t rmvAddr[8]; //
  45. uint32_t absTime; //
  46. uint8_t len; //
  47. uint8_t payload[MAX_RF_PACKET_LEN]; //
  48. } rfTxPacket_ts;
  49. typedef struct
  50. {
  51. uint8_t rmvAddr[8]; //
  52. int16_t rssi; //
  53. uint32_t absTime; //
  54. uint32_t rxTimeout; //
  55. uint8_t len; //
  56. uint8_t payload[MAX_RF_PACKET_LEN];
  57. } rfRxPacket_ts;
  58. typedef struct
  59. {
  60. uint8_t SignalBw; // LORA [0: 7.8 kHz, 1: 10.4 kHz, 2: 15.6 kHz, 3: 20.8 kHz, 4: 31.2 kHz,
  61. // 5: 41.6 kHz, 6: 62.5 kHz, 7: 125 kHz, 8: 250 kHz, 9: 500 kHz, other: Reserved]
  62. uint8_t SpreadingFactor; // LORA [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips]
  63. uint8_t ErrorCoding; // LORA [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
  64. }loraBaudrateFrame_ts;
  65. typedef enum
  66. {
  67. RADIO_EXT_CONTROL_TX_UNMODULATED, //等婥疏髡薹聆彸
  68. RADIO_EXT_CONTROL_RX_SENSITIVITY, //諉彶鍾鏗僅聆彸
  69. RADIO_EXT_CONTROL_TX_MODULATED, //蟀哿覃秶聆彸
  70. }controlMode_te;
  71. typedef enum
  72. {
  73. RX_STA_SECCESS,
  74. RX_STA_TIMEOUT,
  75. RX_STA_PAYLOAD_ERROR,
  76. TX_STA_SECCESS,
  77. TX_STA_ERROR,
  78. }rxStatus_te;
  79. typedef void (*rfRxCallBack)(uint8_t status, rfRxPacket_ts packet);
  80. void myRadio_init(int agr0, void *agr1_ptr);
  81. void myRadio_abort(void);
  82. uint32_t myRadio_getFrequency(void);
  83. void myRadio_setFrequency(uint32_t freq);
  84. int8_t myRadio_getTxPower(void);
  85. void myRadio_setTxPower(int8_t power);
  86. uint32_t myRadio_getBaudrate(void);
  87. void myRadio_setBaudrate(uint32_t br);
  88. void myRadio_setChipType(uint8_t type);
  89. uint8_t myRadio_getChipType(void);
  90. int16_t myRadio_getRssi(void);
  91. void myRadio_transmit(rfTxPacket_ts *packet);
  92. void myRadio_receiver(void);
  93. void myRadio_setCtrl(controlMode_te mode, uint32_t value);
  94. #endif