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_gen_server.c
Go to the documentation of this file.
1
15#include "stdlib.h"
16#include "meshx_gen_server.h"
17
18#if CONFIG_ENABLE_GEN_SERVER
19#define MESHX_SERVER_INIT_MAGIC_NO 0x1121
20static uint16_t meshx_server_init = 0;
21
53
72 meshx_model_t *p_model,
73 meshx_ctx_t *p_ctx,
75 size_t data_len)
76{
77 if (!p_model || !p_ctx || p_ctx->dst_addr == MESHX_ADDR_UNASSIGNED)
78 return MESHX_INVALID_ARG;
80 return MESHX_INVALID_ARG;
81
83 p_model,
84 p_ctx,
85 &state_change,
86 data_len
87 );
88}
89
102 const meshx_gen_srv_cb_param_t *params)
103{
105 (uint16_t)(params->ctx.opcode)))
106 {
107 return MESHX_INVALID_ARG;
108 }
109
111 evt,
112 params,
114}
115
134
155
174
175#endif /* CONFIG_ENABLE_GEN_SERVER */
struct meshx_model meshx_model_t
struct meshx_ctx meshx_ctx_t
Structure to hold context information for BLE Mesh operations.
#define MESHX_MODEL_OP_GEN_LOC_LOCAL_STATUS
#define MESHX_MODEL_OP_GEN_DEF_TRANS_TIME_STATUS
#define MESHX_MODEL_OP_GEN_LOC_GLOBAL_STATUS
#define MESHX_MODEL_OP_GEN_ONPOWERUP_STATUS
#define MESHX_MODEL_OP_GEN_BATTERY_STATUS
#define MESHX_MODEL_OP_GEN_ONOFF_STATUS
#define MESHX_MODEL_OP_GEN_MANUFACTURER_PROPERTY_STATUS
#define MESHX_MODEL_OP_GEN_MANUFACTURER_PROPERTIES_STATUS
#define MESHX_MODEL_OP_GEN_POWER_RANGE_STATUS
#define MESHX_MODEL_OP_GEN_POWER_DEFAULT_STATUS
#define MESHX_ADDR_UNASSIGNED
#define MESHX_MODEL_OP_GEN_POWER_LEVEL_STATUS
#define MESHX_MODEL_OP_GEN_LEVEL_STATUS
#define MESHX_MODEL_OP_GEN_POWER_LAST_STATUS
meshx_err_t meshx_plat_gen_srv_init(void)
Initialize the generic server model platform.
control_task_msg_handle_t meshx_server_cb
struct meshx_gen_srv_cb_param meshx_gen_srv_cb_param_t
meshx_err_t meshx_plat_gen_srv_send_status(meshx_model_t *p_model, meshx_ctx_t *p_ctx, meshx_ptr_t p_data, uint32_t data_len)
Send a status message from the Generic Server model.
enum __packed control_task_msg_evt_to_ble control_task_msg_evt_to_ble_t
Enumeration for control task message events to BLE.
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.
meshx_err_t control_task_msg_unsubscribe(control_task_msg_code_t msg_code, control_task_msg_evt_t evt_bmap, control_task_msg_handle_t callback)
Deregister a callback for a specific message code and event bitmap.
@ CONTROL_TASK_MSG_CODE_FRM_BLE
@ CONTROL_TASK_MSG_CODE_TO_BLE
meshx_err_t control_task_msg_publish(control_task_msg_code_t msg_code, control_task_msg_evt_t msg_evt, const void *msg_evt_params, size_t sizeof_msg_evt_params)
Publish a control task message.
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.
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:39
@ MESHX_SUCCESS
Definition meshx_err.h:40
@ MESHX_INVALID_ARG
Definition meshx_err.h:42
@ MESHX_FAIL
Definition meshx_err.h:41
meshx_err_t meshx_gen_srv_dereg_cb(uint32_t model_id, meshx_server_cb cb)
Callback function to deregister a generic server model.
meshx_err_t meshx_gen_srv_send_msg_to_ble(control_task_msg_evt_to_ble_t evt, const meshx_gen_srv_cb_param_t *params)
Sends a message to the BLE subsystem via the control task.
meshx_err_t meshx_gen_srv_reg_cb(uint32_t model_id, meshx_server_cb cb)
Registers a callback function for a specific generic server model.
meshx_err_t meshx_gen_srv_init(void)
Initialize the meshxuction generic server.
meshx_err_t meshx_is_status_in_gen_srv_grp(uint16_t opcode)
Checks if the given opcode corresponds to a status message in the Generic Server group.
meshx_err_t meshx_gen_srv_status_send(meshx_model_t *p_model, meshx_ctx_t *p_ctx, meshx_gen_srv_state_change_t state_change, size_t data_len)
Sends a status message for the Generic Server model.
#define MESHX_SERVER_INIT_MAGIC_NO
static uint16_t meshx_server_init
Header file for the generic server model in the BLE mesh node application.
uint16_t dst_addr