Health Client¶
The Health Client model interacts with a Health Server model to read out diagnostics and control the node’s attention state.
All message passing functions in the Health Client API have net_idx
and
addr
as their first parameters. These should be set to the network index
and primary unicast address that the target node was provisioned with.
The Health Client model is optional, and may be instantiated in any element. However, if a Health Client model is instantiated in an element other than the first, an instance must also be present in the first element.
See Bluetooth Mesh Health Faults for a list of specification defined fault values.
API reference¶
-
group
bt_mesh_health_cli
Bluetooth Mesh.
Defines
-
BT_MESH_MODEL_HEALTH_CLI
(cli_data)¶ Generic Health Client model composition data entry.
- Parameters
cli_data
: Pointer to a Bluetooth Mesh Health Client Model instance.
Functions
-
int
bt_mesh_health_cli_set
(struct bt_mesh_model *model)¶ Set Health client model instance to use for communication.
- Return
0 on success, or (negative) error code on failure.
- Parameters
model
: Health Client model instance from the composition data.
-
int
bt_mesh_health_fault_get
(uint16_t addr, uint16_t app_idx, uint16_t cid, uint8_t *test_id, uint8_t *faults, size_t *fault_count)¶ Get the registered fault state for the given Company ID.
- See
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.cid
: Company ID to get the registered faults of.test_id
: Test ID response buffer.faults
: Fault array response buffer.fault_count
: Fault count response buffer.
-
int
bt_mesh_health_fault_clear
(uint16_t addr, uint16_t app_idx, uint16_t cid, uint8_t *test_id, uint8_t *faults, size_t *fault_count)¶ Clear the registered faults for the given Company ID.
- See
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.cid
: Company ID to clear the registered faults for.test_id
: Test ID response buffer.faults
: Fault array response buffer.fault_count
: Fault count response buffer.
-
int
bt_mesh_health_fault_test
(uint16_t addr, uint16_t app_idx, uint16_t cid, uint8_t test_id, uint8_t *faults, size_t *fault_count)¶ Invoke a self-test procedure for the given Company ID.
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.cid
: Company ID to invoke the test for.test_id
: Test ID response buffer.faults
: Fault array response buffer.fault_count
: Fault count response buffer.
-
int
bt_mesh_health_period_get
(uint16_t addr, uint16_t app_idx, uint8_t *divisor)¶ Get the target node’s Health fast period divisor.
The health period divisor is used to increase the publish rate when a fault is registered. Normally, the Health server will publish with the period in the configured publish parameters. When a fault is registered, the publish period is divided by (1 << divisor). For example, if the target node’s Health server is configured to publish with a period of 16 seconds, and the Health fast period divisor is 5, the Health server will publish with an interval of 500 ms when a fault is registered.
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.divisor
: Health period divisor response buffer.
-
int
bt_mesh_health_period_set
(uint16_t addr, uint16_t app_idx, uint8_t divisor, uint8_t *updated_divisor)¶ Set the target node’s Health fast period divisor.
The health period divisor is used to increase the publish rate when a fault is registered. Normally, the Health server will publish with the period in the configured publish parameters. When a fault is registered, the publish period is divided by (1 << divisor). For example, if the target node’s Health server is configured to publish with a period of 16 seconds, and the Health fast period divisor is 5, the Health server will publish with an interval of 500 ms when a fault is registered.
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.divisor
: New Health period divisor.updated_divisor
: Health period divisor response buffer.
-
int
bt_mesh_health_attention_get
(uint16_t addr, uint16_t app_idx, uint8_t *attention)¶ Get the current attention timer value.
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.attention
: Attention timer response buffer, measured in seconds.
-
int
bt_mesh_health_attention_set
(uint16_t addr, uint16_t app_idx, uint8_t attention, uint8_t *updated_attention)¶ Set the attention timer.
- Return
0 on success, or (negative) error code on failure.
- Parameters
addr
: Target node element address.app_idx
: Application index to encrypt with.attention
: New attention timer time, in seconds.updated_attention
: Attention timer response buffer, measured in seconds.
-
int32_t
bt_mesh_health_cli_timeout_get
(void)¶ Get the current transmission timeout value.
- Return
The configured transmission timeout in milliseconds.
-
void
bt_mesh_health_cli_timeout_set
(int32_t timeout)¶ Set the transmission timeout value.
- Parameters
timeout
: The new transmission timeout.
-
struct
bt_mesh_health_cli
¶ - #include <health_cli.h>
Mesh Health Client Model Context
Public Members
-
struct bt_mesh_model *
model
¶ Composition data model entry pointer.
-
void (*
current_status
)(struct bt_mesh_health_cli *cli, uint16_t addr, uint8_t test_id, uint16_t cid, uint8_t *faults, size_t fault_count)¶ Optional callback for Health Current Status messages.
Handles received Health Current Status messages from a Health server. The
fault
array represents all faults that are currently present in the server’s element.- See
- Parameters
cli
: Health client that received the status message.addr
: Address of the sender.test_id
: Identifier of a most recently performed test.cid
: Company Identifier of the node.faults
: Array of faults.fault_count
: Number of faults in the fault array.
-
struct bt_mesh_model *
-