Change zb_enable to async function
[platform/core/api/zigbee.git] / lib / zbl-dbus.h
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16 #ifndef __TIZEN_NETWORK_ZIGBEE_LIBRARY_DBUS_H__
17 #define __TIZEN_NETWORK_ZIGBEE_LIBRARY_DBUS_H__
18
19 #include <gio/gio.h>
20
21 #include <zigbee.h>
22 #include <zb-type.h>
23 #include <zb-custom.h>
24
25 int zbl_dbus_start(zigbee_h handle);
26 void zbl_dbus_stop(void);
27 GDBusConnection* zbl_dbus_get_object(void);
28 int zbl_dbus_get_timeout(GDBusProxy *proxy);
29 int zbl_enable(zigbee_h handle, zb_enable_cb cb, void *user_data);
30 int zbl_set_event_cb(zigbee_h handle, zb_event_cb event_handler);
31 int zbl_disable(void);
32 int zbl_hw_reset(void);
33 int zbl_coex_start(unsigned char channel);
34 int zbl_coex_stop(void);
35 int zbl_get_network_info(ieee_addr addr64, nwk_addr *nodeid, nwk_addr *panid,
36                 unsigned char *channel, unsigned char *tx_power);
37 int zbl_get_controller_mac_address(ieee_addr addr64);
38 int zbl_get_cluster_list(ieee_addr eui64, unsigned char endpoint,
39                 unsigned char *in_cluster_count, unsigned short in_cluster_list[],
40                 unsigned char *out_cluster_count, unsigned short out_cluster_list[]);
41 int zbl_get_endpoint_list(ieee_addr eui64, unsigned char *count, unsigned char list[]);
42 int zbl_get_all_device_info(zb_end_device_info_h **dev_list, unsigned char* num);
43 int zbl_form_network(zigbee_h handle, zb_form_network_cb cb, void *user_data);
44 int zbl_disable_network(zigbee_h handle, zb_disable_network_cb cb, void *user_data);
45 int zbl_leave_device(ieee_addr addr64, bool remove_children, bool rejoin);
46 int zbl_permit_join(unsigned char duration, bool broadcast);
47 int zbl_nwk_addr_req(zigbee_h handle, ieee_addr addr64, unsigned char request_type,
48         unsigned char start_idx, zb_zdo_addr_rsp cb, void *user_data);
49 int zbl_ieee_addr_req(zigbee_h handle, nwk_addr addr16, zb_zdo_addr_rsp cb,
50                 void *user_data);
51 int zbl_active_ep(zigbee_h handle, nwk_addr addr16, zb_zdo_active_ep_rsp cb,
52                 void *user_data);
53 int zbl_simple_desc_req(zigbee_h handle, nwk_addr addr16, unsigned char ep,
54                 zb_zdo_simple_desc_rsp cb, void *user_data);
55 int zbl_match_desc_req(zigbee_h handle, nwk_addr addr16,
56                 unsigned short profile_id, unsigned char num_in_clusters,
57                 unsigned short *in_clusters, unsigned char num_out_clusters,
58                 unsigned short *out_clusters, zb_zdo_match_desc_rsp cb, void *user_data);
59 int zbl_device_annce(zigbee_h handle, nwk_addr addr16, ieee_addr addr64,
60                 unsigned char capability);
61 int zbl_node_desc_req(nwk_addr addr16, zb_zdo_node_desc_rsp cb, void *user_data);
62 int zbl_power_desc_req(nwk_addr addr16, zb_zdo_power_desc_rsp cb,       void *user_data);
63 int zbl_complex_desc_req(nwk_addr addr16, zb_zdo_complex_desc_rsp cb, void *user_data);
64 int zbl_user_desc_req(nwk_addr addr16, zb_zdo_user_desc_rsp cb, void *user_data);
65 int zbl_bind_req(nwk_addr dst_addr16, ieee_addr src_addr64,
66                 unsigned char src_ep, unsigned short cluster_id, ieee_addr dst_addr64,
67                 unsigned char type, nwk_addr group_addr, unsigned char dst_ep, zb_zdo_bind_rsp cb,
68                 void *user_data);
69 int zbl_unbind_req(nwk_addr dst_addr16, ieee_addr src_addr64,
70                 unsigned char src_ep, unsigned short cluster_id, ieee_addr dst_addr64,
71                 unsigned char type, nwk_addr group_addr, unsigned char dst_ep,
72                 zb_zdo_unbind_rsp cb, void *user_data);
73 int zbl_mgmt_nwk_disc_req(nwk_addr addr16, unsigned int scan_channels,
74         unsigned char scan_duration, unsigned char scan_count, unsigned char start_idx,
75         zb_zdo_mgmt_nwk_disc_rsp cb, void *user_data);
76 int zbl_mgmt_nwk_update_req(unsigned int scan_channels, unsigned char scan_duration,
77         unsigned char scan_count, unsigned char nwk_update_id, nwk_addr nwk_manager_addr);
78 int zbl_mgmt_lqi_req(nwk_addr addr16, unsigned char start_idx,
79                 zb_zdo_mgmt_lqi_rsp cb, void *user_data);
80 int zbl_mgmt_rtg_req(nwk_addr addr16, unsigned char start_idx,
81                 zb_zdo_mgmt_rtg_rsp cb, void *user_data);
82 int zbl_mgmt_bind_req(nwk_addr addr16, unsigned char start_idx,
83                 zb_zdo_mgmt_bind_rsp cb, void *user_data);
84 int zbl_mgmt_leave_device(ieee_addr addr64, unsigned char remove_children,
85                 unsigned rejoin, zb_zdo_mgmt_leave_rsp cb, void *user_data);
86 int zbl_mgmt_permit_joining_req(nwk_addr addr16, unsigned char duration,
87                 unsigned char tc_significance, zb_zdo_mgmt_permit_joining_rsp cb, void *user_data);
88
89 /* Custom Commands */
90 int zbl_aps_send(nwk_addr addr16, unsigned char aps_frame_ctl, unsigned char src_ep,
91                 unsigned char dst_ep, unsigned short cluster_id, unsigned short profile_id,
92                 unsigned char zcl_frame_ctl, unsigned short mfg_code,  unsigned char cmd_id,
93                 unsigned short payload_len, unsigned char *payload, zb_aps_send_rsp cb, void *user_data);
94 int zbl_zcl_send(nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
95                 unsigned short cluster_id, unsigned char zcl_frame_ctl, unsigned char cmd,
96                 unsigned short payload_len, unsigned char *payload,
97                 zb_zcl_send_rsp cb, void *user_data);
98 int zbl_send_to_local(unsigned short length, unsigned char *data,
99                 zb_send_to_local_rsp cb, void *user_data);
100
101 /* ZCL Global Commands */
102 int zbl_read_attr_req(zigbee_h handle, unsigned short addr16, unsigned char dest_ep,
103                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned short *attribute_ids,
104                 int attribute_ids_len, zb_zcl_global_rsp cb, void *user_data);
105 int zbl_write_attr_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
106                 unsigned char zcl_frame_ctl, unsigned short cluster_id, write_attr_record_h *records,
107                 int records_len, zb_zcl_global_rsp cb, void *user_data);
108 int zbl_wattr_undivided_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
109                 unsigned char dst_ep, unsigned char zcl_frame_ctl, unsigned short cluster_id,
110                 write_attr_record_h *records, int records_len,
111                 zb_zcl_global_rsp cb, void *user_data);
112 int zbl_wattr_req_no_rsp(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
113                 unsigned char dst_ep, unsigned char zcl_frame_ctl, unsigned short cluster_id,
114                 write_attr_record_h *records, int records_len);
115 int zbl_configure_reporting(zigbee_h handle, nwk_addr addr16,
116                 unsigned char src_ep, unsigned char dst_ep, unsigned char zcl_frame_ctl,
117                 unsigned short cluster_id, report_config_record_h *records, int records_len,
118                 zb_zcl_global_rsp cb, void *user_data);
119 int zbl_read_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
120                 unsigned char dst_ep, unsigned char zcl_frame_ctl, unsigned short cluster_id,
121                 read_report_config_record_h *records, int records_len,
122                 zb_zcl_global_rsp cb, void *user_data);
123 int zbl_discover_attr_req(zigbee_h handle, unsigned short addr16, unsigned char src_ep,
124                 unsigned char dest_ep, unsigned char zcl_frame_ctl, unsigned short cluster_id,
125                 unsigned short start_id, unsigned char max_attribute_ids,
126                 zb_zcl_global_discover_attr_rsp cb, void *user_data);
127 int zbl_discover_cmds_gen(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
128                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned char start_command_id,
129                 unsigned char max_command_ids, zb_zcl_global_discover_cmds_rsp cb, void *user_data);
130 int zbl_discover_cmds_recv(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
131                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned char start_command_id,
132                 unsigned char max_command_ids, zb_zcl_global_discover_cmds_rsp cb, void *user_data);
133 int zbl_discover_attr_ext(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
134                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned short start_id,
135                 unsigned char max_attribute_ids, zb_zcl_global_discover_attr_extended_rsp cb,
136                 void *user_data);
137
138 /* ZCL Alarm Cluster */
139 int zbl_reset_alarm(nwk_addr addr16, unsigned char ep, unsigned char alarm_code,
140                 unsigned short cluster_id);
141 int zbl_reset_all_alarm(nwk_addr addr16, unsigned char ep);
142 int zbl_get_alarm(nwk_addr addr16, unsigned char ep, zb_zcl_alarm_get_alarm_rsp cb,
143                 void *user_data);
144 int zbl_reset_all_alarm_log(nwk_addr addr16, unsigned char ep);
145
146 /* ZCL Color Control Cluster */
147 int zbl_ccontrol_move_to_hue(nwk_addr addr16, unsigned char ep,
148                 unsigned char hue, unsigned char direction,
149                 unsigned short transition_time);
150 int zbl_ccontrol_move_hue(nwk_addr addr16, unsigned char ep,
151                 unsigned char move_mode, unsigned char rate);
152 int zbl_ccontrol_step_hue(nwk_addr addr16, unsigned char ep,
153                 unsigned char step_mode, unsigned char step_size,
154                 unsigned char transition_time);
155 int zbl_ccontrol_move_to_saturation(nwk_addr addr16, unsigned char ep,
156                 unsigned char saturation, unsigned short transition_time);
157 int zbl_ccontrol_move_saturation(nwk_addr addr16, unsigned char ep,
158                 unsigned char move_mode, unsigned char rate);
159 int zbl_ccontrol_step_saturation(nwk_addr addr16, unsigned char ep,
160                 unsigned char step_mode, unsigned char step_size,
161                 unsigned char transition_time);
162 int zbl_ccontrol_move_to_hue_and_saturation(nwk_addr addr16, unsigned char ep,
163                 unsigned char hue, unsigned char saturation,
164                 unsigned short transition_time);
165 int zbl_ccontrol_move_to_color(nwk_addr addr16, unsigned char ep,
166                 unsigned short color_x, unsigned short color_y,
167                 unsigned short transition_time);
168 int zbl_ccontrol_move_color(nwk_addr addr16, unsigned char ep,
169                 unsigned short rate_x, unsigned short rate_y);
170 int zbl_ccontrol_step_color(nwk_addr addr16, unsigned char ep,
171                 unsigned short step_x, unsigned short step_y,
172                 unsigned short transition_time);
173 int zbl_ccontrol_move_to_color_temperature(nwk_addr addr16, unsigned char ep,
174                 unsigned short color_temperature,
175                 unsigned short transition_time);
176
177 /* ZCL Basic Cluster */
178 int zbl_reset_factory_default(nwk_addr addr16, unsigned char ep);
179
180 /* ZCL Identity Cluster */
181 int zbl_identify(nwk_addr addr16, unsigned char dst_ep, unsigned short identify_time);
182 int zbl_identify_query(nwk_addr addr16, unsigned char dst_ep,
183                 zb_zcl_identify_query_cb cb, void *user_data);
184
185 /* ZCL Group Cluster */
186 int zbl_add_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
187                 const char *group_name, zb_zcl_group_add_group_rsp cb, void *user_data);
188 int zbl_view_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
189                 zb_zcl_group_view_group_rsp cb, void *user_data);
190 int zbl_group_get_group_membership(nwk_addr addr16, unsigned char ep,
191                 unsigned char group_count, unsigned short *group_list,
192                 zb_zcl_group_get_group_membership_rsp cb, void *user_data);
193 int zbl_remove_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
194                 zb_zcl_group_remove_group_rsp cb, void *user_data);
195 int zbl_remove_all_group(nwk_addr addr16, unsigned char ep);
196 int zbl_add_group_if_identifying(nwk_addr addr16, unsigned char ep,
197                 unsigned short group_id, const char *group_name);
198
199 /* ZCL Level Control Cluster */
200 int zbl_level_control_move_to_level(nwk_addr addr16, unsigned char ep,
201                 unsigned char level, unsigned short transition_time);
202 int zbl_level_control_move(nwk_addr addr16, unsigned char ep,
203                 unsigned char move_mode, unsigned char rate);
204 int zbl_level_control_step(nwk_addr addr16, unsigned char ep,
205                 unsigned char step_mode, unsigned char step_size,
206                 unsigned short transition_time);
207 int zbl_level_control_stop(nwk_addr addr16, unsigned char ep);
208 int zbl_level_control_move_to_level_with_on_off(nwk_addr addr16,
209                 unsigned char ep, unsigned char level, unsigned short transition_time);
210 int zbl_level_control_move_with_on_off(nwk_addr addr16, unsigned char ep,
211                 unsigned char move_mode, unsigned char rate);
212 int zbl_level_control_step_with_on_off(nwk_addr addr16, unsigned char ep,
213                 unsigned char step_mode, unsigned char step_size,
214                 unsigned short transition_time);
215
216 /* ZCL On/Off Cluster */
217 int zbl_onoff_set(nwk_addr addr16, unsigned char ep, unsigned char on_off_type);
218 int zbl_zone_enroll_response(nwk_addr addr16, unsigned char dst_ep,
219                 unsigned char enroll_response_code, unsigned char zone_id);
220
221 /* Poll-control Cluster */
222 int zbl_pollcontrol_check_in_response(nwk_addr addr16, unsigned char ep,
223                 unsigned char start_fast_polling, unsigned short fast_poll_timeout);
224 int zbl_pollcontrol_fast_poll_stop(nwk_addr addr16, unsigned char ep);
225 int zbl_pollcontrol_set_long_poll_interval(nwk_addr addr16, unsigned char ep,
226         unsigned int new_long_poll_interval, zb_zcl_pollctrl_check_in cb, void *user_data);
227 int zbl_pollcontrol_set_short_poll_interval(nwk_addr addr16, unsigned char ep,
228         unsigned int new_short_poll_interval, zb_zcl_pollctrl_check_in cb, void *user_data);
229
230 /* Scene Cluster */
231 int zbl_add_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
232         unsigned char scene_id, unsigned short transition_time, const char *scene_name,
233         unsigned short ext_field_len, const char *extension_field_sets,
234         zb_zcl_scene_add_scene_rsp cb, void *user_data);
235 int zbl_view_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
236         unsigned char scene_id, zb_zcl_scene_view_scene_rsp cb, void *user_data);
237 int zbl_remove_scene(nwk_addr addr16, unsigned char ep,
238         unsigned short group_id, unsigned char scene_id, zb_zcl_scene_remove_scene_rsp cb,
239         void *user_data);
240 int zbl_remove_all_scene(nwk_addr addr16, unsigned char ep,
241         unsigned short group_id, zb_zcl_scene_remove_all_scene_rsp cb, void *user_data);
242 int zbl_store_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
243         unsigned char scene_id, zb_zcl_scene_store_scene_rsp cb, void *user_data);
244 int zbl_recall_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
245         unsigned char scene_id);
246 int zbl_get_scene_membership(nwk_addr addr16, unsigned char ep,
247         unsigned short group_id, zb_zcl_scene_get_scene_membership_rsp cb, void *user_data);
248
249 /* Thermostat Cluster */
250 int zbl_thermostat_adjust_setpoint(nwk_addr addr16, unsigned char ep, unsigned char mode,
251         unsigned char amount);
252
253 #endif /* __TIZEN_NETWORK_ZIGBEE_LIBRARY_DBUS_H__ */