Wirepas SDK
app_setup_int.h
Go to the documentation of this file.
1 /* Copyright 2025 Wirepas Ltd. All Rights Reserved.
2  *
3  * See file LICENSE.txt for full license details.
4  *
5  */
6 #ifndef APP_SETUP_INT_H
7 #define APP_SETUP_INT_H
8 
32 #define APP_SETUP_FORMAT 0xabb5e70b
33 
37 #define APP_SETUP_VERSION 2
38 
42 #define APP_SETUP_CLEAR_BYTE 0xff
43 
47 #define APP_SETUP_KEY_SIZE_BYTES 16
48 
52 #define APP_SETUP_PROV_UID_MAX_SIZE_BYTES 79
53 
57 #define APP_SETUP_AUTH_UID_SIZE_BYTES 16
58 
66 typedef struct __attribute__((__packed__))
67 {
71  uint32_t format;
72 
76  uint16_t version;
77 
81  uint16_t length;
82 
84 
88 typedef struct __attribute__((__packed__))
89 {
93  uint32_t id;
94 
98  uint8_t role;
102  uint16_t diag_interval;
103 
104  uint8_t reserved;
105 
107 
111 typedef struct __attribute__((__packed__))
112 {
113 
117  uint32_t network_address;
118 
123 
128 
133 
134  uint8_t reserved;
135 
139  uint8_t network_enc_key[APP_SETUP_KEY_SIZE_BYTES];
140 
144  uint8_t network_auth_key[APP_SETUP_KEY_SIZE_BYTES];
145 
149  uint8_t mgmt_enc_key[APP_SETUP_KEY_SIZE_BYTES];
150 
154  uint8_t mgmt_auth_key[APP_SETUP_KEY_SIZE_BYTES];
155 
157 
161 typedef struct __attribute__((__packed__))
162 {
166  uint8_t method;
167 
171  uint8_t num_retries;
172 
176  uint16_t timeout;
177 
181  uint8_t enc_key[APP_SETUP_KEY_SIZE_BYTES];
182 
186  uint8_t auth_key[APP_SETUP_KEY_SIZE_BYTES];
187 
192 
196  uint8_t prov_uid_len;
197 
199 
203 typedef struct __attribute__((__packed__))
204 {
208  uint8_t start_dualmcu;
209 
213  uint8_t preserve_data;
214 
218  uint16_t reserved;
219 
221 
225 typedef struct __attribute__((__packed__)) app_setup
226 {
231 
236 
241 
246 
251 
252 } app_setup_t;
253 
254 #endif // APP_SETUP_INT_H
app_setup_network_t
Key management configuration.
Definition: app_setup_int.h:111
APP_SETUP_PROV_UID_MAX_SIZE_BYTES
#define APP_SETUP_PROV_UID_MAX_SIZE_BYTES
Maximum size of provisioning UID.
Definition: app_setup_int.h:52
app_setup_provisioning_t::num_retries
uint8_t num_retries
Definition: app_setup_int.h:171
APP_SETUP_KEY_SIZE_BYTES
#define APP_SETUP_KEY_SIZE_BYTES
All security keys are 16 bytes long.
Definition: app_setup_int.h:47
app_setup::header
app_setup_hdr_t header
Definition: app_setup_int.h:230
app_setup_node_t::reserved
uint8_t reserved
Definition: app_setup_int.h:104
app_setup_action_t
Actions for application setup.
Definition: app_setup_int.h:203
app_setup_provisioning_t::method
uint8_t method
Definition: app_setup_int.h:166
app_setup_hdr_t::format
uint32_t format
Definition: app_setup_int.h:71
app_setup::action
app_setup_action_t action
Definition: app_setup_int.h:250
app_setup_node_t::diag_interval
uint16_t diag_interval
Definition: app_setup_int.h:102
app_setup_action_t::start_dualmcu
uint8_t start_dualmcu
Definition: app_setup_int.h:208
app_setup_node_t::id
uint32_t id
Definition: app_setup_int.h:93
app_setup_hdr_t
Application setup data header.
Definition: app_setup_int.h:66
app_setup::provisioning
app_setup_provisioning_t provisioning
Definition: app_setup_int.h:245
app_setup_action_t::preserve_data
uint8_t preserve_data
Definition: app_setup_int.h:213
app_setup_network_t::network_channel
uint8_t network_channel
Definition: app_setup_int.h:122
app_setup_hdr_t::length
uint16_t length
Definition: app_setup_int.h:81
app_setup_action_t::reserved
uint16_t reserved
Definition: app_setup_int.h:218
app_setup_node_t
Node configuration.
Definition: app_setup_int.h:88
app_setup_network_t::network_key_pair_seq
uint8_t network_key_pair_seq
Definition: app_setup_int.h:127
app_setup_network_t::mgmt_key_pair_seq
uint8_t mgmt_key_pair_seq
Definition: app_setup_int.h:132
app_setup::node
app_setup_node_t node
Definition: app_setup_int.h:235
app_setup_hdr_t::version
uint16_t version
Definition: app_setup_int.h:76
app_setup_provisioning_t::prov_uid_len
uint8_t prov_uid_len
Definition: app_setup_int.h:196
app_setup_provisioning_t::timeout
uint16_t timeout
Definition: app_setup_int.h:176
app_setup_provisioning_t
Provisioning configuration.
Definition: app_setup_int.h:161
app_setup_network_t::network_address
uint32_t network_address
Definition: app_setup_int.h:117
app_setup
Application setup data structure.
Definition: app_setup_int.h:225
app_setup_node_t::role
uint8_t role
Definition: app_setup_int.h:98
app_setup::network
app_setup_network_t network
Definition: app_setup_int.h:240