radio.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND
  3. * (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER.
  4. * CONSEQUENTLY, SEMTECH SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR
  5. * CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
  6. * OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
  7. * CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  8. *
  9. * Copyright (C) SEMTECH S.A.
  10. */
  11. /*!
  12. * \file radio.h
  13. * \brief Generic radio driver ( radio abstraction )
  14. *
  15. * \version 2.0.B2
  16. * \date Nov 21 2012
  17. * \author Miguel Luis
  18. *
  19. * Last modified by Gregory Cristian on Apr 25 2013
  20. */
  21. #ifndef __RADIO_H__
  22. #define __RADIO_H__
  23. #include "sx1276-Fsk.h"
  24. /*!
  25. * SX1272 and SX1276 General parameters definition
  26. */
  27. #define LORA 1 // [0: OFF, 1: ON]
  28. /*!
  29. * RF process function return codes
  30. */
  31. typedef enum
  32. {
  33. RF_IDLE,
  34. RF_BUSY,
  35. RF_RX_DONE,
  36. RF_RX_TIMEOUT,
  37. RF_TX_DONE,
  38. RF_TX_TIMEOUT,
  39. RF_LEN_ERROR,
  40. RF_CHANNEL_EMPTY,
  41. RF_CHANNEL_ACTIVITY_DETECTED,
  42. }tRFProcessReturnCodes;
  43. /*!
  44. * Radio driver structure defining the different function pointers
  45. */
  46. typedef struct sRadioDriver
  47. {
  48. void ( *Init )( void );
  49. void ( *Reset )( void );
  50. void ( *StartRx )( void );
  51. void ( *StartTx )( void );
  52. void ( *GetRxPacket )( void *buffer, uint16_t *size );
  53. void ( *SetTxPacket )( const void *buffer, uint16_t size );
  54. uint32_t ( *Process )( void );
  55. }tRadioDriver;
  56. extern tRadioDriver *Radio;
  57. /*!
  58. * \brief Initializes the RadioDriver structure with specific radio
  59. * functions.
  60. *
  61. * \retval radioDriver Pointer to the radio driver variable
  62. */
  63. tRadioDriver* RadioDriverInit( void );
  64. #endif // __RADIO_H__