2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "zb-common.h"
20 API int zb_zcl_group_add_group(zb_zigbee_h handle, zb_nwk_addr addr16,
21 unsigned char ep, unsigned short group_id, char *group_name,
22 zb_zcl_group_add_group_cb cb, void *user_data)
25 CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
26 RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
27 RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
28 RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
29 RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
30 RETV_IF(NULL == group_name, ZIGBEE_ERROR_INVALID_PARAMETER);
31 ret = zbl_add_group(addr16, ep, group_id, group_name, cb, user_data);
35 API int zb_zcl_group_view_group(zb_zigbee_h handle, zb_nwk_addr addr16,
36 unsigned char ep, unsigned short group_id, zb_zcl_group_view_group_cb cb,
40 CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
41 RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
42 RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
43 RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
44 RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
45 ret = zbl_view_group(addr16, ep, group_id, cb, user_data);
49 API int zb_zcl_group_get_group_membership(zb_zigbee_h handle, zb_nwk_addr addr16,
50 unsigned char ep, unsigned char group_count, unsigned short *group_list,
51 zb_zcl_group_get_group_membership_cb cb, void *user_data)
54 CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
55 RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
56 RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
57 RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
58 RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
59 RETV_IF(NULL == group_list, ZIGBEE_ERROR_INVALID_PARAMETER);
60 ret = zbl_group_get_group_membership(addr16, ep, group_count, group_list, cb, user_data);
64 API int zb_zcl_group_remove_group(zb_zigbee_h handle, zb_nwk_addr addr16,
65 unsigned char ep, unsigned short group_id, zb_zcl_group_remove_group_cb cb,
69 CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
70 RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
71 RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
72 RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
73 RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
74 ret = zbl_remove_group(addr16, ep, group_id, cb, user_data);
78 API int zb_zcl_group_remove_all_group(zb_zigbee_h handle, zb_nwk_addr addr16,
82 CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
83 RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
84 RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
85 RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
86 RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
87 ret = zbl_remove_all_group(addr16, ep);
91 API int zb_zcl_group_add_group_if_identifying(zb_zigbee_h handle, zb_nwk_addr addr16,
92 unsigned char ep, unsigned short group_id, const char *group_name)
95 CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
96 RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
97 RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
98 RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
99 RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
100 ret = zbl_add_group_if_identifying(addr16, ep, group_id, group_name);