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 File Reference

This header file defines the provisioning server interface for the MeshX BLE Mesh stack. It includes data structures, enumerations, and function declarations for managing BLE Mesh provisioning operations, including node and provisioner functionalities. More...

Include dependency graph for meshx_ble_mesh_prov_srv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  meshx_prov_cb_param_t
 BLE Mesh Node/Provisioner callback parameters union. More...
 
struct  meshx_prov_cb_param_t::meshx_prov_register_comp_param
 MESHX_PROV_REGISTER_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_set_unprov_dev_name_comp_param
 MESHX_NODE_SET_UNPROV_DEV_NAME_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_prov_enable_comp_param
 MESHX_NODE_PROV_ENABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_prov_disable_comp_param
 MESHX_NODE_PROV_DISABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_link_open_evt_param
 MESHX_NODE_PROV_LINK_OPEN_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_link_close_evt_param
 MESHX_NODE_PROV_LINK_CLOSE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_output_num_evt_param
 MESHX_NODE_PROV_OUTPUT_NUMBER_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_output_str_evt_param
 MESHX_NODE_PROV_OUTPUT_STRING_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_input_evt_param
 MESHX_NODE_PROV_INPUT_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provision_complete_evt_param
 MESHX_NODE_PROV_COMPLETE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provision_reset_param
 MESHX_NODE_PROV_RESET_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_set_oob_pub_key_comp_param
 MESHX_NODE_PROV_SET_OOB_PUB_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_input_number_comp_param
 MESHX_NODE_PROV_INPUT_NUM_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_input_string_comp_param
 MESHX_NODE_PROV_INPUT_STR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_identity_enable_comp_param
 MESHX_NODE_PROXY_IDENTITY_ENABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_gatt_enable_comp_param
 MESHX_NODE_PROXY_GATT_ENABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_gatt_disable_comp_param
 MESHX_NODE_PROXY_GATT_DISABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_private_identity_enable_comp_param
 MESHX_NODE_PRIVATE_PROXY_IDENTITY_ENABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_private_identity_disable_comp_param
 MESHX_NODE_PRIVATE_PROXY_IDENTITY_DISABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_node_add_local_net_key_comp_param
 MESHX_NODE_ADD_LOCAL_NET_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_node_add_local_app_key_comp_param
 MESHX_NODE_ADD_LOCAL_APP_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_node_bind_local_mod_app_comp_param
 MESHX_NODE_BIND_APP_KEY_TO_MODEL_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_recv_unprov_adv_pkt_param
 MESHX_PROVISIONER_RECV_UNPROV_ADV_PKT_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_enable_comp_param
 MESHX_PROVISIONER_PROV_ENABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_disable_comp_param
 MESHX_PROVISIONER_PROV_DISABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_link_open_evt_param
 MESHX_PROVISIONER_PROV_LINK_OPEN_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_read_oob_pub_key_evt_param
 MESHX_PROVISIONER_PROV_READ_OOB_PUB_KEY_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_input_evt_param
 MESHX_PROVISIONER_PROV_INPUT_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_output_evt_param
 MESHX_PROVISIONER_PROV_OUTPUT_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_link_close_evt_param
 MESHX_PROVISIONER_PROV_LINK_CLOSE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_comp_param
 MESHX_PROVISIONER_PROV_COMPLETE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_cert_based_prov_start_evt_param
 MESHX_PROVISIONER_CERT_BASED_PROV_START_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_recv_prov_records_list_evt_param
 MESHX_PROVISIONER_RECV_PROV_RECORDS_LIST_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_record_recv_comp_evt_param
 MESHX_PROVISIONER_PROV_RECORD_RECV_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_send_prov_records_get_evt_param
 MESHX_PROVISIONER_SEND_PROV_RECORDS_GET_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_send_prov_record_req_evt_param
 MESHX_PROVISIONER_SEND_PROV_RECORD_REQUEST_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_send_prov_invite_evt_param
 MESHX_PROVISIONER_SEND_PROV_INVITE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_send_link_close_evt_param
 MESHX_PROVISIONER_SEND_LINK_CLOSE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_add_unprov_dev_comp_param
 MESHX_PROVISIONER_ADD_UNPROV_DEV_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_dev_with_addr_comp_param
 MESHX_PROVISIONER_PROV_DEV_WITH_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_delete_dev_comp_param
 MESHX_PROVISIONER_DELETE_DEV_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_set_dev_uuid_match_comp_param
 MESHX_PROVISIONER_SET_DEV_UUID_MATCH_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_set_prov_data_info_comp_param
 MESHX_PROVISIONER_SET_PROV_DATA_INFO_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_set_static_oob_val_comp_param
 MESHX_PROVISIONER_SET_STATIC_OOB_VALUE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_set_primary_elem_addr_comp_param
 MESHX_PROVISIONER_SET_PRIMARY_ELEM_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_read_oob_pub_key_comp_param
 MESHX_PROVISIONER_PROV_READ_OOB_PUB_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_input_num_comp_param
 MESHX_PROVISIONER_PROV_INPUT_NUMBER_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_prov_input_str_comp_param
 MESHX_PROVISIONER_PROV_INPUT_STRING_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_set_node_name_comp_param
 MESHX_PROVISIONER_SET_NODE_NAME_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_add_local_app_key_comp_param
 MESHX_PROVISIONER_ADD_LOCAL_APP_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_update_local_app_key_comp_param
 MESHX_PROVISIONER_UPDATE_LOCAL_APP_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_bind_local_mod_app_comp_param
 MESHX_PROVISIONER_BIND_APP_KEY_TO_MODEL_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_add_local_net_key_comp_param
 MESHX_PROVISIONER_ADD_LOCAL_NET_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_update_local_net_key_comp_param
 MESHX_PROVISIONER_UPDATE_LOCAL_NET_KEY_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_store_node_comp_data_comp_param
 MESHX_PROVISIONER_STORE_NODE_COMP_DATA_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_delete_node_with_uuid_comp_param
 MESHX_PROVISIONER_DELETE_NODE_WITH_UUID_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_provisioner_delete_node_with_addr_comp_param
 MESHX_PROVISIONER_DELETE_NODE_WITH_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_set_fast_prov_info_comp_param
 MESHX_SET_FAST_PROV_INFO_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_set_fast_prov_action_comp_param
 MESHX_SET_FAST_PROV_ACTION_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_heartbeat_msg_recv_param
 MESHX_HEARTBEAT_MESSAGE_RECV_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_lpn_enable_comp_param
 MESHX_LPN_ENABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_lpn_disable_comp_param
 MESHX_LPN_DISABLE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_lpn_poll_comp_param
 MESHX_LPN_POLL_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_lpn_friendship_establish_param
 MESHX_LPN_FRIENDSHIP_ESTABLISH_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_lpn_friendship_terminate_param
 MESHX_LPN_FRIENDSHIP_TERMINATE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_friend_friendship_establish_param
 MESHX_FRIEND_FRIENDSHIP_ESTABLISH_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_friend_friendship_terminate_param
 MESHX_FRIEND_FRIENDSHIP_TERMINATE_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_recv_adv_pkt_param
 MESHX_PROXY_CLIENT_RECV_ADV_PKT_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_connected_param
 MESHX_PROXY_CLIENT_CONNECTED_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_disconnected_param
 MESHX_PROXY_CLIENT_DISCONNECTED_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_recv_filter_status_param
 MESHX_PROXY_CLIENT_RECV_FILTER_STATUS_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_connect_comp_param
 MESHX_PROXY_CLIENT_CONNECT_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_disconnect_comp_param
 MESHX_PROXY_CLIENT_DISCONNECT_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_set_filter_type_comp_param
 MESHX_PROXY_CLIENT_SET_FILTER_TYPE_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_add_filter_addr_comp_param
 MESHX_PROXY_CLIENT_ADD_FILTER_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_remove_filter_addr_comp_param
 MESHX_PROXY_CLIENT_REMOVE_FILTER_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_client_directed_proxy_set_param
 MESHX_PROXY_CLIENT_DIRECTED_PROXY_CONTROL_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_server_connected_param
 MESHX_PROXY_SERVER_CONNECTED_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_proxy_server_disconnected_param
 MESHX_PROXY_SERVER_DISCONNECTED_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_model_sub_group_addr_comp_param
 MESHX_MODEL_SUBSCRIBE_GROUP_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_model_unsub_group_addr_comp_param
 MESHX_MODEL_UNSUBSCRIBE_GROUP_ADDR_COMP_EVT. More...
 
