Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LoRaWAN-lib by
region/RegionUS915.h@38:182ba91524e4, 2017-08-09 (annotated)
- Committer:
- Shaun Nelson
- Date:
- Wed Aug 09 16:20:21 2017 -0400
- Branch:
- class_b
- Revision:
- 38:182ba91524e4
- Child:
- 41:b0d67ca11bdf
Synchronized with https://github.com/Senetco/LoRaMac-node/commit/6cb21de99eaa65caad9d911318df8875867a6e60
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Shaun Nelson |
38:182ba91524e4 | 1 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 2 | * \file RegionUS915.h |
| Shaun Nelson |
38:182ba91524e4 | 3 | * |
| Shaun Nelson |
38:182ba91524e4 | 4 | * \brief Region definition for US915 |
| Shaun Nelson |
38:182ba91524e4 | 5 | * |
| Shaun Nelson |
38:182ba91524e4 | 6 | * \copyright Revised BSD License, see section \ref LICENSE. |
| Shaun Nelson |
38:182ba91524e4 | 7 | * |
| Shaun Nelson |
38:182ba91524e4 | 8 | * \code |
| Shaun Nelson |
38:182ba91524e4 | 9 | * ______ _ |
| Shaun Nelson |
38:182ba91524e4 | 10 | * / _____) _ | | |
| Shaun Nelson |
38:182ba91524e4 | 11 | * ( (____ _____ ____ _| |_ _____ ____| |__ |
| Shaun Nelson |
38:182ba91524e4 | 12 | * \____ \| ___ | (_ _) ___ |/ ___) _ \ |
| Shaun Nelson |
38:182ba91524e4 | 13 | * _____) ) ____| | | || |_| ____( (___| | | | |
| Shaun Nelson |
38:182ba91524e4 | 14 | * (______/|_____)_|_|_| \__)_____)\____)_| |_| |
| Shaun Nelson |
38:182ba91524e4 | 15 | * (C)2013 Semtech |
| Shaun Nelson |
38:182ba91524e4 | 16 | * |
| Shaun Nelson |
38:182ba91524e4 | 17 | * ___ _____ _ ___ _ _____ ___ ___ ___ ___ |
| Shaun Nelson |
38:182ba91524e4 | 18 | * / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __| |
| Shaun Nelson |
38:182ba91524e4 | 19 | * \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _| |
| Shaun Nelson |
38:182ba91524e4 | 20 | * |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___| |
| Shaun Nelson |
38:182ba91524e4 | 21 | * embedded.connectivity.solutions=============== |
| Shaun Nelson |
38:182ba91524e4 | 22 | * |
| Shaun Nelson |
38:182ba91524e4 | 23 | * \endcode |
| Shaun Nelson |
38:182ba91524e4 | 24 | * |
| Shaun Nelson |
38:182ba91524e4 | 25 | * \author Miguel Luis ( Semtech ) |
| Shaun Nelson |
38:182ba91524e4 | 26 | * |
| Shaun Nelson |
38:182ba91524e4 | 27 | * \author Gregory Cristian ( Semtech ) |
| Shaun Nelson |
38:182ba91524e4 | 28 | * |
| Shaun Nelson |
38:182ba91524e4 | 29 | * \author Daniel Jaeckle ( STACKFORCE ) |
| Shaun Nelson |
38:182ba91524e4 | 30 | * |
| Shaun Nelson |
38:182ba91524e4 | 31 | * \defgroup REGIONUS915 Region US915 |
| Shaun Nelson |
38:182ba91524e4 | 32 | * Implementation according to LoRaWAN Specification v1.0.2. |
| Shaun Nelson |
38:182ba91524e4 | 33 | * \{ |
| Shaun Nelson |
38:182ba91524e4 | 34 | */ |
| Shaun Nelson |
38:182ba91524e4 | 35 | #ifndef __REGION_US915_H__ |
| Shaun Nelson |
38:182ba91524e4 | 36 | #define __REGION_US915_H__ |
| Shaun Nelson |
38:182ba91524e4 | 37 | |
| Shaun Nelson |
38:182ba91524e4 | 38 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 39 | * LoRaMac maximum number of channels |
| Shaun Nelson |
38:182ba91524e4 | 40 | */ |
| Shaun Nelson |
38:182ba91524e4 | 41 | #define US915_MAX_NB_CHANNELS 72 |
| Shaun Nelson |
38:182ba91524e4 | 42 | |
| Shaun Nelson |
38:182ba91524e4 | 43 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 44 | * Minimal datarate that can be used by the node |
| Shaun Nelson |
38:182ba91524e4 | 45 | */ |
| Shaun Nelson |
38:182ba91524e4 | 46 | #define US915_TX_MIN_DATARATE DR_0 |
| Shaun Nelson |
38:182ba91524e4 | 47 | |
| Shaun Nelson |
38:182ba91524e4 | 48 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 49 | * Maximal datarate that can be used by the node |
| Shaun Nelson |
38:182ba91524e4 | 50 | */ |
| Shaun Nelson |
38:182ba91524e4 | 51 | #define US915_TX_MAX_DATARATE DR_4 |
| Shaun Nelson |
38:182ba91524e4 | 52 | |
| Shaun Nelson |
38:182ba91524e4 | 53 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 54 | * Minimal datarate that can be used by the node |
| Shaun Nelson |
38:182ba91524e4 | 55 | */ |
| Shaun Nelson |
38:182ba91524e4 | 56 | #define US915_RX_MIN_DATARATE DR_8 |
| Shaun Nelson |
38:182ba91524e4 | 57 | |
| Shaun Nelson |
38:182ba91524e4 | 58 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 59 | * Maximal datarate that can be used by the node |
| Shaun Nelson |
38:182ba91524e4 | 60 | */ |
| Shaun Nelson |
38:182ba91524e4 | 61 | #define US915_RX_MAX_DATARATE DR_13 |
| Shaun Nelson |
38:182ba91524e4 | 62 | |
| Shaun Nelson |
38:182ba91524e4 | 63 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 64 | * Default datarate used by the node |
| Shaun Nelson |
38:182ba91524e4 | 65 | */ |
| Shaun Nelson |
38:182ba91524e4 | 66 | #define US915_DEFAULT_DATARATE DR_0 |
| Shaun Nelson |
38:182ba91524e4 | 67 | |
| Shaun Nelson |
38:182ba91524e4 | 68 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 69 | * Minimal Rx1 receive datarate offset |
| Shaun Nelson |
38:182ba91524e4 | 70 | */ |
| Shaun Nelson |
38:182ba91524e4 | 71 | #define US915_MIN_RX1_DR_OFFSET 0 |
| Shaun Nelson |
38:182ba91524e4 | 72 | |
| Shaun Nelson |
38:182ba91524e4 | 73 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 74 | * Maximal Rx1 receive datarate offset |
| Shaun Nelson |
38:182ba91524e4 | 75 | */ |
| Shaun Nelson |
38:182ba91524e4 | 76 | #define US915_MAX_RX1_DR_OFFSET 3 |
| Shaun Nelson |
38:182ba91524e4 | 77 | |
| Shaun Nelson |
38:182ba91524e4 | 78 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 79 | * Default Rx1 receive datarate offset |
| Shaun Nelson |
38:182ba91524e4 | 80 | */ |
| Shaun Nelson |
38:182ba91524e4 | 81 | #define US915_DEFAULT_RX1_DR_OFFSET 0 |
| Shaun Nelson |
38:182ba91524e4 | 82 | |
| Shaun Nelson |
38:182ba91524e4 | 83 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 84 | * Minimal Tx output power that can be used by the node |
| Shaun Nelson |
38:182ba91524e4 | 85 | */ |
| Shaun Nelson |
38:182ba91524e4 | 86 | #define US915_MIN_TX_POWER TX_POWER_10 |
| Shaun Nelson |
38:182ba91524e4 | 87 | |
| Shaun Nelson |
38:182ba91524e4 | 88 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 89 | * Maximal Tx output power that can be used by the node |
| Shaun Nelson |
38:182ba91524e4 | 90 | */ |
| Shaun Nelson |
38:182ba91524e4 | 91 | #define US915_MAX_TX_POWER TX_POWER_0 |
| Shaun Nelson |
38:182ba91524e4 | 92 | |
| Shaun Nelson |
38:182ba91524e4 | 93 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 94 | * Default Tx output power used by the node |
| Shaun Nelson |
38:182ba91524e4 | 95 | */ |
| Shaun Nelson |
38:182ba91524e4 | 96 | #define US915_DEFAULT_TX_POWER TX_POWER_0 |
| Shaun Nelson |
38:182ba91524e4 | 97 | |
| Shaun Nelson |
38:182ba91524e4 | 98 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 99 | * Default Max ERP |
| Shaun Nelson |
38:182ba91524e4 | 100 | */ |
| Shaun Nelson |
38:182ba91524e4 | 101 | #define US915_DEFAULT_MAX_ERP 30.0f |
| Shaun Nelson |
38:182ba91524e4 | 102 | |
| Shaun Nelson |
38:182ba91524e4 | 103 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 104 | * ADR Ack limit |
| Shaun Nelson |
38:182ba91524e4 | 105 | */ |
| Shaun Nelson |
38:182ba91524e4 | 106 | #define US915_ADR_ACK_LIMIT 64 |
| Shaun Nelson |
38:182ba91524e4 | 107 | |
| Shaun Nelson |
38:182ba91524e4 | 108 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 109 | * ADR Ack delay |
| Shaun Nelson |
38:182ba91524e4 | 110 | */ |
| Shaun Nelson |
38:182ba91524e4 | 111 | #define US915_ADR_ACK_DELAY 32 |
| Shaun Nelson |
38:182ba91524e4 | 112 | |
| Shaun Nelson |
38:182ba91524e4 | 113 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 114 | * Enabled or disabled the duty cycle |
| Shaun Nelson |
38:182ba91524e4 | 115 | */ |
| Shaun Nelson |
38:182ba91524e4 | 116 | #define US915_DUTY_CYCLE_ENABLED 0 |
| Shaun Nelson |
38:182ba91524e4 | 117 | |
| Shaun Nelson |
38:182ba91524e4 | 118 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 119 | * Maximum RX window duration |
| Shaun Nelson |
38:182ba91524e4 | 120 | */ |
| Shaun Nelson |
38:182ba91524e4 | 121 | #define US915_MAX_RX_WINDOW 3000 |
| Shaun Nelson |
38:182ba91524e4 | 122 | |
| Shaun Nelson |
38:182ba91524e4 | 123 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 124 | * Receive delay 1 |
| Shaun Nelson |
38:182ba91524e4 | 125 | */ |
| Shaun Nelson |
38:182ba91524e4 | 126 | #define US915_RECEIVE_DELAY1 1000 |
| Shaun Nelson |
38:182ba91524e4 | 127 | |
| Shaun Nelson |
38:182ba91524e4 | 128 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 129 | * Receive delay 2 |
| Shaun Nelson |
38:182ba91524e4 | 130 | */ |
| Shaun Nelson |
38:182ba91524e4 | 131 | #define US915_RECEIVE_DELAY2 2000 |
| Shaun Nelson |
38:182ba91524e4 | 132 | |
| Shaun Nelson |
38:182ba91524e4 | 133 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 134 | * Join accept delay 1 |
| Shaun Nelson |
38:182ba91524e4 | 135 | */ |
| Shaun Nelson |
38:182ba91524e4 | 136 | #define US915_JOIN_ACCEPT_DELAY1 5000 |
| Shaun Nelson |
38:182ba91524e4 | 137 | |
| Shaun Nelson |
38:182ba91524e4 | 138 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 139 | * Join accept delay 2 |
| Shaun Nelson |
38:182ba91524e4 | 140 | */ |
| Shaun Nelson |
38:182ba91524e4 | 141 | #define US915_JOIN_ACCEPT_DELAY2 6000 |
| Shaun Nelson |
38:182ba91524e4 | 142 | |
| Shaun Nelson |
38:182ba91524e4 | 143 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 144 | * Maximum frame counter gap |
| Shaun Nelson |
38:182ba91524e4 | 145 | */ |
| Shaun Nelson |
38:182ba91524e4 | 146 | #define US915_MAX_FCNT_GAP 16384 |
| Shaun Nelson |
38:182ba91524e4 | 147 | |
| Shaun Nelson |
38:182ba91524e4 | 148 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 149 | * Ack timeout |
| Shaun Nelson |
38:182ba91524e4 | 150 | */ |
| Shaun Nelson |
38:182ba91524e4 | 151 | #define US915_ACKTIMEOUT 2000 |
| Shaun Nelson |
38:182ba91524e4 | 152 | |
| Shaun Nelson |
38:182ba91524e4 | 153 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 154 | * Random ack timeout limits |
| Shaun Nelson |
38:182ba91524e4 | 155 | */ |
| Shaun Nelson |
38:182ba91524e4 | 156 | #define US915_ACK_TIMEOUT_RND 1000 |
| Shaun Nelson |
38:182ba91524e4 | 157 | |
| Shaun Nelson |
38:182ba91524e4 | 158 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 159 | * Second reception window channel frequency definition. |
| Shaun Nelson |
38:182ba91524e4 | 160 | */ |
| Shaun Nelson |
38:182ba91524e4 | 161 | #define US915_RX_WND_2_FREQ 923300000 |
| Shaun Nelson |
38:182ba91524e4 | 162 | |
| Shaun Nelson |
38:182ba91524e4 | 163 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 164 | * Second reception window channel datarate definition. |
| Shaun Nelson |
38:182ba91524e4 | 165 | */ |
| Shaun Nelson |
38:182ba91524e4 | 166 | #define US915_RX_WND_2_DR DR_8 |
| Shaun Nelson |
38:182ba91524e4 | 167 | |
| Shaun Nelson |
38:182ba91524e4 | 168 | /* |
| Shaun Nelson |
38:182ba91524e4 | 169 | * CLASS B |
| Shaun Nelson |
38:182ba91524e4 | 170 | */ |
| Shaun Nelson |
38:182ba91524e4 | 171 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 172 | * Beacon interval in ms |
| Shaun Nelson |
38:182ba91524e4 | 173 | */ |
| Shaun Nelson |
38:182ba91524e4 | 174 | #define US915_BEACON_INTERVAL 128000 |
| Shaun Nelson |
38:182ba91524e4 | 175 | |
| Shaun Nelson |
38:182ba91524e4 | 176 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 177 | * Beacon reserved time in ms |
| Shaun Nelson |
38:182ba91524e4 | 178 | */ |
| Shaun Nelson |
38:182ba91524e4 | 179 | #define US915_BEACON_RESERVED 2120 |
| Shaun Nelson |
38:182ba91524e4 | 180 | |
| Shaun Nelson |
38:182ba91524e4 | 181 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 182 | * Beacon guard time in ms |
| Shaun Nelson |
38:182ba91524e4 | 183 | */ |
| Shaun Nelson |
38:182ba91524e4 | 184 | #define US915_BEACON_GUARD 3000 |
| Shaun Nelson |
38:182ba91524e4 | 185 | |
| Shaun Nelson |
38:182ba91524e4 | 186 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 187 | * Beacon window time in ms |
| Shaun Nelson |
38:182ba91524e4 | 188 | */ |
| Shaun Nelson |
38:182ba91524e4 | 189 | #define US915_BEACON_WINDOW 122880 |
| Shaun Nelson |
38:182ba91524e4 | 190 | |
| Shaun Nelson |
38:182ba91524e4 | 191 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 192 | * Beacon window time in numer of slots |
| Shaun Nelson |
38:182ba91524e4 | 193 | */ |
| Shaun Nelson |
38:182ba91524e4 | 194 | #define US915_BEACON_WINDOW_SLOTS 4096 |
| Shaun Nelson |
38:182ba91524e4 | 195 | |
| Shaun Nelson |
38:182ba91524e4 | 196 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 197 | * Ping slot length time in ms |
| Shaun Nelson |
38:182ba91524e4 | 198 | */ |
| Shaun Nelson |
38:182ba91524e4 | 199 | #define US915_PING_SLOT_WINDOW 30 |
| Shaun Nelson |
38:182ba91524e4 | 200 | |
| Shaun Nelson |
38:182ba91524e4 | 201 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 202 | * Beacon frequency |
| Shaun Nelson |
38:182ba91524e4 | 203 | */ |
| Shaun Nelson |
38:182ba91524e4 | 204 | #define US915_BEACON_CHANNEL_FREQ 923300000 |
| Shaun Nelson |
38:182ba91524e4 | 205 | |
| Shaun Nelson |
38:182ba91524e4 | 206 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 207 | * Default symbol timeout for beacons and ping slot windows |
| Shaun Nelson |
38:182ba91524e4 | 208 | */ |
| Shaun Nelson |
38:182ba91524e4 | 209 | #define US915_BEACON_SYMBOL_TO_DEFAULT 8 |
| Shaun Nelson |
38:182ba91524e4 | 210 | |
| Shaun Nelson |
38:182ba91524e4 | 211 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 212 | * Maximum symbol timeout for beacons |
| Shaun Nelson |
38:182ba91524e4 | 213 | */ |
| Shaun Nelson |
38:182ba91524e4 | 214 | #define US915_BEACON_SYMBOL_TO_EXPANSION_MAX 400 |
| Shaun Nelson |
38:182ba91524e4 | 215 | |
| Shaun Nelson |
38:182ba91524e4 | 216 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 217 | * Maximum symbol timeout for ping slots |
| Shaun Nelson |
38:182ba91524e4 | 218 | */ |
| Shaun Nelson |
38:182ba91524e4 | 219 | #define US915_PING_SLOT_SYMBOL_TO_EXPANSION_MAX 40 |
| Shaun Nelson |
38:182ba91524e4 | 220 | |
| Shaun Nelson |
38:182ba91524e4 | 221 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 222 | * Symbol expansion value for beacon windows in case of beacon |
| Shaun Nelson |
38:182ba91524e4 | 223 | * loss in symbols |
| Shaun Nelson |
38:182ba91524e4 | 224 | */ |
| Shaun Nelson |
38:182ba91524e4 | 225 | #define US915_BEACON_SYMBOL_TO_EXPANSION_FACTOR 2 |
| Shaun Nelson |
38:182ba91524e4 | 226 | |
| Shaun Nelson |
38:182ba91524e4 | 227 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 228 | * Symbol expansion value for ping slot windows in case of beacon |
| Shaun Nelson |
38:182ba91524e4 | 229 | * loss in symbols |
| Shaun Nelson |
38:182ba91524e4 | 230 | */ |
| Shaun Nelson |
38:182ba91524e4 | 231 | #define US915_PING_SLOT_SYMBOL_TO_EXPANSION_FACTOR 2 |
| Shaun Nelson |
38:182ba91524e4 | 232 | |
| Shaun Nelson |
38:182ba91524e4 | 233 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 234 | * Maximum allowed beacon less time in ms |
| Shaun Nelson |
38:182ba91524e4 | 235 | */ |
| Shaun Nelson |
38:182ba91524e4 | 236 | #define US915_MAX_BEACON_LESS_PERIOD 7200000 |
| Shaun Nelson |
38:182ba91524e4 | 237 | |
| Shaun Nelson |
38:182ba91524e4 | 238 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 239 | * Delay time for the BeaconTimingAns in ms |
| Shaun Nelson |
38:182ba91524e4 | 240 | */ |
| Shaun Nelson |
38:182ba91524e4 | 241 | #define US915_BEACON_DELAY_BEACON_TIMING_ANS 30 |
| Shaun Nelson |
38:182ba91524e4 | 242 | |
| Shaun Nelson |
38:182ba91524e4 | 243 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 244 | * Payload size of a beacon frame |
| Shaun Nelson |
38:182ba91524e4 | 245 | */ |
| Shaun Nelson |
38:182ba91524e4 | 246 | #define US915_BEACON_SIZE 19 |
| Shaun Nelson |
38:182ba91524e4 | 247 | |
| Shaun Nelson |
38:182ba91524e4 | 248 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 249 | * Datarate of the beacon channel |
| Shaun Nelson |
38:182ba91524e4 | 250 | */ |
| Shaun Nelson |
38:182ba91524e4 | 251 | #define US915_BEACON_CHANNEL_DR DR_8 |
| Shaun Nelson |
38:182ba91524e4 | 252 | |
| Shaun Nelson |
38:182ba91524e4 | 253 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 254 | * Bandwith of the beacon channel |
| Shaun Nelson |
38:182ba91524e4 | 255 | */ |
| Shaun Nelson |
38:182ba91524e4 | 256 | #define US915_BEACON_CHANNEL_BW 2 |
| Shaun Nelson |
38:182ba91524e4 | 257 | |
| Shaun Nelson |
38:182ba91524e4 | 258 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 259 | * LoRaMac maximum number of bands |
| Shaun Nelson |
38:182ba91524e4 | 260 | */ |
| Shaun Nelson |
38:182ba91524e4 | 261 | #define US915_MAX_NB_BANDS 1 |
| Shaun Nelson |
38:182ba91524e4 | 262 | |
| Shaun Nelson |
38:182ba91524e4 | 263 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 264 | * Band 0 definition |
| Shaun Nelson |
38:182ba91524e4 | 265 | * { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff } |
| Shaun Nelson |
38:182ba91524e4 | 266 | */ |
| Shaun Nelson |
38:182ba91524e4 | 267 | #define US915_BAND0 { 1, US915_MAX_TX_POWER, 0, 0 } // 100.0 % |
| Shaun Nelson |
38:182ba91524e4 | 268 | |
| Shaun Nelson |
38:182ba91524e4 | 269 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 270 | * Defines the first channel for RX window 1 for US band |
| Shaun Nelson |
38:182ba91524e4 | 271 | */ |
| Shaun Nelson |
38:182ba91524e4 | 272 | #define US915_FIRST_RX1_CHANNEL ( (uint32_t) 923300000 ) |
| Shaun Nelson |
38:182ba91524e4 | 273 | |
| Shaun Nelson |
38:182ba91524e4 | 274 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 275 | * Defines the last channel for RX window 1 for US band |
| Shaun Nelson |
38:182ba91524e4 | 276 | */ |
| Shaun Nelson |
38:182ba91524e4 | 277 | #define US915_LAST_RX1_CHANNEL ( (uint32_t) 927500000 ) |
| Shaun Nelson |
38:182ba91524e4 | 278 | |
| Shaun Nelson |
38:182ba91524e4 | 279 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 280 | * Defines the step width of the channels for RX window 1 |
| Shaun Nelson |
38:182ba91524e4 | 281 | */ |
| Shaun Nelson |
38:182ba91524e4 | 282 | #define US915_STEPWIDTH_RX1_CHANNEL ( (uint32_t) 600000 ) |
| Shaun Nelson |
38:182ba91524e4 | 283 | |
| Shaun Nelson |
38:182ba91524e4 | 284 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 285 | * Data rates table definition |
| Shaun Nelson |
38:182ba91524e4 | 286 | */ |
| Shaun Nelson |
38:182ba91524e4 | 287 | static const uint8_t DataratesUS915[] = { 10, 9, 8, 7, 8, 0, 0, 0, 12, 11, 10, 9, 8, 7, 0, 0 }; |
| Shaun Nelson |
38:182ba91524e4 | 288 | |
| Shaun Nelson |
38:182ba91524e4 | 289 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 290 | * Bandwidths table definition in Hz |
| Shaun Nelson |
38:182ba91524e4 | 291 | */ |
| Shaun Nelson |
38:182ba91524e4 | 292 | static const uint32_t BandwidthsUS915[] = { 125000, 125000, 125000, 125000, 500000, 0, 0, 0, 500000, 500000, 500000, 500000, 500000, 500000, 0, 0 }; |
| Shaun Nelson |
38:182ba91524e4 | 293 | |
| Shaun Nelson |
38:182ba91524e4 | 294 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 295 | * Up/Down link data rates offset definition |
| Shaun Nelson |
38:182ba91524e4 | 296 | */ |
| Shaun Nelson |
38:182ba91524e4 | 297 | static const int8_t DatarateOffsetsUS915[5][4] = |
| Shaun Nelson |
38:182ba91524e4 | 298 | { |
| Shaun Nelson |
38:182ba91524e4 | 299 | { DR_10, DR_9 , DR_8 , DR_8 }, // DR_0 |
| Shaun Nelson |
38:182ba91524e4 | 300 | { DR_11, DR_10, DR_9 , DR_8 }, // DR_1 |
| Shaun Nelson |
38:182ba91524e4 | 301 | { DR_12, DR_11, DR_10, DR_9 }, // DR_2 |
| Shaun Nelson |
38:182ba91524e4 | 302 | { DR_13, DR_12, DR_11, DR_10 }, // DR_3 |
| Shaun Nelson |
38:182ba91524e4 | 303 | { DR_13, DR_13, DR_12, DR_11 }, // DR_4 |
| Shaun Nelson |
38:182ba91524e4 | 304 | }; |
| Shaun Nelson |
38:182ba91524e4 | 305 | |
| Shaun Nelson |
38:182ba91524e4 | 306 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 307 | * Maximum payload with respect to the datarate index. Cannot operate with repeater. |
| Shaun Nelson |
38:182ba91524e4 | 308 | */ |
| Shaun Nelson |
38:182ba91524e4 | 309 | static const uint8_t MaxPayloadOfDatarateUS915[] = { 11, 53, 125, 242, 242, 0, 0, 0, 53, 129, 242, 242, 242, 242, 0, 0 }; |
| Shaun Nelson |
38:182ba91524e4 | 310 | |
| Shaun Nelson |
38:182ba91524e4 | 311 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 312 | * Maximum payload with respect to the datarate index. Can operate with repeater. |
| Shaun Nelson |
38:182ba91524e4 | 313 | */ |
| Shaun Nelson |
38:182ba91524e4 | 314 | static const uint8_t MaxPayloadOfDatarateRepeaterUS915[] = { 11, 53, 125, 242, 242, 0, 0, 0, 33, 109, 222, 222, 222, 222, 0, 0 }; |
| Shaun Nelson |
38:182ba91524e4 | 315 | |
| Shaun Nelson |
38:182ba91524e4 | 316 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 317 | * \brief The function gets a value of a specific phy attribute. |
| Shaun Nelson |
38:182ba91524e4 | 318 | * |
| Shaun Nelson |
38:182ba91524e4 | 319 | * \param [IN] getPhy Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 320 | * |
| Shaun Nelson |
38:182ba91524e4 | 321 | * \retval Returns a structure containing the PHY parameter. |
| Shaun Nelson |
38:182ba91524e4 | 322 | */ |
| Shaun Nelson |
38:182ba91524e4 | 323 | PhyParam_t RegionUS915GetPhyParam( GetPhyParams_t* getPhy ); |
| Shaun Nelson |
38:182ba91524e4 | 324 | |
| Shaun Nelson |
38:182ba91524e4 | 325 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 326 | * \brief Updates the last TX done parameters of the current channel. |
| Shaun Nelson |
38:182ba91524e4 | 327 | * |
| Shaun Nelson |
38:182ba91524e4 | 328 | * \param [IN] txDone Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 329 | */ |
| Shaun Nelson |
38:182ba91524e4 | 330 | void RegionUS915SetBandTxDone( SetBandTxDoneParams_t* txDone ); |
| Shaun Nelson |
38:182ba91524e4 | 331 | |
| Shaun Nelson |
38:182ba91524e4 | 332 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 333 | * \brief Initializes the channels masks and the channels. |
| Shaun Nelson |
38:182ba91524e4 | 334 | * |
| Shaun Nelson |
38:182ba91524e4 | 335 | * \param [IN] type Sets the initialization type. |
| Shaun Nelson |
38:182ba91524e4 | 336 | */ |
| Shaun Nelson |
38:182ba91524e4 | 337 | void RegionUS915InitDefaults( InitType_t type ); |
| Shaun Nelson |
38:182ba91524e4 | 338 | |
| Shaun Nelson |
38:182ba91524e4 | 339 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 340 | * \brief Verifies a parameter. |
| Shaun Nelson |
38:182ba91524e4 | 341 | * |
| Shaun Nelson |
38:182ba91524e4 | 342 | * \param [IN] verify Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 343 | * |
| Shaun Nelson |
38:182ba91524e4 | 344 | * \param [IN] type Sets the initialization type. |
| Shaun Nelson |
38:182ba91524e4 | 345 | * |
| Shaun Nelson |
38:182ba91524e4 | 346 | * \retval Returns true, if the parameter is valid. |
| Shaun Nelson |
38:182ba91524e4 | 347 | */ |
| Shaun Nelson |
38:182ba91524e4 | 348 | bool RegionUS915Verify( VerifyParams_t* verify, PhyAttribute_t phyAttribute ); |
| Shaun Nelson |
38:182ba91524e4 | 349 | |
| Shaun Nelson |
38:182ba91524e4 | 350 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 351 | * \brief The function parses the input buffer and sets up the channels of the |
| Shaun Nelson |
38:182ba91524e4 | 352 | * CF list. |
| Shaun Nelson |
38:182ba91524e4 | 353 | * |
| Shaun Nelson |
38:182ba91524e4 | 354 | * \param [IN] applyCFList Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 355 | */ |
| Shaun Nelson |
38:182ba91524e4 | 356 | void RegionUS915ApplyCFList( ApplyCFListParams_t* applyCFList ); |
| Shaun Nelson |
38:182ba91524e4 | 357 | |
| Shaun Nelson |
38:182ba91524e4 | 358 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 359 | * \brief Sets a channels mask. |
| Shaun Nelson |
38:182ba91524e4 | 360 | * |
| Shaun Nelson |
38:182ba91524e4 | 361 | * \param [IN] chanMaskSet Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 362 | * |
| Shaun Nelson |
38:182ba91524e4 | 363 | * \retval Returns true, if the channels mask could be set. |
| Shaun Nelson |
38:182ba91524e4 | 364 | */ |
| Shaun Nelson |
38:182ba91524e4 | 365 | bool RegionUS915ChanMaskSet( ChanMaskSetParams_t* chanMaskSet ); |
| Shaun Nelson |
38:182ba91524e4 | 366 | |
| Shaun Nelson |
38:182ba91524e4 | 367 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 368 | * \brief Calculates the next datarate to set, when ADR is on or off. |
| Shaun Nelson |
38:182ba91524e4 | 369 | * |
| Shaun Nelson |
38:182ba91524e4 | 370 | * \param [IN] adrNext Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 371 | * |
| Shaun Nelson |
38:182ba91524e4 | 372 | * \param [OUT] drOut The calculated datarate for the next TX. |
| Shaun Nelson |
38:182ba91524e4 | 373 | * |
| Shaun Nelson |
38:182ba91524e4 | 374 | * \param [OUT] txPowOut The TX power for the next TX. |
| Shaun Nelson |
38:182ba91524e4 | 375 | * |
| Shaun Nelson |
38:182ba91524e4 | 376 | * \param [OUT] adrAckCounter The calculated ADR acknowledgement counter. |
| Shaun Nelson |
38:182ba91524e4 | 377 | * |
| Shaun Nelson |
38:182ba91524e4 | 378 | * \retval Returns true, if an ADR request should be performed. |
| Shaun Nelson |
38:182ba91524e4 | 379 | */ |
| Shaun Nelson |
38:182ba91524e4 | 380 | bool RegionUS915AdrNext( AdrNextParams_t* adrNext, int8_t* drOut, int8_t* txPowOut, uint32_t* adrAckCounter ); |
| Shaun Nelson |
38:182ba91524e4 | 381 | |
| Shaun Nelson |
38:182ba91524e4 | 382 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 383 | * Computes the Rx window timeout and offset. |
| Shaun Nelson |
38:182ba91524e4 | 384 | * |
| Shaun Nelson |
38:182ba91524e4 | 385 | * \param [IN] datarate Rx window datarate index to be used |
| Shaun Nelson |
38:182ba91524e4 | 386 | * |
| Shaun Nelson |
38:182ba91524e4 | 387 | * \param [IN] minRxSymbols Minimum required number of symbols to detect an Rx frame. |
| Shaun Nelson |
38:182ba91524e4 | 388 | * |
| Shaun Nelson |
38:182ba91524e4 | 389 | * \param [IN] rxError System maximum timing error of the receiver. In milliseconds |
| Shaun Nelson |
38:182ba91524e4 | 390 | * The receiver will turn on in a [-rxError : +rxError] ms |
| Shaun Nelson |
38:182ba91524e4 | 391 | * interval around RxOffset |
| Shaun Nelson |
38:182ba91524e4 | 392 | * |
| Shaun Nelson |
38:182ba91524e4 | 393 | * \param [OUT]rxConfigParams Returns updated WindowTimeout and WindowOffset fields. |
| Shaun Nelson |
38:182ba91524e4 | 394 | */ |
| Shaun Nelson |
38:182ba91524e4 | 395 | void RegionUS915ComputeRxWindowParameters( int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams ); |
| Shaun Nelson |
38:182ba91524e4 | 396 | |
| Shaun Nelson |
38:182ba91524e4 | 397 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 398 | * \brief Configuration of the RX windows. |
| Shaun Nelson |
38:182ba91524e4 | 399 | * |
| Shaun Nelson |
38:182ba91524e4 | 400 | * \param [IN] rxConfig Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 401 | * |
| Shaun Nelson |
38:182ba91524e4 | 402 | * \param [OUT] datarate The datarate index which was set. |
| Shaun Nelson |
38:182ba91524e4 | 403 | * |
| Shaun Nelson |
38:182ba91524e4 | 404 | * \retval Returns true, if the configuration was applied successfully. |
| Shaun Nelson |
38:182ba91524e4 | 405 | */ |
| Shaun Nelson |
38:182ba91524e4 | 406 | bool RegionUS915RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate ); |
| Shaun Nelson |
38:182ba91524e4 | 407 | |
| Shaun Nelson |
38:182ba91524e4 | 408 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 409 | * \brief TX configuration. |
| Shaun Nelson |
38:182ba91524e4 | 410 | * |
| Shaun Nelson |
38:182ba91524e4 | 411 | * \param [IN] txConfig Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 412 | * |
| Shaun Nelson |
38:182ba91524e4 | 413 | * \param [OUT] txPower The tx power index which was set. |
| Shaun Nelson |
38:182ba91524e4 | 414 | * |
| Shaun Nelson |
38:182ba91524e4 | 415 | * \param [OUT] txTimeOnAir The time-on-air of the frame. |
| Shaun Nelson |
38:182ba91524e4 | 416 | * |
| Shaun Nelson |
38:182ba91524e4 | 417 | * \retval Returns true, if the configuration was applied successfully. |
| Shaun Nelson |
38:182ba91524e4 | 418 | */ |
| Shaun Nelson |
38:182ba91524e4 | 419 | bool RegionUS915TxConfig( TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir ); |
| Shaun Nelson |
38:182ba91524e4 | 420 | |
| Shaun Nelson |
38:182ba91524e4 | 421 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 422 | * \brief The function processes a Link ADR Request. |
| Shaun Nelson |
38:182ba91524e4 | 423 | * |
| Shaun Nelson |
38:182ba91524e4 | 424 | * \param [IN] linkAdrReq Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 425 | * |
| Shaun Nelson |
38:182ba91524e4 | 426 | * \retval Returns the status of the operation, according to the LoRaMAC specification. |
| Shaun Nelson |
38:182ba91524e4 | 427 | */ |
| Shaun Nelson |
38:182ba91524e4 | 428 | uint8_t RegionUS915LinkAdrReq( LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uint8_t* nbRepOut, uint8_t* nbBytesParsed ); |
| Shaun Nelson |
38:182ba91524e4 | 429 | |
| Shaun Nelson |
38:182ba91524e4 | 430 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 431 | * \brief The function processes a RX Parameter Setup Request. |
| Shaun Nelson |
38:182ba91524e4 | 432 | * |
| Shaun Nelson |
38:182ba91524e4 | 433 | * \param [IN] rxParamSetupReq Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 434 | * |
| Shaun Nelson |
38:182ba91524e4 | 435 | * \retval Returns the status of the operation, according to the LoRaMAC specification. |
| Shaun Nelson |
38:182ba91524e4 | 436 | */ |
| Shaun Nelson |
38:182ba91524e4 | 437 | uint8_t RegionUS915RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq ); |
| Shaun Nelson |
38:182ba91524e4 | 438 | |
| Shaun Nelson |
38:182ba91524e4 | 439 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 440 | * \brief The function processes a Channel Request. |
| Shaun Nelson |
38:182ba91524e4 | 441 | * |
| Shaun Nelson |
38:182ba91524e4 | 442 | * \param [IN] newChannelReq Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 443 | * |
| Shaun Nelson |
38:182ba91524e4 | 444 | * \retval Returns the status of the operation, according to the LoRaMAC specification. |
| Shaun Nelson |
38:182ba91524e4 | 445 | */ |
| Shaun Nelson |
38:182ba91524e4 | 446 | uint8_t RegionUS915NewChannelReq( NewChannelReqParams_t* newChannelReq ); |
| Shaun Nelson |
38:182ba91524e4 | 447 | |
| Shaun Nelson |
38:182ba91524e4 | 448 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 449 | * \brief The function processes a TX ParamSetup Request. |
| Shaun Nelson |
38:182ba91524e4 | 450 | * |
| Shaun Nelson |
38:182ba91524e4 | 451 | * \param [IN] txParamSetupReq Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 452 | * |
| Shaun Nelson |
38:182ba91524e4 | 453 | * \retval Returns the status of the operation, according to the LoRaMAC specification. |
| Shaun Nelson |
38:182ba91524e4 | 454 | * Returns -1, if the functionality is not implemented. In this case, the end node |
| Shaun Nelson |
38:182ba91524e4 | 455 | * shall not process the command. |
| Shaun Nelson |
38:182ba91524e4 | 456 | */ |
| Shaun Nelson |
38:182ba91524e4 | 457 | int8_t RegionUS915TxParamSetupReq( TxParamSetupReqParams_t* txParamSetupReq ); |
| Shaun Nelson |
38:182ba91524e4 | 458 | |
| Shaun Nelson |
38:182ba91524e4 | 459 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 460 | * \brief The function processes a DlChannel Request. |
| Shaun Nelson |
38:182ba91524e4 | 461 | * |
| Shaun Nelson |
38:182ba91524e4 | 462 | * \param [IN] dlChannelReq Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 463 | * |
| Shaun Nelson |
38:182ba91524e4 | 464 | * \retval Returns the status of the operation, according to the LoRaMAC specification. |
| Shaun Nelson |
38:182ba91524e4 | 465 | */ |
| Shaun Nelson |
38:182ba91524e4 | 466 | uint8_t RegionUS915DlChannelReq( DlChannelReqParams_t* dlChannelReq ); |
| Shaun Nelson |
38:182ba91524e4 | 467 | |
| Shaun Nelson |
38:182ba91524e4 | 468 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 469 | * \brief Alternates the datarate of the channel for the join request. |
| Shaun Nelson |
38:182ba91524e4 | 470 | * |
| Shaun Nelson |
38:182ba91524e4 | 471 | * \param [IN] alternateDr Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 472 | * |
| Shaun Nelson |
38:182ba91524e4 | 473 | * \retval Datarate to apply. |
| Shaun Nelson |
38:182ba91524e4 | 474 | */ |
| Shaun Nelson |
38:182ba91524e4 | 475 | int8_t RegionUS915AlternateDr( AlternateDrParams_t* alternateDr ); |
| Shaun Nelson |
38:182ba91524e4 | 476 | |
| Shaun Nelson |
38:182ba91524e4 | 477 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 478 | * \brief Calculates the back-off time. |
| Shaun Nelson |
38:182ba91524e4 | 479 | * |
| Shaun Nelson |
38:182ba91524e4 | 480 | * \param [IN] calcBackOff Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 481 | */ |
| Shaun Nelson |
38:182ba91524e4 | 482 | void RegionUS915CalcBackOff( CalcBackOffParams_t* calcBackOff ); |
| Shaun Nelson |
38:182ba91524e4 | 483 | |
| Shaun Nelson |
38:182ba91524e4 | 484 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 485 | * \brief Searches and set the next random available channel |
| Shaun Nelson |
38:182ba91524e4 | 486 | * |
| Shaun Nelson |
38:182ba91524e4 | 487 | * \param [OUT] channel Next channel to use for TX. |
| Shaun Nelson |
38:182ba91524e4 | 488 | * |
| Shaun Nelson |
38:182ba91524e4 | 489 | * \param [OUT] time Time to wait for the next transmission according to the duty |
| Shaun Nelson |
38:182ba91524e4 | 490 | * cycle. |
| Shaun Nelson |
38:182ba91524e4 | 491 | * |
| Shaun Nelson |
38:182ba91524e4 | 492 | * \param [OUT] aggregatedTimeOff Updates the aggregated time off. |
| Shaun Nelson |
38:182ba91524e4 | 493 | * |
| Shaun Nelson |
38:182ba91524e4 | 494 | * \retval Function status [1: OK, 0: Unable to find a channel on the current datarate] |
| Shaun Nelson |
38:182ba91524e4 | 495 | */ |
| Shaun Nelson |
38:182ba91524e4 | 496 | bool RegionUS915NextChannel( NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time, TimerTime_t* aggregatedTimeOff ); |
| Shaun Nelson |
38:182ba91524e4 | 497 | |
| Shaun Nelson |
38:182ba91524e4 | 498 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 499 | * \brief Adds a channel. |
| Shaun Nelson |
38:182ba91524e4 | 500 | * |
| Shaun Nelson |
38:182ba91524e4 | 501 | * \param [IN] channelAdd Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 502 | * |
| Shaun Nelson |
38:182ba91524e4 | 503 | * \retval Status of the operation. |
| Shaun Nelson |
38:182ba91524e4 | 504 | */ |
| Shaun Nelson |
38:182ba91524e4 | 505 | LoRaMacStatus_t RegionUS915ChannelAdd( ChannelAddParams_t* channelAdd ); |
| Shaun Nelson |
38:182ba91524e4 | 506 | |
| Shaun Nelson |
38:182ba91524e4 | 507 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 508 | * \brief Removes a channel. |
| Shaun Nelson |
38:182ba91524e4 | 509 | * |
| Shaun Nelson |
38:182ba91524e4 | 510 | * \param [IN] channelRemove Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 511 | * |
| Shaun Nelson |
38:182ba91524e4 | 512 | * \retval Returns true, if the channel was removed successfully. |
| Shaun Nelson |
38:182ba91524e4 | 513 | */ |
| Shaun Nelson |
38:182ba91524e4 | 514 | bool RegionUS915ChannelsRemove( ChannelRemoveParams_t* channelRemove ); |
| Shaun Nelson |
38:182ba91524e4 | 515 | |
| Shaun Nelson |
38:182ba91524e4 | 516 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 517 | * \brief Sets the radio into continuous wave mode. |
| Shaun Nelson |
38:182ba91524e4 | 518 | * |
| Shaun Nelson |
38:182ba91524e4 | 519 | * \param [IN] continuousWave Pointer to the function parameters. |
| Shaun Nelson |
38:182ba91524e4 | 520 | */ |
| Shaun Nelson |
38:182ba91524e4 | 521 | void RegionUS915SetContinuousWave( ContinuousWaveParams_t* continuousWave ); |
| Shaun Nelson |
38:182ba91524e4 | 522 | |
| Shaun Nelson |
38:182ba91524e4 | 523 | /*! |
| Shaun Nelson |
38:182ba91524e4 | 524 | * \brief Computes new datarate according to the given offset |
| Shaun Nelson |
38:182ba91524e4 | 525 | * |
| Shaun Nelson |
38:182ba91524e4 | 526 | * \param [IN] downlinkDwellTime Downlink dwell time configuration. 0: No limit, 1: 400ms |
| Shaun Nelson |
38:182ba91524e4 | 527 | * |
| Shaun Nelson |
38:182ba91524e4 | 528 | * \param [IN] dr Current datarate |
| Shaun Nelson |
38:182ba91524e4 | 529 | * |
| Shaun Nelson |
38:182ba91524e4 | 530 | * \param [IN] drOffset Offset to be applied |
| Shaun Nelson |
38:182ba91524e4 | 531 | * |
| Shaun Nelson |
38:182ba91524e4 | 532 | * \retval newDr Computed datarate. |
| Shaun Nelson |
38:182ba91524e4 | 533 | */ |
| Shaun Nelson |
38:182ba91524e4 | 534 | uint8_t RegionUS915ApplyDrOffset( uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset ); |
| Shaun Nelson |
38:182ba91524e4 | 535 | |
| Shaun Nelson |
38:182ba91524e4 | 536 | /*! \} defgroup REGIONUS915 */ |
| Shaun Nelson |
38:182ba91524e4 | 537 | |
| Shaun Nelson |
38:182ba91524e4 | 538 | #endif // __REGION_US915_H__ |

