SX1276 library for modtronix inair9. Edited for use with NRF51DK board.

Dependents:   InAir9_PingPong

Fork of SX1276Lib_modtronix by modtronix H

Committer:
AMNoll
Date:
Sun Nov 19 18:19:55 2017 +0000
Revision:
26:ad32782125eb
Parent:
25:72381be1b0ce
latest version of pingpong on inair9

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 (______/|_____)_|_|_| \__)_____)\____)_| |_|
GregCr 0:e6ceb13d2d05 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 13:618826a997e2 19 * State of the radio:
mluis 13:618826a997e2 20 * [IDLE,
mluis 13:618826a997e2 21 * RX_RUNNING, RX_TIMEOUT, RX_ERROR,
mluis 13:618826a997e2 22 * TX_RUNNING, TX_TIMEOUT,
mluis 13:618826a997e2 23 CAD]
GregCr 0:e6ceb13d2d05 24 */
GregCr 0:e6ceb13d2d05 25 enum RadioState
GregCr 0:e6ceb13d2d05 26 {
mluis 13:618826a997e2 27 LOWPOWER = 0,
mluis 13:618826a997e2 28 IDLE,
mluis 13:618826a997e2 29
modtronix 25:72381be1b0ce 30 INIT,
modtronix 25:72381be1b0ce 31
modtronix 25:72381be1b0ce 32 RX_DONE,
mluis 13:618826a997e2 33 RX_TIMEOUT,
mluis 13:618826a997e2 34 RX_ERROR,
mluis 13:618826a997e2 35
modtronix 25:72381be1b0ce 36 TX_DONE,
mluis 13:618826a997e2 37 TX_TIMEOUT,
modtronix 25:72381be1b0ce 38 TX_MESSAGE,
GregCr 7:2b555111463f 39
GregCr 7:2b555111463f 40 CAD,
GregCr 7:2b555111463f 41 CAD_DONE
GregCr 0:e6ceb13d2d05 42 };
GregCr 0:e6ceb13d2d05 43
GregCr 0:e6ceb13d2d05 44 /*!
mluis 13:618826a997e2 45 * Type of the modem. [LORA / FSK]
GregCr 0:e6ceb13d2d05 46 */
GregCr 0:e6ceb13d2d05 47 enum ModemType
GregCr 0:e6ceb13d2d05 48 {
mluis 13:618826a997e2 49 MODEM_FSK = 0,
mluis 13:618826a997e2 50 MODEM_LORA
GregCr 0:e6ceb13d2d05 51 };
GregCr 0:e6ceb13d2d05 52
GregCr 2:5eb3066446dd 53 /*!
modtronix 23:2da0dcafe430 54 * Type of the supported board. [SX1276MB1MAS / SX1276MB1LAS]
modtronix 23:2da0dcafe430 55 */
modtronix 23:2da0dcafe430 56 enum BoardType
modtronix 23:2da0dcafe430 57 {
modtronix 23:2da0dcafe430 58 SX1276MB1MAS = 0,
modtronix 23:2da0dcafe430 59 SX1276MB1LAS,
modtronix 23:2da0dcafe430 60 UNKNOWN
modtronix 23:2da0dcafe430 61 };
modtronix 23:2da0dcafe430 62
modtronix 23:2da0dcafe430 63 /*!
modtronix 22:20db480143c9 64 * Type of the supported board. [BOARD_INAIR4 / BOARD_INAIR9]
GregCr 2:5eb3066446dd 65 */
modtronix 23:2da0dcafe430 66 enum BoardTypeInAir
GregCr 2:5eb3066446dd 67 {
modtronix 22:20db480143c9 68 BOARD_INAIR4 = 0,
modtronix 22:20db480143c9 69 BOARD_INAIR9,
modtronix 22:20db480143c9 70 BOARD_INAIR9B,
modtronix 22:20db480143c9 71 BOARD_UNKNOWN
GregCr 2:5eb3066446dd 72 };
GregCr 0:e6ceb13d2d05 73 /*!
GregCr 0:e6ceb13d2d05 74 * Radio FSK modem parameters
GregCr 0:e6ceb13d2d05 75 */
GregCr 0:e6ceb13d2d05 76 typedef struct
GregCr 0:e6ceb13d2d05 77 {
GregCr 0:e6ceb13d2d05 78 int8_t Power;
GregCr 0:e6ceb13d2d05 79 uint32_t Fdev;
GregCr 0:e6ceb13d2d05 80 uint32_t Bandwidth;
GregCr 0:e6ceb13d2d05 81 uint32_t BandwidthAfc;
GregCr 0:e6ceb13d2d05 82 uint32_t Datarate;
GregCr 0:e6ceb13d2d05 83 uint16_t PreambleLen;
GregCr 0:e6ceb13d2d05 84 bool FixLen;
mluis 13:618826a997e2 85 uint8_t PayloadLen;
GregCr 0:e6ceb13d2d05 86 bool CrcOn;
GregCr 0:e6ceb13d2d05 87 bool IqInverted;
GregCr 0:e6ceb13d2d05 88 bool RxContinuous;
GregCr 0:e6ceb13d2d05 89 uint32_t TxTimeout;
GregCr 0:e6ceb13d2d05 90 }RadioFskSettings_t;
GregCr 0:e6ceb13d2d05 91
GregCr 0:e6ceb13d2d05 92 /*!
GregCr 0:e6ceb13d2d05 93 * Radio FSK packet handler state
GregCr 0:e6ceb13d2d05 94 */
GregCr 0:e6ceb13d2d05 95 typedef struct
GregCr 0:e6ceb13d2d05 96 {
GregCr 0:e6ceb13d2d05 97 uint8_t PreambleDetected;
GregCr 0:e6ceb13d2d05 98 uint8_t SyncWordDetected;
GregCr 0:e6ceb13d2d05 99 int8_t RssiValue;
GregCr 0:e6ceb13d2d05 100 int32_t AfcValue;
GregCr 0:e6ceb13d2d05 101 uint8_t RxGain;
GregCr 0:e6ceb13d2d05 102 uint16_t Size;
GregCr 0:e6ceb13d2d05 103 uint16_t NbBytes;
GregCr 0:e6ceb13d2d05 104 uint8_t FifoThresh;
GregCr 0:e6ceb13d2d05 105 uint8_t ChunkSize;
GregCr 0:e6ceb13d2d05 106 }RadioFskPacketHandler_t;
GregCr 0:e6ceb13d2d05 107
GregCr 0:e6ceb13d2d05 108 /*!
GregCr 0:e6ceb13d2d05 109 * Radio LoRa modem parameters
GregCr 0:e6ceb13d2d05 110 */
GregCr 0:e6ceb13d2d05 111 typedef struct
GregCr 0:e6ceb13d2d05 112 {
GregCr 0:e6ceb13d2d05 113 int8_t Power;
GregCr 0:e6ceb13d2d05 114 uint32_t Bandwidth;
GregCr 0:e6ceb13d2d05 115 uint32_t Datarate;
GregCr 0:e6ceb13d2d05 116 bool LowDatarateOptimize;
GregCr 0:e6ceb13d2d05 117 uint8_t Coderate;
GregCr 0:e6ceb13d2d05 118 uint16_t PreambleLen;
GregCr 0:e6ceb13d2d05 119 bool FixLen;
mluis 13:618826a997e2 120 uint8_t PayloadLen;
GregCr 0:e6ceb13d2d05 121 bool CrcOn;
mluis 13:618826a997e2 122 bool FreqHopOn;
GregCr 6:e7f02929cd3d 123 uint8_t HopPeriod;
GregCr 0:e6ceb13d2d05 124 bool IqInverted;
GregCr 0:e6ceb13d2d05 125 bool RxContinuous;
GregCr 0:e6ceb13d2d05 126 uint32_t TxTimeout;
GregCr 0:e6ceb13d2d05 127 }RadioLoRaSettings_t;
GregCr 0:e6ceb13d2d05 128
GregCr 0:e6ceb13d2d05 129 /*!
GregCr 0:e6ceb13d2d05 130 * Radio LoRa packet handler state
GregCr 0:e6ceb13d2d05 131 */
GregCr 0:e6ceb13d2d05 132 typedef struct
GregCr 0:e6ceb13d2d05 133 {
GregCr 0:e6ceb13d2d05 134 int8_t SnrValue;
GregCr 0:e6ceb13d2d05 135 int8_t RssiValue;
GregCr 0:e6ceb13d2d05 136 uint8_t Size;
GregCr 0:e6ceb13d2d05 137 }RadioLoRaPacketHandler_t;
GregCr 0:e6ceb13d2d05 138
GregCr 0:e6ceb13d2d05 139 /*!
GregCr 0:e6ceb13d2d05 140 * Radio Settings
GregCr 0:e6ceb13d2d05 141 */
GregCr 0:e6ceb13d2d05 142 typedef struct
GregCr 0:e6ceb13d2d05 143 {
mluis 13:618826a997e2 144 RadioState State;
mluis 13:618826a997e2 145 ModemType Modem;
GregCr 0:e6ceb13d2d05 146 uint32_t Channel;
GregCr 0:e6ceb13d2d05 147 RadioFskSettings_t Fsk;
GregCr 0:e6ceb13d2d05 148 RadioFskPacketHandler_t FskPacketHandler;
GregCr 0:e6ceb13d2d05 149 RadioLoRaSettings_t LoRa;
GregCr 0:e6ceb13d2d05 150 RadioLoRaPacketHandler_t LoRaPacketHandler;
GregCr 0:e6ceb13d2d05 151 }RadioSettings_t;
GregCr 0:e6ceb13d2d05 152
GregCr 0:e6ceb13d2d05 153
GregCr 0:e6ceb13d2d05 154 #endif //__ENUMS_H__
GregCr 0:e6ceb13d2d05 155