Large Composition Data Client
The Large Composition Data Client model is a foundation model defined by the Bluetooth
mesh specification. The model is optional, and is enabled through the CONFIG_BT_MESH_LARGE_COMP_DATA_CLI
option.
The Large Composition Data Client model was introduced in the Bluetooth Mesh Protocol Specification version 1.1, and supports the functionality of reading pages of Composition Data that do not fit in a Config Composition Data Status message and reading the metadata of the model instances on a node that supports the Large Composition Data Server model.
The Large Composition Data Client model communicates with a Large Composition Data Server model using the device key of the node containing the target Large Composition Data Server model instance.
If present, the Large Composition Data Client model must only be instantiated on the primary element.
API reference
- group bt_mesh_large_comp_data_cli
Defines
-
BT_MESH_MODEL_LARGE_COMP_DATA_CLI(cli_data)
Large Composition Data Client model Composition Data entry.
- Parameters:
cli_data – Pointer to a Large Composition Data Client model instance.
Functions
-
int bt_mesh_large_comp_data_get(uint16_t net_idx, uint16_t addr, uint8_t page, size_t offset, struct bt_mesh_large_comp_data_rsp *rsp)
Send Large Composition Data Get message.
This API is used to read a portion of a Composition Data Page.
This API can be used asynchronously by setting
rsp
as NULL. This way, the method will not wait for a response and will return immediately after sending the command.When
rsp
is set, the user is responsible for providing a buffer for the Composition Data in bt_mesh_large_comp_data_rsp::data. If a buffer is not provided, the metadata won’t be copied.- Parameters:
net_idx – Network index to encrypt with.
addr – Target node element address.
page – Composition Data Page to read.
offset – Offset within the Composition Data Page.
rsp – Pointer to a struct storing the received response from the server, or NULL to not wait for a response.
- Returns:
0 on success, or (negative) error code on failure.
-
int bt_mesh_models_metadata_get(uint16_t net_idx, uint16_t addr, uint8_t page, size_t offset, struct bt_mesh_large_comp_data_rsp *rsp)
Send Models Metadata Get message.
This API is used to read a portion of a Models Metadata Page.
This API can be used asynchronously by setting
rsp
as NULL. This way, the method will not wait for a response and will return immediately after sending the command.When
rsp
is set, a user is responsible for providing a buffer for metadata in bt_mesh_large_comp_data_rsp::data. If a buffer is not provided, the metadata won’t be copied.- Parameters:
net_idx – Network index to encrypt with.
addr – Target node element address.
page – Models Metadata Page to read.
offset – Offset within the Models Metadata Page.
rsp – Pointer to a struct storing the received response from the server, or NULL to not wait for a response.
- Returns:
0 on success, or (negative) error code on failure.
-
struct bt_mesh_large_comp_data_rsp
- #include <large_comp_data_cli.h>
Large Composition Data response.
Public Members
-
uint8_t page
Page number.
-
uint16_t offset
Offset within the page.
-
uint16_t total_size
Total size of the page.
-
struct net_buf_simple *data
Pointer to allocated buffer for storing received data.
-
uint8_t page
-
struct bt_mesh_large_comp_data_cli_cb
- #include <large_comp_data_cli.h>
Large Composition Data Status messages callbacks.
Public Members
-
void (*large_comp_data_status)(struct bt_mesh_large_comp_data_cli *cli, uint16_t addr, struct bt_mesh_large_comp_data_rsp *rsp)
Optional callback for Large Composition Data Status message.
Handles received Large Composition Data Status messages from a Large Composition Data Server.
If the content of
rsp
is needed after exiting this callback, a user should deep copy it.- Param cli:
Large Composition Data Client context.
- Param addr:
Address of the sender.
- Param rsp:
Response received from the server.
-
void (*models_metadata_status)(struct bt_mesh_large_comp_data_cli *cli, uint16_t addr, struct bt_mesh_large_comp_data_rsp *rsp)
Optional callback for Models Metadata Status message.
Handles received Models Metadata Status messages from a Large Composition Data Server.
If the content of
rsp
is needed after exiting this callback, a user should deep copy it.- Param cli:
Large Composition Data Client context.
- Param addr:
Address of the sender.
- Param rsp:
Response received from the server.
-
void (*large_comp_data_status)(struct bt_mesh_large_comp_data_cli *cli, uint16_t addr, struct bt_mesh_large_comp_data_rsp *rsp)
-
struct bt_mesh_large_comp_data_cli
- #include <large_comp_data_cli.h>
Large Composition Data Client model context.
Public Members
-
struct bt_mesh_model *model
Model entry pointer.
-
struct bt_mesh_msg_ack_ctx ack_ctx
Internal parameters for tracking message responses.
-
const struct bt_mesh_large_comp_data_cli_cb *cb
Optional callback for Large Composition Data Status messages.
-
struct bt_mesh_model *model
-
BT_MESH_MODEL_LARGE_COMP_DATA_CLI(cli_data)