| /** @file |
| * @brief Bluetooth Mesh Configuration Server Model APIs. |
| */ |
| |
| /* |
| * Copyright (c) 2017 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| #ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_CFG_SRV_H_ |
| #define ZEPHYR_INCLUDE_BLUETOOTH_MESH_CFG_SRV_H_ |
| |
| /** |
| * @brief Bluetooth Mesh |
| * @defgroup bt_mesh_cfg_srv Bluetooth Mesh Configuration Server Model |
| * @ingroup bt_mesh |
| * @{ |
| */ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** Mesh Configuration Server Model Context */ |
| struct bt_mesh_cfg_srv { |
| /** Composition data model entry pointer. */ |
| struct bt_mesh_model *model; |
| |
| u8_t net_transmit; /**< Network Transmit state */ |
| u8_t relay; /**< Relay Mode state */ |
| u8_t relay_retransmit; /**< Relay Retransmit state */ |
| u8_t beacon; /**< Secure Network Beacon state */ |
| u8_t gatt_proxy; /**< GATT Proxy state */ |
| u8_t frnd; /**< Friend state */ |
| u8_t default_ttl; /**< Default TTL */ |
| |
| /** Heartbeat Publication parameters */ |
| struct bt_mesh_hb_pub { |
| struct k_delayed_work timer; |
| |
| /** Destination address. */ |
| u16_t dst; |
| /** Remaining publish count. */ |
| u16_t count; |
| /** Logarithmic publish interval in seconds. */ |
| u8_t period; |
| /** Time To Live value. */ |
| u8_t ttl; |
| /** |
| * Bitmap of features that trigger a Heartbeat publication if |
| * they change. Legal values are |
| * @ref BT_MESH_FEAT_RELAY, @ref BT_MESH_FEAT_PROXY, |
| * @ref BT_MESH_FEAT_FRIEND and @ref BT_MESH_FEAT_LOW_POWER. |
| */ |
| u16_t feat; |
| /** Network index used for publishing. */ |
| u16_t net_idx; |
| } hb_pub; |
| |
| /** Heartbeat Subscription parameters. */ |
| struct bt_mesh_hb_sub { |
| /** Subscription period exipration timestamp. */ |
| s64_t expiry; |
| /** Source address to receive Heartbeats from. */ |
| u16_t src; |
| /** Destination address to received Heartbeats on. */ |
| u16_t dst; |
| /** The number of received Heartbeat messages so far. */ |
| u16_t count; |
| /** |
| * Minimum hops in received messages, ie the shortest registered |
| * path from the publishing node to the subscribing node. A |
| * Heartbeat received from an immediate neighbor has hop |
| * count = 1. |
| */ |
| u8_t min_hops; |
| /** |
| * Maximum hops in received messages, ie the longest registered |
| * path from the publishing node to the subscribing node. A |
| * Heartbeat received from an immediate neighbor has hop |
| * count = 1. |
| */ |
| u8_t max_hops; |
| |
| /** @brief Optional Heartbeat subscription tracking callback. |
| * |
| * Gets called on every received Heartbeat. |
| * |
| * @param hops The number of hops the Heartbeat was received |
| * with. |
| * @param feat The feature set of the publishing node. The |
| * value is a bitmap of @ref BT_MESH_FEAT_RELAY, |
| * @ref BT_MESH_FEAT_PROXY, |
| * @ref BT_MESH_FEAT_FRIEND and |
| * @ref BT_MESH_FEAT_LOW_POWER. |
| */ |
| void (*func)(u8_t hops, u16_t feat); |
| } hb_sub; |
| }; |
| |
| /** @def BT_MESH_MODEL_CFG_SRV |
| * |
| * @brief Generic Configuration Server model composition data entry. |
| * |
| * @param srv_data Pointer to a @ref bt_mesh_cfg_srv instance. |
| */ |
| #define BT_MESH_MODEL_CFG_SRV(srv_data) \ |
| BT_MESH_MODEL_CB(BT_MESH_MODEL_ID_CFG_SRV, bt_mesh_cfg_srv_op, NULL, \ |
| srv_data, &bt_mesh_cfg_srv_cb) |
| |
| /** @cond INTERNAL_HIDDEN */ |
| extern const struct bt_mesh_model_op bt_mesh_cfg_srv_op[]; |
| extern const struct bt_mesh_model_cb bt_mesh_cfg_srv_cb; |
| /** @endcond */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| /** |
| * @} |
| */ |
| |
| #endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_CFG_SRV_H_ */ |