Adjust dbus parameter with ZCL Global control
authorJiwan Kim <ji-wan.kim@samsung.com>
Tue, 7 Feb 2017 11:56:03 +0000 (20:56 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:07:20 +0000 (18:07 +0900)
Change-Id: Ic368683ea66a7f0459a6e408bdb8960cc0ad537b
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
lib/zbl-dbus.c

index b3c3adb..6ea1fd4 100644 (file)
@@ -2138,10 +2138,10 @@ MGMT_NWK_DISC_REQ_OUT:
                        goto GLOBAL_READ_ATTRIBUTE_REQ_OUT;
                }
 
-               g_variant_get(parameters, "(qyayqqyyqi)",
+               g_variant_get(parameters, "(qya(y)qqyyqi)",
                        &addr16, &ep, &iter, &attr_id, &cluster_id, &status, &type, &records_len, &isString);
                if (!isString) {
-                       while (g_variant_iter_loop(iter, "y", &value)) {
+                       while (g_variant_iter_loop(iter, "(y)", &value)) {
                                attr_value[j] = value;
                                DBG("attr_value[%d] = 0x%02X", j, value);
                                j++;
@@ -2149,7 +2149,7 @@ MGMT_NWK_DISC_REQ_OUT:
                        if (NULL != iter)
                                g_variant_iter_free(iter);
                } else {
-                       while (g_variant_iter_loop(iter, "y", &value)) {
+                       while (g_variant_iter_loop(iter, "(y)", &value)) {
                                if (j == 0)
                                        records_len = value;
                                attr_value[j] = value;
@@ -2193,7 +2193,7 @@ GLOBAL_READ_ATTRIBUTE_REQ_OUT:
                write_attr_status_record_h records;
                zb_global_record_data_s *data;
 
-               g_variant_get(parameters, "(qyayaqqi)",
+               g_variant_get(parameters, "(qya(y)aqqi)",
                        &addr16, &ep, &stat_iter, &attr_iter, &cluster_id, &records_len);
 
                records = calloc(records_len, sizeof(struct write_attribute_status_record_s));
@@ -2207,7 +2207,7 @@ GLOBAL_READ_ATTRIBUTE_REQ_OUT:
                        goto GLOBAL_WRITE_ATTRIBUTE_REQ_OUT;
                }
 
-               while (g_variant_iter_loop(stat_iter, "y", &value)) {
+               while (g_variant_iter_loop(stat_iter, "(y)", &value)) {
                        records[i].status = value;
                        i++;
                }
@@ -2248,7 +2248,7 @@ GLOBAL_WRITE_ATTRIBUTE_REQ_OUT:
                report_config_response_record_h records;
                zb_global_record_data_s *data;
 
-               g_variant_get(parameters, "(ayaqayqiqy)",
+               g_variant_get(parameters, "(a(y)aqa(y)qiqy)",
                        &stat_iter, &attr_iter, &dir_iter, &cluster_id, &rec_len, &addr16, &ep);
 
                records = calloc(rec_len, sizeof(struct reporting_configuration_response_record_s));
@@ -2264,7 +2264,7 @@ GLOBAL_WRITE_ATTRIBUTE_REQ_OUT:
                        goto GLOBAL_CONFIGURE_REPORTING_REQ_OUT;
                }
 
-               while (g_variant_iter_loop(stat_iter, "y", &value)) {
+               while (g_variant_iter_loop(stat_iter, "(y)", &value)) {
                        DBG("Value 0x%02X", value);
                        records[j].status = value;
                        j++;
@@ -2280,7 +2280,7 @@ GLOBAL_WRITE_ATTRIBUTE_REQ_OUT:
                if (NULL != attr_iter)
                        g_variant_iter_free(attr_iter);
 
-               while (g_variant_iter_loop(dir_iter, "y", &value)) {
+               while (g_variant_iter_loop(dir_iter, "(y)", &value)) {
                        if (records[k].status != ZB_ZCL_SUCCESS)
                                records[k].dir = value;
                        k++;
@@ -2314,7 +2314,7 @@ GLOBAL_CONFIGURE_REPORTING_REQ_OUT:
                GVariantIter *stat_iter = NULL;
                GVariantIter *attr_iter = NULL;
 
-               g_variant_get(parameters, "(qyayaqqii)",  &addr16, &ep, &stat_iter,
+               g_variant_get(parameters, "(qya(y)aqqii)",  &addr16, &ep, &stat_iter,
                                                &attr_iter, &cluster_id, &records_len, &discovery_complete);
                records = calloc(records_len, sizeof(discover_attr_info_record_h));
                RETM_IF(NULL == records, "calloc() Fail(%d)", errno);
@@ -2334,7 +2334,7 @@ GLOBAL_CONFIGURE_REPORTING_REQ_OUT:
                }
 
                j = 0;
-               while (g_variant_iter_loop(stat_iter, "y", &value)) {
+               while (g_variant_iter_loop(stat_iter, "(y)", &value)) {
                        records[j]->type = value;
                        DBG("Attribute Type 0x%02X", value);
                        j++;
@@ -2377,7 +2377,7 @@ GLOBAL_CONFIGURE_REPORTING_REQ_OUT:
                unsigned char discoveryComplete;
                GVariantIter *cmd_iter = NULL;
 
-               g_variant_get(parameters, "(ayqqqyy)",  &cmd_iter, &cluster_id, &cmd_len,
+               g_variant_get(parameters, "(a(y)qqqyy)",  &cmd_iter, &cluster_id, &cmd_len,
                        &addr16, &ep, &discoveryComplete);
 
                cmd_data = calloc(cmd_len+1, sizeof(char));
@@ -2388,7 +2388,7 @@ GLOBAL_CONFIGURE_REPORTING_REQ_OUT:
                        return;
                }
 
-               while (g_variant_iter_loop(cmd_iter, "y", &value)) {
+               while (g_variant_iter_loop(cmd_iter, "(y)", &value)) {
                        DBG("Value 0x%02X", value);
                        cmd_data[j] = value;
                        j++;
@@ -2426,7 +2426,7 @@ GLOBAL_CONFIGURE_REPORTING_REQ_OUT:
 
                DBG("Will get the value now");
 
-               g_variant_get(parameters, "(aqayayqqqyy)", &attr_iter, &type_iter, &ac_iter,
+               g_variant_get(parameters, "(aqa(y)a(y)qqqyy)", &attr_iter, &type_iter, &ac_iter,
                        &cluster_id, &rec_len, &addr16, &ep, &discoveryComplete);
 
                DBG("records length 0x%04X", rec_len);
@@ -2453,8 +2453,8 @@ GLOBAL_CONFIGURE_REPORTING_REQ_OUT:
 
                j = 0;
                while (g_variant_iter_loop(attr_iter, "q", &attr_data)
-                               && g_variant_iter_loop(type_iter, "y", &t_value)
-                               && g_variant_iter_loop(ac_iter, "y", &ac_value)) {
+                               && g_variant_iter_loop(type_iter, "(y)", &t_value)
+                               && g_variant_iter_loop(ac_iter, "(y)", &ac_value)) {
                        DBG("attrData 0x%04X", attr_data);
                        DBG("t_value 0x%02X", t_value);
                        DBG("ac_value 0x%02X", ac_value);
@@ -5120,14 +5120,14 @@ int zbl_read_attr_req(zigbee_h handle, unsigned short addr16, unsigned char dest
 #endif
 
        t = (unsigned char *)attribute_ids;
-       attr_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       attr_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        for (i = 0; i < attribute_ids_len*sizeof(unsigned short); i++)
-               g_variant_builder_add(attr_builder, "y", t[i]);
+               g_variant_builder_add(attr_builder, "(y)", t[i]);
        attr_variant = g_variant_builder_end(attr_builder);
        g_variant_builder_unref(attr_builder);
 
        variant = g_dbus_proxy_call_sync(zcl_global_proxy, "read_attributes_req",
-               g_variant_new("(@ayiqqyy)", attr_variant, attribute_ids_len, addr16, cluster_id,
+               g_variant_new("(@a(y)iqqyy)", attr_variant, attribute_ids_len, addr16, cluster_id,
                                                zcl_frame_ctl, dest_ep),
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
@@ -5247,11 +5247,11 @@ int zbl_write_attr_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, u
                j++;
        }
 
-       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        DBG("   ");
        for (i = 0; i < writeAttributeIndex ; i++) {
                DBG("0x%02X", writeAttribute[i]);
-               g_variant_builder_add(rec_builder, "y", writeAttribute[i]);
+               g_variant_builder_add(rec_builder, "(y)", writeAttribute[i]);
        }
 
        rec_variant = g_variant_builder_end(rec_builder);
@@ -5311,7 +5311,7 @@ int zbl_write_attr_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, u
 #endif
 
        variant = g_dbus_proxy_call_sync(zcl_global_proxy, "write_attributes_req",
-               g_variant_new("(@ayiqqyyy)", rec_variant, writeAttributeIndex, addr16,
+               g_variant_new("(@a(y)iqqyyy)", rec_variant, writeAttributeIndex, addr16,
                cluster_id, zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE,
                to, NULL, &dbus_err);
 
@@ -5436,11 +5436,11 @@ int zbl_wattr_undivided_req(zigbee_h handle, nwk_addr addr16, unsigned char src_
                j++;
        }
 
-       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        DBG("   ");
        for (i = 0; i < writeAttributeIndex ; i++) {
                DBG("0x%02X", writeAttribute[i]);
-               g_variant_builder_add(rec_builder, "y", writeAttribute[i]);
+               g_variant_builder_add(rec_builder, "(y)", writeAttribute[i]);
        }
 
        rec_variant = g_variant_builder_end(rec_builder);
@@ -5500,7 +5500,7 @@ int zbl_wattr_undivided_req(zigbee_h handle, nwk_addr addr16, unsigned char src_
 #endif
 
        variant = g_dbus_proxy_call_sync(zcl_global_proxy, "write_attributes_undivided_req",
-               g_variant_new("(@ayiqqyyy)", rec_variant, writeAttributeIndex, addr16,
+               g_variant_new("(@a(y)iqqyyy)", rec_variant, writeAttributeIndex, addr16,
                cluster_id, zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE,
                to, NULL, &dbus_err);
 
@@ -5617,18 +5617,18 @@ int zbl_wattr_req_no_rsp(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
                j++;
        }
 
-       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        DBG("   ");
        for (i = 0; i < writeAttributeIndex ; i++) {
                DBG("0x%02X", writeAttribute[i]);
-               g_variant_builder_add(rec_builder, "y", writeAttribute[i]);
+               g_variant_builder_add(rec_builder, "(y)", writeAttribute[i]);
        }
 
        rec_variant = g_variant_builder_end(rec_builder);
        g_variant_builder_unref(rec_builder);
 
-       variant = g_dbus_proxy_call_sync(zcl_global_proxy, "write_attributes_no_rep",
-               g_variant_new("(@ayiqqyyy)", rec_variant, writeAttributeIndex, addr16,
+       variant = g_dbus_proxy_call_sync(zcl_global_proxy, "write_attributes_no_resp",
+               g_variant_new("(@a(y)iqqyyy)", rec_variant, writeAttributeIndex, addr16,
                cluster_id, zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE,
                -1, NULL, &dbus_err);
 
@@ -5720,24 +5720,24 @@ int zbl_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char src_
        _zbl_register_global_req(handle, container);
 #endif
 
-       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        for (i = 0; i < records_len; i++) {
-               g_variant_builder_add(rec_builder, "y", (*records)[i].dir);
+               g_variant_builder_add(rec_builder, "(y)", (*records)[i].dir);
                DBG("dir = 0x%02X", (*records)[i].dir);
                count += sizeof((*records)[i].dir);
-               g_variant_builder_add(rec_builder, "y", (*records)[i].id & 0xff);
-               g_variant_builder_add(rec_builder, "y", ((*records)[i].id >> 8) & 0xff);
+               g_variant_builder_add(rec_builder, "(y)", (*records)[i].id & 0xff);
+               g_variant_builder_add(rec_builder, "(y)", ((*records)[i].id >> 8) & 0xff);
                DBG("id = 0x%04X", (*records)[i].id);
                count += sizeof((*records)[i].id);
-               g_variant_builder_add(rec_builder, "y", (*records)[i].type);
+               g_variant_builder_add(rec_builder, "(y)", (*records)[i].type);
                count += sizeof((*records)[i].type);
                DBG("type = 0x%04X", (*records)[i].type);
-               g_variant_builder_add(rec_builder, "y", (*records)[i].min_i & 0xff);
-               g_variant_builder_add(rec_builder, "y", ((*records)[i].min_i >> 8) & 0xff);
+               g_variant_builder_add(rec_builder, "(y)", (*records)[i].min_i & 0xff);
+               g_variant_builder_add(rec_builder, "(y)", ((*records)[i].min_i >> 8) & 0xff);
                DBG("min_i = 0x%04X", (*records)[i].min_i);
                count += sizeof((*records)[i].min_i);
-               g_variant_builder_add(rec_builder, "y", (*records)[i].max_i & 0xff);
-               g_variant_builder_add(rec_builder, "y", ((*records)[i].max_i >> 8) & 0xff);
+               g_variant_builder_add(rec_builder, "(y)", (*records)[i].max_i & 0xff);
+               g_variant_builder_add(rec_builder, "(y)", ((*records)[i].max_i >> 8) & 0xff);
                DBG("max_i = 0x%04X", (*records)[i].max_i);
                count += sizeof((*records)[i].max_i);
 
@@ -5748,7 +5748,7 @@ int zbl_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char src_
 
                for (j = 0; j < len && (*records)[i].change+j; j++) {
                        DBG("records[%d]->value[%d] = %d", i, j, (*records)[i].change[j]);
-                       g_variant_builder_add(rec_builder, "y", (*records)[i].change[j]);
+                       g_variant_builder_add(rec_builder, "(y)", (*records)[i].change[j]);
                }
 
        }
@@ -5756,7 +5756,7 @@ int zbl_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char src_
        g_variant_builder_unref(rec_builder);
 
        variant = g_dbus_proxy_call_sync(zcl_global_proxy, "configure_reporting_req",
-               g_variant_new("(@ayqqqyyy)", rec_variant, count, addr16, cluster_id,
+               g_variant_new("(@a(y)qqqyyy)", rec_variant, count, addr16, cluster_id,
                zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
@@ -5881,18 +5881,18 @@ int zbl_read_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char
                j++;
        }
 
-       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       rec_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
 
        for (i = 0; i < idx ; i++) {
                DBG("0x%02X", read_attributes[i]);
-               g_variant_builder_add(rec_builder, "y", read_attributes[i]);
+               g_variant_builder_add(rec_builder, "(y)", read_attributes[i]);
        }
 
        rec_variant = g_variant_builder_end(rec_builder);
        g_variant_builder_unref(rec_builder);
 
        variant = g_dbus_proxy_call_sync(zcl_global_proxy, "read_configure_reporting",
-               g_variant_new("(@ayqqqyyy)", rec_variant, idx, addr16, cluster_id, zcl_frame_ctl,
+               g_variant_new("(@a(y)qqqyyy)", rec_variant, idx, addr16, cluster_id, zcl_frame_ctl,
                src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        free(read_attributes);
@@ -5981,7 +5981,8 @@ int zbl_discover_attr_req(zigbee_h handle, unsigned short addr16, unsigned char
        _zbl_register_global_req(handle, container);
 #endif
 
-       variant = g_dbus_proxy_call_sync(zcl_global_proxy, "discover_attributes", g_variant_new("(qyyqqy)",
+       variant = g_dbus_proxy_call_sync(zcl_global_proxy, "discover_attributes",
+               g_variant_new("(qyyqqy)",
                addr16, dest_ep, zcl_frame_ctl, cluster_id, start_id, max_attribute_ids),
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);