Bluetooth: Mesh: Document Heartbeat
Adds public documentation for the Heartbeat feature in a separate page under Bluetooth Mesh. Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
This commit is contained in:
parent
0dc9e5cd96
commit
8e284750c8
3 changed files with 72 additions and 1 deletions
|
@ -18,4 +18,5 @@ Read more about Bluetooth Mesh on the
|
||||||
mesh/models.rst
|
mesh/models.rst
|
||||||
mesh/provisioning.rst
|
mesh/provisioning.rst
|
||||||
mesh/proxy.rst
|
mesh/proxy.rst
|
||||||
|
mesh/heartbeat.rst
|
||||||
mesh/shell.rst
|
mesh/shell.rst
|
||||||
|
|
67
doc/reference/bluetooth/mesh/heartbeat.rst
Normal file
67
doc/reference/bluetooth/mesh/heartbeat.rst
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
.. _bluetooth_mesh_heartbeat:
|
||||||
|
|
||||||
|
Heartbeat
|
||||||
|
#########
|
||||||
|
|
||||||
|
The Bluetooth Mesh Heartbeat feature provides functionality for monitoring mesh
|
||||||
|
nodes and determining the distance between nodes.
|
||||||
|
|
||||||
|
The Heartbeat feature is configured through the :ref:`bluetooth_mesh_models_cfg_srv` model.
|
||||||
|
|
||||||
|
Heartbeat messages
|
||||||
|
******************
|
||||||
|
|
||||||
|
Heartbeat messages are sent as transport control packets through the network,
|
||||||
|
and are only encrypted with a network key. Heartbeat messages contain the
|
||||||
|
original Time To Live (TTL) value used to send the message and a bitfield of
|
||||||
|
the active features on the node. Through this, a receiving node can determine
|
||||||
|
how many relays the message had to go through to arrive at the receiver, and
|
||||||
|
what features the node supports.
|
||||||
|
|
||||||
|
Available Heartbeat feature flags:
|
||||||
|
|
||||||
|
- :c:macro:`BT_MESH_FEAT_RELAY`
|
||||||
|
- :c:macro:`BT_MESH_FEAT_PROXY`
|
||||||
|
- :c:macro:`BT_MESH_FEAT_FRIEND`
|
||||||
|
- :c:macro:`BT_MESH_FEAT_LOW_POWER`
|
||||||
|
|
||||||
|
Heartbeat publication
|
||||||
|
*********************
|
||||||
|
|
||||||
|
Heartbeat publication is controlled through the Configuration models, and can
|
||||||
|
be triggered in two ways:
|
||||||
|
|
||||||
|
Periodic publication
|
||||||
|
The node publishes a new Heartbeat message at regular intervals. The
|
||||||
|
publication can be configured to stop after a certain number of messages, or
|
||||||
|
continue indefinitely.
|
||||||
|
|
||||||
|
Triggered publication
|
||||||
|
The node publishes a new Heartbeat message every time a feature changes. The
|
||||||
|
set of features that can trigger the publication is configurable.
|
||||||
|
|
||||||
|
The two publication types can be combined.
|
||||||
|
|
||||||
|
Heartbeat subscription
|
||||||
|
**********************
|
||||||
|
|
||||||
|
A node can be configured to subscribe to Heartbeat messages from one node at
|
||||||
|
the time. To receive a Heartbeat message, both the source and destination must
|
||||||
|
match the configured subscription parameters.
|
||||||
|
|
||||||
|
Heartbeat subscription is always time limited, and throughout the subscription
|
||||||
|
period, the node keeps track of the number of received Heartbeats as well as
|
||||||
|
the minimum and maximum received hop count.
|
||||||
|
|
||||||
|
All Heartbeats received with the configured subscription parameters are passed
|
||||||
|
to the :cpp:member:`bt_mesh_hb_cb::recv` event handler.
|
||||||
|
|
||||||
|
When the Heartbeat subscription period ends, the
|
||||||
|
:cpp:member:`bt_mesh_hb_cb::sub_end` callback gets called.
|
||||||
|
|
||||||
|
API reference
|
||||||
|
**************
|
||||||
|
|
||||||
|
.. doxygengroup:: bt_mesh_heartbeat
|
||||||
|
:project: Zephyr
|
||||||
|
:members:
|
|
@ -451,10 +451,13 @@ bool bt_mesh_is_provisioned(void);
|
||||||
#define BT_MESH_NODE_IDENTITY_RUNNING 0x01
|
#define BT_MESH_NODE_IDENTITY_RUNNING 0x01
|
||||||
#define BT_MESH_NODE_IDENTITY_NOT_SUPPORTED 0x02
|
#define BT_MESH_NODE_IDENTITY_NOT_SUPPORTED 0x02
|
||||||
|
|
||||||
/* Features */
|
/** Relay feature */
|
||||||
#define BT_MESH_FEAT_RELAY BIT(0)
|
#define BT_MESH_FEAT_RELAY BIT(0)
|
||||||
|
/** GATT Proxy feature */
|
||||||
#define BT_MESH_FEAT_PROXY BIT(1)
|
#define BT_MESH_FEAT_PROXY BIT(1)
|
||||||
|
/** Friend feature */
|
||||||
#define BT_MESH_FEAT_FRIEND BIT(2)
|
#define BT_MESH_FEAT_FRIEND BIT(2)
|
||||||
|
/** Low Power Node feature */
|
||||||
#define BT_MESH_FEAT_LOW_POWER BIT(3)
|
#define BT_MESH_FEAT_LOW_POWER BIT(3)
|
||||||
#define BT_MESH_FEAT_SUPPORTED (BT_MESH_FEAT_RELAY | \
|
#define BT_MESH_FEAT_SUPPORTED (BT_MESH_FEAT_RELAY | \
|
||||||
BT_MESH_FEAT_PROXY | \
|
BT_MESH_FEAT_PROXY | \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue