SX1276Lib updated in order to be RTOS aware

Fork of SX1276Lib by Semtech

Committer:
Lorenzo Maiorfi
Date:
Fri Mar 02 17:09:27 2018 +0100
Revision:
30:3b83eee4e72a
Parent:
26:d09a8ef807e2
Small changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GregCr 0:e6ceb13d2d05 1 /*
GregCr 0:e6ceb13d2d05 2 / _____) _ | |
GregCr 0:e6ceb13d2d05 3 ( (____ _____ ____ _| |_ _____ ____| |__
GregCr 0:e6ceb13d2d05 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
GregCr 0:e6ceb13d2d05 5 _____) ) ____| | | || |_| ____( (___| | | |
GregCr 0:e6ceb13d2d05 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
mluis 22:7f3aab69cca9 7 (C) 2014 Semtech
GregCr 0:e6ceb13d2d05 8
GregCr 0:e6ceb13d2d05 9 Description: -
GregCr 0:e6ceb13d2d05 10
GregCr 0:e6ceb13d2d05 11 License: Revised BSD License, see LICENSE.TXT file include in the project
GregCr 0:e6ceb13d2d05 12
GregCr 0:e6ceb13d2d05 13 Maintainers: Miguel Luis, Gregory Cristian and Nicolas Huguenin
GregCr 0:e6ceb13d2d05 14 */
GregCr 0:e6ceb13d2d05 15 #ifndef __ENUMS_H__
GregCr 0:e6ceb13d2d05 16 #define __ENUMS_H__
GregCr 0:e6ceb13d2d05 17
GregCr 0:e6ceb13d2d05 18 /*!
mluis 21:2e496deb7858 19 * Radio driver internal state machine states definition
GregCr 0:e6ceb13d2d05 20 */
mluis 21:2e496deb7858 21 typedef enum RadioState
GregCr 0:e6ceb13d2d05 22 {
mluis 21:2e496deb7858 23 RF_IDLE = 0,
mluis 21:2e496deb7858 24 RF_RX_RUNNING,
mluis 21:2e496deb7858 25 RF_TX_RUNNING,
mluis 21:2e496deb7858 26 RF_CAD,
mluis 21:2e496deb7858 27 }RadioState_t;
GregCr 0:e6ceb13d2d05 28
GregCr 0:e6ceb13d2d05 29 /*!
mluis 13:618826a997e2 30 * Type of the modem. [LORA / FSK]
GregCr 0:e6ceb13d2d05 31 */
mluis 21:2e496deb7858 32 typedef enum ModemType
GregCr 0:e6ceb13d2d05 33 {
mluis 13:618826a997e2 34 MODEM_FSK = 0,
mluis 13:618826a997e2 35 MODEM_LORA
mluis 21:2e496deb7858 36 }RadioModems_t;
GregCr 0:e6ceb13d2d05 37
GregCr 2:5eb3066446dd 38 /*!
mluis 21:2e496deb7858 39 * Type of the supported board. [SX1276MB1MAS / SX1276MB1LAS]
GregCr 2:5eb3066446dd 40 */
mluis 21:2e496deb7858 41 typedef enum BoardType
GregCr 2:5eb3066446dd 42 {
mluis 13:618826a997e2 43 SX1276MB1MAS = 0,
mluis 13:618826a997e2 44 SX1276MB1LAS,
Lorenzo Maiorfi 30:3b83eee4e72a 45 RFM95_SX1276,
Lorenzo Maiorfi 30:3b83eee4e72a 46 MURATA_SX1276,
mluis 13:618826a997e2 47 UNKNOWN
mluis 21:2e496deb7858 48 }BoardType_t;
mluis 21:2e496deb7858 49
GregCr 0:e6ceb13d2d05 50 /*!
GregCr 0:e6ceb13d2d05 51 * Radio FSK modem parameters
GregCr 0:e6ceb13d2d05 52 */
GregCr 0:e6ceb13d2d05 53 typedef struct
GregCr 0:e6ceb13d2d05 54 {
GregCr 0:e6ceb13d2d05 55 int8_t Power;
GregCr 0:e6ceb13d2d05 56 uint32_t Fdev;
GregCr 0:e6ceb13d2d05 57 uint32_t Bandwidth;
GregCr 0:e6ceb13d2d05 58 uint32_t BandwidthAfc;
GregCr 0:e6ceb13d2d05 59 uint32_t Datarate;
GregCr 0:e6ceb13d2d05 60 uint16_t PreambleLen;
GregCr 0:e6ceb13d2d05 61 bool FixLen;
mluis 13:618826a997e2 62 uint8_t PayloadLen;
GregCr 0:e6ceb13d2d05 63 bool CrcOn;
GregCr 0:e6ceb13d2d05 64 bool IqInverted;
GregCr 0:e6ceb13d2d05 65 bool RxContinuous;
GregCr 0:e6ceb13d2d05 66 uint32_t TxTimeout;
mluis 26:d09a8ef807e2 67 uint32_t RxSingleTimeout;
GregCr 0:e6ceb13d2d05 68 }RadioFskSettings_t;
GregCr 0:e6ceb13d2d05 69
GregCr 0:e6ceb13d2d05 70 /*!
GregCr 0:e6ceb13d2d05 71 * Radio FSK packet handler state
GregCr 0:e6ceb13d2d05 72 */
GregCr 0:e6ceb13d2d05 73 typedef struct
GregCr 0:e6ceb13d2d05 74 {
GregCr 0:e6ceb13d2d05 75 uint8_t PreambleDetected;
GregCr 0:e6ceb13d2d05 76 uint8_t SyncWordDetected;
GregCr 0:e6ceb13d2d05 77 int8_t RssiValue;
GregCr 0:e6ceb13d2d05 78 int32_t AfcValue;
GregCr 0:e6ceb13d2d05 79 uint8_t RxGain;
GregCr 0:e6ceb13d2d05 80 uint16_t Size;
GregCr 0:e6ceb13d2d05 81 uint16_t NbBytes;
GregCr 0:e6ceb13d2d05 82 uint8_t FifoThresh;
GregCr 0:e6ceb13d2d05 83 uint8_t ChunkSize;
GregCr 0:e6ceb13d2d05 84 }RadioFskPacketHandler_t;
GregCr 0:e6ceb13d2d05 85
GregCr 0:e6ceb13d2d05 86 /*!
GregCr 0:e6ceb13d2d05 87 * Radio LoRa modem parameters
GregCr 0:e6ceb13d2d05 88 */
GregCr 0:e6ceb13d2d05 89 typedef struct
GregCr 0:e6ceb13d2d05 90 {
GregCr 0:e6ceb13d2d05 91 int8_t Power;
GregCr 0:e6ceb13d2d05 92 uint32_t Bandwidth;
GregCr 0:e6ceb13d2d05 93 uint32_t Datarate;
GregCr 0:e6ceb13d2d05 94 bool LowDatarateOptimize;
GregCr 0:e6ceb13d2d05 95 uint8_t Coderate;
GregCr 0:e6ceb13d2d05 96 uint16_t PreambleLen;
GregCr 0:e6ceb13d2d05 97 bool FixLen;
mluis 13:618826a997e2 98 uint8_t PayloadLen;
GregCr 0:e6ceb13d2d05 99 bool CrcOn;
mluis 13:618826a997e2 100 bool FreqHopOn;
GregCr 6:e7f02929cd3d 101 uint8_t HopPeriod;
GregCr 0:e6ceb13d2d05 102 bool IqInverted;
GregCr 0:e6ceb13d2d05 103 bool RxContinuous;
GregCr 0:e6ceb13d2d05 104 uint32_t TxTimeout;
mluis 26:d09a8ef807e2 105 bool PublicNetwork;
GregCr 0:e6ceb13d2d05 106 }RadioLoRaSettings_t;
GregCr 0:e6ceb13d2d05 107
GregCr 0:e6ceb13d2d05 108 /*!
GregCr 0:e6ceb13d2d05 109 * Radio LoRa packet handler state
GregCr 0:e6ceb13d2d05 110 */
GregCr 0:e6ceb13d2d05 111 typedef struct
GregCr 0:e6ceb13d2d05 112 {
GregCr 0:e6ceb13d2d05 113 int8_t SnrValue;
GregCr 0:e6ceb13d2d05 114 int8_t RssiValue;
GregCr 0:e6ceb13d2d05 115 uint8_t Size;
GregCr 0:e6ceb13d2d05 116 }RadioLoRaPacketHandler_t;
GregCr 0:e6ceb13d2d05 117
GregCr 0:e6ceb13d2d05 118 /*!
GregCr 0:e6ceb13d2d05 119 * Radio Settings
GregCr 0:e6ceb13d2d05 120 */
GregCr 0:e6ceb13d2d05 121 typedef struct
GregCr 0:e6ceb13d2d05 122 {
mluis 13:618826a997e2 123 RadioState State;
mluis 13:618826a997e2 124 ModemType Modem;
GregCr 0:e6ceb13d2d05 125 uint32_t Channel;
GregCr 0:e6ceb13d2d05 126 RadioFskSettings_t Fsk;
GregCr 0:e6ceb13d2d05 127 RadioFskPacketHandler_t FskPacketHandler;
GregCr 0:e6ceb13d2d05 128 RadioLoRaSettings_t LoRa;
GregCr 0:e6ceb13d2d05 129 RadioLoRaPacketHandler_t LoRaPacketHandler;
GregCr 0:e6ceb13d2d05 130 }RadioSettings_t;
GregCr 0:e6ceb13d2d05 131
GregCr 0:e6ceb13d2d05 132
GregCr 0:e6ceb13d2d05 133 #endif //__ENUMS_H__