struct  meshx_prov_cb_param_t::meshx_deinit_mesh_comp_param
 MESHX_DEINIT_MESH_COMP_EVT. More...
 
struct  meshx_ble_mesh_prov_srv_param
 

Typedefs

typedef control_task_msg_handle_t prov_srv_cb_t
 
typedef control_task_msg_evt_provision_t prov_evt_t
 
typedef struct meshx_ble_mesh_prov_srv_param meshx_prov_srv_param_t
 

Enumerations

enum  meshx_prov_bearer_t {
  MESHX_PROV_ADV = MESHX_BIT(0) ,
  MESHX_PROV_GATT = MESHX_BIT(1)
}
 
enum  meshx_prov_oob_info_t {
  MESHX_PROV_OOB_OTHER = MESHX_BIT(0) ,
  MESHX_PROV_OOB_URI = MESHX_BIT(1) ,
  MESHX_PROV_OOB_2D_CODE = MESHX_BIT(2) ,
  MESHX_PROV_OOB_BAR_CODE = MESHX_BIT(3) ,
  MESHX_PROV_OOB_NFC = MESHX_BIT(4) ,
  MESHX_PROV_OOB_NUMBER = MESHX_BIT(5) ,
  MESHX_PROV_OOB_STRING = MESHX_BIT(6) ,
  MESHX_PROV_CERT_BASED = MESHX_BIT(7) ,
  MESHX_PROV_RECORDS = MESHX_BIT(8) ,
  MESHX_PROV_OOB_ON_BOX = MESHX_BIT(11) ,
  MESHX_PROV_OOB_IN_BOX = MESHX_BIT(12) ,
  MESHX_PROV_OOB_ON_PAPER = MESHX_BIT(13) ,
  MESHX_PROV_OOB_IN_MANUAL = MESHX_BIT(14) ,
  MESHX_PROV_OOB_ON_DEV = MESHX_BIT(15)
}
 

