2019-06-28 03:13:18 +00:00
|
|
|
|
// Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD
|
2019-01-07 07:16:47 +00:00
|
|
|
|
//
|
|
|
|
|
// 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.
|
|
|
|
|
|
|
|
|
|
/** @file
|
|
|
|
|
* @brief Bluetooth Mesh Sensor Client Model APIs.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef _ESP_BLE_MESH_SENSOR_MODEL_API_H_
|
|
|
|
|
#define _ESP_BLE_MESH_SENSOR_MODEL_API_H_
|
|
|
|
|
|
|
|
|
|
#include "esp_ble_mesh_defs.h"
|
|
|
|
|
|
|
|
|
|
/** @def ESP_BLE_MESH_MODEL_SENSOR_CLI
|
|
|
|
|
*
|
|
|
|
|
* @brief Define a new Sensor Client Model.
|
|
|
|
|
*
|
|
|
|
|
* @note This API needs to be called for each element on which
|
|
|
|
|
* the application needs to have a Sensor Client Model.
|
|
|
|
|
*
|
|
|
|
|
* @param cli_pub Pointer to the unique struct esp_ble_mesh_model_pub_t.
|
|
|
|
|
* @param cli_data Pointer to the unique struct esp_ble_mesh_client_t.
|
|
|
|
|
*
|
|
|
|
|
* @return New Sensor Client Model instance.
|
|
|
|
|
*/
|
|
|
|
|
#define ESP_BLE_MESH_MODEL_SENSOR_CLI(cli_pub, cli_data) \
|
|
|
|
|
ESP_BLE_MESH_SIG_MODEL(ESP_BLE_MESH_MODEL_ID_SENSOR_CLI, \
|
|
|
|
|
NULL, cli_pub, cli_data)
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Bluetooth Mesh Sensor Client Model Get and Set parameters structure.
|
|
|
|
|
*/
|
2019-06-28 03:13:18 +00:00
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Descriptor Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-06-28 03:13:18 +00:00
|
|
|
|
bool op_en; /*!< Indicate if optional parameters are included */
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property ID of a sensor (optional) */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_descriptor_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameter of Sensor Cadence Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property ID of a sensor */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_cadence_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Cadence Set */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property ID for the sensor */
|
|
|
|
|
uint8_t fast_cadence_period_divisor : 7, /*!< Divisor for the publish period */
|
|
|
|
|
status_trigger_type : 1; /*!< The unit and format of the Status Trigger Delta fields */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *status_trigger_delta_down; /*!< Delta down value that triggers a status message */
|
|
|
|
|
struct net_buf_simple *status_trigger_delta_up; /*!< Delta up value that triggers a status message */
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint8_t status_min_interval; /*!< Minimum interval between two consecutive Status messages */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *fast_cadence_low; /*!< Low value for the fast cadence range */
|
|
|
|
|
struct net_buf_simple *fast_cadence_high; /*!< Fast value for the fast cadence range */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_cadence_set_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameter of Sensor Settings Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t sensor_property_id; /*!< Property ID of a sensor */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_settings_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Setting Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t sensor_property_id; /*!< Property ID of a sensor */
|
|
|
|
|
uint16_t sensor_setting_property_id; /*!< Setting ID identifying a setting within a sensor */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_setting_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Setting Set */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t sensor_property_id; /*!< Property ID identifying a sensor */
|
|
|
|
|
uint16_t sensor_setting_property_id; /*!< Setting ID identifying a setting within a sensor */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *sensor_setting_raw; /*!< Raw value for the setting */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_setting_set_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
bool op_en; /*!< Indicate if optional parameters are included */
|
|
|
|
|
uint16_t property_id; /*!< Property ID for the sensor (optional) */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Column Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property identifying a sensor */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *raw_value_x; /*!< Raw value identifying a column */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_column_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Series Get */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
bool op_en; /*!< Indicate if optional parameters are included */
|
|
|
|
|
uint16_t property_id; /*!< Property identifying a sensor */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *raw_value_x1; /*!< Raw value identifying a starting column (optional) */
|
|
|
|
|
struct net_buf_simple *raw_value_x2; /*!< Raw value identifying an ending column (C.1) */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_series_get_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Client Model get message union
|
|
|
|
|
*/
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef union {
|
|
|
|
|
esp_ble_mesh_sensor_descriptor_get_t descriptor_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_DESCRIPTOR_GET */
|
|
|
|
|
esp_ble_mesh_sensor_cadence_get_t cadence_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_CADENCE_GET */
|
|
|
|
|
esp_ble_mesh_sensor_settings_get_t settings_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SETTINGS_GET */
|
|
|
|
|
esp_ble_mesh_sensor_setting_get_t setting_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SETTING_GET */
|
|
|
|
|
esp_ble_mesh_sensor_get_t sensor_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_GET */
|
|
|
|
|
esp_ble_mesh_sensor_column_get_t column_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_COLUMN_GET */
|
|
|
|
|
esp_ble_mesh_sensor_series_get_t series_get; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SERIES_GET */
|
|
|
|
|
} esp_ble_mesh_sensor_client_get_state_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Client Model set message union
|
|
|
|
|
*/
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef union {
|
|
|
|
|
esp_ble_mesh_sensor_cadence_set_t cadence_set; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_CADENCE_SET & ESP_BLE_MESH_MODEL_OP_SENSOR_CADENCE_SET_UNACK */
|
|
|
|
|
esp_ble_mesh_sensor_setting_set_t setting_set; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SETTING_SET & ESP_BLE_MESH_MODEL_OP_SENSOR_SETTING_SET_UNACK */
|
|
|
|
|
} esp_ble_mesh_sensor_client_set_state_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Bluetooth Mesh Sensor Client Model Get and Set callback parameters structure.
|
|
|
|
|
*/
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameter of Sensor Descriptor Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *descriptor; /*!< Sequence of 8-octet sensor descriptors (optional) */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_descriptor_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Cadence Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property for the sensor */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *sensor_cadence_value; /*!< Value of sensor cadence state */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_cadence_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Settings Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t sensor_property_id; /*!< Property ID identifying a sensor */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *sensor_setting_property_ids; /*!< A sequence of N sensor setting property IDs (optional) */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_settings_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Setting Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
bool op_en; /*!< Indicate id optional parameters are included */
|
|
|
|
|
uint16_t sensor_property_id; /*!< Property ID identifying a sensor */
|
|
|
|
|
uint16_t sensor_setting_property_id; /*!< Setting ID identifying a setting within a sensor */
|
|
|
|
|
uint8_t sensor_setting_access; /*!< Read/Write access rights for the setting (optional) */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *sensor_setting_raw; /*!< Raw value for the setting */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_setting_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameter of Sensor Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *marshalled_sensor_data; /*!< Value of sensor data state (optional) */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Column Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property identifying a sensor and the Y axis */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *sensor_column_value; /*!< Left values of sensor column status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_column_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Parameters of Sensor Series Status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
2019-09-02 05:01:06 +00:00
|
|
|
|
uint16_t property_id; /*!< Property identifying a sensor and the Y axis */
|
2019-06-28 03:13:18 +00:00
|
|
|
|
struct net_buf_simple *sensor_series_value; /*!< Left values of sensor series status */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
} esp_ble_mesh_sensor_series_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Client Model received message union
|
|
|
|
|
*/
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef union {
|
|
|
|
|
esp_ble_mesh_sensor_descriptor_status_cb_t descriptor_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_DESCRIPTOR_STATUS */
|
|
|
|
|
esp_ble_mesh_sensor_cadence_status_cb_t cadence_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_CADENCE_STATUS */
|
|
|
|
|
esp_ble_mesh_sensor_settings_status_cb_t settings_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SETTINGS_STATUS */
|
|
|
|
|
esp_ble_mesh_sensor_setting_status_cb_t setting_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SETTING_STATUS */
|
|
|
|
|
esp_ble_mesh_sensor_status_cb_t sensor_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_STATUS */
|
|
|
|
|
esp_ble_mesh_sensor_column_status_cb_t column_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_COLUMN_STATUS */
|
|
|
|
|
esp_ble_mesh_sensor_series_status_cb_t series_status; /*!< For ESP_BLE_MESH_MODEL_OP_SENSOR_SERIES_STATUS */
|
|
|
|
|
} esp_ble_mesh_sensor_client_status_cb_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** Sensor Client Model callback parameters */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef struct {
|
|
|
|
|
int error_code; /*!< 0: success,
|
|
|
|
|
* otherwise failure. For the error code values please refer to errno.h file.
|
|
|
|
|
* A negative sign is added to the standard error codes in errno.h. */
|
|
|
|
|
esp_ble_mesh_client_common_param_t *params; /*!< The client common parameters. */
|
|
|
|
|
esp_ble_mesh_sensor_client_status_cb_t status_cb; /*!< The sensor status message callback values */
|
|
|
|
|
} esp_ble_mesh_sensor_client_cb_param_t;
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/** This enum value is the event of Sensor Client Model */
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef enum {
|
|
|
|
|
ESP_BLE_MESH_SENSOR_CLIENT_GET_STATE_EVT,
|
|
|
|
|
ESP_BLE_MESH_SENSOR_CLIENT_SET_STATE_EVT,
|
|
|
|
|
ESP_BLE_MESH_SENSOR_CLIENT_PUBLISH_EVT,
|
|
|
|
|
ESP_BLE_MESH_SENSOR_CLIENT_TIMEOUT_EVT,
|
|
|
|
|
ESP_BLE_MESH_SENSOR_CLIENT_EVT_MAX,
|
|
|
|
|
} esp_ble_mesh_sensor_client_cb_event_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Bluetooth Mesh Sensor Client Model function.
|
|
|
|
|
*/
|
|
|
|
|
|
2019-06-28 03:13:18 +00:00
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Client Model callback function type
|
|
|
|
|
* @param event: Event type
|
|
|
|
|
* @param param: Pointer to callback parameter
|
|
|
|
|
*/
|
2019-01-07 07:16:47 +00:00
|
|
|
|
typedef void (* esp_ble_mesh_sensor_client_cb_t)(esp_ble_mesh_sensor_client_cb_event_t event,
|
|
|
|
|
esp_ble_mesh_sensor_client_cb_param_t *param);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Register BLE Mesh Sensor 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_sensor_client_callback(esp_ble_mesh_sensor_client_cb_t callback);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Get the value of Sensor Server Model states using the Sensor Client Model get messages.
|
|
|
|
|
*
|
|
|
|
|
* @note If you want to know the opcodes and corresponding meanings accepted by this API,
|
2019-06-28 03:13:18 +00:00
|
|
|
|
* please refer to esp_ble_mesh_sensor_message_opcode_t in esp_ble_mesh_defs.h
|
2019-01-07 07:16:47 +00:00
|
|
|
|
*
|
|
|
|
|
* @param[in] params: Pointer to BLE Mesh common client parameters.
|
|
|
|
|
* @param[in] get_state: Pointer to sensor get message value.
|
|
|
|
|
* Shall not be set to NULL.
|
|
|
|
|
*
|
|
|
|
|
* @return ESP_OK on success or error code otherwise.
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
esp_err_t esp_ble_mesh_sensor_client_get_state(esp_ble_mesh_client_common_param_t *params,
|
|
|
|
|
esp_ble_mesh_sensor_client_get_state_t *get_state);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set the value of Sensor Server Model states using the Sensor Client Model set messages.
|
|
|
|
|
*
|
|
|
|
|
* @note If you want to know the opcodes and corresponding meanings accepted by this API,
|
2019-06-28 03:13:18 +00:00
|
|
|
|
* please refer to esp_ble_mesh_sensor_message_opcode_t in esp_ble_mesh_defs.h
|
2019-01-07 07:16:47 +00:00
|
|
|
|
*
|
|
|
|
|
* @param[in] params: Pointer to BLE Mesh common client parameters.
|
|
|
|
|
* @param[in] set_state: Pointer to sensor set message value.
|
|
|
|
|
* Shall not be set to NULL.
|
|
|
|
|
*
|
|
|
|
|
* @return ESP_OK on success or error code otherwise.
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
esp_err_t esp_ble_mesh_sensor_client_set_state(esp_ble_mesh_client_common_param_t *params,
|
|
|
|
|
esp_ble_mesh_sensor_client_set_state_t *set_state);
|
|
|
|
|
|
2019-10-12 06:41:21 +00:00
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Server Models related context.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @def ESP_BLE_MESH_MODEL_SENSOR_SRV
|
|
|
|
|
*
|
|
|
|
|
* @brief Define a new Sensor Server Model.
|
|
|
|
|
*
|
|
|
|
|
* @note 1. The Sensor Server model is a root model. When this model is present
|
|
|
|
|
* on an element, the corresponding Sensor Setup Server model shall
|
|
|
|
|
* also be present.
|
|
|
|
|
* 2. This model shall support model publication and model subscription.
|
|
|
|
|
*
|
|
|
|
|
* @param srv_pub Pointer to the unique struct esp_ble_mesh_model_pub_t.
|
|
|
|
|
* @param srv_data Pointer to the unique struct esp_ble_mesh_sensor_srv_t.
|
|
|
|
|
*
|
|
|
|
|
* @return New Sensor Server Model instance.
|
|
|
|
|
*/
|
|
|
|
|
#define ESP_BLE_MESH_MODEL_SENSOR_SRV(srv_pub, srv_data) \
|
|
|
|
|
ESP_BLE_MESH_SIG_MODEL(ESP_BLE_MESH_MODEL_ID_SENSOR_SRV, \
|
|
|
|
|
NULL, srv_pub, srv_data)
|
|
|
|
|
|
|
|
|
|
/** @def ESP_BLE_MESH_MODEL_SENSOR_SETUP_SRV
|
|
|
|
|
*
|
|
|
|
|
* @brief Define a new Sensor Setup Server Model.
|
|
|
|
|
*
|
|
|
|
|
* @note 1. The Sensor Setup Server model extends the Sensor Server model.
|
|
|
|
|
* 2. This model shall support model publication and model subscription.
|
|
|
|
|
*
|
|
|
|
|
* @param srv_pub Pointer to the unique struct esp_ble_mesh_model_pub_t.
|
|
|
|
|
* @param srv_data Pointer to the unique struct esp_ble_mesh_sensor_setup_srv_t.
|
|
|
|
|
*
|
|
|
|
|
* @return New Sensor Setup Server Model instance.
|
|
|
|
|
*/
|
|
|
|
|
#define ESP_BLE_MESH_MODEL_SENSOR_SETUP_SRV(srv_pub, srv_data) \
|
|
|
|
|
ESP_BLE_MESH_SIG_MODEL(ESP_BLE_MESH_MODEL_ID_SENSOR_SETUP_SRV, \
|
|
|
|
|
NULL, srv_pub, srv_data)
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_INVALID_SENSOR_PROPERTY_ID 0x0000 /*!< Invalid Sensor Property ID */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_PROPERTY_ID_LEN 0x02 /*!< Length of Sensor Property ID */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DESCRIPTOR_LEN 0x08 /*!< Length of Sensor Descriptor state */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_UNSPECIFIED_POS_TOLERANCE 0x000 /*!< Unspecified Sensor Positive Tolerance */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_UNSPECIFIED_NEG_TOLERANCE 0x000 /*!< Unspecified Sensor Negative Tolerance */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_NOT_APPL_MEASURE_PERIOD 0x00 /*!< Not applicable Sensor Measurement Period */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_NOT_APPL_UPDATE_INTERVAL 0x00 /*!< Not applicable Sensor Update Interval */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_INVALID_SENSOR_SETTING_PROPERTY_ID 0x0000 /*!< Invalid Sensor Setting Property ID */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_SETTING_PROPERTY_ID_LEN 0x02 /*!< Length of Sensor Setting Property ID */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_SETTING_ACCESS_LEN 0x01 /*!< Length of Sensor Setting Access */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_SETTING_ACCESS_READ 0x01 /*!< Sensor Setting Access - Read */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_SETTING_ACCESS_READ_WRITE 0x03 /*!< Sensor Setting Access - Read & Write */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DIVISOR_TRIGGER_TYPE_LEN 0x01 /*!< Length of Sensor Divisor Trigger Type */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_STATUS_MIN_INTERVAL_LEN 0x01 /*!< Length of Sensor Status Min Interval */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_PERIOD_DIVISOR_MAX_VALUE 15 /*!< Maximum value of Sensor Period Divisor */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_STATUS_MIN_INTERVAL_MAX 26 /*!< Maximum value of Sensor Status Min Interval */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Sensor Status Trigger Type - Format Type of the characteristic
|
|
|
|
|
* that the Sensor Property ID state references
|
|
|
|
|
*/
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_STATUS_TRIGGER_TYPE_CHAR 0
|
|
|
|
|
/** Sensor Status Trigger Type - Format Type "uint16" */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_STATUS_TRIGGER_TYPE_UINT16 1
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DATA_FORMAT_A 0x00 /*!< Sensor Data Format A */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DATA_FORMAT_B 0x01 /*!< Sensor Data Format B */
|
|
|
|
|
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DATA_FORMAT_A_MPID_LEN 0x02 /*!< MPID length of Sensor Data Format A */
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DATA_FORMAT_B_MPID_LEN 0x03 /*!< MPID length of Sensor Data Format B */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Zero length of Sensor Data.
|
|
|
|
|
*
|
|
|
|
|
* Note:
|
|
|
|
|
* The Length field is a 1-based uint7 value (valid range 0x0–0x7F,
|
|
|
|
|
* representing range of 1–127). The value 0x7F represents a length
|
|
|
|
|
* of zero.
|
|
|
|
|
*/
|
|
|
|
|
#define ESP_BLE_MESH_SENSOR_DATA_ZERO_LEN 0x7F
|
|
|
|
|
|
|
|
|
|
/** This enum value is value of Sensor Sampling Function */
|
|
|
|
|
enum esp_ble_mesh_sensor_sample_func {
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_UNSPECIFIED,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_INSTANTANEOUS,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_ARITHMETIC_MEAN,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_RMS,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_MAXIMUM,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_MINIMUM,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_ACCUMULATED,
|
|
|
|
|
ESP_BLE_MESH_SAMPLE_FUNC_COUNT,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Descriptor state */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint32_t positive_tolerance : 12, /*!< The value of Sensor Positive Tolerance field */
|
|
|
|
|
negative_tolerance : 12, /*!< The value of Sensor Negative Tolerance field */
|
|
|
|
|
sampling_function : 8; /*!< The value of Sensor Sampling Function field */
|
|
|
|
|
uint8_t measure_period; /*!< The value of Sensor Measurement Period field */
|
|
|
|
|
uint8_t update_interval; /*!< The value of Sensor Update Interval field */
|
|
|
|
|
} esp_ble_mesh_sensor_descriptor_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Setting state */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< The value of Sensor Setting Property ID field */
|
|
|
|
|
uint8_t access; /*!< The value of Sensor Setting Access field */
|
|
|
|
|
struct net_buf_simple *raw; /*!< The value of Sensor Setting Raw field */
|
|
|
|
|
} esp_ble_mesh_sensor_setting_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Cadence state */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint8_t period_divisor : 7, /*!< The value of Fast Cadence Period Divisor field */
|
|
|
|
|
trigger_type : 1; /*!< The value of Status Trigger Type field */
|
|
|
|
|
/**
|
|
|
|
|
* Note:
|
|
|
|
|
* The parameter "size" in trigger_delta_down, trigger_delta_up, fast_cadence_low &
|
|
|
|
|
* fast_cadence_high indicates the exact length of these four parameters, and they
|
|
|
|
|
* are associated with the Sensor Property ID. Users need to initialize the "size"
|
|
|
|
|
* precisely.
|
|
|
|
|
*/
|
|
|
|
|
struct net_buf_simple *trigger_delta_down; /*!< The value of Status Trigger Delta Down field */
|
|
|
|
|
struct net_buf_simple *trigger_delta_up; /*!< The value of Status Trigger Delta Up field */
|
|
|
|
|
uint8_t min_interval; /*!< The value of Status Min Interval field */
|
|
|
|
|
struct net_buf_simple *fast_cadence_low; /*!< The value of Fast Cadence Low field */
|
|
|
|
|
struct net_buf_simple *fast_cadence_high; /*!< The value of Fast Cadence High field */
|
|
|
|
|
} esp_ble_mesh_sensor_cadence_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Data state */
|
|
|
|
|
typedef struct {
|
|
|
|
|
/**
|
|
|
|
|
* Format A: The Length field is a 1-based uint4 value (valid range 0x0–0xF,
|
|
|
|
|
* representing range of 1 – 16).
|
|
|
|
|
* Format B: The Length field is a 1-based uint7 value (valid range 0x0–0x7F,
|
|
|
|
|
* representing range of 1 – 127). The value 0x7F represents a
|
|
|
|
|
* length of zero.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t format : 1, /*!< The value of the Sensor Data format */
|
|
|
|
|
length : 7; /*!< The value of the Sensor Data length */
|
|
|
|
|
struct net_buf_simple *raw_value; /*!< The value of Sensor Data raw value */
|
|
|
|
|
} esp_ble_mesh_sensor_data_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Series Column state */
|
|
|
|
|
typedef struct {
|
|
|
|
|
struct net_buf_simple *raw_value_x; /*!< The value of Sensor Raw Value X field */
|
|
|
|
|
struct net_buf_simple *column_width; /*!< The value of Sensor Column Width field */
|
|
|
|
|
struct net_buf_simple *raw_value_y; /*!< The value of Sensor Raw Value Y field */
|
|
|
|
|
} esp_ble_mesh_sensor_series_column_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor states */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t sensor_property_id; /*!< The value of Sensor Property ID field */
|
|
|
|
|
|
|
|
|
|
/* Constant throughout the lifetime of an element */
|
|
|
|
|
esp_ble_mesh_sensor_descriptor_t descriptor; /*!< Parameters of the Sensor Descriptor state */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Multiple Sensor Setting states may be present for each sensor.
|
|
|
|
|
* The Sensor Setting Property ID values shall be unique for each
|
|
|
|
|
* Sensor Property ID that identifies a sensor within an element.
|
|
|
|
|
*/
|
|
|
|
|
const uint8_t setting_count; /*!< */
|
|
|
|
|
esp_ble_mesh_sensor_setting_t *settings; /*!< Parameters of the Sensor Setting state */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The Sensor Cadence state may be not supported by sensors based
|
|
|
|
|
* on device properties referencing "non-scalar characteristics"
|
|
|
|
|
* such as "histograms" or "composite characteristics".
|
|
|
|
|
*/
|
|
|
|
|
esp_ble_mesh_sensor_cadence_t *cadence; /*!< Parameters of the Sensor Cadence state */
|
|
|
|
|
|
|
|
|
|
esp_ble_mesh_sensor_data_t sensor_data; /*!< Parameters of the Sensor Data state */
|
|
|
|
|
|
|
|
|
|
esp_ble_mesh_sensor_series_column_t series_column; /*!< Parameters of the Sensor Series Column state */
|
|
|
|
|
} esp_ble_mesh_sensor_state_t;
|
|
|
|
|
|
|
|
|
|
/** User data of Sensor Server Model */
|
|
|
|
|
typedef struct {
|
|
|
|
|
esp_ble_mesh_model_t *model; /*!< Pointer to the Sensor Server Model. Initialized internally. */
|
|
|
|
|
esp_ble_mesh_server_rsp_ctrl_t rsp_ctrl; /*!< Response control of the server model received messages */
|
|
|
|
|
const uint8_t state_count; /*!< Sensor state count */
|
|
|
|
|
esp_ble_mesh_sensor_state_t *states; /*!< Parameters of the Sensor states */
|
|
|
|
|
} esp_ble_mesh_sensor_srv_t;
|
|
|
|
|
|
|
|
|
|
/** User data of Sensor Setup Server Model */
|
|
|
|
|
typedef struct {
|
|
|
|
|
esp_ble_mesh_model_t *model; /*!< Pointer to the Sensor Setup Server Model. Initialized internally. */
|
|
|
|
|
esp_ble_mesh_server_rsp_ctrl_t rsp_ctrl; /*!< Response control of the server model received messages */
|
|
|
|
|
const uint8_t state_count; /*!< Sensor state count */
|
|
|
|
|
esp_ble_mesh_sensor_state_t *states; /*!< Parameters of the Sensor states */
|
|
|
|
|
} esp_ble_mesh_sensor_setup_srv_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Cadence Set state change event */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< The value of Sensor Property ID state */
|
|
|
|
|
uint8_t period_divisor : 7, /*!< The value of Fast Cadence Period Divisor state */
|
|
|
|
|
trigger_type : 1; /*!< The value of Status Trigger Type state */
|
|
|
|
|
struct net_buf_simple *trigger_delta_down; /*!< The value of Status Trigger Delta Down state */
|
|
|
|
|
struct net_buf_simple *trigger_delta_up; /*!< The value of Status Trigger Delta Up state */
|
|
|
|
|
uint8_t min_interval; /*!< The value of Status Min Interval state */
|
|
|
|
|
struct net_buf_simple *fast_cadence_low; /*!< The value of Fast Cadence Low state */
|
|
|
|
|
struct net_buf_simple *fast_cadence_high; /*!< The value of Fast Cadence High state */
|
|
|
|
|
} esp_ble_mesh_state_change_sensor_cadence_set_t;
|
|
|
|
|
|
|
|
|
|
/** Parameters of Sensor Setting Set state change event */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< The value of Sensor Property ID state */
|
|
|
|
|
uint16_t setting_property_id; /*!< The value of Sensor Setting Property ID state */
|
|
|
|
|
struct net_buf_simple *setting_value; /*!< The value of Sensor Property Value state */
|
|
|
|
|
} esp_ble_mesh_state_change_sensor_setting_set_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor 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_sensor_cadence_set_t sensor_cadence_set; /*!< Sensor Cadence Set */
|
|
|
|
|
esp_ble_mesh_state_change_sensor_setting_set_t sensor_setting_set; /*!< Sensor Setting Set */
|
|
|
|
|
} esp_ble_mesh_sensor_server_state_change_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Descriptor Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
bool op_en; /*!< Indicate if optional parameters are included */
|
|
|
|
|
uint16_t property_id; /*!< Property ID of a sensor (optional) */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_descriptor_get_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Cadence Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< Property ID of a sensor */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_cadence_get_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Settings Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< Property ID of a sensor */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_settings_get_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Setting Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< Property ID of a sensor */
|
|
|
|
|
uint16_t setting_property_id; /*!< Setting ID identifying a setting within a sensor */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_setting_get_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
bool op_en; /*!< Indicate if optional parameters are included */
|
|
|
|
|
uint16_t property_id; /*!< Property ID for the sensor (optional) */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_get_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Column Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< Property identifying a sensor */
|
|
|
|
|
struct net_buf_simple *raw_value_x; /*!< Raw value identifying a column */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_column_get_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Series Get message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
bool op_en; /*!< Indicate if optional parameters are included */
|
|
|
|
|
uint16_t property_id; /*!< Property identifying a sensor */
|
|
|
|
|
struct net_buf_simple *raw_value; /*!< Raw value containg X1 and X2 (optional) */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_series_get_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Server Model received get message union
|
|
|
|
|
*/
|
|
|
|
|
typedef union {
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_descriptor_get_t sensor_descriptor; /*!< Sensor Descriptor Get */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_cadence_get_t sensor_cadence; /*!< Sensor Cadence Get */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_settings_get_t sensor_settings; /*!< Sensor Settings Get */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_setting_get_t sensor_setting; /*!< Sensor Setting Get */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_get_t sensor_data; /*!< Sensor Get */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_column_get_t sensor_column; /*!< Sensor Column Get */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_series_get_t sensor_series; /*!< Sensor Series Get */
|
|
|
|
|
} esp_ble_mesh_sensor_server_recv_get_msg_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Cadence Set message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< Property ID for the sensor */
|
|
|
|
|
struct net_buf_simple *cadence; /*!< Value of Sensor Cadence state */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_cadence_set_t;
|
|
|
|
|
|
|
|
|
|
/** Context of the received Sensor Setting Set message */
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t property_id; /*!< Property ID identifying a sensor */
|
|
|
|
|
uint16_t setting_property_id; /*!< Setting ID identifying a setting within a sensor */
|
|
|
|
|
struct net_buf_simple *setting_raw; /*!< Raw value for the setting */
|
|
|
|
|
} esp_ble_mesh_server_recv_sensor_setting_set_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Server Model received set message union
|
|
|
|
|
*/
|
|
|
|
|
typedef union {
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_cadence_set_t sensor_cadence; /*!< Sensor Cadence Set */
|
|
|
|
|
esp_ble_mesh_server_recv_sensor_setting_set_t sensor_setting; /*!< Sensor Setting Set */
|
|
|
|
|
} esp_ble_mesh_sensor_server_recv_set_msg_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Server Model callback value union
|
|
|
|
|
*/
|
|
|
|
|
typedef union {
|
|
|
|
|
esp_ble_mesh_sensor_server_state_change_t state_change; /*!< ESP_BLE_MESH_SENSOR_SERVER_STATE_CHANGE_EVT */
|
|
|
|
|
esp_ble_mesh_sensor_server_recv_get_msg_t get; /*!< ESP_BLE_MESH_SENSOR_SERVER_RECV_GET_MSG_EVT */
|
|
|
|
|
esp_ble_mesh_sensor_server_recv_set_msg_t set; /*!< ESP_BLE_MESH_SENSOR_SERVER_RECV_SET_MSG_EVT */
|
|
|
|
|
} esp_ble_mesh_sensor_server_cb_value_t;
|
|
|
|
|
|
|
|
|
|
/** Sensor Server Model callback parameters */
|
|
|
|
|
typedef struct {
|
|
|
|
|
esp_ble_mesh_model_t *model; /*!< Pointer to Sensor Server Models */
|
|
|
|
|
esp_ble_mesh_msg_ctx_t ctx; /*!< Context of the received messages */
|
|
|
|
|
esp_ble_mesh_sensor_server_cb_value_t value; /*!< Value of the received Sensor Messages */
|
|
|
|
|
} esp_ble_mesh_sensor_server_cb_param_t;
|
|
|
|
|
|
|
|
|
|
/** This enum value is the event of Sensor Server Model */
|
|
|
|
|
typedef enum {
|
|
|
|
|
/**
|
|
|
|
|
* 1. When get_auto_rsp is set to ESP_BLE_MESH_SERVER_AUTO_RSP, no event will be
|
|
|
|
|
* callback to the application layer when Sensor Get messages are received.
|
|
|
|
|
* 2. When set_auto_rsp is set to ESP_BLE_MESH_SERVER_AUTO_RSP, this event will
|
|
|
|
|
* be callback to the application layer when Sensor Set/Set Unack messages
|
|
|
|
|
* are received.
|
|
|
|
|
*/
|
|
|
|
|
ESP_BLE_MESH_SENSOR_SERVER_STATE_CHANGE_EVT,
|
|
|
|
|
/**
|
|
|
|
|
* When get_auto_rsp is set to ESP_BLE_MESH_SERVER_RSP_BY_APP, this event will be
|
|
|
|
|
* callback to the application layer when Sensor Get messages are received.
|
|
|
|
|
*/
|
|
|
|
|
ESP_BLE_MESH_SENSOR_SERVER_RECV_GET_MSG_EVT,
|
|
|
|
|
/**
|
|
|
|
|
* When set_auto_rsp is set to ESP_BLE_MESH_SERVER_RSP_BY_APP, this event will be
|
|
|
|
|
* callback to the application layer when Sensor Set/Set Unack messages are received.
|
|
|
|
|
*/
|
|
|
|
|
ESP_BLE_MESH_SENSOR_SERVER_RECV_SET_MSG_EVT,
|
|
|
|
|
ESP_BLE_MESH_SENSOR_SERVER_EVT_MAX,
|
|
|
|
|
} esp_ble_mesh_sensor_server_cb_event_t;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Bluetooth Mesh Sensor Server Model function.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Sensor Server Model callback function type
|
|
|
|
|
* @param event: Event type
|
|
|
|
|
* @param param: Pointer to callback parameter
|
|
|
|
|
*/
|
|
|
|
|
typedef void (* esp_ble_mesh_sensor_server_cb_t)(esp_ble_mesh_sensor_server_cb_event_t event,
|
2019-10-21 14:53:25 +00:00
|
|
|
|
esp_ble_mesh_sensor_server_cb_param_t *param);
|
2019-10-12 06:41:21 +00:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Register BLE Mesh Sensor 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_sensor_server_callback(esp_ble_mesh_sensor_server_cb_t callback);
|
|
|
|
|
|
2019-01-07 07:16:47 +00:00
|
|
|
|
#endif /* _ESP_BLE_MESH_SENSOR_MODEL_API_H_ */
|
|
|
|
|
|
|
|
|
|
|