Currently only keep func pointer for the followings: - Invalid parameter (mesh btc & mesh stack) - Out of memory (mesh btc & mesh stack) - Unknown act (mesh btc) - Invalid model user data (mesh stack) - BT_DBG("%s", __func__) (mesh btc & mesh stack) - A few other specific situations (buf ref debug, send status check)
826 lines
41 KiB
C
826 lines
41 KiB
C
// Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef _ESP_BLE_MESH_CONFIG_MODEL_API_H_
|
|
#define _ESP_BLE_MESH_CONFIG_MODEL_API_H_
|
|
|
|
#include "esp_ble_mesh_defs.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** @def ESP_BLE_MESH_MODEL_CFG_SRV
|
|
*
|
|
* @brief Define a new Config Server Model.
|
|
*
|
|
* @note The Config Server Model can only be included by a Primary Element.
|
|
*
|
|
* @param srv_data Pointer to a unique Config Server Model user_data.
|
|
*
|
|
* @return New Config Server Model instance.
|
|
*/
|
|
#define ESP_BLE_MESH_MODEL_CFG_SRV(srv_data) \
|
|
ESP_BLE_MESH_SIG_MODEL(ESP_BLE_MESH_MODEL_ID_CONFIG_SRV, \
|
|
NULL, NULL, srv_data)
|
|
|
|
/** @def ESP_BLE_MESH_MODEL_CFG_CLI
|
|
*
|
|
* @brief Define a new Config Client Model.
|
|
*
|
|
* @note The Config Client Model can only be included by a Primary Element.
|
|
*
|
|
* @param cli_data Pointer to a unique struct esp_ble_mesh_client_t.
|
|
*
|
|
* @return New Config Client Model instance.
|
|
*/
|
|
#define ESP_BLE_MESH_MODEL_CFG_CLI(cli_data) \
|
|
ESP_BLE_MESH_SIG_MODEL(ESP_BLE_MESH_MODEL_ID_CONFIG_CLI, \
|
|
NULL, NULL, cli_data)
|
|
|
|
/** Configuration Server Model context */
|
|
typedef struct esp_ble_mesh_cfg_srv {
|
|
esp_ble_mesh_model_t *model; /*!< Pointer to Configuration Server Model */
|
|
|
|
uint8_t net_transmit; /*!< Network Transmit state */
|
|
uint8_t relay; /*!< Relay Mode state */
|
|
uint8_t relay_retransmit; /*!< Relay Retransmit state */
|
|
uint8_t beacon; /*!< Secure Network Beacon state */
|
|
uint8_t gatt_proxy; /*!< GATT Proxy state */
|
|
uint8_t friend_state; /*!< Friend state */
|
|
uint8_t default_ttl; /*!< Default TTL */
|
|
|
|
/** Heartbeat Publication */
|
|
struct {
|
|
struct k_delayed_work timer; /*!< Heartbeat Publication timer */
|
|
|
|
uint16_t dst; /*!< Destination address for Heartbeat messages */
|
|
uint16_t count; /*!< Number of Heartbeat messages to be sent */
|
|
uint8_t period; /*!< Period for sending Heartbeat messages */
|
|
uint8_t ttl; /*!< TTL to be used when sending Heartbeat messages */
|
|
uint16_t feature; /*!< Bit field indicating features that trigger Heartbeat messages when changed */
|
|
uint16_t net_idx; /*!< NetKey Index used by Heartbeat Publication */
|
|
} heartbeat_pub;
|
|
|
|
/** Heartbeat Subscription */
|
|
struct {
|
|
int64_t expiry; /*!< Timestamp when Heartbeat subscription period is expired */
|
|
|
|
uint16_t src; /*!< Source address for Heartbeat messages */
|
|
uint16_t dst; /*!< Destination address for Heartbeat messages */
|
|
uint16_t count; /*!< Number of Heartbeat messages received */
|
|
uint8_t min_hops; /*!< Minimum hops when receiving Heartbeat messages */
|
|
uint8_t max_hops; /*!< Maximum hops when receiving Heartbeat messages */
|
|
|
|
/** Optional heartbeat subscription tracking function */
|
|
esp_ble_mesh_cb_t heartbeat_recv_cb;
|
|
} heartbeat_sub;
|
|
} esp_ble_mesh_cfg_srv_t;
|
|
|
|
/** Parameters of Config Composition Data Get. */
|
|
typedef struct {
|
|
uint8_t page; /*!< Page number of the Composition Data. */
|
|
} esp_ble_mesh_cfg_composition_data_get_t;
|
|
|
|
/** Parameters of Config Model Publication Get. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_pub_get_t;
|
|
|
|
/** Parameters of Config SIG Model Subscription Get. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_id; /*!< The model id */
|
|
} esp_ble_mesh_cfg_sig_model_sub_get_t;
|
|
|
|
/** Parameters of Config Vendor Model Subscription Get. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_vnd_model_sub_get_t;
|
|
|
|
/** Parameters of Config AppKey Get. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
} esp_ble_mesh_cfg_app_key_get_t;
|
|
|
|
/** Parameters of Config Node Identity Get. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
} esp_ble_mesh_cfg_node_identity_get_t;
|
|
|
|
/** Parameters of Config SIG Model App Get. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_id; /*!< The model id */
|
|
} esp_ble_mesh_cfg_sig_model_app_get_t;
|
|
|
|
/** Parameters of Config Vendor Model App Get. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_vnd_model_app_get_t;
|
|
|
|
/** Parameters of Config Key Refresh Phase Get. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
} esp_ble_mesh_cfg_kr_phase_get_t;
|
|
|
|
/** Parameters of Config Low Power Node PollTimeout Get. */
|
|
typedef struct {
|
|
uint16_t lpn_addr; /*!< The unicast address of the Low Power node */
|
|
} esp_ble_mesh_cfg_lpn_polltimeout_get_t;
|
|
|
|
/** Parameters of Config Beacon Set. */
|
|
typedef struct {
|
|
uint8_t beacon; /*!< New Secure Network Beacon state */
|
|
} esp_ble_mesh_cfg_beacon_set_t;
|
|
|
|
/** Parameters of Config Default TTL Set. */
|
|
typedef struct {
|
|
uint8_t ttl; /*!< The default TTL state value */
|
|
} esp_ble_mesh_cfg_default_ttl_set_t;
|
|
|
|
/** Parameters of Config Friend Set. */
|
|
typedef struct {
|
|
uint8_t friend_state; /*!< The friend state value */
|
|
} esp_ble_mesh_cfg_friend_set_t;
|
|
|
|
/** Parameters of Config GATT Proxy Set. */
|
|
typedef struct {
|
|
uint8_t gatt_proxy; /*!< The GATT Proxy state value */
|
|
} esp_ble_mesh_cfg_gatt_proxy_set_t;
|
|
|
|
/** Parameters of Config Relay Set. */
|
|
typedef struct {
|
|
uint8_t relay; /*!< The relay value */
|
|
uint8_t relay_retransmit; /*!< The relay retransmit value */
|
|
} esp_ble_mesh_cfg_relay_set_t;
|
|
|
|
/** Parameters of Config NetKey Add. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint8_t net_key[16]; /*!< The network key value */
|
|
} esp_ble_mesh_cfg_net_key_add_t;
|
|
|
|
/** Parameters of Config AppKey Add. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint16_t app_idx; /*!< The app key index */
|
|
uint8_t app_key[16]; /*!< The app key value */
|
|
} esp_ble_mesh_cfg_app_key_add_t;
|
|
|
|
/** Parameters of Config Model App Bind. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_app_idx; /*!< Index of the app key to bind with the model */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_app_bind_t;
|
|
|
|
/** Parameters of Config Model Publication Set. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t publish_addr; /*!< Value of the publish address */
|
|
uint16_t publish_app_idx; /*!< Index of the application key */
|
|
bool cred_flag; /*!< Value of the Friendship Credential Flag */
|
|
uint8_t publish_ttl; /*!< Default TTL value for the publishing messages */
|
|
uint8_t publish_period; /*!< Period for periodic status publishing */
|
|
uint8_t publish_retransmit; /*!< Number of retransmissions and number of 50-millisecond steps between retransmissions */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_pub_set_t;
|
|
|
|
/** Parameters of Config Model Subscription Add. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t sub_addr; /*!< The address to be added to the Subscription List */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_add_t;
|
|
|
|
/** Parameters of Config Model Subscription Delete. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t sub_addr; /*!< The address to be removed from the Subscription List */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_delete_t;
|
|
|
|
/** Parameters of Config Model Subscription Overwrite. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t sub_addr; /*!< The address to be added to the Subscription List */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_overwrite_t;
|
|
|
|
/** Parameters of Config Model Subscription Virtual Address Add. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint8_t label_uuid[16]; /*!< The Label UUID of the virtual address to be added to the Subscription List */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_va_add_t;
|
|
|
|
/** Parameters of Config Model Subscription Virtual Address Delete. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint8_t label_uuid[16]; /*!< The Label UUID of the virtual address to be removed from the Subscription List */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_va_delete_t;
|
|
|
|
/** Parameters of Config Model Subscription Virtual Address Overwrite. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint8_t label_uuid[16]; /*!< The Label UUID of the virtual address to be added to the Subscription List */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_va_overwrite_t;
|
|
|
|
/** Parameters of Config Model Publication Virtual Address Set. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint8_t label_uuid[16]; /*!< Value of the Label UUID publish address */
|
|
uint16_t publish_app_idx; /*!< Index of the application key */
|
|
bool cred_flag; /*!< Value of the Friendship Credential Flag */
|
|
uint8_t publish_ttl; /*!< Default TTL value for the publishing messages */
|
|
uint8_t publish_period; /*!< Period for periodic status publishing */
|
|
uint8_t publish_retransmit; /*!< Number of retransmissions and number of 50-millisecond steps between retransmissions */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_pub_va_set_t;
|
|
|
|
/** Parameters of Config Model Subscription Delete All. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_sub_delete_all_t;
|
|
|
|
/** Parameters of Config NetKey Update. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint8_t net_key[16]; /*!< The network key value */
|
|
} esp_ble_mesh_cfg_net_key_update_t;
|
|
|
|
/** Parameters of Config NetKey Delete. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
} esp_ble_mesh_cfg_net_key_delete_t;
|
|
|
|
/** Parameters of Config AppKey Update. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint16_t app_idx; /*!< The app key index */
|
|
uint8_t app_key[16]; /*!< The app key value */
|
|
} esp_ble_mesh_cfg_app_key_update_t;
|
|
|
|
/** Parameters of Config AppKey Delete. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint16_t app_idx; /*!< The app key index */
|
|
} esp_ble_mesh_cfg_app_key_delete_t;
|
|
|
|
/** Parameters of Config Node Identity Set. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint8_t identity; /*!< New Node Identity state */
|
|
} esp_ble_mesh_cfg_node_identity_set_t;
|
|
|
|
/** Parameters of Config Model App Unbind. */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< The element address */
|
|
uint16_t model_app_idx; /*!< Index of the app key to bind with the model */
|
|
uint16_t model_id; /*!< The model id */
|
|
uint16_t company_id; /*!< The company id, if not a vendor model, shall set to 0xFFFF */
|
|
} esp_ble_mesh_cfg_model_app_unbind_t;
|
|
|
|
/** Parameters of Config Key Refresh Phase Set. */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< The network key index */
|
|
uint8_t transition; /*!< New Key Refresh Phase Transition */
|
|
} esp_ble_mesh_cfg_kr_phase_set_t;
|
|
|
|
/** Parameters of Config Network Transmit Set. */
|
|
typedef struct {
|
|
uint8_t net_transmit; /*!< Network Transmit State */
|
|
} esp_ble_mesh_cfg_net_transmit_set_t;
|
|
|
|
/** Parameters of Config Model Heartbeat Publication Set. */
|
|
typedef struct {
|
|
uint16_t dst; /*!< Destination address for Heartbeat messages */
|
|
uint8_t count; /*!< Number of Heartbeat messages to be sent */
|
|
uint8_t period; /*!< Period for sending Heartbeat messages */
|
|
uint8_t ttl; /*!< TTL to be used when sending Heartbeat messages */
|
|
uint16_t feature; /*!< Bit field indicating features that trigger Heartbeat messages when changed */
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
} esp_ble_mesh_cfg_heartbeat_pub_set_t;
|
|
|
|
/** Parameters of Config Model Heartbeat Subscription Set. */
|
|
typedef struct {
|
|
uint16_t src; /*!< Source address for Heartbeat messages */
|
|
uint16_t dst; /*!< Destination address for Heartbeat messages */
|
|
uint8_t period; /*!< Period for receiving Heartbeat messages */
|
|
} esp_ble_mesh_cfg_heartbeat_sub_set_t;
|
|
|
|
/**
|
|
* @brief For ESP_BLE_MESH_MODEL_OP_BEACON_GET
|
|
* ESP_BLE_MESH_MODEL_OP_COMPOSITION_DATA_GET
|
|
* ESP_BLE_MESH_MODEL_OP_DEFAULT_TTL_GET
|
|
* ESP_BLE_MESH_MODEL_OP_GATT_PROXY_GET
|
|
* ESP_BLE_MESH_MODEL_OP_RELAY_GET
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_PUB_GET
|
|
* ESP_BLE_MESH_MODEL_OP_FRIEND_GET
|
|
* ESP_BLE_MESH_MODEL_OP_HEARTBEAT_PUB_GET
|
|
* ESP_BLE_MESH_MODEL_OP_HEARTBEAT_SUB_GET
|
|
* the get_state parameter in the esp_ble_mesh_config_client_get_state function should not be set to NULL.
|
|
*/
|
|
typedef union {
|
|
esp_ble_mesh_cfg_model_pub_get_t model_pub_get; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_PUB_GET. */
|
|
esp_ble_mesh_cfg_composition_data_get_t comp_data_get; /*!< For ESP_BLE_MESH_MODEL_OP_COMPOSITION_DATA_GET. */
|
|
esp_ble_mesh_cfg_sig_model_sub_get_t sig_model_sub_get; /*!< For ESP_BLE_MESH_MODEL_OP_SIG_MODEL_SUB_GET */
|
|
esp_ble_mesh_cfg_vnd_model_sub_get_t vnd_model_sub_get; /*!< For ESP_BLE_MESH_MODEL_OP_VENDOR_MODEL_SUB_GET */
|
|
esp_ble_mesh_cfg_app_key_get_t app_key_get; /*!< For ESP_BLE_MESH_MODEL_OP_APP_KEY_GET. */
|
|
esp_ble_mesh_cfg_node_identity_get_t node_identity_get; /*!< For ESP_BLE_MESH_MODEL_OP_NODE_IDENTITY_GET. */
|
|
esp_ble_mesh_cfg_sig_model_app_get_t sig_model_app_get; /*!< For ESP_BLE_MESH_MODEL_OP_SIG_MODEL_APP_GET */
|
|
esp_ble_mesh_cfg_vnd_model_app_get_t vnd_model_app_get; /*!< For ESP_BLE_MESH_MODEL_OP_VENDOR_MODEL_APP_GET */
|
|
esp_ble_mesh_cfg_kr_phase_get_t kr_phase_get; /*!< For ESP_BLE_MESH_MODEL_OP_KEY_REFRESH_PHASE_GET */
|
|
esp_ble_mesh_cfg_lpn_polltimeout_get_t lpn_pollto_get; /*!< For ESP_BLE_MESH_MODEL_OP_LPN_POLLTIMEOUT_GET */
|
|
} esp_ble_mesh_cfg_client_get_state_t;
|
|
|
|
/**
|
|
* @brief For ESP_BLE_MESH_MODEL_OP_BEACON_SET
|
|
* ESP_BLE_MESH_MODEL_OP_DEFAULT_TTL_SET
|
|
* ESP_BLE_MESH_MODEL_OP_GATT_PROXY_SET
|
|
* ESP_BLE_MESH_MODEL_OP_RELAY_SET
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_PUB_SET
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_SUB_ADD
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_ADD
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_SUB_DELETE
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_DELETE
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_SUB_OVERWRITE
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_OVERWRITE
|
|
* ESP_BLE_MESH_MODEL_OP_NET_KEY_ADD
|
|
* ESP_BLE_MESH_MODEL_OP_APP_KEY_ADD
|
|
* ESP_BLE_MESH_MODEL_OP_MODEL_APP_BIND
|
|
* ESP_BLE_MESH_MODEL_OP_NODE_RESET
|
|
* ESP_BLE_MESH_MODEL_OP_FRIEND_SET
|
|
* ESP_BLE_MESH_MODEL_OP_HEARTBEAT_PUB_SET
|
|
* ESP_BLE_MESH_MODEL_OP_HEARTBEAT_SUB_SET
|
|
* the set_state parameter in the esp_ble_mesh_config_client_set_state function should not be set to NULL.
|
|
*/
|
|
typedef union {
|
|
esp_ble_mesh_cfg_beacon_set_t beacon_set; /*!< For ESP_BLE_MESH_MODEL_OP_BEACON_SET */
|
|
esp_ble_mesh_cfg_default_ttl_set_t default_ttl_set; /*!< For ESP_BLE_MESH_MODEL_OP_DEFAULT_TTL_SET */
|
|
esp_ble_mesh_cfg_friend_set_t friend_set; /*!< For ESP_BLE_MESH_MODEL_OP_FRIEND_SET */
|
|
esp_ble_mesh_cfg_gatt_proxy_set_t gatt_proxy_set; /*!< For ESP_BLE_MESH_MODEL_OP_GATT_PROXY_SET */
|
|
esp_ble_mesh_cfg_relay_set_t relay_set; /*!< For ESP_BLE_MESH_MODEL_OP_RELAY_SET */
|
|
esp_ble_mesh_cfg_net_key_add_t net_key_add; /*!< For ESP_BLE_MESH_MODEL_OP_NET_KEY_ADD */
|
|
esp_ble_mesh_cfg_app_key_add_t app_key_add; /*!< For ESP_BLE_MESH_MODEL_OP_APP_KEY_ADD */
|
|
esp_ble_mesh_cfg_model_app_bind_t model_app_bind; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_APP_BIND */
|
|
esp_ble_mesh_cfg_model_pub_set_t model_pub_set; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_PUB_SET */
|
|
esp_ble_mesh_cfg_model_sub_add_t model_sub_add; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_ADD */
|
|
esp_ble_mesh_cfg_model_sub_delete_t model_sub_delete; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_DELETE */
|
|
esp_ble_mesh_cfg_model_sub_overwrite_t model_sub_overwrite; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_OVERWRITE */
|
|
esp_ble_mesh_cfg_model_sub_va_add_t model_sub_va_add; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_ADD */
|
|
esp_ble_mesh_cfg_model_sub_va_delete_t model_sub_va_delete; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_DELETE */
|
|
esp_ble_mesh_cfg_model_sub_va_overwrite_t model_sub_va_overwrite; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_OVERWRITE */
|
|
esp_ble_mesh_cfg_heartbeat_pub_set_t heartbeat_pub_set; /*!< For ESP_BLE_MESH_MODEL_OP_HEARTBEAT_PUB_SET */
|
|
esp_ble_mesh_cfg_heartbeat_sub_set_t heartbeat_sub_set; /*!< For ESP_BLE_MESH_MODEL_OP_HEARTBEAT_SUB_SET */
|
|
esp_ble_mesh_cfg_model_pub_va_set_t model_pub_va_set; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_PUB_VIRTUAL_ADDR_SET */
|
|
esp_ble_mesh_cfg_model_sub_delete_all_t model_sub_delete_all; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_SUB_DELETE_ALL */
|
|
esp_ble_mesh_cfg_net_key_update_t net_key_update; /*!< For ESP_BLE_MESH_MODEL_OP_NET_KEY_UPDATE */
|
|
esp_ble_mesh_cfg_net_key_delete_t net_key_delete; /*!< For ESP_BLE_MESH_MODEL_OP_NET_KEY_DELETE */
|
|
esp_ble_mesh_cfg_app_key_update_t app_key_update; /*!< For ESP_BLE_MESH_MODEL_OP_APP_KEY_UPDATE */
|
|
esp_ble_mesh_cfg_app_key_delete_t app_key_delete; /*!< For ESP_BLE_MESH_MODEL_OP_APP_KEY_DELETE */
|
|
esp_ble_mesh_cfg_node_identity_set_t node_identity_set; /*!< For ESP_BLE_MESH_MODEL_OP_NODE_IDENTITY_SET */
|
|
esp_ble_mesh_cfg_model_app_unbind_t model_app_unbind; /*!< For ESP_BLE_MESH_MODEL_OP_MODEL_APP_UNBIND */
|
|
esp_ble_mesh_cfg_kr_phase_set_t kr_phase_set; /*!< For ESP_BLE_MESH_MODEL_OP_KEY_REFRESH_PHASE_SET */
|
|
esp_ble_mesh_cfg_net_transmit_set_t net_transmit_set; /*!< For ESP_BLE_MESH_MODEL_OP_NETWORK_TRANSMIT_SET */
|
|
} esp_ble_mesh_cfg_client_set_state_t;
|
|
|
|
/** Parameter of Config Beacon Status */
|
|
typedef struct {
|
|
uint8_t beacon; /*!< Secure Network Beacon state value */
|
|
} esp_ble_mesh_cfg_beacon_status_cb_t;
|
|
|
|
/** Parameters of Config Composition Data Status */
|
|
typedef struct {
|
|
uint8_t page; /*!< Page number of the Composition Data */
|
|
struct net_buf_simple *composition_data; /*!< Pointer to Composition Data for the identified page */
|
|
} esp_ble_mesh_cfg_comp_data_status_cb_t;
|
|
|
|
/** Parameter of Config Default TTL Status */
|
|
typedef struct {
|
|
uint8_t default_ttl; /*!< Default TTL state value */
|
|
} esp_ble_mesh_cfg_default_ttl_status_cb_t;
|
|
|
|
/** Parameter of Config GATT Proxy Status */
|
|
typedef struct {
|
|
uint8_t gatt_proxy; /*!< GATT Proxy state value */
|
|
} esp_ble_mesh_cfg_gatt_proxy_status_cb_t;
|
|
|
|
/** Parameters of Config Relay Status */
|
|
typedef struct {
|
|
uint8_t relay; /*!< Relay state value */
|
|
uint8_t retransmit; /*!< Relay retransmit value(number of retransmissions and number of 10-millisecond steps between retransmissions) */
|
|
} esp_ble_mesh_cfg_relay_status_cb_t;
|
|
|
|
/** Parameters of Config Model Publication Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t element_addr; /*!< Address of the element */
|
|
uint16_t publish_addr; /*!< Value of the publish address */
|
|
uint16_t app_idx; /*!< Index of the application key */
|
|
bool cred_flag; /*!< Value of the Friendship Credential Flag */
|
|
uint8_t ttl; /*!< Default TTL value for the outgoing messages */
|
|
uint8_t period; /*!< Period for periodic status publishing */
|
|
uint8_t transmit; /*!< Number of retransmissions and number of 50-millisecond steps between retransmissions */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_cfg_model_pub_status_cb_t;
|
|
|
|
/** Parameters of Config Model Subscription Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t element_addr; /*!< Address of the element */
|
|
uint16_t sub_addr; /*!< Value of the address */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_cfg_model_sub_status_cb_t;
|
|
|
|
/** Parameters of Config NetKey Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t net_idx; /*!< Index of the NetKey */
|
|
} esp_ble_mesh_cfg_net_key_status_cb_t;
|
|
|
|
/** Parameters of Config AppKey Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t net_idx; /*!< Index of the NetKey */
|
|
uint16_t app_idx; /*!< Index of the application key */
|
|
} esp_ble_mesh_cfg_app_key_status_cb_t;
|
|
|
|
/** Parameters of Config Model App Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t element_addr; /*!< Address of the element */
|
|
uint16_t app_idx; /*!< Index of the application key */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_cfg_mod_app_status_cb_t;
|
|
|
|
/** Parameter of Config Friend Status */
|
|
typedef struct {
|
|
uint8_t friend_state; /*!< Friend state value */
|
|
} esp_ble_mesh_cfg_friend_status_cb_t;
|
|
|
|
/** Parameters of Config Heartbeat Publication Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t dst; /*!< Destination address for Heartbeat messages */
|
|
uint8_t count; /*!< Number of Heartbeat messages remaining to be sent */
|
|
uint8_t period; /*!< Period for sending Heartbeat messages */
|
|
uint8_t ttl; /*!< TTL to be used when sending Heartbeat messages */
|
|
uint16_t features; /*!< Features that trigger Heartbeat messages when changed */
|
|
uint16_t net_idx; /*!< Index of the NetKey */
|
|
} esp_ble_mesh_cfg_hb_pub_status_cb_t;
|
|
|
|
/** Parameters of Config Heartbeat Subscription Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t src; /*!< Source address for Heartbeat messages */
|
|
uint16_t dst; /*!< Destination address for Heartbeat messages */
|
|
uint8_t period; /*!< Remaining Period for processing Heartbeat messages */
|
|
uint8_t count; /*!< Number of Heartbeat messages received */
|
|
uint8_t min_hops; /*!< Minimum hops when receiving Heartbeat messages */
|
|
uint8_t max_hops; /*!< Maximum hops when receiving Heartbeat messages */
|
|
} esp_ble_mesh_cfg_hb_sub_status_cb_t;
|
|
|
|
/** Parameters of Config Network Transmit Status */
|
|
typedef struct {
|
|
uint8_t net_trans_count: 3; /*!< Number of transmissions for each Network PDU originating from the node */
|
|
uint8_t net_trans_step : 5; /*!< Maximum hops when receiving Heartbeat messages */
|
|
} esp_ble_mesh_cfg_net_trans_status_cb_t;
|
|
|
|
/** Parameters of Config SIG/Vendor Subscription List */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t element_addr; /*!< Address of the element */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
struct net_buf_simple *sub_addr; /*!< A block of all addresses from the Subscription List */
|
|
} esp_ble_mesh_cfg_model_sub_list_cb_t;
|
|
|
|
/** Parameter of Config NetKey List */
|
|
typedef struct {
|
|
struct net_buf_simple *net_idx; /*!< A list of NetKey Indexes known to the node */
|
|
} esp_ble_mesh_cfg_net_key_list_cb_t;
|
|
|
|
/** Parameters of Config AppKey List */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t net_idx; /*!< NetKey Index of the NetKey that the AppKeys are bound to */
|
|
struct net_buf_simple *app_idx; /*!< A list of AppKey indexes that are bound to the NetKey identified by NetKeyIndex */
|
|
} esp_ble_mesh_cfg_app_key_list_cb_t;
|
|
|
|
/** Parameters of Config Node Identity Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t net_idx; /*!< Index of the NetKey */
|
|
uint8_t identity; /*!< Node Identity state */
|
|
} esp_ble_mesh_cfg_node_id_status_cb_t;
|
|
|
|
/** Parameters of Config SIG/Vendor Model App List */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t element_addr; /*!< Address of the element */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
struct net_buf_simple *app_idx; /*!< All AppKey indexes bound to the Model */
|
|
} esp_ble_mesh_cfg_model_app_list_cb_t;
|
|
|
|
/** Parameters of Config Key Refresh Phase Status */
|
|
typedef struct {
|
|
uint8_t status; /*!< Status Code for the request message */
|
|
uint16_t net_idx; /*!< Index of the NetKey */
|
|
uint8_t phase; /*!< Key Refresh Phase state */
|
|
} esp_ble_mesh_cfg_kr_phase_status_cb_t;
|
|
|
|
/** Parameters of Config Low Power Node PollTimeout Status */
|
|
typedef struct {
|
|
uint16_t lpn_addr; /*!< The unicast address of the Low Power node */
|
|
int32_t poll_timeout; /*!< The current value of the PollTimeout timer of the Low Power node */
|
|
} esp_ble_mesh_cfg_lpn_pollto_status_cb_t;
|
|
|
|
/**
|
|
* @brief Configuration Client Model received message union
|
|
*/
|
|
typedef union {
|
|
esp_ble_mesh_cfg_beacon_status_cb_t beacon_status; /*!< The beacon status value */
|
|
esp_ble_mesh_cfg_comp_data_status_cb_t comp_data_status; /*!< The composition data status value */
|
|
esp_ble_mesh_cfg_default_ttl_status_cb_t default_ttl_status; /*!< The default_ttl status value */
|
|
esp_ble_mesh_cfg_gatt_proxy_status_cb_t gatt_proxy_status; /*!< The gatt_proxy status value */
|
|
esp_ble_mesh_cfg_relay_status_cb_t relay_status; /*!< The relay status value */
|
|
esp_ble_mesh_cfg_model_pub_status_cb_t model_pub_status; /*!< The model publication status value */
|
|
esp_ble_mesh_cfg_model_sub_status_cb_t model_sub_status; /*!< The model subscription status value */
|
|
esp_ble_mesh_cfg_net_key_status_cb_t netkey_status; /*!< The netkey status value */
|
|
esp_ble_mesh_cfg_app_key_status_cb_t appkey_status; /*!< The appkey status value */
|
|
esp_ble_mesh_cfg_mod_app_status_cb_t model_app_status; /*!< The model app status value */
|
|
esp_ble_mesh_cfg_friend_status_cb_t friend_status; /*!< The friend status value */
|
|
esp_ble_mesh_cfg_hb_pub_status_cb_t heartbeat_pub_status; /*!< The heartbeat publication status value */
|
|
esp_ble_mesh_cfg_hb_sub_status_cb_t heartbeat_sub_status; /*!< The heartbeat subscription status value */
|
|
esp_ble_mesh_cfg_net_trans_status_cb_t net_transmit_status; /*!< The network transmit status value */
|
|
esp_ble_mesh_cfg_model_sub_list_cb_t model_sub_list; /*!< The model subscription list value */
|
|
esp_ble_mesh_cfg_net_key_list_cb_t netkey_list; /*!< The network key index list value */
|
|
esp_ble_mesh_cfg_app_key_list_cb_t appkey_list; /*!< The application key index list value */
|
|
esp_ble_mesh_cfg_node_id_status_cb_t node_identity_status; /*!< The node identity status value */
|
|
esp_ble_mesh_cfg_model_app_list_cb_t model_app_list; /*!< The model application key index list value */
|
|
esp_ble_mesh_cfg_kr_phase_status_cb_t kr_phase_status; /*!< The key refresh phase status value */
|
|
esp_ble_mesh_cfg_lpn_pollto_status_cb_t lpn_timeout_status; /*!< The low power node poll timeout status value */
|
|
} esp_ble_mesh_cfg_client_common_cb_param_t;
|
|
|
|
/** Configuration Client Model callback parameters */
|
|
typedef struct {
|
|
int error_code; /*!< Appropriate error code */
|
|
esp_ble_mesh_client_common_param_t *params; /*!< The client common parameters */
|
|
esp_ble_mesh_cfg_client_common_cb_param_t status_cb; /*!< The config status message callback values */
|
|
} esp_ble_mesh_cfg_client_cb_param_t;
|
|
|
|
/** This enum value is the event of Configuration Client Model */
|
|
typedef enum {
|
|
ESP_BLE_MESH_CFG_CLIENT_GET_STATE_EVT,
|
|
ESP_BLE_MESH_CFG_CLIENT_SET_STATE_EVT,
|
|
ESP_BLE_MESH_CFG_CLIENT_PUBLISH_EVT,
|
|
ESP_BLE_MESH_CFG_CLIENT_TIMEOUT_EVT,
|
|
ESP_BLE_MESH_CFG_CLIENT_EVT_MAX,
|
|
} esp_ble_mesh_cfg_client_cb_event_t;
|
|
|
|
/**
|
|
* @brief Configuration Server model related context.
|
|
*/
|
|
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< Element Address */
|
|
uint16_t pub_addr; /*!< Publish Address */
|
|
uint16_t app_idx; /*!< AppKey Index */
|
|
bool cred_flag; /*!< Friendship Credential Flag */
|
|
uint8_t pub_ttl; /*!< Publish TTL */
|
|
uint8_t pub_period; /*!< Publish Period */
|
|
uint8_t pub_retransmit; /*!< Publish Retransmit */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_state_change_cfg_mod_pub_set_t;
|
|
|
|
/** Parameters of Config Model Subscription Add */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< Element Address */
|
|
uint16_t sub_addr; /*!< Subscription Address */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_state_change_cfg_model_sub_add_t;
|
|
|
|
/** Parameters of Config Model Subscription Delete */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< Element Address */
|
|
uint16_t sub_addr; /*!< Subscription Address */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_state_change_cfg_model_sub_delete_t;
|
|
|
|
/** Parameters of Config NetKey Add */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
uint8_t net_key[16]; /*!< NetKey */
|
|
} esp_ble_mesh_state_change_cfg_netkey_add_t;
|
|
|
|
/** Parameters of Config NetKey Update */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
uint8_t net_key[16]; /*!< NetKey */
|
|
} esp_ble_mesh_state_change_cfg_netkey_update_t;
|
|
|
|
/** Parameter of Config NetKey Delete */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
} esp_ble_mesh_state_change_cfg_netkey_delete_t;
|
|
|
|
/** Parameters of Config AppKey Add */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
uint16_t app_idx; /*!< AppKey Index */
|
|
uint8_t app_key[16]; /*!< AppKey */
|
|
} esp_ble_mesh_state_change_cfg_appkey_add_t;
|
|
|
|
/** Parameters of Config AppKey Update */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
uint16_t app_idx; /*!< AppKey Index */
|
|
uint8_t app_key[16]; /*!< AppKey */
|
|
} esp_ble_mesh_state_change_cfg_appkey_update_t;
|
|
|
|
/** Parameters of Config AppKey Delete */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
uint16_t app_idx; /*!< AppKey Index */
|
|
} esp_ble_mesh_state_change_cfg_appkey_delete_t;
|
|
|
|
/** Parameters of Config Model App Bind */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< Element Address */
|
|
uint16_t app_idx; /*!< AppKey Index */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_state_change_cfg_model_app_bind_t;
|
|
|
|
/** Parameters of Config Model App Unbind */
|
|
typedef struct {
|
|
uint16_t element_addr; /*!< Element Address */
|
|
uint16_t app_idx; /*!< AppKey Index */
|
|
uint16_t company_id; /*!< Company ID */
|
|
uint16_t model_id; /*!< Model ID */
|
|
} esp_ble_mesh_state_change_cfg_model_app_unbind_t;
|
|
|
|
/** Parameters of Config Key Refresh Phase Set */
|
|
typedef struct {
|
|
uint16_t net_idx; /*!< NetKey Index */
|
|
uint8_t kr_phase; /*!< New Key Refresh Phase Transition */
|
|
} esp_ble_mesh_state_change_cfg_kr_phase_set_t;
|
|
|
|
/**
|
|
* @brief Configuration Server model state change value union
|
|
*/
|
|
typedef union {
|
|
/**
|
|
* The recv_op in ctx can be used to decide which state is changed.
|
|
*/
|
|
esp_ble_mesh_state_change_cfg_mod_pub_set_t mod_pub_set; /*!< Config Model Publication Set */
|
|
esp_ble_mesh_state_change_cfg_model_sub_add_t mod_sub_add; /*!< Config Model Subscription Add */
|
|
esp_ble_mesh_state_change_cfg_model_sub_delete_t mod_sub_delete; /*!< Config Model Subscription Delete */
|
|
esp_ble_mesh_state_change_cfg_netkey_add_t netkey_add; /*!< Config NetKey Add */
|
|
esp_ble_mesh_state_change_cfg_netkey_update_t netkey_update; /*!< Config NetKey Update */
|
|
esp_ble_mesh_state_change_cfg_netkey_delete_t netkey_delete; /*!< Config NetKey Delete */
|
|
esp_ble_mesh_state_change_cfg_appkey_add_t appkey_add; /*!< Config AppKey Add */
|
|
esp_ble_mesh_state_change_cfg_appkey_update_t appkey_update; /*!< Config AppKey Update */
|
|
esp_ble_mesh_state_change_cfg_appkey_delete_t appkey_delete; /*!< Config AppKey Delete */
|
|
esp_ble_mesh_state_change_cfg_model_app_bind_t mod_app_bind; /*!< Config Model App Bind */
|
|
esp_ble_mesh_state_change_cfg_model_app_unbind_t mod_app_unbind; /*!< Config Model App Unbind */
|
|
esp_ble_mesh_state_change_cfg_kr_phase_set_t kr_phase_set; /*!< Config Key Refresh Phase Set */
|
|
} esp_ble_mesh_cfg_server_state_change_t;
|
|
|
|
/**
|
|
* @brief Configuration Server model callback value union
|
|
*/
|
|
typedef union {
|
|
esp_ble_mesh_cfg_server_state_change_t state_change; /*!< ESP_BLE_MESH_CFG_SERVER_STATE_CHANGE_EVT */
|
|
} esp_ble_mesh_cfg_server_cb_value_t;
|
|
|
|
/** Configuration Server model callback parameters */
|
|
typedef struct {
|
|
esp_ble_mesh_model_t *model; /*!< Pointer to the server model structure */
|
|
esp_ble_mesh_msg_ctx_t ctx; /*!< Context of the received message */
|
|
esp_ble_mesh_cfg_server_cb_value_t value; /*!< Value of the received configuration messages */
|
|
} esp_ble_mesh_cfg_server_cb_param_t;
|
|
|
|
/** This enum value is the event of Configuration Server model */
|
|
typedef enum {
|
|
ESP_BLE_MESH_CFG_SERVER_STATE_CHANGE_EVT,
|
|
ESP_BLE_MESH_CFG_SERVER_EVT_MAX,
|
|
} esp_ble_mesh_cfg_server_cb_event_t;
|
|
|
|
/**
|
|
* @brief Bluetooth Mesh Config Client and Server Model functions.
|
|
*/
|
|
|
|
/**
|
|
* @brief Configuration Client Model callback function type
|
|
* @param event: Event type
|
|
* @param param: Pointer to callback parameter
|
|
*/
|
|
typedef void (* esp_ble_mesh_cfg_client_cb_t)(esp_ble_mesh_cfg_client_cb_event_t event,
|
|
esp_ble_mesh_cfg_client_cb_param_t *param);
|
|
|
|
/**
|
|
* @brief Configuration Server Model callback function type
|
|
* @param event: Event type
|
|
* @param param: Pointer to callback parameter
|
|
*/
|
|
typedef void (* esp_ble_mesh_cfg_server_cb_t)(esp_ble_mesh_cfg_server_cb_event_t event,
|
|
esp_ble_mesh_cfg_server_cb_param_t *param);
|
|
|
|
/**
|
|
* @brief Register BLE Mesh Config Client Model callback.
|
|
*
|
|
* @param[in] callback: Pointer to the callback function.
|
|
*
|
|
* @return ESP_OK on success or error code otherwise.
|
|
*
|
|
*/
|
|
esp_err_t esp_ble_mesh_register_config_client_callback(esp_ble_mesh_cfg_client_cb_t callback);
|
|
|
|
/**
|
|
* @brief Register BLE Mesh Config Server Model callback.
|
|
*
|
|
* @param[in] callback: Pointer to the callback function.
|
|
*
|
|
* @return ESP_OK on success or error code otherwise.
|
|
*
|
|
*/
|
|
esp_err_t esp_ble_mesh_register_config_server_callback(esp_ble_mesh_cfg_server_cb_t callback);
|
|
|
|
/**
|
|
* @brief Get the value of Config Server Model states using the Config Client Model get messages.
|
|
*
|
|
* @note If you want to find the opcodes and corresponding meanings accepted by this API,
|
|
* please refer to esp_ble_mesh_opcode_config_client_get_t in esp_ble_mesh_defs.h
|
|
*
|
|
* @param[in] params: Pointer to BLE Mesh common client parameters.
|
|
* @param[in] get_state: Pointer to a union, each kind of opcode corresponds to one structure inside.
|
|
* Shall not be set to NULL.
|
|
*
|
|
* @return ESP_OK on success or error code otherwise.
|
|
*
|
|
*/
|
|
esp_err_t esp_ble_mesh_config_client_get_state(esp_ble_mesh_client_common_param_t *params,
|
|
esp_ble_mesh_cfg_client_get_state_t *get_state);
|
|
|
|
/**
|
|
* @brief Set the value of the Configuration Server Model states using the Config Client Model set messages.
|
|
*
|
|
* @note If you want to find the opcodes and corresponding meanings accepted by this API,
|
|
* please refer to esp_ble_mesh_opcode_config_client_set_t in esp_ble_mesh_defs.h
|
|
*
|
|
* @param[in] params: Pointer to BLE Mesh common client parameters.
|
|
* @param[in] set_state: Pointer to a union, each kind of opcode corresponds to one structure inside.
|
|
* Shall not be set to NULL.
|
|
*
|
|
* @return ESP_OK on success or error code otherwise.
|
|
*
|
|
*/
|
|
esp_err_t esp_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param_t *params,
|
|
esp_ble_mesh_cfg_client_set_state_t *set_state);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _ESP_BLE_MESH_CONFIG_MODEL_API_H_ */
|
|
|