AIROC™ BTSDK v4.9 - Documentation | ||||
The AIROC Mesh Light xyL Server module provides a way for an application to implement a dimmable light device with x and y chromaticity coordinates support. More...
Macros | |
#define | WICED_BT_MESH_MODEL_LIGHT_XYL_SERVER |
Mesh Light XYL Server Device. More... | |
Typedefs | |
typedef void( | wiced_bt_mesh_light_xyl_server_callback_t )(uint8_t element_idx, uint16_t event, void *p_data) |
Light XYL Server callback. More... | |
Functions | |
void | wiced_bt_mesh_model_light_xyl_server_init (uint8_t element_idx, wiced_bt_mesh_light_xyl_server_callback_t *p_callback, wiced_bt_mesh_light_xyl_xy_settings_t *p_xy_settings, wiced_bool_t is_provisioned) |
Light XYL Module initialization. More... | |
void | wiced_bt_mesh_model_light_xyl_server_state_changed (uint8_t element_idx, wiced_bt_mesh_light_xyl_status_data_t *p_data) |
Light XYL state changed. More... | |
wiced_bool_t | wiced_bt_mesh_model_light_xyl_server_message_handler (wiced_bt_mesh_event_t *p_event, uint8_t *p_data, uint16_t data_len) |
Light XYL Server Message Handler. More... | |
wiced_bool_t | wiced_bt_mesh_model_light_xyl_setup_server_message_handler (wiced_bt_mesh_event_t *p_event, uint8_t *p_data, uint16_t data_len) |
Light XYL Setup Server Message Handler. More... | |
uint16_t | wiced_bt_mesh_model_light_xyl_server_scene_store_handler (uint8_t element_idx, uint8_t *p_buffer, uint16_t buffer_len) |
Light xyL Server Scene Store Handler. More... | |
uint16_t | wiced_bt_mesh_model_light_xyl_server_scene_recall_handler (uint8_t element_idx, uint8_t *p_buffer, uint16_t buffer_len, uint32_t transition_time, uint32_t delay) |
Light xyL Server Scene Store Handler. More... | |
void | wiced_bt_mesh_model_light_xyl_server_set_startup_controller (uint8_t element_idx, wiced_bool_t startup_controller) |
Set Light XYL Model as a startup controller. More... | |
The AIROC Mesh Light xyL Server module provides a way for an application to implement a dimmable light device with x and y chromaticity coordinates support.
The device can be controlled by a device with rich UI which can control the brightness, x and y states, but also the device can be can be controlled using a Level sliders (Generic Level client) applied to the brightness and by a On/Off switch (Generic On/Off client). The device also supports a default transition time server functionality and the application can specify on power up behavior.
To include the Mesh Models support for the XYL Server module the application includes the WICED_BT_MESH_MODEL_LIGHT_XYL_SERVER in the device definition. If the device supports several lights with XYL Server support, for example, a light fixture or a chandelier with several color lights, the WICED_BT_MESH_MODEL_LIGHT_XYL_SERVER, shall be repeated for each physical device.
In addition to the definition, the application shall initialize the XYL Server module by calling wiced_bt_mesh_model_light_xyl_server_init function for each primary element where the XYL functionality is required providing the wiced_bt_mesh_light_xyl_server_callback_t callback that will be executed when the brightness level, the hue or the saturation of the device needs to be changed.
If device supports local control, for example, when the brightness of the device can be changed locally, the application should call the wiced_bt_mesh_model_light_xyl_status_changed function so that the library can maintain correct state and send an appropriate status message if it is configured to do so.
Most of the functionality of the Light XYL server device is implemented in the Mesh Models Library. The application only needs to set hardware appropriately on receiving WICED_BT_MESH_LIGHT_XYL_STATUS event. If a client requests to change the brightness or the color to the target values over a period of time, the library will maintain the timer and will periodically call the application with appropriate values.
The default transition time is managed by the Mesh Models library. The application provides factory default in the default_transition_time element of the wiced_bt_mesh_core_config_t configuration structure. The default value is used unless overwritten by the default transition time client.
The on power up behavior is managed by the Mesh Models library. The application provides factory default in the onpowerup_state element of the wiced_bt_mesh_core_config_t configuration structure. The default value is used unless overwritten by the default transition time client.
#define WICED_BT_MESH_MODEL_LIGHT_XYL_SERVER |
Mesh Light XYL Server Device.
The device implements all required models for the main element of a color bulb that supports brightness and xyL color control. The time and scheduler models are optional and can be commented out to reduce memory footprint.
typedef void( wiced_bt_mesh_light_xyl_server_callback_t)(uint8_t element_idx, uint16_t event, void *p_data) |
Light XYL Server callback.
Light XYL Server callback is executed by the Mesh Models library when the application is required to adjust the amount of light emitted by the device or its color. The application is responsible for setting the hardware (for example, by controlling PWM) to comply with the values requested by the library.
If peer device requested to transition to the new brightness, x or y states over a period of time, the callback will be executed repeatedly. The Mesh Models Library calculates the present levels and submits to the application to setup the hardware.
The p_data parameter points to the wiced_bt_mesh_light_xyl_status_data_t structure. Typically the application will only need to use the value of the present lightness, x and y fields which specify the target values that the device shall be set at present time. If the remaining_time field is not zero, the transition to the new target levels is in progress and the Mesh Models Library will execute the callback at least once more before the transition is completed.
element_idx | Element index of the element |
event | The only event that the application should process is WICED_BT_MESH_LIGHT_XYL_STATUS |
p_data | Pointer to the wiced_bt_mesh_light_xyl_status_data_t structure |
void wiced_bt_mesh_model_light_xyl_server_init | ( | uint8_t | element_idx, |
wiced_bt_mesh_light_xyl_server_callback_t * | p_callback, | ||
wiced_bt_mesh_light_xyl_xy_settings_t * | p_xy_settings, | ||
wiced_bool_t | is_provisioned | ||
) |
Light XYL Module initialization.
A Mesh application which contains Light XYL Server (for example, a dimmable color bulb) should call this function during application initialization passing element index of the element. If the application needs to support multiple XYL lights (for example, a light fixture or a chandelier), the function shall be called multiple times, once per each primary element.
element_idx | Element index corresponding to XYL device |
p_callback | Application callback that will be executed to set device hardware to required brightness, x and y values. |
is_provisioned | If TRUE, the application is being restarted after being provisioned or after a power loss. If FALSE the device is not provision and NVRAM is erased. |
wiced_bool_t wiced_bt_mesh_model_light_xyl_server_message_handler | ( | wiced_bt_mesh_event_t * | p_event, |
uint8_t * | p_data, | ||
uint16_t | data_len | ||
) |
Light XYL Server Message Handler.
The Light XYL Server Message Handler is an internal Mesh Models library function and does not need to be implemented or called by the application, unless application wants to replace the library functionality. The Mesh Core library calls this function for each message received. The function shall return WICED_TRUE if the message is destined for this specific model and successfully processed, and returns WICED_FALSE otherwise.
p_event | Mesh event with information about received message. |
p_data | Pointer to the data portion of the message |
data_len | Length of the data in the message |
uint16_t wiced_bt_mesh_model_light_xyl_server_scene_recall_handler | ( | uint8_t | element_idx, |
uint8_t * | p_buffer, | ||
uint16_t | buffer_len, | ||
uint32_t | transition_time, | ||
uint32_t | delay | ||
) |
Light xyL Server Scene Store Handler.
The Light HSL Saturation Server Message Handler is an internal Mesh Models library function and does not need to be implemented or called by the application, unless application wants to replace the library functionality. When Scene Server receives Scene Store message it calls this function with data previously stored in the NVRAM.
element_idx | Element index for which scene information is being recalled |
p_buffer | Pointer to a buffer where model's data is located |
buf_size | Maximum amount of data a model can get from the buffer |
transition_time | Specified time in milliseconds to transition to the target state |
delay | Specifies time in milliseconds before starting to transition to the target state |
uint16_t wiced_bt_mesh_model_light_xyl_server_scene_store_handler | ( | uint8_t | element_idx, |
uint8_t * | p_buffer, | ||
uint16_t | buffer_len | ||
) |
Light xyL Server Scene Store Handler.
The Light HSL Saturation Server Message Handler is an internal Mesh Models library function and does not need to be implemented or called by the application, unless application wants to replace the library functionality. The mesh Scene Server calls this function so that the module can store required data for the scene.
element_idx | Element index for which scene information is being stored |
p_buffer | Pointer to a buffer where data should be stored |
buf_size | Maximum amount of data a model can store |
void wiced_bt_mesh_model_light_xyl_server_set_startup_controller | ( | uint8_t | element_idx, |
wiced_bool_t | startup_controller | ||
) |
Set Light XYL Model as a startup controller.
This is an internal Mesh Models library function and does not need to be implemented or called by the application, unless application wants to replace the library functionality. For multi-model applications, for example the ones that support HSL, CTL and XYL controls, only one can be setup as a startup controller. If the controller mode is set, the library will execute the power on requirements, for example it can set the lightness/hue/saturation based on the last state before the power off. If the model is not set as a controller, it will not execute on power up state.
element_idx | The element index of the top level model |
startup_controller | If set to WICED_TRUE, the model will execute on power up operation |
void wiced_bt_mesh_model_light_xyl_server_state_changed | ( | uint8_t | element_idx, |
wiced_bt_mesh_light_xyl_status_data_t * | p_data | ||
) |
Light XYL state changed.
The application shall call the Light XYL state changed function to notify the Mesh Models library when values of brightness, x or y are changed internally.
element_idx | Element index corresponding to the XYL device |
p_data | Pointer to the wiced_bt_mesh_light_xyl_status_data_t status data |
wiced_bool_t wiced_bt_mesh_model_light_xyl_setup_server_message_handler | ( | wiced_bt_mesh_event_t * | p_event, |
uint8_t * | p_data, | ||
uint16_t | data_len | ||
) |
Light XYL Setup Server Message Handler.
The Light XYL Server Setup Message Handler is an internal Mesh Models library function and does not need to be implemented or called by the application, unless application wants to replace the library functionality. The Mesh Core library calls this function for each message received. The function shall return WICED_TRUE if the message is destined for this specific model and successfully processed, and returns WICED_FALSE otherwise.
p_event | Mesh event with information about received message. |
p_data | Pointer to the data portion of the message |
data_len | Length of the data in the message |