2 * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
4 * Contact: Suresh Kumar N (suresh.n@samsung.com)
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 #include "zigbee_service_interface_common.h"
21 #include <zblib_driver_zcl_basic.h>
23 static void on_zclbasic_control_reset_factory_default_resp(ZigBeeServiceInterface *service_interface,
24 guint request_id, gpointer resp_data, guint resp_data_len, gpointer resp_cb_data)
26 ZigbeeServiceInterfaceRespCbData_t *cb_data =
27 (ZigbeeServiceInterfaceRespCbData_t *)resp_cb_data;
30 NOT_USED(service_interface);
33 NOT_USED(resp_data_len);
36 static gboolean on_zclbasic_control_reset_factory_default(ZigbeeZcl_basic *zclbasic_control_object,
37 GDBusMethodInvocation *invocation,
42 ZigBeeServiceInterface *service_interface = (ZigBeeServiceInterface *)user_data;
43 ZigbeeZclBasicResetFactoryDefault_t req;
44 ZigbeeServiceInterfaceRespCbData_t *resp_cb_data = NULL;
48 memset(&req, 0x0, sizeof(ZigbeeZclBasicResetFactoryDefault_t));
50 /* Update request structure */
51 req.node_id = node_id;
52 req.dest_ep = dest_ep;
54 /* Allocate response callback data */
56 zigbee_service_dbus_interface_create_resp_cb_data(zclbasic_control_object,
58 if (NULL == resp_cb_data) {
59 Z_LOGE("zigbee_service_dbus_interface_create_resp_cb_data failed!");
61 /* Send failure response */
62 ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
67 /* Dispatch request */
68 ret = zigbee_service_dbus_interface_dispatch_request(service_interface,
69 ZBLIB_DRIVER_TYPE_ZCL_BASIC,
70 ZBLIB_ZCL_BASIC_OPS_RESET_FACTORY_DEFAULT,
72 on_zclbasic_control_reset_factory_default_resp, resp_cb_data);
74 Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
76 /* Free response callback data */
77 zigbee_service_dbus_interface_destroy_resp_cb_data(resp_cb_data);
79 /* Send failure response */
80 ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
88 void zigbee_service_dbus_interface_zcl_basic_notification(ZigBeeServiceInterface *service_interface,
89 guint noti_id, gpointer noti_data, guint noti_data_len, gpointer noti_cb_data)
91 if (NULL == service_interface) {
92 Z_LOGE("service_interface is NULL");
98 NOT_USED(noti_data_len);
99 NOT_USED(noti_cb_data);
102 gboolean zigbee_service_dbus_interface_zcl_basic_init(ZigBeeServiceInterface *service_interface,
103 ZigbeeObjectSkeleton *zigbee_object)
105 ZigbeeZcl_basic *zclbasic_control_object;
107 if (NULL == service_interface) {
108 Z_LOGE("service_interface is NULL");
112 zclbasic_control_object = zigbee_zcl_basic_skeleton_new();
113 zigbee_object_skeleton_set_zcl_basic(zigbee_object, zclbasic_control_object);
114 g_object_unref(zclbasic_control_object);
116 Z_LOGI("zclbasic_control_object: [%p]", zclbasic_control_object);
119 * Register signal handlers for 'zclbasic_control' interface
121 g_signal_connect(zclbasic_control_object,
122 "handle-reset-factory-default",
123 G_CALLBACK(on_zclbasic_control_reset_factory_default), service_interface);