radio.h 1017 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * radio.h
  3. *
  4. * Created on: Oct 11, 2019
  5. * Author: curiousmuch
  6. */
  7. #include <stdint.h>
  8. #ifndef RADIO_H_
  9. #define RADIO_H_
  10. /* Data Structures */
  11. typedef enum {
  12. NOT_CONFIGURED = 0,
  13. AX25,
  14. ARROW_MESH,
  15. ESP_MESH,
  16. } radio_config_t;
  17. typedef enum {
  18. RADIO_IDLE = 0,
  19. RADIO_TX,
  20. RADIO_RX,
  21. } radio_status_t;
  22. typedef struct {
  23. radio_config_t type;
  24. radio_status_t status;
  25. } radio_param_t;
  26. typedef struct {
  27. uint8_t tx_delay;
  28. uint8_t tx_tail;
  29. uint32_t sample_rate;
  30. uint32_t symbol0_freq;
  31. uint32_t symbol1_freq;
  32. uint8_t *rx_buf;
  33. uint32_t rx_buf_len;
  34. void *rx_cb;
  35. void *tx_cb;
  36. } ax25_param_t;
  37. /* Public Functions */
  38. void radio_init(radio_config_t type, void *settings);
  39. void radio_set_frequency(uint32_t);
  40. void radio_set_power(int8_t);
  41. int8_t radio_set_cs(void);
  42. int8_t radio_get_cs(void);
  43. int8_t radio_get_rssi(void);
  44. int8_t radio_get_sample(void);
  45. void radio_packet_rx(void *settings);
  46. void radio_packet_tx(uint8_t *data, int32_t len, void *settings);
  47. #endif /* COMPONENTS_RADIO_INCLUDE_RADIO_H_ */