Zigbee Protocol Controller 1.6.0
zigpc_command_mapper_int.h
Go to the documentation of this file.
1/*******************************************************************************
2 * # License
3 * <b>Copyright 2021 Silicon Laboratories Inc. www.silabs.com</b>
4 *******************************************************************************
5 *
6 * The licensor of this software is Silicon Laboratories Inc. Your use of this
7 * software is governed by the terms of Silicon Labs Master Software License
8 * Agreement (MSLA) available at
9 * www.silabs.com/about-us/legal/master-software-license-agreement. This
10 * software is distributed to you in Source Code format and is governed by the
11 * sections of the MSLA applicable to Source Code.
12 *
13 ******************************************************************************/
14
25#ifndef ZIGPC_COMMAND_MAPPER_INT_H
26#define ZIGPC_COMMAND_MAPPER_INT_H
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32// Unify Shared components
33#include <sl_status.h>
34#include <uic_typedefs.h>
35
36#include "zcl_util.h"
37#include "zigpc_common_zigbee.h"
38
46
53
63 zigbee_eui64_t eui64);
78 zigbee_endpoint_id_t endpoint_id,
79 zcl_cluster_id_t cluster_id);
80
96 const dotdot_unid_t unid,
97 const dotdot_endpoint_id_t endpoint,
98 const zigpc_zcl_frame_type_t frame_type,
99 const zcl_cluster_id_t cluster_id,
100 const zcl_command_id_t command_id,
101 const size_t command_arg_count,
102 const zigpc_zcl_frame_data_t *const command_arg_list);
103
116 zigbee_eui64_t eui64,
117 const dotdot_endpoint_id_t endpoint,
118 const zcl_cluster_id_t cluster_id,
119 const zcl_command_id_t command_id,
120 const size_t command_arg_count,
121 const zigpc_zcl_frame_data_t *const command_arg_list);
122
138 zigbee_group_id_t group_id,
139 zigpc_zcl_frame_type_t frame_type,
140 zcl_cluster_id_t cluster_id,
141 zcl_command_id_t command_id,
142 size_t command_arg_count,
143 const zigpc_zcl_frame_data_t *const command_arg_list);
144
159 const zigbee_group_id_t multicast_id,
160 const zigpc_zcl_frame_type_t frame_type,
161 const zcl_cluster_id_t cluster_id,
162 const zcl_command_id_t command_id,
163 const size_t command_arg_count,
164 const zigpc_zcl_frame_data_t *const command_arg_list);
165
174
181
182#ifdef __cplusplus
183}
184#endif
185
186#endif //ZIGPC_COMMAND_MAPPER_INT_H
187
sl_status_t zigpc_cmdmapper_redirect_to_unicast(zigbee_group_id_t group_id, zigpc_zcl_frame_type_t frame_type, zcl_cluster_id_t cluster_id, zcl_command_id_t command_id, size_t command_arg_count, const zigpc_zcl_frame_data_t *const command_arg_list)
Redirect cluster messages to unicast based on the group members (EUI64/endpoint identifiers) associat...
Definition: zigpc_command_mapper.c:238
sl_status_t zigpc_command_mapper_send_unicast(const dotdot_unid_t unid, const dotdot_endpoint_id_t endpoint, const zigpc_zcl_frame_type_t frame_type, const zcl_cluster_id_t cluster_id, const zcl_command_id_t command_id, const size_t command_arg_count, const zigpc_zcl_frame_data_t *const command_arg_list)
Send a ZCL unicast command based on the information provided.
Definition: zigpc_command_mapper.c:75
sl_status_t zigpc_command_mapper_handle_groups(zigbee_eui64_t eui64, const dotdot_endpoint_id_t endpoint, const zcl_cluster_id_t cluster_id, const zcl_command_id_t command_id, const size_t command_arg_count, const zigpc_zcl_frame_data_t *const command_arg_list)
Process unicast Groups cluster messages.
Definition: zigpc_command_mapper.c:155
sl_status_t zigpc_command_mapper_register_dotdot_mqtt_handlers(void)
Setup DotDot MQTT Command Translator handlers autogenerated in Command Mapper.
sl_status_t zigpc_command_mapper_populate_eui64(const char *unid, zigbee_eui64_t eui64)
Convert the UNID into EUI64.
Definition: zigpc_command_mapper.c:33
sl_status_t zigpc_command_mapper_mqtt_bygroup_handlers_init(void)
Setup MQTT handlers for processing group-based commands.
sl_status_t zigpc_command_mapper_cluster_support_check(const dotdot_unid_t unid, zigbee_endpoint_id_t endpoint_id, zcl_cluster_id_t cluster_id)
Determine if a cluster is serviced by the UNID/Endpoint combination.
Definition: zigpc_command_mapper.c:53
sl_status_t zigpc_command_mapper_setup_gen_cmd_publish_listeners(void)
Setup listeners for ZCL cluster specific commands sent from PAN nodes to the gateway.
sl_status_t zigpc_command_mapper_send_multicast(const zigbee_group_id_t multicast_id, const zigpc_zcl_frame_type_t frame_type, const zcl_cluster_id_t cluster_id, const zcl_command_id_t command_id, const size_t command_arg_count, const zigpc_zcl_frame_data_t *const command_arg_list)
Send a ZCL multicast command based on the information provided.
Definition: zigpc_command_mapper.c:295
void zigpc_command_mapper_cleanup_gen_cmd_publish_listeners(void)
Cleanup listeners for ZCL cluster specific commands sent from PAN nodes to the gateway.
uint32_t sl_status_t
Definition: sl_status.h:139
uint8_t zigbee_eui64_t[ZIGBEE_EUI64_SIZE]
Zigbee Device EUI64 ID.
Definition: zigpc_common_zigbee.h:193
uint16_t zcl_cluster_id_t
A representation of the endpoint cluster id used in ZCL.
Definition: zigpc_common_zigbee.h:254
uint16_t zigbee_group_id_t
Zigbee Group Id The internal representation of a group_id.
Definition: zigpc_common_zigbee.h:230
uint8_t zigbee_endpoint_id_t
A representation of the endpoint id used on the Zigbee protocol.
Definition: zigpc_common_zigbee.h:248
uint8_t zcl_command_id_t
Definition: zigpc_common_zigbee.h:265
zigpc_zcl_frame_type_t
ZCL frame control types.
Definition: zcl_util.h:39
SL Status Codes.
Structure used to pass data for ZCL frame build helpers.
Definition: zcl_util.h:56
Generic type definitions for Unify.
uint8_t dotdot_endpoint_id_t
Definition: uic_typedefs.h:38
const char * dotdot_unid_t
Definition: uic_typedefs.h:39