From 9d5e9614176fc9f08d6578b834276801eb20b6f0 Mon Sep 17 00:00:00 2001 From: Jiwan Kim Date: Wed, 26 Apr 2017 10:25:50 +0900 Subject: [PATCH] Fix DBus parameter - Fix mismatched parameter on signal 'report_attr_handler_rsp' [qyqaqayayi -> qyqaqa(y)a(y)i] - Update test parameter for zb_zcl_group_get_group_membership() to get valid response. Change-Id: I816b75444aa9cb46ced1d9345da58dbb4552bb55 Signed-off-by: Jiwan Kim --- lib/zbl_dbus.c | 16 ++++++++-------- test/zcl_cluster_group.c | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/zbl_dbus.c b/lib/zbl_dbus.c index 412cfbb..b62861a 100644 --- a/lib/zbl_dbus.c +++ b/lib/zbl_dbus.c @@ -715,7 +715,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, struct attribute_report_s **records = NULL; - g_variant_get(parameters, "(qyqaqayayi)", &addr16, &ep, + g_variant_get(parameters, "(qyqaqa(y)a(y)i)", &addr16, &ep, &cluster_id, &attr_iter, &dataType_iter, &data_iter, &records_len); records = calloc(records_len, sizeof(struct attribute_report_s)); @@ -741,7 +741,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, j = 0; while (g_variant_iter_loop(attr_iter, "q", &attrData) - && g_variant_iter_loop(dataType_iter, "y", &dataType)) { + && g_variant_iter_loop(dataType_iter, "(y)", &dataType)) { records[j]->id = attrData; records[j]->type = dataType; DBG("dataType 0x%02x", records[j]->type); @@ -759,7 +759,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, /* String */ case ZB_ZCL_OCTAT_STRING: case ZB_ZCL_CHRACTER_STRING: - g_variant_iter_loop(data_iter, "y", &value); + g_variant_iter_loop(data_iter, "(y)", &value); data_size = value + 1; records[j]->value = calloc(data_size, sizeof(unsigned char)); if (NULL == records[j]->value) { @@ -774,7 +774,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, records[j]->value[dsizeIndex] = value; dsizeIndex++; for (i = dsizeIndex; i < data_size - 2; i++) { - g_variant_iter_loop(data_iter, "y", &value); + g_variant_iter_loop(data_iter, "(y)", &value); records[j]->value[i] = value; } if (NULL != data_iter) @@ -782,9 +782,9 @@ static void _zbl_signal_handler(GDBusConnection *connection, break; case ZB_ZCL_LONG_OCTAT_STRING: case ZB_ZCL_LONG_CHRACTER_STRING: - g_variant_iter_loop(data_iter, "y", &value); + g_variant_iter_loop(data_iter, "(y)", &value); dSize[0] = value; - g_variant_iter_loop(data_iter, "y", &value); + g_variant_iter_loop(data_iter, "(y)", &value); dSize[1] = value; data_size = dSize[1]; data_size = (data_size << 8) | dSize[0]; @@ -804,7 +804,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, records[j]->value[dsizeIndex] = dSize[dsizeIndex]; dsizeIndex++; for (i = dsizeIndex; i < data_size - 2; i++) { - g_variant_iter_loop(data_iter, "y", &value); + g_variant_iter_loop(data_iter, "(y)", &value); records[j]->value[i] = value; } if (NULL != data_iter) @@ -832,7 +832,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, } if (data_size != 0xFF) { for (i = 0; i < data_size; i++) { - g_variant_iter_loop(data_iter, "y", &value); + g_variant_iter_loop(data_iter, "(y)", &value); records[j]->value[i] = value; DBG("value[%d] 0x%02X", i, records[j]->value[i]); } diff --git a/test/zcl_cluster_group.c b/test/zcl_cluster_group.c index 234fbc7..68b6d19 100644 --- a/test/zcl_cluster_group.c +++ b/test/zcl_cluster_group.c @@ -134,7 +134,7 @@ static int run_group_view_group(MManager *mm, struct menu_data *menu) static int run_group_get_group_membership(MManager *mm, struct menu_data *menu) { int ret = ZIGBEE_ERROR_NONE; - unsigned short group_list[2] = { 0x0003, 0x0004 }; + unsigned short group_list[2] = { 0x0002, 0x0003 }; unsigned char group_count = 2; ret = zb_zcl_group_get_group_membership(handle, dest_addr16, sj_ep1.ep, -- 2.34.1