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.
Loading...
Searching...
No Matches
meshXServerModel< meshxBaseServerModel_t, meshx_send_packet_params_t > Class Template Reference

Base class for all server models in MeshX. More...

#include <meshx_model_class.hpp>

Inheritance diagram for meshXServerModel< meshxBaseServerModel_t, meshx_send_packet_params_t >:
meshXModel< meshxBaseServerModel_t, meshx_send_packet_params_t > meshXModelIF

Public Member Functions

 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.
 meshXServerModel ()=delete
 Deleted default constructor.
Public Member Functions inherited from meshXModel< meshxBaseServerModel_t, meshx_send_packet_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.
virtual meshx_err_t model_from_ble_cb (dev_struct_t *dev, control_task_msg_evt_t evt, meshx_ptr_t data)=0
 Handle upstream BLE Mesh events.
virtual meshx_err_t model_send (meshx_send_packet_params_t *params)=0
 Send message through the model.
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.
meshxBaseServerModel_t * 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
virtual meshx_err_t plat_model_create (MESHX_MODEL *p_plat_model_ptr=nullptr)=0
 Create logical model instance.
virtual meshx_err_t plat_model_delete (void)=0
 Delete logical model instance.
virtual meshx_err_t element_state_change_handle (void)=0
 Handle state change request from element.
virtual meshx_err_t prepare_element_msg (meshx_ptr_t *msg_ptr, size_t *msg_size)=0
 Prepare message for element notification.
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.
meshXElementIFget_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.

Protected Member Functions

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.

Detailed Description

template<typename meshxBaseServerModel_t, typename meshx_send_packet_params_t>
class meshXServerModel< meshxBaseServerModel_t, meshx_send_packet_params_t >

Base class for all server models in MeshX.

Template Parameters
MESHX_MODELPlatform-specific model type
meshxBaseModel_tBase model implementation type
meshx_send_packet_params_tType for send packet parameters

Server model implementation providing core server functionality

Constructor & Destructor Documentation

◆ meshXServerModel()

template<typename meshxBaseServerModel_t, typename meshx_send_packet_params_t>
meshXServerModel< meshxBaseServerModel_t, meshx_send_packet_params_t >::meshXServerModel ( )
delete

Deleted default constructor.

Server models must be initialized with a platform model and ID


The documentation for this class was generated from the following files: