@@ -68,6 +68,14 @@ typedef uint8_t esp_ble_mesh_octet8_t[ESP_BLE_MESH_OCTET8_LEN];
68
68
#define ESP_BLE_MESH_KEY_PRIMARY 0x0000
69
69
#define ESP_BLE_MESH_KEY_ANY 0xFFFF
70
70
71
+ /*!< Internal macros used to initialize array members */
72
+ #define ESP_BLE_MESH_KEY_UNUSED_ELT_ (IDX , _ ) ESP_BLE_MESH_KEY_UNUSED
73
+ #define ESP_BLE_MESH_ADDR_UNASSIGNED_ELT_ (IDX , _ ) ESP_BLE_MESH_ADDR_UNASSIGNED
74
+ #define ESP_BLE_MESH_MODEL_KEYS_UNUSED \
75
+ { LISTIFY(CONFIG_BLE_MESH_MODEL_KEY_COUNT, ESP_BLE_MESH_KEY_UNUSED_ELT_, (,)) }
76
+ #define ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED \
77
+ { LISTIFY(CONFIG_BLE_MESH_MODEL_GROUP_COUNT, ESP_BLE_MESH_ADDR_UNASSIGNED_ELT_, (,)) }
78
+
71
79
/*!< Primary Network Key index */
72
80
#define ESP_BLE_MESH_NET_PRIMARY 0x000
73
81
@@ -264,26 +272,24 @@ typedef enum {
264
272
#define ESP_BLE_MESH_SIG_MODEL (_id , _op , _pub , _user_data ) \
265
273
{ \
266
274
.model_id = (_id), \
267
- .op = _op, \
268
- .keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
269
- ESP_BLE_MESH_KEY_UNUSED }, \
270
275
.pub = _pub, \
271
- .groups = { [0 ... (CONFIG_BLE_MESH_MODEL_GROUP_COUNT - 1)] = \
272
- ESP_BLE_MESH_ADDR_UNASSIGNED }, \
276
+ .keys = ESP_BLE_MESH_MODEL_KEYS_UNUSED, \
277
+ .groups = ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED, \
278
+ .op = _op, \
273
279
.user_data = _user_data, \
274
280
}
275
281
276
282
/*!< This macro is associated with BLE_MESH_MODEL_VND_CB in mesh_access.h */
277
283
#define ESP_BLE_MESH_VENDOR_MODEL (_company , _id , _op , _pub , _user_data ) \
278
284
{ \
279
- .vnd.company_id = (_company), \
280
- .vnd.model_id = (_id), \
281
- .op = _op, \
285
+ .vnd = { \
286
+ .company_id = (_company), \
287
+ .model_id = (_id), \
288
+ }, \
282
289
.pub = _pub, \
283
- .keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
284
- ESP_BLE_MESH_KEY_UNUSED }, \
285
- .groups = { [0 ... (CONFIG_BLE_MESH_MODEL_GROUP_COUNT - 1)] = \
286
- ESP_BLE_MESH_ADDR_UNASSIGNED }, \
290
+ .keys = ESP_BLE_MESH_MODEL_KEYS_UNUSED, \
291
+ .groups = ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED, \
292
+ .op = _op, \
287
293
.user_data = _user_data, \
288
294
}
289
295
@@ -302,8 +308,8 @@ typedef enum {
302
308
{ \
303
309
.location = (_loc), \
304
310
.sig_model_count = ARRAY_SIZE(_mods), \
305
- .sig_models = (_mods), \
306
311
.vnd_model_count = ARRAY_SIZE(_vnd_mods), \
312
+ .sig_models = (_mods), \
307
313
.vnd_models = (_vnd_mods), \
308
314
}
309
315
@@ -416,8 +422,8 @@ typedef struct {
416
422
#define ESP_BLE_MESH_MODEL_PUB_DEFINE (_name , _msg_len , _role ) \
417
423
NET_BUF_SIMPLE_DEFINE_STATIC(bt_mesh_pub_msg_##_name, _msg_len); \
418
424
static esp_ble_mesh_model_pub_t _name = { \
419
- .update = (uint32_t)NULL, \
420
425
.msg = &bt_mesh_pub_msg_##_name, \
426
+ .update = (uint32_t)NULL, \
421
427
.dev_role = _role, \
422
428
}
423
429
0 commit comments