1 /*!
2  * \file      LoRaMacClassBConfig.h
3  *
4  * \brief     LoRa MAC Class B configuration
5  *
6  * \copyright Revised BSD License, see section \ref LICENSE.
7  *
8  * \code
9  *                ______                              _
10  *               / _____)             _              | |
11  *              ( (____  _____ ____ _| |_ _____  ____| |__
12  *               \____ \| ___ |    (_   _) ___ |/ ___)  _ \
13  *               _____) ) ____| | | || |_| ____( (___| | | |
14  *              (______/|_____)_|_|_| \__)_____)\____)_| |_|
15  *              (C)2013 Semtech
16  *
17  *               ___ _____ _   ___ _  _____ ___  ___  ___ ___
18  *              / __|_   _/_\ / __| |/ / __/ _ \| _ \/ __| __|
19  *              \__ \ | |/ _ \ (__| ' <| _| (_) |   / (__| _|
20  *              |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
21  *              embedded.connectivity.solutions===============
22  *
23  * \endcode
24  *
25  * \author    Miguel Luis ( Semtech )
26  *
27  * \author    Gregory Cristian ( Semtech )
28  *
29  * \author    Daniel Jaeckle ( STACKFORCE )
30  *
31  * \defgroup  LORAMACCLASSB LoRa MAC Class B configuration
32  *            This header file contains parameters to configure the class b operation.
33  *            By default, all parameters are set according to the specification.
34  * \{
35  */
36 #ifndef __LORAMACCLASSBCONFIG_H__
37 #define __LORAMACCLASSBCONFIG_H__
38 
39 #ifdef __cplusplus
40 extern "C"
41 {
42 #endif
43 
44 /*!
45  * Defines the beacon interval in ms
46  */
47 #define CLASSB_BEACON_INTERVAL                      128000
48 
49 /*!
50  * Beacon reserved time in ms
51  */
52 #define CLASSB_BEACON_RESERVED                      2120
53 
54 /*!
55  * Beacon guard time in ms
56  */
57 #define CLASSB_BEACON_GUARD                         3000
58 
59 /*!
60  * Beacon window time in ms
61  */
62 #define CLASSB_BEACON_WINDOW                        122880
63 
64 /*!
65  * Beacon window time in numer of slots
66  */
67 #define CLASSB_BEACON_WINDOW_SLOTS                  4096
68 
69 /*!
70  * Ping slot length time in ms
71  */
72 #define CLASSB_PING_SLOT_WINDOW                     30
73 
74 /*!
75  * Maximum allowed beacon less time in ms
76  */
77 #define CLASSB_MAX_BEACON_LESS_PERIOD               7200000
78 
79 /*!
80  * Delay time for the BeaconTimingAns in ms
81  */
82 #define CLASSB_BEACON_DELAY_BEACON_TIMING_ANS       30
83 
84 /*!
85  * Default symbol timeout for beacons and ping slot windows
86  */
87 #define CLASSB_BEACON_SYMBOL_TO_DEFAULT             8
88 
89 /*!
90  * Maximum symbol timeout for beacons
91  */
92 #define CLASSB_BEACON_SYMBOL_TO_EXPANSION_MAX       255
93 
94 /*!
95  * Maximum symbol timeout for ping slots
96  */
97 #define CLASSB_PING_SLOT_SYMBOL_TO_EXPANSION_MAX    30
98 
99 /*!
100  * Symbol expansion value for beacon windows in case of beacon
101  * loss in symbols
102  */
103 #define CLASSB_BEACON_SYMBOL_TO_EXPANSION_FACTOR    2
104 
105 /*!
106  * Defines the default window movement time
107  */
108 #define CLASSB_WINDOW_MOVE_DEFAULT                  2
109 
110 /*!
111  * Defines the maximum time for the beacon movement
112  */
113 #define CLASSB_WINDOW_MOVE_EXPANSION_MAX            256
114 
115 /*!
116  * Defines the expansion factor for the beacon movement
117  */
118 #define CLASSB_WINDOW_MOVE_EXPANSION_FACTOR         2
119 
120 #ifdef __cplusplus
121 }
122 #endif
123 
124 #endif // __LORAMACCLASSBCONFIG_H__
125