Light HSL Client¶
The Light HSL Client model remotely controls the state of the Light HSL Server, Light Hue Server and Light Saturation Server models.
Unlike the Light HSL Server model, the Client only creates a single model instance in the mesh composition data.
Extended models¶
None.
Persistent storage¶
None.
API documentation¶
include/bluetooth/mesh/light_hsl_cli.h
subsys/bluetooth/mesh/light_hsl_cli.c
-
group
bt_mesh_light_hsl_cli
API for the Light HSL Client model.
Defines
-
BT_MESH_MODEL_LIGHT_HSL_CLI
(_cli)¶ Light HSL Client model composition data entry.
- Parameters
[in] _cli
: Pointer to a Light HSL Client model instance.
Functions
-
int
bt_mesh_light_hsl_get
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_light_hsl_status *rsp)¶ Get the Light HSL state of the bound server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] rsp
: Status response buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_set
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl_params *set, struct bt_mesh_light_hsl_status *rsp)¶ Set the Light HSL state of the server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: HSL state to set.[in] rsp
: Response status buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_set_unack
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl_params *set)¶ Set the Light HSL state of the server without requesting a response.
- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: HSL state to set.
- Return Value
0
: Successfully sent the message.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.
-
int
bt_mesh_light_hsl_target_get
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_light_hsl_status *rsp)¶ Get the Light HSL target state of the bound server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] rsp
: Status response buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_default_get
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_light_hsl *rsp)¶ Get the default HSL value of the bound server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] rsp
: Status response buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_default_set
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl *set, struct bt_mesh_light_hsl *rsp)¶ Set the default HSL value of the server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Default HSL value to set.[in] rsp
: Response status buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_default_set_unack
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl *set)¶ Set the default HSL value of the server without requesting a response.
- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Default HSL value to set.
- Return Value
0
: Successfully sent the message.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.
-
int
bt_mesh_light_hsl_range_get
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_light_hsl_range_status *rsp)¶ Get the Light HSL Range state of the bound server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] rsp
: Status response buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_range_set
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hue_sat_range *set, struct bt_mesh_light_hsl_range_status *rsp)¶ Set the Light HSL Range of the server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Range to set.[in] rsp
: Response status buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hsl_range_set_unack
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hue_sat_range *set)¶ Set the Light HSL Range of the server without requesting a response.
- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Range state to set.
- Return Value
0
: Successfully sent the message.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.
-
int
bt_mesh_light_hue_get
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_light_hue_status *rsp)¶ Get the Light Hue state of the bound server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] rsp
: Status response buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hue_set
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hue *set, struct bt_mesh_light_hue_status *rsp)¶ Set the Light Hue state of the server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Light Hue state to set.[in] rsp
: Response status buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_hue_set_unack
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hue *set)¶ Set the Light Hue state of the server without requesting a response.
- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Light Hue state to set.
- Return Value
0
: Successfully sent the message.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.
-
int
bt_mesh_light_saturation_get
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, struct bt_mesh_light_sat_status *rsp)¶ Get the Light Saturation state of the bound server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] rsp
: Status response buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_saturation_set
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_sat *set, struct bt_mesh_light_sat_status *rsp)¶ Set the Light Saturation state of the server.
This call is blocking if the
rsp
buffer is non-NULL. Otherwise, this function will return.- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Light Saturation state to set.[in] rsp
: Response status buffer, or NULL to keep from blocking.
- Return Value
0
: Successfully sent the message and populated thersp
buffer.-EALREADY
: A blocking request is already in progress.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.-ETIMEDOUT
: The request timed out without a response.
-
int
bt_mesh_light_saturation_set_unack
(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_sat *set)¶ Set the Light Saturation state of the server without requesting a response.
- Parameters
[in] cli
: Client model to send on.[in] ctx
: Message context, or NULL to use the configured publish parameters.[in] set
: Light Saturation state to set.
- Return Value
0
: Successfully sent the message.-EADDRNOTAVAIL
: A message context was not provided and publishing is not configured.-EAGAIN
: The device has not been provisioned.
-
struct
bt_mesh_light_hsl_cli_handlers
¶ - #include <light_hsl_cli.h>
Light HSL Client state access handlers.
Public Members
-
void (*const
status
)(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl_status *status)¶ HSL status message handler.
- Parameters
[in] cli
: Client that received the status message.[in] ctx
: Context of the message.[in] status
: HSL status contained in the message.
-
void (*const
target_status
)(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl_status *status)¶ HSL target status message handler.
- Parameters
[in] cli
: Client that received the status message.[in] ctx
: Context of the message.[in] status
: HSL target status contained in the message.
-
void (*const
default_status
)(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl *status)¶ Default parameter status message handler.
- Parameters
[in] cli
: Client that received the status message.[in] ctx
: Context of the message.[in] status
: Default HSL value of the server.
-
void (*const
range_status
)(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hsl_range_status *status)¶ Range status message handler.
- Parameters
[in] cli
: Client that received the status message.[in] ctx
: Context of the message.[in] status
: HSL Range state of the server.
-
void (*const
hue_status
)(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_hue_status *status)¶ Hue status message handler.
- Parameters
[in] cli
: Client that received the status message.[in] ctx
: Context of the message.[in] status
: Hue status contained in the message.
-
void (*const
saturation_status
)(struct bt_mesh_light_hsl_cli *cli, struct bt_mesh_msg_ctx *ctx, const struct bt_mesh_light_sat_status *status)¶ Saturation status message handler.
- Parameters
[in] cli
: Client that received the status message.[in] ctx
: Context of the message.[in] status
: Saturation status contained in the message.
-
void (*const
-
struct
bt_mesh_light_hsl_cli
¶ - #include <light_hsl_cli.h>
Light HSL Client instance.
Public Members
-
const struct bt_mesh_light_hsl_cli_handlers *
handlers
¶ Handler function structure.
-
struct bt_mesh_model *
model
¶ Model entry.
-
struct bt_mesh_model_pub
pub
¶ Publish parameters.
-
struct net_buf_simple
buf
¶ Publication buffer
-
uint8_t
pub_data
[BT_MESH_MODEL_BUF_LEN
(BT_MESH_LIGHT_HSL_OP_SET
,BT_MESH_LIGHT_HSL_MSG_MAXLEN_SET
)]¶ Publication buffer data
-
struct bt_mesh_model_ack_ctx
ack_ctx
¶ Acknowledged message tracking.
-
uint8_t
tid
¶ Current transaction ID.
-
const struct bt_mesh_light_hsl_cli_handlers *
-