Functions

meshx_err_t meshx_prov_srv_notify_plat_event (meshx_prov_srv_param_t *param)
 Notify the model event to the application.
 
meshx_err_t meshx_plat_init_prov (const uint8_t *uuid)
 Initialize provisioning parameters.
 
meshx_ptr_t meshx_plat_get_prov (void)
 Get the provisioning parameters.
 

Detailed Description

This header file defines the provisioning server interface for the MeshX BLE Mesh stack. It includes data structures, enumerations, and function declarations for managing BLE Mesh provisioning operations, including node and provisioner functionalities.

Copyright (c) 2024 - 2025 MeshX

The file provides definitions for provisioning events, callback parameters, and provisioning bearer and OOB information types. It also includes APIs for initializing and retrieving provisioning parameters.

Author
Pranjal Chanda

Definition in file meshx_ble_mesh_prov_srv.h.

Typedef Documentation

◆ meshx_prov_srv_param_t

◆ prov_evt_t

This enum value is associated with bt_mesh_prov_bearer_t in mesh_main.h

Definition at line 24 of file meshx_ble_mesh_prov_srv.h.

◆ prov_srv_cb_t

Enumeration Type Documentation

◆ meshx_prov_bearer_t

Enumerator
MESHX_PROV_ADV MESHX_BIT(0) 
MESHX_PROV_GATT MESHX_BIT(1) 

Definition at line 27 of file meshx_ble_mesh_prov_srv.h.

◆ meshx_prov_oob_info_t

