radio.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /*******************************************************************************
  2. * @note Copyright (C) 2020 Shanghai Panchip Microelectronics Co., Ltd. All rights reserved.
  3. *
  4. * @file radio.h
  5. * @brief
  6. *
  7. * @history - V3.0, 2021-11-05
  8. *******************************************************************************/
  9. #ifndef __RADIO_H_
  10. #define __RADIO_H_
  11. #include "stdint.h"
  12. #include "pan3028.h"
  13. #define DEFAULT_FREQ (433000000)
  14. #define DEFAULT_SF SF_7
  15. #define DEFAULT_BW BW_125K
  16. #define DEFAULT_CR CODE_RATE_48
  17. #define RADIO_FLAG_IDLE 0
  18. #define RADIO_FLAG_TXDONE 1
  19. #define RADIO_FLAG_RXDONE 2
  20. #define RADIO_FLAG_RXTIMEOUT 3
  21. #define RADIO_FLAG_RXERR 4
  22. #define RADIO_FLAG_PLHDRXDONE 5
  23. struct RxDoneMsg
  24. {
  25. uint8_t *Payload;
  26. uint8_t *PlhdPayload;
  27. uint16_t PlhdSize;
  28. uint16_t Size;
  29. double Rssi;
  30. double Snr;
  31. };
  32. typedef enum{
  33. RF_PARA_TYPE_FREQ,
  34. RF_PARA_TYPE_CR,
  35. RF_PARA_TYPE_BW,
  36. RF_PARA_TYPE_SF,
  37. RF_PARA_TYPE_TXPOWER,
  38. RF_PARA_TYPE_CRC,
  39. }rf_para_type_t;
  40. uint32_t rf_get_recv_flag(void);
  41. void rf_set_recv_flag(int status);
  42. uint32_t rf_get_transmit_flag(void);
  43. void rf_set_transmit_flag(int status);
  44. uint32_t rf_init(void);
  45. uint32_t rf_deepsleep_wakeup(void);
  46. uint32_t rf_deepsleep(void);
  47. uint32_t rf_sleep_wakeup(void);
  48. uint32_t rf_sleep(void);
  49. uint32_t rf_get_tx_time(void);
  50. uint32_t rf_set_mode(uint8_t mode);
  51. uint8_t rf_get_mode(void);
  52. uint32_t rf_set_tx_mode(uint8_t mode);
  53. uint32_t rf_set_rx_mode(uint8_t mode);
  54. uint32_t rf_set_rx_single_timeout(uint32_t timeout);
  55. float rf_get_snr(void);
  56. float rf_get_rssi(void);
  57. uint32_t rf_set_preamble(uint16_t pream);
  58. uint32_t rf_set_cad(void);
  59. uint32_t rf_set_syncword(uint8_t sync);
  60. uint8_t rf_get_syncword(void);
  61. void rf_irq_handler(void);
  62. void rf_set_plhd_rx_on(uint8_t addr,uint8_t len);
  63. void rf_set_plhd_rx_off(void);
  64. uint32_t rf_receive(uint8_t *buf);
  65. uint32_t rf_plhd_receive(uint8_t *buf,uint8_t len);
  66. void rf_rx_plhddone_event( uint8_t *payload, uint16_t size );
  67. void rf_rx_done_event( uint8_t *payload, uint16_t size, double rssi, double snr );
  68. void rf_rx_err_event(void);
  69. void rf_rx_timeout_event(void);
  70. void rf_tx_done_event(void);
  71. uint32_t rf_enter_continous_rx(void);
  72. uint32_t rf_enter_single_timeout_rx(uint32_t timeout);
  73. uint32_t rf_enter_single_rx(void);
  74. uint32_t rf_single_tx_data(uint8_t *buf, uint8_t size, uint32_t *tx_time);
  75. uint32_t rf_enter_continous_tx(void);
  76. uint32_t rf_continous_tx_send_data(uint8_t *buf, uint8_t size);
  77. uint32_t rf_set_agc(uint32_t state);
  78. uint32_t rf_set_para(rf_para_type_t para_type, uint32_t para_val);
  79. uint32_t rf_get_para(rf_para_type_t para_type, uint32_t *para_val);
  80. void rf_set_default_para(void);
  81. uint32_t rf_set_dcdc_mode(uint32_t dcdc_val);
  82. uint32_t rf_set_ldr(uint32_t mode);
  83. uint32_t rf_set_all_sf_preamble(uint32_t sf);
  84. uint32_t rf_set_all_sf_search(void);
  85. uint32_t rf_set_all_sf_search_off(void);
  86. uint32_t rf_enter_carrier_wave_test_mode(void);
  87. #endif