|
MeshX 0.4
This repository provides an implementation for Bluetooth Low Energy (BLE) Mesh network nodes. The project allows you to create BLE mesh nodes that can communicate with each other, enabling the development of smart home solutions or other IoT-based applications.
|
A class for creating Light CTL Setup Server models. More...
#include <meshx_model_ctl.hpp>
Public Member Functions | |
| meshx_err_t | model_send (meshx_light_ctl_send_params_t *params) override |
| Send message through the model. | |
| meshx_err_t | model_from_ble_cb (dev_struct_t *, control_task_msg_evt_t, meshx_ptr_t) override |
| Handle upstream BLE Mesh events. | |
| meshx_err_t | prepare_element_msg (meshx_ptr_t *msg_ptr, size_t *msg_size) override |
| Prepare message for element notification. | |
| meshx_err_t | element_state_change_handle (void) override |
| Handle state change request from element. | |
| meshXLightCTLSetupServerModel (meshXElementIF *parent_element=nullptr, meshx_ptr_t parent_element_state=nullptr, uint16_t model_func_id=0) | |
| Constructor for Light CTL Setup Server Model. | |
| Public Member Functions inherited from meshXServerModel< meshXBaseLightServerModel, meshx_light_ctl_send_params_t > | |
| meshXServerModel (MESHX_MODEL *p_plat_model, uint32_t model_id, meshXElementIF *parent_element=nullptr, meshx_ptr_t parent_element_state=nullptr, uint16_t model_func_id=0) | |
| Construct a new Server Model. | |
| Public Member Functions inherited from meshXModel< meshXBaseLightServerModel, meshx_light_ctl_send_params_t > | |
| void | set_plat_model (MESHX_MODEL *p_model) override |
| Set the platform-specific model instance. | |
| meshx_err_t | model_handle_from_ble_cb (dev_struct_t *p_dev, evt_model_id_t evt_model_id, meshx_ptr_t params) |
| Handle upstream BLE Mesh events. | |
| void | on_baked (void) override |
| Called when the model's parent element is baked. | |
| virtual | ~meshXModel () |
| Destructor for meshXModel. | |
| meshx_err_t | send_to_parent_element (meshx_ptr_t msg_ptr, size_t msg_size) |
| Send message to parent element. | |
| uint16_t | get_model_func_id (void) const |
| Get the model function identifier. | |
| void | set_model_func_id (uint16_t func_id) |
| Set the model function identifier. | |
| uint16_t | get_model_id (void) const override |
| Get the model identifier. | |
| bool | is_initialized (void) const override |
| Check if the model is successfully initialized. | |
| void | set_model_id (uint16_t id) |
| Set the model identifier. | |
| meshx_err_t | get_init_status (void) const |
| Get the model initialization status. | |
| meshXBaseLightServerModel * | get_base_model (void) const |
| Get the base model instance. | |
| meshXModel (MESHX_MODEL *p_plat_model, uint32_t model_id, meshXElementIF *parent_element=nullptr, uint16_t model_func_id=0) | |
| Constructs a new meshXModel instance. | |
| Public Member Functions inherited from meshXModelIF | |
| meshXModelIF () | |
| meshXModelIF (MESHX_MODEL *p_plat_model) | |
| virtual | ~meshXModelIF ()=default |
| MESHX_MODEL * | get_plat_model (void) const |
| Get the platform-specific model instance. | |
| meshx_ptr_t | get_pub_struct (void) const |
| Get the publication structures. | |
| meshx_ptr_t | get_gen_struct (void) const |
| Get the generic structures. | |
| void | set_pub_struct (meshx_ptr_t pub) |
| Set the publication structures. | |
| void | set_gen_struct (meshx_ptr_t gen) |
| Set the generic structures. | |
| void | set_parent_element (meshXElementIF *parent) |
| Set the parent element for this model. | |
| meshXElementIF * | get_parent_element (void) const |
| Get the parent element of this model. | |
| void | set_parent_element_state (meshx_ptr_t state) |
| Set the parent element state pointer. | |
| meshx_ptr_t | get_parent_element_state (void) const |
| Get the parent element state pointer. | |
Private Member Functions | |
| meshx_err_t | plat_model_create (MESHX_MODEL *p_plat_model_ptr=nullptr) override |
| Create logical model instance. | |
| meshx_err_t | plat_model_delete (void) override |
| Delete logical model instance. | |
Additional Inherited Members | |
| Protected Member Functions inherited from meshXServerModel< meshXBaseLightServerModel, meshx_light_ctl_send_params_t > | |
| void | update_element_state_change_header (meshx_err_t element_state_change, meshx_ptr_t msg_ptr) override |
| Update element_state_change field in server message header. | |
A class for creating Light CTL Setup Server models.
|
explicit |
Constructor for Light CTL Setup Server Model.
| [in] | parent_element | Pointer to the parent element (meshXElementIF) |
| [in] | parent_element_state | Pointer to the parent element state |
| [in] | model_func_id | Functional ID for the model instance. |
|
inlineoverridevirtual |
Handle state change request from element.
Pure virtual function that derived classes must implement to handle state change requests from the parent element. The model validates the request, updates its internal state, and returns the result.
Implements meshXModelIF.
|
overridevirtual |
Handle upstream BLE Mesh events.
Pure virtual function that derived classes must implement to process messages and events coming from the BLE Mesh network. The implementation will be automatically registered with base_model->base_client_model_cb_list.
| [in] | dev | Device structure containing sender information |
| [in] | evt | Event type indicating the nature of the message |
| [in] | data | Event-specific data payload |
Implements meshXModel< meshXBaseLightServerModel, meshx_light_ctl_send_params_t >.
|
inlineoverridevirtual |
Send message through the model.
Pure virtual function that derived classes must implement to send messages through the model to the BLE Mesh network.
| [in] | params | Message parameters including destination, opcode, and data |
Implements meshXModel< meshXBaseLightServerModel, meshx_light_ctl_send_params_t >.
|
overrideprivatevirtual |
Create logical model instance.
Pure virtual function that derived classes must implement to create a logical model instance on the platform. This is called during model initialization to set up the model's runtime state.
Implements meshXModelIF.
|
overrideprivatevirtual |
Delete logical model instance.
Pure virtual function that derived classes must implement to delete the logical model instance from the platform. This is called during model cleanup to release resources associated with the model.
Implements meshXModelIF.
|
inlineoverridevirtual |
Prepare message for element notification.
Pure virtual function that derived classes must implement to prepare a message structure that will be sent to the parent element. The message must persist after this function returns.
| [out] | msg_ptr | Pointer to message structure (output parameter) |
| [out] | msg_size | Size of the message structure (output parameter) |
Implements meshXModelIF.