MeshX 0.3
This repository provides an implementation for Bluetooth Low Energy (BLE) Mesh network nodes. The project allows you to create BLE mesh nodes that can communicate with each other, enabling the development of smart home solutions or other IoT-based applications.
Loading...
Searching...
No Matches
meshx_ble_mesh_prov_srv.h
Go to the documentation of this file.
1
16
17#ifndef __MESHX_BLE_MESH_PROV_SRV_H__
18#define __MESHX_BLE_MESH_PROV_SRV_H__
19
21#include "meshx_control_task.h"
22
25
32
52
56typedef union
57{
62 {
64 } prov_register_comp;
69 {
71 } node_set_unprov_dev_name_comp;
76 {
78 } node_prov_enable_comp;
83 {
85 } node_prov_disable_comp;
90 {
92 } node_prov_link_open;
97 {
99 uint8_t reason;
100 } node_prov_link_close;
105 {
107 uint32_t number;
108 } node_prov_output_num;
113 {
114 char string[8];
115 } node_prov_output_str;
120 {
122 uint8_t size;
123 } node_prov_input;
128 {
129 uint16_t net_idx;
130 uint8_t net_key[16];
131 uint16_t addr;
132 uint8_t flags;
133 uint32_t iv_index;
134 } node_prov_complete;
139 {
140
141 } node_prov_reset;
146 {
148 } node_prov_set_oob_pub_key_comp;
153 {
155 } node_prov_input_num_comp;
160 {
162 } node_prov_input_str_comp;
167 {
169 } node_proxy_identity_enable_comp;
174 {
176 } node_proxy_gatt_enable_comp;
181 {
183 } node_proxy_gatt_disable_comp;
188 {
190 } node_private_proxy_identity_enable_comp;
195 {
197 } node_private_proxy_identity_disable_comp;
202 {
204 uint16_t net_idx;
205 } node_add_net_key_comp;
210 {
212 uint16_t net_idx;
213 uint16_t app_idx;
214 } node_add_app_key_comp;
219 {
221 uint16_t element_addr;
222 uint16_t app_idx;
223 uint16_t company_id;
224 uint16_t model_id;
225 } node_bind_app_key_to_model_comp;
243 {
245 } provisioner_prov_enable_comp;
250 {
252 } provisioner_prov_disable_comp;
264 {
265 uint8_t link_idx;
266 } provisioner_prov_read_oob_pub_key;
281 {
284 uint8_t size;
285 uint8_t link_idx;
287 union
288 {
289 char string[8];
290 uint32_t number;
291 };
292 } provisioner_prov_output;
297 {
299 uint8_t reason;
300 } provisioner_prov_link_close;
305 {
306 uint16_t node_idx;
307 uint8_t device_uuid[16];
308 uint16_t unicast_addr;
309 uint8_t element_num;
310 uint16_t netkey_idx;
311 } provisioner_prov_complete;
316 {
317 uint16_t link_idx;
318 } provisioner_cert_based_prov_start;
323 {
324 uint16_t link_idx;
325 uint16_t len;
326 uint8_t *msg;
327 } recv_provisioner_records_list;
332 {
333 uint8_t status;
334 uint16_t link_idx;
335 uint16_t record_id;
336 uint16_t frag_offset;
337 uint16_t total_len;
338 uint8_t *record;
339 } provisioner_prov_record_recv_comp;
344 {
346 uint16_t link_idx;
347 } provisioner_send_records_get;
352 {
354 uint16_t link_idx;
355 uint16_t record_id;
356 uint16_t frag_offset;
357 uint16_t max_size;
358 } provisioner_send_record_req;
363 {
364 uint16_t link_idx;
366 } provisioner_send_prov_invite;
371 {
372 uint16_t link_idx;
374 } provisioner_send_link_close;
379 {
381 } provisioner_add_unprov_dev_comp;
386 {
388 } provisioner_prov_dev_with_addr_comp;
393 {
395 } provisioner_delete_dev_comp;
400 {
402 } provisioner_set_dev_uuid_match_comp;
407 {
409 } provisioner_set_prov_data_info_comp;
414 {
416 } provisioner_set_static_oob_val_comp;
421 {
423 } provisioner_set_primary_elem_addr_comp;
428 {
430 } provisioner_prov_read_oob_pub_key_comp;
435 {
437 } provisioner_prov_input_num_comp;
442 {
444 } provisioner_prov_input_str_comp;
449 {
451 uint16_t node_index;
452 } provisioner_set_node_name_comp;
457 {
459 uint16_t net_idx;
460 uint16_t app_idx;
461 } provisioner_add_app_key_comp;
466 {
468 uint16_t net_idx;
469 uint16_t app_idx;
470 } provisioner_update_app_key_comp;
475 {
477 uint16_t element_addr;
478 uint16_t app_idx;
479 uint16_t company_id;
480 uint16_t model_id;
481 } provisioner_bind_app_key_to_model_comp;
486 {
488 uint16_t net_idx;
489 } provisioner_add_net_key_comp;
494 {
496 uint16_t net_idx;
497 } provisioner_update_net_key_comp;
502 {
504 uint16_t addr;
505 } provisioner_store_node_comp_data_comp;
510 {
512 uint8_t uuid[16];
513 } provisioner_delete_node_with_uuid_comp;
518 {
520 uint16_t unicast_addr;
521 } provisioner_delete_node_with_addr_comp;
525 struct
526 {
528 bool enable;
529 } provisioner_enable_heartbeat_recv_comp;
533 struct
534 {
535 int err_code;
536 uint8_t type;
537 } provisioner_set_heartbeat_filter_type_comp;
541 struct
542 {
543 int err_code;
544 uint8_t op;
545 uint16_t hb_src;
546 uint16_t hb_dst;
547 } provisioner_set_heartbeat_filter_info_comp;
551 struct
552 {
553 uint16_t hb_src;
554 uint16_t hb_dst;
555 uint8_t init_ttl;
556 uint8_t rx_ttl;
557 uint8_t hops;
558 uint16_t feature;
559 int8_t rssi;
560 } provisioner_recv_heartbeat;
564 struct
565 {
566 int err_code;
567 } provisioner_direct_erase_settings_comp;
571 struct
572 {
573 int err_code;
574 uint8_t index;
575 } provisioner_open_settings_with_index_comp;
579 struct
580 {
581 int err_code;
582 uint8_t index;
584 } provisioner_open_settings_with_uid_comp;
588 struct
589 {
590 int err_code;
591 uint8_t index;
592 } provisioner_close_settings_with_index_comp;
596 struct
597 {
598 int err_code;
599 uint8_t index;
600 char uid[MESHX_SETTINGS_UID_SIZE + 1];
601 } provisioner_close_settings_with_uid_comp;
605 struct
606 {
607 int err_code;
608 uint8_t index;
609 } provisioner_delete_settings_with_index_comp;
613 struct
614 {
615 int err_code;
616 uint8_t index;
617 char uid[MESHX_SETTINGS_UID_SIZE + 1];
618 } provisioner_delete_settings_with_uid_comp;
623 {
626 uint8_t status_match;
627 } set_fast_prov_info_comp;
632 {
634 } set_fast_prov_action_comp;
639 {
640 uint8_t hops;
641 uint16_t feature;
642 } heartbeat_msg_recv;
647 {
649 } lpn_enable_comp;
654 {
656 } lpn_disable_comp;
661 {
663 } lpn_poll_comp;
668 {
669 uint16_t friend_addr;
670 } lpn_friendship_establish;
675 {
676 uint16_t friend_addr;
677 } lpn_friendship_terminate;
682 {
683 uint16_t lpn_addr;
684 } frnd_friendship_establish;
737 {
738 uint8_t conn_handle;
739 uint16_t server_addr;
740 uint16_t net_idx;
741 uint8_t filter_type;
742 uint16_t list_size;
743 } proxy_client_recv_filter_status;
758 {
760 uint8_t conn_handle;
761 } proxy_client_disconnect_comp;
766 {
768 uint8_t conn_handle;
769 uint16_t net_idx;
770 } proxy_client_set_filter_type_comp;
775 {
777 uint8_t conn_handle;
778 uint16_t net_idx;
779 } proxy_client_add_filter_addr_comp;
784 {
786 uint8_t conn_handle;
787 uint16_t net_idx;
788 } proxy_client_remove_filter_addr_comp;
793 {
795 uint8_t conn_handle;
796 uint16_t net_idx;
797 } proxy_client_directed_proxy_set_comp;
802 {
803 uint8_t conn_handle;
804 } proxy_server_connected;
809 {
810 uint8_t conn_handle;
811 uint8_t reason;
812 } proxy_server_disconnected;
816 struct
817 {
818 int err_code;
819 uint16_t net_idx;
820 uint16_t ssrc;
821 uint16_t dst;
822 } proxy_client_send_solic_pdu_comp;
827 {
829 uint16_t element_addr;
830 uint16_t company_id;
831 uint16_t model_id;
832 uint16_t group_addr;
833 } model_sub_group_addr_comp;
838 {
840 uint16_t element_addr;
841 uint16_t company_id;
842 uint16_t model_id;
843 uint16_t group_addr;
844 } model_unsub_group_addr_comp;
849 {
851 } deinit_mesh_comp;
853
859
876
889meshx_err_t meshx_plat_init_prov(const uint8_t *uuid);
890
899
900#endif /* __MESHX_BLE_MESH_PROV_SRV_H__ */
Common BLE Mesh interface definitions and utility functions.
#define MESHX_SETTINGS_UID_SIZE
void * meshx_ptr_t
unsigned char meshx_addr_type_t
#define MESHX_BIT(nr)
uint8_t meshx_bd_addr_t[MESHX_BD_ADDR_LEN]
meshx_err_t meshx_plat_init_prov(const uint8_t *uuid)
Initialize provisioning parameters.
control_task_msg_evt_provision_t prov_evt_t
struct meshx_ble_mesh_prov_srv_param meshx_prov_srv_param_t
meshx_ptr_t meshx_plat_get_prov(void)
Get the provisioning parameters.
control_task_msg_handle_t prov_srv_cb_t
meshx_err_t meshx_prov_srv_notify_plat_event(meshx_prov_srv_param_t *param)
Notify the model event to the application.
@ MESHX_PROV_CERT_BASED
@ MESHX_PROV_OOB_OTHER
@ MESHX_PROV_OOB_2D_CODE
@ MESHX_PROV_RECORDS
@ MESHX_PROV_OOB_ON_BOX
@ MESHX_PROV_OOB_IN_BOX
@ MESHX_PROV_OOB_ON_DEV
@ MESHX_PROV_OOB_NUMBER
@ MESHX_PROV_OOB_NFC
@ MESHX_PROV_OOB_STRING
@ MESHX_PROV_OOB_BAR_CODE
@ MESHX_PROV_OOB_IN_MANUAL
@ MESHX_PROV_OOB_URI
@ MESHX_PROV_OOB_ON_PAPER
Header file for the control task in the BLE mesh node application.
meshx_err_t(* control_task_msg_handle_t)(dev_struct_t *pdev, control_task_msg_evt_t evt, void *params)
Function pointer type for control task message handler.
enum __packed control_task_msg_evt_provision control_task_msg_evt_provision_t
Enumeration for control task provisioning events.
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:39
BLE Mesh Node/Provisioner callback parameters union.
char uid[MESHX_SETTINGS_UID_SIZE+1]