Added Haltest for zigbee-manager
[platform/core/connectivity/zigbee-manager.git] / unittest / zbl.h
1 /*
2  * Copyright (c) 2017 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 __ZIGBEE_MANAGER_H__
17 #define __ZIGBEE_MANAGER_H__
18
19 #include <glib.h>
20 #include <gio/gio.h>
21
22 #include "gdbus.h"
23 #include "common.h"
24
25 #define MAX_ENDPOINT_CLUSTERS 32
26 #define ZB_802_15_4_CHANNELS_MASK 0x07FFF800UL
27
28 typedef unsigned char ieee_addr[8];
29 typedef unsigned short nwk_addr;
30 typedef unsigned char aes128_key[16];
31
32 typedef enum {
33         ZB_ZDP_ALTERNATIVE_PAN_COORDINATOR = (1 << 0),
34         ZB_ZDP_DEVICE_TYPE = (1 << 1),
35         ZB_ZDP_POWER_SOURCE = (1 << 2),
36         ZB_ZDP_RECEIVER_ON_WHEN_IDLE = (1 << 3),
37         ZB_ZDP_SECURITY_CAPABILITY = (1 << 6),
38         ZB_ZDP_ALLOCATE_ADDRESS = (1 << 7),
39 } zb_zdo_mac_capability_field_e;
40
41 typedef enum {
42         ZB_APS_NO_ACK_REQUEST = (0 << 6),
43         ZB_APS_ACK_REQUEST = (1 << 6),
44 } zb_aps_ack_request_e;
45
46 typedef enum {
47         ZB_APS_DELIVERY_UNICAST = 0,
48         ZB_APS_DELIVERY_INDIRECT = 1,
49         ZB_APS_DELIVERY_BROADCAST = 2,
50         ZB_APS_DELIVERY_MULTICAST = 3,
51 } zb_aps_delivery_mode_e;
52
53 typedef enum {
54         ZB_ZCL_FC_GLOBALLY_USED = (0 << 0),
55         ZB_APS_FC_CLUSTER_SPECIFIC = (1 << 0),
56 } zb_zcl_fc_type_e;
57
58 typedef enum {
59         ZB_ZCL_CLIENT_TO_SERVER = (0 << 3),
60         ZB_ZCL_SERVER_TO_CLIENT = (1 << 3),
61 } zb_zcl_fc_direction_e;
62
63 typedef enum {
64         ZB_ZCL_LEAVE_WELL_ALONE = (0 << 4),
65         ZB_ZCL_DISABLE_DEFAULT_RESPONSE = (1 << 4),
66 } zb_zcl_fc_disable_default_response_e;
67
68 typedef enum {
69         ZB_ZCL_FC_NOT_MANUFACTURER = (0 << 2),
70         ZB_ZCL_FC_MANUFACTURER = (1 << 2),
71 } zb_zcl_fc_manufacturer_present_e;
72
73 class Zigbee:public GDbus {
74         private:
75         public:
76                 Zigbee();
77                 ~Zigbee();
78                 int zbl_enable(void);
79                 int zbl_disable(void);
80                 int zbl_is_enable(bool* state);
81                 int zbl_hw_reset(void);
82                 int zbl_coex_stop(void);
83                 int zbl_form_network(void);
84                 int zbl_disable_network(void);
85                 int zbl_get_controller_mac_address(ieee_addr mac);
86                 int zbl_get_network_info(void);
87                 int zbl_get_cluster_list(ieee_addr eui64, unsigned char endpoint,
88                                 unsigned char *in_cluster_count, unsigned short in_cluster_list[],
89                                 unsigned char *out_cluster_count, unsigned short out_cluster_list[]);
90                 int zbl_get_endpoint_list(ieee_addr eui64, unsigned char *count, unsigned char list[]);
91                 int zbl_api_get_node_type(ieee_addr eui64);
92                 int zbl_get_all_device_info(void);
93                 int zbl_coex_start(unsigned char channel);
94                 int zbl_leave_device(ieee_addr addr64, bool remove_children, bool rejoin);
95                 int zbl_permit_join(unsigned char duration, bool broadcast);
96                 int zbl_nwk_addr_req(ieee_addr addr64, unsigned char request_type, unsigned char start_idx);
97                 int zbl_ieee_addr_req(nwk_addr addr16);
98                 int zbl_active_ep(nwk_addr addr16);
99                 int zbl_simple_desc_req(nwk_addr addr16, unsigned char ep);
100                 int zbl_match_desc_req(nwk_addr addr16, unsigned short profile_id, unsigned char num_in_clusters,
101                                 unsigned short *in_clusters, unsigned char num_out_clusters, unsigned short *out_clusters);
102                 int zbl_node_desc_req(nwk_addr addr16);
103                 int zbl_power_desc_req(nwk_addr addr16);
104                 int zbl_complex_desc_req(nwk_addr addr16);
105                 int zbl_user_desc_req(nwk_addr addr16);
106                 int zbl_user_desc_set(nwk_addr addr16, unsigned char len, unsigned char *user_desc);
107                 int zbl_device_annce(nwk_addr addr16, ieee_addr addr64, unsigned char capability);
108                 int zbl_bind_req(nwk_addr dst_addr16, ieee_addr src_addr64, unsigned char src_ep,
109                                 unsigned short cluster_id, ieee_addr dst_addr64, unsigned char type,
110                                 nwk_addr group_addr, unsigned char dst_ep);
111                 int zbl_unbind_req(nwk_addr dst_addr16, ieee_addr src_addr64, unsigned char src_ep,
112                                 unsigned short cluster_id, ieee_addr dst_addr64, unsigned char type,
113                                 nwk_addr group_addr, unsigned char dst_ep);
114                 int zbl_mgmt_nwk_disc_req(nwk_addr addr16, unsigned int scan_channels,
115                                 unsigned char scan_duration, unsigned char scan_count, unsigned char start_idx);
116                 int zbl_mgmt_nwk_update_req(unsigned int scan_channels, unsigned char scan_duration,
117                                 unsigned char scan_count, unsigned char nwk_update_id, nwk_addr nwk_manager_addr);
118                 int zbl_mgmt_lqi_req(nwk_addr addr16, unsigned char start_idx);
119                 int zbl_mgmt_rtg_req(nwk_addr addr16, unsigned char start_idx);
120                 int zbl_mgmt_bind_req(nwk_addr addr16, unsigned char start_idx);
121                 int zbl_mgmt_leave_device(ieee_addr addr64, unsigned char remove_children, unsigned rejoin);
122                 int zbl_mgmt_permit_joining_req(nwk_addr addr16, unsigned char duration, unsigned char tc_significance);
123                 int zbl_aps_send(nwk_addr addr16, unsigned char aps_frame_ctl, unsigned char src_ep,
124                                 unsigned char dst_ep, unsigned short cluster_id, unsigned short profile_id,
125                                 unsigned char zcl_frame_ctl, unsigned short mfg_code, unsigned char cmd_id,
126                                 unsigned short payload_len, unsigned char *payload);
127                 int zbl_zcl_send(nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
128                                 unsigned short cluster_id, unsigned char zcl_frame_ctl, unsigned char cmd,
129                                 unsigned short payload_len, unsigned char *payload);
130                 int zbl_send_to_local(unsigned short length, unsigned char *data);
131                 int zbl_read_attr_req(unsigned short addr16, unsigned char dest_ep,
132                                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned short *attribute_ids,
133                                 int attribute_ids_len);
134                 int zbl_discover_attr_req(unsigned short addr16, unsigned char src_ep,
135                                 unsigned char dest_ep, unsigned char zcl_frame_ctl, unsigned short cluster_id,
136                                 unsigned short start_id, unsigned char max_attribute_ids);
137                 int zbl_discover_cmds_gen(nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
138                                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned char start_command_id,
139                                 unsigned char max_command_ids);
140                 int zbl_discover_cmds_recv(nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
141                                 unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned char start_command_id,
142                                 unsigned char max_command_ids);
143                 int zbl_discover_attr_ext(nwk_addr addr16, unsigned char src_ep,
144                                 unsigned char dst_ep, unsigned char zcl_frame_ctl, unsigned short cluster_id,
145                                 unsigned short start_id, unsigned char max_attribute_ids);
146                 int zbl_reset_alarm(nwk_addr addr16, unsigned char ep, unsigned char alarm_code,
147                                 unsigned short cluster_id);
148                 int zbl_get_alarm(nwk_addr addr16, unsigned char ep);
149                 int zbl_reset_all_alarm_log(nwk_addr addr16, unsigned char ep);
150                 int zbl_ccontrol_move_to_hue(nwk_addr addr16, unsigned char ep, unsigned char hue,
151                                 unsigned char direction, unsigned short transition_time);
152                 int zbl_ccontrol_move_hue(nwk_addr addr16, unsigned char ep, unsigned char move_mode,
153                                 unsigned char rate);
154                 int zbl_ccontrol_step_hue(nwk_addr addr16, unsigned char ep, unsigned char step_mode,
155                                 unsigned char step_size, unsigned char transition_time);
156                 int zbl_ccontrol_move_to_saturation(nwk_addr addr16, unsigned char ep, unsigned char saturation,
157                                 unsigned short transition_time);
158                 int zbl_ccontrol_move_saturation(nwk_addr addr16, unsigned char ep, unsigned char move_mode,
159                                 unsigned char rate);
160                 int zbl_ccontrol_step_saturation(nwk_addr addr16, unsigned char ep,
161                                 unsigned char step_mode, unsigned char step_size, 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, unsigned short rate_x,
169                                 unsigned short rate_y);
170                 int zbl_ccontrol_step_color(nwk_addr addr16, unsigned char ep, unsigned short step_x,
171                                 unsigned short step_y, unsigned short transition_time);
172                 int zbl_ccontrol_move_to_color_temperature(nwk_addr addr16, unsigned char ep,
173                                 unsigned short color_temperature, unsigned short transition_time);
174                 int zbl_reset_factory_default(nwk_addr addr16, unsigned char ep);
175                 int zbl_identify(nwk_addr addr16, unsigned char dst_ep, unsigned short identify_time);
176                 int zbl_identify_query(nwk_addr addr16, unsigned char dst_ep);
177                 int zbl_add_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
178                                 const char *group_name);
179                 int zbl_view_group(nwk_addr addr16, unsigned char ep, unsigned short group_id);
180                 int zbl_group_get_group_membership(nwk_addr addr16, unsigned char ep,
181                                 unsigned char group_count, unsigned short *group_list);
182                 int zbl_remove_group(nwk_addr addr16, unsigned char ep, unsigned short group_id);
183                 int zbl_remove_all_group(nwk_addr addr16, unsigned char ep);
184                 int zbl_add_group_if_identifying(nwk_addr addr16, unsigned char ep,
185                                 unsigned short group_id, const char *group_name);
186                 int zbl_level_control_move_to_level(nwk_addr addr16, unsigned char ep,
187                                 unsigned char level, unsigned short transition_time);
188                 int zbl_level_control_move(nwk_addr addr16, unsigned char ep,
189                                 unsigned char move_mode, unsigned char rate);
190                 int zbl_level_control_step(nwk_addr addr16, unsigned char ep,
191                                 unsigned char step_mode, unsigned char step_size,
192                                 unsigned short transition_time);
193                 int zbl_level_control_stop(nwk_addr addr16, unsigned char ep);
194                 int zbl_level_control_move_to_level_with_on_off(nwk_addr addr16,
195                                 unsigned char ep, unsigned char level, unsigned short transition_time);
196                 int zbl_level_control_move_with_on_off(nwk_addr addr16, unsigned char ep,
197                                 unsigned char move_mode, unsigned char rate);
198                 int zbl_level_control_step_with_on_off(nwk_addr addr16, unsigned char ep,
199                                 unsigned char step_mode, unsigned char step_size,
200                                 unsigned short transition_time);
201                 int zbl_onoff_set(nwk_addr addr16, unsigned char ep, unsigned char on_off_type);
202                 int zbl_zone_enroll_response(nwk_addr addr16, unsigned char dst_ep,
203                                 unsigned char enroll_response_code, unsigned char zone_id);
204                 int zbl_pollcontrol_check_in_response(nwk_addr addr16, unsigned char ep,
205                                 unsigned char start_fast_polling, unsigned short fast_poll_timeout);
206                 int zbl_pollcontrol_fast_poll_stop(nwk_addr addr16, unsigned char ep);
207                 int zbl_pollcontrol_set_long_poll_interval(nwk_addr addr16, unsigned char ep,
208                                 unsigned int new_long_poll_interval);
209                 int zbl_pollcontrol_set_short_poll_interval(nwk_addr addr16, unsigned char ep,
210                                 unsigned int new_short_poll_interval);
211                 int zbl_add_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id, unsigned char scene_id,
212                                 unsigned short transition_time, const char *scene_name, unsigned short ext_field_len,
213                                 const char *extension_field_sets);
214                 int zbl_view_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id, unsigned char scene_id);
215                 int zbl_remove_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id, unsigned char scene_id);
216                 int zbl_remove_all_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id);
217                 int zbl_store_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id, unsigned char scene_id);
218                 int zbl_recall_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id, unsigned char scene_id);
219                 int zbl_get_scene_membership(nwk_addr addr16, unsigned char ep, unsigned short group_id);
220                 int zbl_thermostat_adjust_setpoint(nwk_addr addr16, unsigned char ep, unsigned char mode, unsigned char amount);
221 };
222 #endif /* __ZIGBEE_MANAGER_H__ */