Dan Fay / SX1276GenericLib
Committer:
Helmut Tschemernjak
Date:
Mon May 01 18:56:35 2017 +0200
Revision:
33:5db0d1e716b1
Parent:
31:e50929bd3f32
Child:
38:d9189d958db8
Added more typedefs for bandwidth, coding rate, data rate, etc.
This makes the maintenance and debugging much easier.

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,
Helmut Tschemernjak 33:5db0d1e716b1 45 RFM95_SX1276,
Helmut Tschemernjak 33:5db0d1e716b1 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;
Helmut Tschemernjak 31:e50929bd3f32 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;
Helmut Tschemernjak 31:e50929bd3f32 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__