zephyr/include/bluetooth/mesh/cfg_srv.h
Trond Einar Snekvik 6a679a92db Bluetooth: Mesh: Clean up API documentation
Fills in all missing API documentation for the public Bluetooth Mesh
API, and unifies the formatting of all entries.

Some defines and enum values have been left without documentation in
cases where the meaning is self explanatory, and documentation wouldn't
add any value. Structure members that are just internal parameters are
left without documentation, as this also hides them from the generated
documentation output.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2019-12-05 13:04:14 +01:00

125 lines
3.5 KiB
C

/** @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_ */