Modify API to get in/out cluster list
authorJiwan Kim <ji-wan.kim@samsung.com>
Thu, 9 Feb 2017 05:14:20 +0000 (14:14 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:10:26 +0000 (18:10 +0900)
- Fix get_cluster_list method and related logic

Change-Id: Id7f7b1c2faf551d41daee2ede14abbd3627f55ec
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
common/include/zigbee_service_type.h
zigbee-daemon/zigbee-interface/introspection/service.xml
zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface_service.c

index 29f0a13..4dd3af4 100644 (file)
@@ -158,8 +158,10 @@ typedef struct {
  */
 typedef struct {
        int result; /**< Result */
-       int cluster_count; /**< The number of clusters */
-       unsigned char clusters[ZIGBEE_MAX_CLUSTERS]; /**< Clusters */
+       int in_cluster_count; /**< The number of in clusters */
+       int out_cluster_count; /**< The number of out clusters */
+       unsigned char in_clusters[ZIGBEE_MAX_CLUSTERS]; /**< In Clusters */
+       unsigned char out_clusters[ZIGBEE_MAX_CLUSTERS]; /**< Out Clusters */
 } ZigbeeServiceGetClusterListResp_t;
 
 /**
index bdbb7bd..a5d79cf 100644 (file)
@@ -63,7 +63,8 @@
                        <arg type='a(y)' name='eui64' direction='in'/>
                        <arg type='y' name='endpoint' direction='in'/>
                        <arg type='i' name='result' direction='out'/>
-                       <arg type='aq' name='cluster_list' direction='out'/>
+                       <arg type='aq' name='in_cluster_list' direction='out'/>
+                       <arg type='aq' name='out_cluster_list' direction='out'/>
                </method>
                <method name='get_node_type'>
                        <arg type='a(y)' name='eui64' direction='in'/>
index 635d8f1..cf97c6e 100644 (file)
@@ -1184,7 +1184,8 @@ static void on_service_get_cluster_list_resp(ZigBeeServiceInterface *service_int
        GDBusMethodInvocation *invocation;
        ZigbeeServiceGetClusterListResp_t *payload =
                (ZigbeeServiceGetClusterListResp_t*)resp_data;
-       GVariant *v_clusters = NULL;
+       GVariant *v_in_clusters = NULL;
+       GVariant *v_out_clusters = NULL;
 
        NOT_USED(service_interface);
        NOT_USED(request_id);
@@ -1201,11 +1202,13 @@ static void on_service_get_cluster_list_resp(ZigBeeServiceInterface *service_int
        invocation = zigbee_service_dbus_interface_ref_invocation(cb_data);
        zblib_check_null_free_and_ret("invocation", invocation, cb_data);
 
-       v_clusters = g_variant_new_from_data(G_VARIANT_TYPE("aq"),
-               payload->clusters, payload->cluster_count, TRUE, NULL, NULL);
+       v_in_clusters = g_variant_new_from_data(G_VARIANT_TYPE("aq"),
+               payload->in_clusters, payload->in_cluster_count, TRUE, NULL, NULL);
+       v_out_clusters = g_variant_new_from_data(G_VARIANT_TYPE("aq"),
+               payload->out_clusters, payload->out_cluster_count, TRUE, NULL, NULL);
 
        zigbee_service_complete_get_cluster_list(service_object, invocation,
-               payload->result, v_clusters);
+               payload->result, v_in_clusters, v_out_clusters);
 
        g_free(cb_data);
 }