Loading...
Searching...
No Matches
loramac.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Inria
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
22#ifndef NET_LORAMAC_H
23#define NET_LORAMAC_H
24
25#include <assert.h>
26#include <stdint.h>
27#include <stdlib.h>
28
29#include "modules.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
45#ifndef CONFIG_LORAMAC_DEV_EUI_DEFAULT
46#define CONFIG_LORAMAC_DEV_EUI_DEFAULT "0000000000000000"
47#endif
48
54#ifndef CONFIG_LORAMAC_JOIN_EUI_DEFAULT
55#define CONFIG_LORAMAC_JOIN_EUI_DEFAULT "0000000000000000"
56#endif
57
63#ifndef CONFIG_LORAMAC_APP_EUI_DEFAULT
64#define CONFIG_LORAMAC_APP_EUI_DEFAULT "0000000000000000"
65#endif
66
72#ifndef CONFIG_LORAMAC_APP_KEY_DEFAULT
73#define CONFIG_LORAMAC_APP_KEY_DEFAULT "00000000000000000000000000000000"
74#endif
75
81#ifndef CONFIG_LORAMAC_NWK_KEY_DEFAULT
82#define CONFIG_LORAMAC_NWK_KEY_DEFAULT "00000000000000000000000000000000"
83#endif
84
90#ifndef CONFIG_LORAMAC_APP_SKEY_DEFAULT
91#define CONFIG_LORAMAC_APP_SKEY_DEFAULT "00000000000000000000000000000000"
92#endif
93
99#ifndef CONFIG_LORAMAC_NWK_SKEY_DEFAULT
100#define CONFIG_LORAMAC_NWK_SKEY_DEFAULT "00000000000000000000000000000000"
101#endif
102
108#ifndef CONFIG_LORAMAC_FNWKSINT_KEY_DEFAULT
109#define CONFIG_LORAMAC_FNWKSINT_KEY_DEFAULT "00000000000000000000000000000000"
110#endif
111
117#ifndef CONFIG_LORAMAC_SNWKSINT_KEY_DEFAULT
118#define CONFIG_LORAMAC_SNWKSINT_KEY_DEFAULT "00000000000000000000000000000000"
119#endif
120
126#ifndef CONFIG_LORAMAC_NWKSENC_KEY_DEFAULT
127#define CONFIG_LORAMAC_NWKSENC_KEY_DEFAULT "00000000000000000000000000000000"
128#endif
129
133#ifndef CONFIG_LORAMAC_DEV_ADDR_DEFAULT
134#define CONFIG_LORAMAC_DEV_ADDR_DEFAULT "00000000"
135#endif
136
140#if !IS_ACTIVE(CONFIG_LORAMAC_REGION_EU_868) \
141 && !IS_ACTIVE(CONFIG_LORAMAC_REGION_IN_865)
142#define CONFIG_LORAMAC_REGION_EU_868 1
143#endif
144
157#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS_A)
158#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_A)
159#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS_B)
160#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_B)
161#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS_C)
162#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_C)
163#endif
164
165#ifndef CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS
166#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_A)
167#endif
168
177#ifndef CONFIG_LORAMAC_DEFAULT_NETID
178#define CONFIG_LORAMAC_DEFAULT_NETID (1U)
179#endif
180
189#ifdef DOXYGEN
190#define CONFIG_LORAMAC_DEFAULT_PRIVATE_NETWORK
191#endif
192
202#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_0)
203#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_0)
204#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_1)
205#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_1)
206#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_2)
207#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_2)
208#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_3)
209#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_3)
210#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_4)
211#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_4)
212#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_5)
213#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_5)
214#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_6)
215#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_6)
216#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_7)
217#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_7)
218#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_8)
219#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_8)
220#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_9)
221#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_9)
222#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_10)
223#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_10)
224#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_11)
225#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_11)
226#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_12)
227#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_12)
228#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_13)
229#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_13)
230#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_14)
231#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_14)
232#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_15)
233#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_15)
234#endif
235
236#ifndef CONFIG_LORAMAC_DEFAULT_DR
237#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_0)
238#endif
239
246#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_0)
247#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_0)
248#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_1)
249#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_1)
250#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_2)
251#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_2)
252#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_3)
253#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_3)
254#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_4)
255#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_4)
256#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_5)
257#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_5)
258#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_6)
259#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_6)
260#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_7)
261#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_7)
262#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_8)
263#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_8)
264#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_9)
265#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_9)
266#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_10)
267#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_10)
268#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_11)
269#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_11)
270#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_12)
271#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_12)
272#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_13)
273#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_13)
274#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_14)
275#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_14)
276#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_15)
277#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_15)
278#endif
279
280#ifndef CONFIG_LORAMAC_DEFAULT_TX_POWER
281#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_1)
282#endif
283
293#ifndef CONFIG_LORAMAC_DEFAULT_TX_PORT
294#define CONFIG_LORAMAC_DEFAULT_TX_PORT (2U)
295#endif
296
305#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_MODE_CNF)
306#define CONFIG_LORAMAC_DEFAULT_TX_MODE (LORAMAC_TX_CNF)
307#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_MODE_UNCNF)
308#define CONFIG_LORAMAC_DEFAULT_TX_MODE (LORAMAC_TX_UNCNF)
309#endif
310
311#ifndef CONFIG_LORAMAC_DEFAULT_TX_MODE
312#define CONFIG_LORAMAC_DEFAULT_TX_MODE (LORAMAC_TX_CNF)
313#endif
314
326#ifndef CONFIG_LORAMAC_DEFAULT_REDUNDANCY
327#define CONFIG_LORAMAC_DEFAULT_REDUNDANCY (0U)
328#endif
329
338#ifdef DOXYGEN
339#define CONFIG_LORAMAC_DEFAULT_ADR
340#endif
341
348#ifndef CONFIG_LORAMAC_DEFAULT_RETX
349#define CONFIG_LORAMAC_DEFAULT_RETX (5U)
350#endif
351
360#ifndef CONFIG_LORAMAC_DEFAULT_LINKCHK
361#define CONFIG_LORAMAC_DEFAULT_LINKCHK (0U)
362#endif
363
370#ifndef CONFIG_LORAMAC_DEFAULT_RX1_DELAY
371#define CONFIG_LORAMAC_DEFAULT_RX1_DELAY (1000U)
372#endif
373
380#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_0)
381#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_0)
382#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_1)
383#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_1)
384#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_2)
385#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_2)
386#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_3)
387#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_3)
388#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_4)
389#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_4)
390#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_5)
391#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_5)
392#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_6)
393#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_6)
394#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_7)
395#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_7)
396#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_8)
397#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_8)
398#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_9)
399#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_9)
400#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_10)
401#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_10)
402#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_11)
403#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_11)
404#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_12)
405#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_12)
406#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_13)
407#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_13)
408#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_14)
409#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_14)
410#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_15)
411#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_15)
412#endif
413
414#ifndef CONFIG_LORAMAC_DEFAULT_RX2_DR
415#if IS_ACTIVE(CONFIG_LORAMAC_REGION_EU_868)
416#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_0)
417#elif IS_ACTIVE(CONFIG_LORAMAC_REGION_IN_865)
418#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_2)
419#endif
420#endif
421
425#ifndef CONFIG_LORAMAC_DEFAULT_RX2_FREQ
426#if IS_ACTIVE(CONFIG_LORAMAC_REGION_EU_868)
427#define CONFIG_LORAMAC_DEFAULT_RX2_FREQ (869525000UL)
428#elif IS_ACTIVE(CONFIG_LORAMAC_REGION_IN_865)
429#define CONFIG_LORAMAC_DEFAULT_RX2_FREQ (866550000UL)
430#endif
431#endif
432
443#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE_OTAA)
444#define CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE (LORAMAC_JOIN_OTAA)
445#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE_ABP)
446#define CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE (LORAMAC_JOIN_ABP)
447#endif
448
449#ifndef CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE
450#define CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE (LORAMAC_JOIN_OTAA)
451#endif
452
460#ifndef CONFIG_LORAMAC_DEFAULT_JOIN_DELAY1
461#define CONFIG_LORAMAC_DEFAULT_JOIN_DELAY1 (5U)
462#endif
463
471#ifndef CONFIG_LORAMAC_DEFAULT_JOIN_DELAY2
472#define CONFIG_LORAMAC_DEFAULT_JOIN_DELAY2 (6U)
473#endif
474
481#ifndef CONFIG_LORAMAC_DEFAULT_MAX_FCNT_GAP
482#define CONFIG_LORAMAC_DEFAULT_MAX_FCNT_GAP (16384U)
483#endif
484
492#ifndef CONFIG_LORAMAC_DEFAULT_SYSTEM_MAX_RX_ERROR
493#define CONFIG_LORAMAC_DEFAULT_SYSTEM_MAX_RX_ERROR (50)
494#endif
495
504#ifndef CONFIG_LORAMAC_DEFAULT_MIN_RX_SYMBOLS
505#define CONFIG_LORAMAC_DEFAULT_MIN_RX_SYMBOLS (12)
506#endif
516#ifndef LORAMAC_DEFAULT_ADR_ACK_LIMIT
517#define LORAMAC_DEFAULT_ADR_ACK_LIMIT (64U)
518#endif
519
525#ifndef LORAMAC_DEFAULT_ADR_ACK_DELAY
526#define LORAMAC_DEFAULT_ADR_ACK_DELAY (32U)
527#endif
528
534#ifndef LORAMAC_DEFAULT_ADR_TIMEOUT
535#define LORAMAC_DEFAULT_ADR_TIMEOUT (3U)
536#endif
537
541#define LORAMAC_DEFAULT_RX2_DELAY (1000U + CONFIG_LORAMAC_DEFAULT_RX1_DELAY)
542
550#define LORAMAC_DEVEUI_LEN (8U)
551
555#define LORAMAC_DEVADDR_LEN (4U)
556
560#define LORAMAC_APPEUI_LEN (8U)
561
565#define LORAMAC_JOINEUI_LEN (8U)
566
570#define LORAMAC_APPKEY_LEN (16U)
571
575#define LORAMAC_NWKKEY_LEN (16U)
576
580#define LORAMAC_APPSKEY_LEN (16U)
581
585#define LORAMAC_NWKSKEY_LEN (16U)
586
590#define LORAMAC_FNWKSINTKEY_LEN (16U)
591
595#define LORAMAC_SNWKSINTKEY_LEN (16U)
596
600#define LORAMAC_NWKSENCKEY_LEN (16U)
601
605#define LORAMAC_JSINTKEY_LEN (16U)
606
610#define LORAMAC_JSENCKEY_LEN (16U)
611
615#define LORAMAC_JSINTKEY_LEN (16U)
616
620#define LORAMAC_PORT_MIN (1U)
621
625#define LORAMAC_PORT_MAX (223U)
626
630#define LORAMAC_APP_NONCE_LEN (3U)
631
635#define LORAMAC_JOIN_NONCE_LEN (3U)
636
640#define LORAMAC_NETWORK_ID_LEN (3U)
641
647#if defined(REGION_AU915) || defined(REGION_CN470) || defined(REGION_US915) || defined(REGION_US915_HYBRID) || defined(REGION_AS923)
648#define LORAMAC_CHANNELS_MASK_LEN (6U)
649#else
650#define LORAMAC_CHANNELS_MASK_LEN (1U)
651#endif
652
668
676
684
871
1062 typedef struct {
1063 uint32_t freq;
1064 uint8_t index;
1065 uint8_t bw;
1066 uint8_t dr_min;
1067 uint8_t dr_max;
1068 uint8_t dcycle;
1070
1082static inline uint32_t lora_time_on_air(size_t pkt_len, loramac_dr_idx_t dr, uint8_t cr)
1083{
1084 assert(dr <= LORAMAC_DR_6);
1085 const uint8_t _K[6][4] = {
1086 { 0, 1, 5, 5 }, /* DR0 */
1087 { 0, 1, 4, 5 }, /* DR1 */
1088 { 1, 5, 5, 5 }, /* DR2 */
1089 { 1, 4, 5, 4 }, /* DR3 */
1090 { 1, 3, 4, 4 }, /* DR4 */
1091 { 1, 2, 4, 3 } /* DR5 */
1092 };
1093
1094 uint32_t t_sym = 1 << (15 - dr);
1095 uint32_t t_preamble = (t_sym << 3) + (t_sym << 2) + (t_sym >> 2);
1096
1097 uint8_t index = (dr < LORAMAC_DR_6) ? dr : LORAMAC_DR_5;
1098 uint8_t n0 = _K[index][0];
1099 uint32_t nb_symbols;
1100
1101 uint8_t offset = _K[index][1];
1102
1103 if (pkt_len < offset) {
1104 nb_symbols = 8 + n0 * (cr + 4);
1105 }
1106 else {
1107 uint8_t c1 = _K[index][2];
1108 uint8_t c2 = _K[index][3];
1109 uint8_t pos = (pkt_len - offset) % (c1 + c2);
1110 uint8_t cycle = (pkt_len - offset) / (c1 + c2);
1111 nb_symbols = 8 + (n0 + 2 * cycle + 1 + (pos > (c1 - 1))) * (cr + 4);
1112 }
1113
1114 uint32_t t_payload = t_sym * nb_symbols;
1115
1116 return t_preamble + t_payload;
1117}
1118
1119#ifdef __cplusplus
1120}
1121#endif
1122
1123#endif /* NET_LORAMAC_H */
POSIX.1-2008 compliant version of the assert macro.
#define assert(cond)
abort the program if assertion is false
Definition assert.h:137
loramac_join_mode_t
LoRaMAC network join procedure type.
Definition loramac.h:672
loramac_tx_mode_t
LoRaMAC transmission mode.
Definition loramac.h:680
loramac_dr_idx_t
LoRaMAC datarate indexes.
Definition loramac.h:691
static uint32_t lora_time_on_air(size_t pkt_len, loramac_dr_idx_t dr, uint8_t cr)
Compute the time on air of a LoRa packet.
Definition loramac.h:1082
loramac_class_t
Device class.
Definition loramac.h:663
loramac_tx_pwr_idx_t
LoRaMAC transmission power indexes.
Definition loramac.h:878
@ LORAMAC_JOIN_ABP
Activation by personnalization.
Definition loramac.h:674
@ LORAMAC_JOIN_OTAA
Other-the-air activation.
Definition loramac.h:673
@ LORAMAC_TX_CNF
Confirmable transmission mode.
Definition loramac.h:681
@ LORAMAC_TX_UNCNF
Unconfirmable transmission mode.
Definition loramac.h:682
@ LORAMAC_DR_14
Definition loramac.h:858
@ LORAMAC_DR_3
Definition loramac.h:737
@ LORAMAC_DR_8
Definition loramac.h:792
@ LORAMAC_DR_2
Definition loramac.h:726
@ LORAMAC_DR_1
Definition loramac.h:715
@ LORAMAC_DR_9
Definition loramac.h:803
@ LORAMAC_DR_11
Definition loramac.h:825
@ LORAMAC_DR_6
Definition loramac.h:770
@ LORAMAC_DR_15
Definition loramac.h:869
@ LORAMAC_DR_4
Definition loramac.h:748
@ LORAMAC_DR_12
Definition loramac.h:836
@ LORAMAC_DR_13
Definition loramac.h:847
@ LORAMAC_DR_7
Definition loramac.h:781
@ LORAMAC_DR_10
Definition loramac.h:814
@ LORAMAC_DR_5
Definition loramac.h:759
@ LORAMAC_DR_0
Definition loramac.h:704
@ LORAMAC_CLASS_C
Class C device.
Definition loramac.h:666
@ LORAMAC_CLASS_B
Class B device.
Definition loramac.h:665
@ LORAMAC_CLASS_A
Class A device.
Definition loramac.h:664
@ LORAMAC_TX_PWR_6
Definition loramac.h:957
@ LORAMAC_TX_PWR_15
Definition loramac.h:1056
@ LORAMAC_TX_PWR_7
Definition loramac.h:968
@ LORAMAC_TX_PWR_13
Definition loramac.h:1034
@ LORAMAC_TX_PWR_2
Definition loramac.h:913
@ LORAMAC_TX_PWR_1
Definition loramac.h:902
@ LORAMAC_TX_PWR_11
Definition loramac.h:1012
@ LORAMAC_TX_PWR_14
Definition loramac.h:1045
@ LORAMAC_TX_PWR_3
Definition loramac.h:924
@ LORAMAC_TX_PWR_9
Definition loramac.h:990
@ LORAMAC_TX_PWR_0
Definition loramac.h:889
@ LORAMAC_TX_PWR_10
Definition loramac.h:1001
@ LORAMAC_TX_PWR_5
Definition loramac.h:946
@ LORAMAC_TX_PWR_8
Definition loramac.h:979
@ LORAMAC_TX_PWR_12
Definition loramac.h:1023
@ LORAMAC_TX_PWR_4
Definition loramac.h:935
Common macros and compiler attributes/pragmas configuration.
A LoRaMAC network channel.
Definition loramac.h:1062
uint8_t dr_max
Maximum datarate index.
Definition loramac.h:1067
uint8_t index
Channel index in defined list.
Definition loramac.h:1064
uint8_t bw
Bandwidth index.
Definition loramac.h:1065
uint8_t dcycle
Duty cycle to use on this channel (1 to 100)
Definition loramac.h:1068
uint32_t freq
Center frequency in Hz.
Definition loramac.h:1063
uint8_t dr_min
Minimum datarate index.
Definition loramac.h:1066