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 1
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 112
53 
61 typedef struct __attribute__((__packed__))
62 {
66  uint32_t format;
67 
71  uint16_t version;
72 
76  uint16_t length;
77 
79 
83 typedef struct __attribute__((__packed__))
84 {
88  uint32_t id;
89 
93  uint32_t network_address;
94 
98  uint8_t role;
99 
104 
108  uint8_t diag_interval;
109 
113  uint8_t reserved;
114 
116 
120 typedef struct __attribute__((__packed__))
121 {
125  uint8_t network_enc_key[APP_SETUP_KEY_SIZE_BYTES];
126 
130  uint8_t network_auth_key[APP_SETUP_KEY_SIZE_BYTES];
131 
135  uint8_t mgmt_enc_key[APP_SETUP_KEY_SIZE_BYTES];
136 
140  uint8_t mgmt_auth_key[APP_SETUP_KEY_SIZE_BYTES];
141 
146 
151 
156 
161 
163 
167 typedef struct __attribute__((__packed__))
168 {
172  uint8_t method;
173 
177  uint8_t num_retries;
178 
182  uint16_t timeout;
183 
187  uint8_t enc_key[APP_SETUP_KEY_SIZE_BYTES];
188 
192  uint8_t auth_key[APP_SETUP_KEY_SIZE_BYTES];
193 
198 
202  uint8_t uid_len;
203 
207  uint8_t reserved[3];
208 
210 
214 typedef struct __attribute__((__packed__))
215 {
219  uint8_t start_dualmcu;
220 
224  uint8_t no_erase_after;
225 
229  uint16_t reserved;
230 
232 
236 typedef struct __attribute__((__packed__)) app_setup
237 {
242 
247 
252 
257 
262 
263 } app_setup_t;
264 
265 #endif // APP_SETUP_INT_H
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:177
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:241
app_setup_node_t::reserved
uint8_t reserved
Definition: app_setup_int.h:113
app_setup_action_t
Actions for application setup.
Definition: app_setup_int.h:214
app_setup_provisioning_t::uid_len
uint8_t uid_len
Definition: app_setup_int.h:202
app_setup_provisioning_t::method
uint8_t method
Definition: app_setup_int.h:172
app_setup_hdr_t::format
uint32_t format
Definition: app_setup_int.h:66
app_setup::action
app_setup_action_t action
Definition: app_setup_int.h:261
app_setup_action_t::start_dualmcu
uint8_t start_dualmcu
Definition: app_setup_int.h:219
app_setup_key_mgmt_t::force_key_revocation
uint8_t force_key_revocation
Definition: app_setup_int.h:160
app_setup_node_t::id
uint32_t id
Definition: app_setup_int.h:88
app_setup::key_mgmt
app_setup_key_mgmt_t key_mgmt
Definition: app_setup_int.h:251
app_setup_key_mgmt_t
Key management configuration.
Definition: app_setup_int.h:120
app_setup_hdr_t
Application setup data header.
Definition: app_setup_int.h:61
app_setup::provisioning
app_setup_provisioning_t provisioning
Definition: app_setup_int.h:256
app_setup_node_t::network_channel
uint8_t network_channel
Definition: app_setup_int.h:103
app_setup_node_t::diag_interval
uint8_t diag_interval
Definition: app_setup_int.h:108
app_setup_hdr_t::length
uint16_t length
Definition: app_setup_int.h:76
app_setup_action_t::reserved
uint16_t reserved
Definition: app_setup_int.h:229
app_setup_node_t
Node configuration.
Definition: app_setup_int.h:83
app_setup_key_mgmt_t::enable_key_management
uint8_t enable_key_management
Definition: app_setup_int.h:155
app_setup_key_mgmt_t::network_key_pair_seq
uint8_t network_key_pair_seq
Definition: app_setup_int.h:145
app_setup_key_mgmt_t::mgmt_key_pair_seq
uint8_t mgmt_key_pair_seq
Definition: app_setup_int.h:150
app_setup::node
app_setup_node_t node
Definition: app_setup_int.h:246
app_setup_hdr_t::version
uint16_t version
Definition: app_setup_int.h:71
app_setup_provisioning_t::timeout
uint16_t timeout
Definition: app_setup_int.h:182
app_setup_provisioning_t
Provisioning configuration.
Definition: app_setup_int.h:167
app_setup_action_t::no_erase_after
uint8_t no_erase_after
Definition: app_setup_int.h:224
app_setup_node_t::network_address
uint32_t network_address
Definition: app_setup_int.h:93
app_setup
Application setup data structure.
Definition: app_setup_int.h:236
app_setup_node_t::role
uint8_t role
Definition: app_setup_int.h:98