Enumerator
MESHX_PROV_OOB_OTHER MESHX_BIT(0) 
MESHX_PROV_OOB_URI MESHX_BIT(1) 
MESHX_PROV_OOB_2D_CODE MESHX_BIT(2) 
MESHX_PROV_OOB_BAR_CODE MESHX_BIT(3) 
MESHX_PROV_OOB_NFC MESHX_BIT(4) 
MESHX_PROV_OOB_NUMBER MESHX_BIT(5) 
MESHX_PROV_OOB_STRING MESHX_BIT(6) 
MESHX_PROV_CERT_BASED MESHX_BIT(7) 
MESHX_PROV_RECORDS MESHX_BIT(8) 
MESHX_PROV_OOB_ON_BOX MESHX_BIT(11) 
MESHX_PROV_OOB_IN_BOX MESHX_BIT(12) 
MESHX_PROV_OOB_ON_PAPER MESHX_BIT(13) 
MESHX_PROV_OOB_IN_MANUAL MESHX_BIT(14) 
MESHX_PROV_OOB_ON_DEV MESHX_BIT(15) 

Definition at line 34 of file meshx_ble_mesh_prov_srv.h.

35{
45 /* 9 - 10 are reserved */
@ 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

Function Documentation

◆ meshx_plat_get_prov()

meshx_ptr_t meshx_plat_get_prov ( void )

Get the provisioning parameters.

This function returns a pointer to the global provisioning parameters.

Returns
Pointer to the global provisioning parameters.

Definition at line 78 of file esp_prov_srv_model.c.

79{
81}
static MESHX_PROV g_meshx_prov
Global provisioning structure.
void * meshx_ptr_t
Here is the caller graph for this function:

◆ meshx_plat_init_prov()

meshx_err_t meshx_plat_init_prov ( const uint8_t * uuid)

Initialize provisioning parameters.

This function initializes the provisioning parameters by copying the UUID from the provided server configuration and registering the provisioning callback.

Parameters
uuidPointer to the UUID of the device.
Returns
  • MESHX_SUCCESS: Success
  • MESHX_FAIL: Failed to register provisioning callback

Definition at line 59 of file esp_prov_srv_model.c.

60{
61 if (!uuid)
62 {
63 MESHX_LOGE(MODULE_ID_MODEL_SERVER, "Invalid server configuration");
64 return MESHX_INVALID_ARG;
65 }
66 g_meshx_prov.uuid = uuid;
67
68 return esp_ble_mesh_register_prov_callback((esp_ble_mesh_prov_cb_t)meshx_provisioning_cb);
69}
static void meshx_provisioning_cb(MESHX_PROV_CB_EVT event, const MESHX_PROV_CB_PARAM *param)
Callback function for BLE Mesh provisioning events.
@ MESHX_INVALID_ARG
Definition meshx_err.h:42
#define MESHX_LOGE(module_id, format,...)
Definition meshx_log.h:73
@ MODULE_ID_MODEL_SERVER
Definition module_id.h:30
Here is the call graph for this function:
Here is the caller graph for this function:

◆ meshx_prov_srv_notify_plat_event()

meshx_err_t meshx_prov_srv_notify_plat_event ( meshx_prov_srv_param_t * param)

Notify the model event to the application.

Note
This API is not to be defined in Platform Port layer and shall be called by the respective platform event handler to notify the MeshX of a model event.

This function notifies the application of a model event by invoking the registered provisioning callback with the provided event parameters.

Parameters
[in]paramPointer to the event parameters structure.
Returns
  • MESHX_SUCCESS: Success
  • MESHX_FAIL: Failed to notify model event

Definition at line 402 of file meshx_prov_srv.c.

403{
404 if (!param)
405 {
406 return MESHX_INVALID_ARG;
407 }
408
412 param,
414 );
415}
struct meshx_ble_mesh_prov_srv_param meshx_prov_srv_param_t
@ CONTROL_TASK_MSG_CODE_FRM_BLE
meshx_err_t control_task_msg_publish(control_task_msg_code_t msg_code, control_task_msg_evt_t msg_evt, const void *msg_evt_params, size_t sizeof_msg_evt_params)
Publish a control task message.
CONTROL_TASK_MSG_EVT_PROVISION_ALL
Here is the call graph for this function:
Here is the caller graph for this function: