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));
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);
/* 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) {
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)
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];
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)
}
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]);
}