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
9#pragma once
10
23
24#include <assert.h>
25#include <stdint.h>
26#include <stdlib.h>
27
28#include "modules.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
44#ifndef CONFIG_LORAMAC_DEV_EUI_DEFAULT
45#define CONFIG_LORAMAC_DEV_EUI_DEFAULT "0000000000000000"
46#endif
47
53#ifndef CONFIG_LORAMAC_JOIN_EUI_DEFAULT
54#define CONFIG_LORAMAC_JOIN_EUI_DEFAULT "0000000000000000"
55#endif
56
62#ifndef CONFIG_LORAMAC_APP_EUI_DEFAULT
63#define CONFIG_LORAMAC_APP_EUI_DEFAULT "0000000000000000"
64#endif
65
71#ifndef CONFIG_LORAMAC_APP_KEY_DEFAULT
72#define CONFIG_LORAMAC_APP_KEY_DEFAULT "00000000000000000000000000000000"
73#endif
74
80#ifndef CONFIG_LORAMAC_NWK_KEY_DEFAULT
81#define CONFIG_LORAMAC_NWK_KEY_DEFAULT "00000000000000000000000000000000"
82#endif
83
89#ifndef CONFIG_LORAMAC_APP_SKEY_DEFAULT
90#define CONFIG_LORAMAC_APP_SKEY_DEFAULT "00000000000000000000000000000000"
91#endif
92
98#ifndef CONFIG_LORAMAC_NWK_SKEY_DEFAULT
99#define CONFIG_LORAMAC_NWK_SKEY_DEFAULT "00000000000000000000000000000000"
100#endif
101
107#ifndef CONFIG_LORAMAC_FNWKSINT_KEY_DEFAULT
108#define CONFIG_LORAMAC_FNWKSINT_KEY_DEFAULT "00000000000000000000000000000000"
109#endif
110
116#ifndef CONFIG_LORAMAC_SNWKSINT_KEY_DEFAULT
117#define CONFIG_LORAMAC_SNWKSINT_KEY_DEFAULT "00000000000000000000000000000000"
118#endif
119
125#ifndef CONFIG_LORAMAC_NWKSENC_KEY_DEFAULT
126#define CONFIG_LORAMAC_NWKSENC_KEY_DEFAULT "00000000000000000000000000000000"
127#endif
128
132#ifndef CONFIG_LORAMAC_DEV_ADDR_DEFAULT
133#define CONFIG_LORAMAC_DEV_ADDR_DEFAULT "00000000"
134#endif
135
139#if !IS_ACTIVE(CONFIG_LORAMAC_REGION_EU_868) \
140 && !IS_ACTIVE(CONFIG_LORAMAC_REGION_IN_865)
141#define CONFIG_LORAMAC_REGION_EU_868 1
142#endif
143
156#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS_A)
157#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_A)
158#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS_B)
159#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_B)
160#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS_C)
161#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_C)
162#endif
163
164#ifndef CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS
165#define CONFIG_LORAMAC_DEFAULT_DEVICE_CLASS (LORAMAC_CLASS_A)
166#endif
167
176#ifndef CONFIG_LORAMAC_DEFAULT_NETID
177#define CONFIG_LORAMAC_DEFAULT_NETID (1U)
178#endif
179
188#ifdef DOXYGEN
189#define CONFIG_LORAMAC_DEFAULT_PRIVATE_NETWORK
190#endif
191
201#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_0)
202#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_0)
203#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_1)
204#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_1)
205#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_2)
206#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_2)
207#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_3)
208#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_3)
209#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_4)
210#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_4)
211#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_5)
212#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_5)
213#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_6)
214#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_6)
215#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_7)
216#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_7)
217#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_8)
218#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_8)
219#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_9)
220#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_9)
221#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_10)
222#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_10)
223#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_11)
224#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_11)
225#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_12)
226#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_12)
227#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_13)
228#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_13)
229#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_14)
230#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_14)
231#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_DR_15)
232#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_15)
233#endif
234
235#ifndef CONFIG_LORAMAC_DEFAULT_DR
236#define CONFIG_LORAMAC_DEFAULT_DR (LORAMAC_DR_0)
237#endif
238
245#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_0)
246#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_0)
247#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_1)
248#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_1)
249#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_2)
250#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_2)
251#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_3)
252#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_3)
253#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_4)
254#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_4)
255#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_5)
256#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_5)
257#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_6)
258#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_6)
259#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_7)
260#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_7)
261#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_8)
262#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_8)
263#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_9)
264#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_9)
265#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_10)
266#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_10)
267#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_11)
268#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_11)
269#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_12)
270#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_12)
271#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_13)
272#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_13)
273#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_14)
274#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_14)
275#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_POWER_15)
276#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_15)
277#endif
278
279#ifndef CONFIG_LORAMAC_DEFAULT_TX_POWER
280#define CONFIG_LORAMAC_DEFAULT_TX_POWER (LORAMAC_TX_PWR_1)
281#endif
282
292#ifndef CONFIG_LORAMAC_DEFAULT_TX_PORT
293#define CONFIG_LORAMAC_DEFAULT_TX_PORT (2U)
294#endif
295
304#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_MODE_CNF)
305#define CONFIG_LORAMAC_DEFAULT_TX_MODE (LORAMAC_TX_CNF)
306#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_TX_MODE_UNCNF)
307#define CONFIG_LORAMAC_DEFAULT_TX_MODE (LORAMAC_TX_UNCNF)
308#endif
309
310#ifndef CONFIG_LORAMAC_DEFAULT_TX_MODE
311#define CONFIG_LORAMAC_DEFAULT_TX_MODE (LORAMAC_TX_CNF)
312#endif
313
325#ifndef CONFIG_LORAMAC_DEFAULT_REDUNDANCY
326#define CONFIG_LORAMAC_DEFAULT_REDUNDANCY (0U)
327#endif
328
337#ifdef DOXYGEN
338#define CONFIG_LORAMAC_DEFAULT_ADR
339#endif
340
347#ifndef CONFIG_LORAMAC_DEFAULT_RETX
348#define CONFIG_LORAMAC_DEFAULT_RETX (5U)
349#endif
350
359#ifndef CONFIG_LORAMAC_DEFAULT_LINKCHK
360#define CONFIG_LORAMAC_DEFAULT_LINKCHK (0U)
361#endif
362
369#ifndef CONFIG_LORAMAC_DEFAULT_RX1_DELAY
370#define CONFIG_LORAMAC_DEFAULT_RX1_DELAY (1000U)
371#endif
372
379#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_0)
380#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_0)
381#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_1)
382#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_1)
383#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_2)
384#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_2)
385#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_3)
386#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_3)
387#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_4)
388#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_4)
389#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_5)
390#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_5)
391#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_6)
392#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_6)
393#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_7)
394#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_7)
395#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_8)
396#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_8)
397#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_9)
398#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_9)
399#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_10)
400#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_10)
401#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_11)
402#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_11)
403#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_12)
404#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_12)
405#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_13)
406#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_13)
407#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_14)
408#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_14)
409#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_RX2_DR_15)
410#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_15)
411#endif
412
413#ifndef CONFIG_LORAMAC_DEFAULT_RX2_DR
414#if IS_ACTIVE(CONFIG_LORAMAC_REGION_EU_868)
415#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_0)
416#elif IS_ACTIVE(CONFIG_LORAMAC_REGION_IN_865)
417#define CONFIG_LORAMAC_DEFAULT_RX2_DR (LORAMAC_DR_2)
418#endif
419#endif
420
424#ifndef CONFIG_LORAMAC_DEFAULT_RX2_FREQ
425#if IS_ACTIVE(CONFIG_LORAMAC_REGION_EU_868)
426#define CONFIG_LORAMAC_DEFAULT_RX2_FREQ (869525000UL)
427#elif IS_ACTIVE(CONFIG_LORAMAC_REGION_IN_865)
428#define CONFIG_LORAMAC_DEFAULT_RX2_FREQ (866550000UL)
429#endif
430#endif
431
442#if IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE_OTAA)
443#define CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE (LORAMAC_JOIN_OTAA)
444#elif IS_ACTIVE(CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE_ABP)
445#define CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE (LORAMAC_JOIN_ABP)
446#endif
447
448#ifndef CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE
449#define CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE (LORAMAC_JOIN_OTAA)
450#endif
451
459#ifndef CONFIG_LORAMAC_DEFAULT_JOIN_DELAY1
460#define CONFIG_LORAMAC_DEFAULT_JOIN_DELAY1 (5U)
461#endif
462
470#ifndef CONFIG_LORAMAC_DEFAULT_JOIN_DELAY2
471#define CONFIG_LORAMAC_DEFAULT_JOIN_DELAY2 (6U)
472#endif
473
480#ifndef CONFIG_LORAMAC_DEFAULT_MAX_FCNT_GAP
481#define CONFIG_LORAMAC_DEFAULT_MAX_FCNT_GAP (16384U)
482#endif
483
491#ifndef CONFIG_LORAMAC_DEFAULT_SYSTEM_MAX_RX_ERROR
492#define CONFIG_LORAMAC_DEFAULT_SYSTEM_MAX_RX_ERROR (50)
493#endif
494
503#ifndef CONFIG_LORAMAC_DEFAULT_MIN_RX_SYMBOLS
504#define CONFIG_LORAMAC_DEFAULT_MIN_RX_SYMBOLS (12)
505#endif
509
515#ifndef LORAMAC_DEFAULT_ADR_ACK_LIMIT
516#define LORAMAC_DEFAULT_ADR_ACK_LIMIT (64U)
517#endif
518
524#ifndef LORAMAC_DEFAULT_ADR_ACK_DELAY
525#define LORAMAC_DEFAULT_ADR_ACK_DELAY (32U)
526#endif
527
533#ifndef LORAMAC_DEFAULT_ADR_TIMEOUT
534#define LORAMAC_DEFAULT_ADR_TIMEOUT (3U)
535#endif
536
540#define LORAMAC_DEFAULT_RX2_DELAY (1000U + CONFIG_LORAMAC_DEFAULT_RX1_DELAY)
541
549#define LORAMAC_DEVEUI_LEN (8U)
550
554#define LORAMAC_DEVADDR_LEN (4U)
555
559#define LORAMAC_APPEUI_LEN (8U)
560
564#define LORAMAC_JOINEUI_LEN (8U)
565
569#define LORAMAC_APPKEY_LEN (16U)
570
574#define LORAMAC_NWKKEY_LEN (16U)
575
579#define LORAMAC_APPSKEY_LEN (16U)
580
584#define LORAMAC_NWKSKEY_LEN (16U)
585
589#define LORAMAC_FNWKSINTKEY_LEN (16U)
590
594#define LORAMAC_SNWKSINTKEY_LEN (16U)
595
599#define LORAMAC_NWKSENCKEY_LEN (16U)
600
604#define LORAMAC_JSINTKEY_LEN (16U)
605
609#define LORAMAC_JSENCKEY_LEN (16U)
610
614#define LORAMAC_JSINTKEY_LEN (16U)
615
619#define LORAMAC_PORT_MIN (1U)
620
624#define LORAMAC_PORT_MAX (223U)
625
629#define LORAMAC_APP_NONCE_LEN (3U)
630
634#define LORAMAC_JOIN_NONCE_LEN (3U)
635
639#define LORAMAC_NETWORK_ID_LEN (3U)
640
646#if defined(REGION_AU915) || defined(REGION_CN470) || defined(REGION_US915) || defined(REGION_US915_HYBRID) || defined(REGION_AS923)
647#define LORAMAC_CHANNELS_MASK_LEN (6U)
648#else
649#define LORAMAC_CHANNELS_MASK_LEN (1U)
650#endif
651
653
658
667
675
683
870
1057
1061 typedef struct {
1062 uint32_t freq;
1063 uint8_t index;
1064 uint8_t bw;
1065 uint8_t dr_min;
1066 uint8_t dr_max;
1067 uint8_t dcycle;
1069
1081static inline uint32_t lora_time_on_air(size_t pkt_len, loramac_dr_idx_t dr, uint8_t cr)
1082{
1083 assert(dr <= LORAMAC_DR_6);
1084 const uint8_t _K[6][4] = {
1085 { 0, 1, 5, 5 }, /* DR0 */
1086 { 0, 1, 4, 5 }, /* DR1 */
1087 { 1, 5, 5, 5 }, /* DR2 */
1088 { 1, 4, 5, 4 }, /* DR3 */
1089 { 1, 3, 4, 4 }, /* DR4 */
1090 { 1, 2, 4, 3 } /* DR5 */
1091 };
1092
1093 uint32_t t_sym = 1 << (15 - dr);
1094 uint32_t t_preamble = (t_sym << 3) + (t_sym << 2) + (t_sym >> 2);
1095
1096 uint8_t index = (dr < LORAMAC_DR_6) ? dr : LORAMAC_DR_5;
1097 uint8_t n0 = _K[index][0];
1098 uint32_t nb_symbols;
1099
1100 uint8_t offset = _K[index][1];
1101
1102 if (pkt_len < offset) {
1103 nb_symbols = 8 + n0 * (cr + 4);
1104 }
1105 else {
1106 uint8_t c1 = _K[index][2];
1107 uint8_t c2 = _K[index][3];
1108 uint8_t pos = (pkt_len - offset) % (c1 + c2);
1109 uint8_t cycle = (pkt_len - offset) / (c1 + c2);
1110 nb_symbols = 8 + (n0 + 2 * cycle + 1 + (pos > (c1 - 1))) * (cr + 4);
1111 }
1112
1113 uint32_t t_payload = t_sym * nb_symbols;
1114
1115 return t_preamble + t_payload;
1116}
1117
1118#ifdef __cplusplus
1119}
1120#endif
1121
POSIX.1-2008 compliant version of the assert macro.
#define assert(cond)
abort the program if assertion is false
Definition assert.h:135
loramac_join_mode_t
LoRaMAC network join procedure type.
Definition loramac.h:671
loramac_tx_mode_t
LoRaMAC transmission mode.
Definition loramac.h:679
loramac_dr_idx_t
LoRaMAC datarate indexes.
Definition loramac.h:690
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:1081
loramac_class_t
Device class.
Definition loramac.h:662
loramac_tx_pwr_idx_t
LoRaMAC transmission power indexes.
Definition loramac.h:877
@ LORAMAC_JOIN_ABP
Activation by personnalization.
Definition loramac.h:673
@ LORAMAC_JOIN_OTAA
Other-the-air activation.
Definition loramac.h:672
@ LORAMAC_TX_CNF
Confirmable transmission mode.
Definition loramac.h:680
@ LORAMAC_TX_UNCNF
Unconfirmable transmission mode.
Definition loramac.h:681
@ LORAMAC_DR_14
Definition loramac.h:857
@ LORAMAC_DR_3
Definition loramac.h:736
@ LORAMAC_DR_8
Definition loramac.h:791
@ LORAMAC_DR_2
Definition loramac.h:725
@ LORAMAC_DR_1
Definition loramac.h:714
@ LORAMAC_DR_9
Definition loramac.h:802
@ LORAMAC_DR_11
Definition loramac.h:824
@ LORAMAC_DR_6
Definition loramac.h:769
@ LORAMAC_DR_15
Definition loramac.h:868
@ LORAMAC_DR_4
Definition loramac.h:747
@ LORAMAC_DR_12
Definition loramac.h:835
@ LORAMAC_DR_13
Definition loramac.h:846
@ LORAMAC_DR_7
Definition loramac.h:780
@ LORAMAC_DR_10
Definition loramac.h:813
@ LORAMAC_DR_5
Definition loramac.h:758
@ LORAMAC_DR_0
Definition loramac.h:703
@ LORAMAC_CLASS_C
Class C device.
Definition loramac.h:665
@ LORAMAC_CLASS_B
Class B device.
Definition loramac.h:664
@ LORAMAC_CLASS_A
Class A device.
Definition loramac.h:663
@ LORAMAC_TX_PWR_6
Definition loramac.h:956
@ LORAMAC_TX_PWR_15
Definition loramac.h:1055
@ LORAMAC_TX_PWR_7
Definition loramac.h:967
@ LORAMAC_TX_PWR_13
Definition loramac.h:1033
@ LORAMAC_TX_PWR_2
Definition loramac.h:912
@ LORAMAC_TX_PWR_1
Definition loramac.h:901
@ LORAMAC_TX_PWR_11
Definition loramac.h:1011
@ LORAMAC_TX_PWR_14
Definition loramac.h:1044
@ LORAMAC_TX_PWR_3
Definition loramac.h:923
@ LORAMAC_TX_PWR_9
Definition loramac.h:989
@ LORAMAC_TX_PWR_0
Definition loramac.h:888
@ LORAMAC_TX_PWR_10
Definition loramac.h:1000
@ LORAMAC_TX_PWR_5
Definition loramac.h:945
@ LORAMAC_TX_PWR_8
Definition loramac.h:978
@ LORAMAC_TX_PWR_12
Definition loramac.h:1022
@ LORAMAC_TX_PWR_4
Definition loramac.h:934
Common macros and compiler attributes/pragmas configuration.
A LoRaMAC network channel.
Definition loramac.h:1061
uint8_t dr_max
Maximum datarate index.
Definition loramac.h:1066
uint8_t index
Channel index in defined list.
Definition loramac.h:1063
uint8_t bw
Bandwidth index.
Definition loramac.h:1064
uint8_t dcycle
Duty cycle to use on this channel (1 to 100)
Definition loramac.h:1067
uint32_t freq
Center frequency in Hz.
Definition loramac.h:1062
uint8_t dr_min
Minimum datarate index.
Definition loramac.h:1065