Zigbee Protocol Controller 1.6.0
zigpc_group_mgmt.h
Go to the documentation of this file.
1/******************************************************************************
2 * # License
3 * <b>Copyright 2020 Silicon Laboratories Inc. www.silabs.com</b>
4 ******************************************************************************
5 * The licensor of this software is Silicon Laboratories Inc. Your use of this
6 * software is governed by the terms of Silicon Labs Master Software License
7 * Agreement (MSLA) available at
8 * www.silabs.com/about-us/legal/master-software-license-agreement. This
9 * software is distributed to you in Source Code format and is governed by the
10 * sections of the MSLA applicable to Source Code.
11 *
12 *****************************************************************************/
13
26#ifndef ZIGPC_GROUP_MGMT_H
27#define ZIGPC_GROUP_MGMT_H
28
29#include "sl_status.h"
30#include "zigpc_common_zigbee.h"
31#include "zcl_definitions.h"
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
41typedef struct {
45
53{
55}
56
64{
66}
67
75{
77}
78
86{
88}
89
97
109 const zigbee_eui64_t eui64,
110 const zigbee_endpoint_id_t endpoint_id);
111
125 const char *group_name,
126 const zigbee_eui64_t eui64,
127 const zigbee_endpoint_id_t endpoint_id);
128
140 const zigbee_eui64_t eui64,
141 const zigbee_endpoint_id_t endpoint_id);
142
155 const zigbee_eui64_t eui64,
156 const zigbee_endpoint_id_t endpoint_id,
157 bool is_reported);
158
169 const zigbee_endpoint_id_t endpoint_id);
170
179
192 zigpc_group_member_t *const member_list,
193 size_t member_list_count);
194
196#ifdef __cplusplus
197}
198#endif
199
200#endif //ZIGPC_GROUP_MGMT_H
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
sl_status_t zigpc_group_remove(const zigbee_group_id_t group_id, const zigbee_eui64_t eui64, const zigbee_endpoint_id_t endpoint_id, bool is_reported)
zigpc_group_remove Remove an eui64/endpoint from a given group
Definition: zigpc_group_mgmt.c:179
static zcl_cluster_id_t zigpc_group_get_cluster_id(void)
zigpc_group_get_cluster_id Retrieve the cluster ID for groups. Useful for handling group clusters
Definition: zigpc_group_mgmt.h:52
sl_status_t zigpc_group_remove_all(const zigbee_eui64_t eui64, const zigbee_endpoint_id_t endpoint_id)
zigpc_group_remove_all Remove the eui64/endpoint from all associated groups
Definition: zigpc_group_mgmt.c:204
static zcl_command_id_t zigpc_group_remove_get_id(void)
zigpc_group_get_remove_id Retrieve the command ID for the remove group command.
Definition: zigpc_group_mgmt.h:74
sl_status_t zigpc_groupmgmt_get_member_list(zigbee_group_id_t group_id, zigpc_group_member_t *const member_list, size_t member_list_count)
Retrieve the list of group members corresponding to a Group ID.
Definition: zigpc_group_mgmt.c:229
sl_status_t zigpc_group_add_reported(const zigbee_group_id_t group_id, const zigbee_eui64_t eui64, const zigbee_endpoint_id_t endpoint_id)
zigpc_group_add_reported Add a new "reported" or actual group to a given node and endpoint
Definition: zigpc_group_mgmt.c:130
sl_status_t zigpc_group_init()
zigpc_groups_init Initialize the groups component. Sets up all the parts required for groups operatio...
Definition: zigpc_group_mgmt.c:66
sl_status_t zigpc_group_add_desired(const zigbee_group_id_t group_id, const zigbee_eui64_t eui64, const zigbee_endpoint_id_t endpoint_id)
zigpc_group_add_desired Add a new "desired" or expected group to a given node and endpoint
Definition: zigpc_group_mgmt.c:84
size_t zigpc_groupmgmt_get_member_count(zigbee_group_id_t group_id)
Retrieve the count of EUI64/endpoint combinations as part of a Group ID.
Definition: zigpc_group_mgmt.c:223
sl_status_t zigpc_group_add_desired_with_name(const zigbee_group_id_t group_id, const char *group_name, const zigbee_eui64_t eui64, const zigbee_endpoint_id_t endpoint_id)
zigpc_group_add_desired_with_name Add a new group with a specified name
Definition: zigpc_group_mgmt.c:105
static zcl_command_id_t zigpc_group_removeall_get_id(void)
zigpc_group_get_removeall_id Retrieve the command ID for the removeall groups command.
Definition: zigpc_group_mgmt.h:85
static zcl_command_id_t zigpc_group_add_get_id(void)
zigpc_group_get_add_id Retrieve the command ID for the add_group command
Definition: zigpc_group_mgmt.h:63
@ ZIGPC_ZCL_CLUSTER_GROUPS_COMMAND_ADD_GROUP
Definition: zcl_definitions.h:368
@ ZIGPC_ZCL_CLUSTER_GROUPS_COMMAND_REMOVE_ALL_GROUPS
Definition: zcl_definitions.h:376
@ ZIGPC_ZCL_CLUSTER_GROUPS_COMMAND_REMOVE_GROUP
Definition: zcl_definitions.h:374
@ ZIGPC_ZCL_CLUSTER_GROUPS
Definition: zcl_definitions.h:184
SL Status Codes.
zigpc_group_member_t A structure representing the member of a zigbee group
Definition: zigpc_group_mgmt.h:41
zigbee_endpoint_id_t endpoint_id
Definition: zigpc_group_mgmt.h:43
zigbee_eui64_t eui64
Definition: zigpc_group_mgmt.h:42