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
meshx_model_sensor.hpp
Go to the documentation of this file.
1/**
2 * @file meshx_model_sensor.hpp
3 *
4 * @brief Header file for MeshX Sensor Models
5 * This file contains the declarations and definitions for the MeshX Sensor Models,
6 * including the Sensor Server and Client models.
7 *
8 * @author Pranjal Chanda
9 * @date 2024-2025
10 * @copyright Copyright 2024 - 2025 MeshX
11 */
12
13#ifndef _MESHX_MODEL_SENSOR_HPP_
14#define _MESHX_MODEL_SENSOR_HPP_
15
16#include <meshx_model_class.hpp>
18
19#define MESHX_SENSOR_SERVER_MODEL_TEMPLATE_PROTO
20#define MESHX_SENSOR_SERVER_MODEL_TEMPLATE_PARAMS
21
22#if CONFIG_ENABLE_SENSOR_SERVER
23
24/**
25 * @brief Structure to hold the Sensor Server to element message.
26 */
28{
29 meshx_srv_model_send_param_header_t header; /**< Server model send param header */
30 meshx_sensor_server_state_change_t state; /**< The state of the message. */
31};
32
34
35/**
36 * @class meshXSensorServerModel
37 * @brief A template class for creating Sensor Server models.
38 */
41 : public meshXServerModel<meshXBaseSensorServerModel, meshx_sensor_server_send_params_t>
42{
43private:
44 /* New or updated model state from BLE layer */
46
47 meshx_err_t plat_model_create (MESHX_MODEL* p_plat_model_ptr = nullptr) override;
48 meshx_err_t plat_model_delete (void) override;
50 meshx_err_t prepare_element_msg (meshx_ptr_t *msg_ptr, size_t *msg_size) override;
51
52public:
56
59 meshx_ptr_t parent_element_state = nullptr,
60 uint16_t model_func_id = 0
61 );
62 ~meshXSensorServerModel() override = default;
63
65
66private:
68};
69
70#endif /* CONFIG_ENABLE_SENSOR_SERVER */
71
72#endif /* _MESHX_MODEL_SENSOR_HPP_ */
Interface class for MeshX elements.
Definition meshx_fwd_decl.hpp:82
meshXElementIF * parent_element
Definition meshx_model_class.hpp:42
meshx_err_t plat_model_delete(void) override
Delete platform-specific sensor model instance.
Definition meshx_model_sensor.cpp:44
meshx_err_t prepare_element_msg(meshx_ptr_t *msg_ptr, size_t *msg_size) override
Prepare element message for sensor server.
Definition meshx_model_sensor.cpp:123
meshx_err_t model_from_ble_cb(dev_struct_t *, control_task_msg_evt_t, meshx_ptr_t) override
Callback for the Sensor Server model.
Definition meshx_model_sensor.cpp:82
meshx_err_t element_state_change_handle(void) override
Handle state change request from element.
Definition meshx_model_sensor.cpp:138
~meshXSensorServerModel() override=default
meshx_err_t model_send(meshx_sensor_server_send_params_t *params) override
Send a packet to the MeshX stack based on the given parameters.
Definition meshx_model_sensor.cpp:66
meshx_sensor_srv_el_msg_t element_msg
Definition meshx_model_sensor.hpp:67
meshx_err_t request_status(void)
Definition meshx_model_sensor.cpp:164
meshx_sensor_server_state_change_t model_state
Definition meshx_model_sensor.hpp:45
meshXSensorServerModel(meshXElementIF *parent_element=nullptr, meshx_ptr_t parent_element_state=nullptr, uint16_t model_func_id=0)
Constructor for Sensor Server Model.
Definition meshx_model_sensor.cpp:153
meshx_err_t plat_model_create(MESHX_MODEL *p_plat_model_ptr=nullptr) override
Create platform-specific sensor model instance.CONFIG_ENABLE_SENSOR_SERVER.
Definition meshx_model_sensor.cpp:19
meshx_sensor_server_state_change_t * get_state_ptr()
Definition meshx_model_sensor.hpp:64
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)
Definition meshx_model_class.cpp:200
Header file for MeshX Sensor Server model declarations.
struct meshx_sensor_server_send_params { meshx_model_t *model; meshx_ctx_t *ctx; meshx_sensor_server_state_change_t state;} meshx_sensor_server_send_params_t
Definition meshx_base_model_sensor.hpp:24
void * meshx_ptr_t
Definition meshx_ble_mesh_cmn_def.h:636
struct dev_struct dev_struct_t
Structure representing the device composition and elements.
uint32_t control_task_msg_evt_t
Type definition for control task message event.
Definition meshx_control_task.h:81
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:43
Template declarations for MeshX model wrapper classes.
struct meshx_srv_model_send_param_header meshx_srv_model_send_param_header_t
Definition meshx_model_class.hpp:354
#define MESHX_SENSOR_SERVER_MODEL_TEMPLATE_PROTO
Definition meshx_model_sensor.hpp:19
#define MESHX_SENSOR_SERVER_MODEL_TEMPLATE_PARAMS
Definition meshx_model_sensor.hpp:20
struct meshx_sensor_srv_el_msg meshx_sensor_srv_el_msg_t
Definition meshx_model_sensor.hpp:33
Definition meshx_ble_mesh_sensor_srv.h:33
Structure to hold the Sensor Server to element message.
Definition meshx_model_sensor.hpp:28
meshx_srv_model_send_param_header_t header
Definition meshx_model_sensor.hpp:29
meshx_sensor_server_state_change_t state
Definition meshx_model_sensor.hpp:30