MeshX 0.3
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_relay_server_element.h File Reference

Header file for the Relay Server Model. More...

#include "meshx_common.h"
#include "meshx_onoff_server.h"
Include dependency graph for meshx_relay_server_element.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  meshx_relay_srv_model_ctx
 Structure to hold the relay server save restore context. More...
 
struct  meshx_relay_element
 Structure to manage relay element models. More...
 
struct  meshx_relay_element_ctrl
 Structure to manage relay element initialization. More...
 

Macros

#define RELAY_SRV_MODEL_SIG_CNT   RELAY_SIG_MAX_ID
 
#define RELAY_SRV_MODEL_VEN_CNT   0
 

Typedefs

typedef struct meshx_relay_srv_model_ctx meshx_relay_srv_model_ctx_t
 Structure to hold the relay server save restore context.
 
typedef struct meshx_relay_element meshx_relay_element_t
 Structure to manage relay element models.
 
typedef struct meshx_relay_element_ctrl meshx_relay_element_ctrl_t
 Structure to manage relay element initialization.
 

Enumerations

enum  relay_sig_id_t {
  RELAY_SIG_ONOFF_MODEL_ID ,
  RELAY_SIG_MAX_ID
}
 

Functions

meshx_err_t meshx_create_relay_elements (dev_struct_t *pdev, uint16_t element_cnt)
 Create Dynamic Relay Model Elements.
 

Detailed Description

Header file for the Relay Server Model.

Copyright © 2024 - 2025 MeshX

This file contains the definitions and function prototypes for the Relay Server Model. The Relay Server Model is responsible for managing the relay elements and their states.

Author
Pranjal Chanda

Definition in file meshx_relay_server_element.h.

Macro Definition Documentation

◆ RELAY_SRV_MODEL_SIG_CNT

#define RELAY_SRV_MODEL_SIG_CNT   RELAY_SIG_MAX_ID

No of SIG models in a relay model element

Definition at line 20 of file meshx_relay_server_element.h.

◆ RELAY_SRV_MODEL_VEN_CNT

#define RELAY_SRV_MODEL_VEN_CNT   0

No of VEN models in a relay model element

Definition at line 21 of file meshx_relay_server_element.h.

Typedef Documentation

◆ meshx_relay_element_ctrl_t

Structure to manage relay element initialization.

◆ meshx_relay_element_t

Structure to manage relay element models.

◆ meshx_relay_srv_model_ctx_t

Structure to hold the relay server save restore context.

Enumeration Type Documentation

◆ relay_sig_id_t

Enumerator
RELAY_SIG_ONOFF_MODEL_ID 

On/Off model ID

RELAY_SIG_MAX_ID 

Maximum model ID

Definition at line 23 of file meshx_relay_server_element.h.

Function Documentation

◆ meshx_create_relay_elements()

meshx_err_t meshx_create_relay_elements ( dev_struct_t * pdev,
uint16_t element_cnt )

Create Dynamic Relay Model Elements.

Parameters
[in]pdevPointer to device structure
[in]element_cntMaximum number of relay models
Returns
meshx_err_t

Definition at line 497 of file meshx_relay_server.c.

498{
499 meshx_err_t err;
500 err = meshx_dev_create_relay_model_space(element_cnt);
501 if (err)
502 {
503 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "Relay Model create failed: (%d)", err);
504 return err;
505 }
506 err = meshx_add_relay_srv_model_to_element_list(pdev, (uint16_t *)&pdev->element_idx, element_cnt);
507 if (err)
508 {
509 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "Relay Model create failed: (%d)", err);
510 return err;
511 }
512#if CONFIG_ENABLE_CONFIG_SERVER
516 if (err)
517 {
518 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "Relay Model configserver callback reg failed: (%d)", err);
519 return err;
520 }
521#endif /* CONFIG_ENABLE_CONFIG_SERVER */
526 if (err)
527 {
528 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "Failed to register control task callback: (%d)", err);
529 return err;
530 }
531
533 if (err)
534 {
535 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "Failed to register control task callback: (%d)", err);
536 return err;
537 }
542 if (err)
543 {
544 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "Failed to register control task callback: (%d)", err);
545 return err;
546 }
547 err = meshx_on_off_server_init();
548 if (err)
549 {
550 MESHX_LOGE(MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER, "meshx_on_off_server_init failed: (%d)", err);
551 return err;
552 }
553 return MESHX_SUCCESS;
554}
control_task_msg_handle_t config_srv_cb_t
control_task_msg_handle_t prov_srv_cb_t
meshx_err_t meshx_config_server_cb_reg(config_srv_cb_t cb, uint32_t config_evt_bmap)
Registers a configuration server callback for specific events.
meshx_err_t(* control_task_msg_handle_t)(dev_struct_t *pdev, control_task_msg_evt_t evt, void *params)
Function pointer type for control task message handler.
@ CONTROL_TASK_MSG_CODE_EL_STATE_CH
@ CONTROL_TASK_MSG_CODE_TO_BLE
meshx_err_t control_task_msg_subscribe(control_task_msg_code_t msg_code, control_task_msg_evt_t evt_bmap, control_task_msg_handle_t callback)
Subscribe to a control task message.
#define CONTROL_TASK_EVT_MASK
#define CONTROL_TASK_MSG_EVT_TO_BLE_GEN_SRV_MASK
static meshx_err_t meshx_api_control_task_handler(const dev_struct_t *pdev, const control_task_msg_evt_t evt, const void *params)
CW-WW server model event handler.
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:39
@ MESHX_SUCCESS
Definition meshx_err.h:40
#define CONFIG_SERVER_CB_MASK
Configuration server callback event mask for cwww server.
#define MESHX_LOGE(module_id, format,...)
Definition meshx_log.h:73
meshx_err_t meshx_prov_srv_reg_el_server_cb(prov_srv_cb_t cb)
Register a callback function for provisioning events.
static meshx_err_t meshx_relay_srv_msg_send_handler(const dev_struct_t *pdev, control_task_msg_evt_to_ble_t evt, meshx_gen_srv_cb_param_t *params)
Handles the BLE message sending for the Generic OnOff Server model.
static meshx_err_t relay_prov_control_task_handler(dev_struct_t const *pdev, control_task_msg_evt_t evt, void const *params)
Callback function for relay server model events for Provisioning events.
static meshx_err_t meshx_add_relay_srv_model_to_element_list(dev_struct_t *pdev, uint16_t *start_idx, uint16_t n_max)
Add relay server models to the element list.
static meshx_err_t relay_server_config_srv_cb(const dev_struct_t *pdev, control_task_msg_evt_t evt, const meshx_config_srv_cb_param_t *params)
Callback function for configuration server events.
static meshx_err_t meshx_dev_create_relay_model_space(uint16_t n_max)
Create relay model space.
@ MODULE_ID_ELEMENT_SWITCH_RELAY_SERVER
Definition module_id.h:28
size_t element_idx
Here is the call graph for this function:
Here is the caller graph for this function: