variant = g_dbus_proxy_call_sync(service_gproxy, "enable", NULL,
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(ib)", &result, &enabled);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get enable [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'enable' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(ib)", &result, &enabled);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
if (service_gproxy) {
variant = g_dbus_proxy_call_sync(service_gproxy, "disable", NULL,
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get disable [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'disable' [%s]", dbus_err->message);
g_error_free(dbus_err);
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
g_object_unref(service_gproxy);
service_gproxy = NULL;
g_object_unref(on_off_gproxy);
variant = g_dbus_proxy_call_sync(service_gproxy, "zb_hw_reset", NULL,
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get zb_hw_reset [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'zb_hw_reset' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
- return ZIGBEE_ERROR_NONE;
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_get_network_info(ieee_addr addr64, nwk_addr *nodeid, nwk_addr *panid,
variant = g_dbus_proxy_call_sync(service_gproxy, "get_network_info",
NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(ia(y)qqyy)", &result, &iter,
- &_nodeid, &_panid, &_radio_channel, &_radio_tx_power);
-
- /* Get EUI */
- i = 0;
- while (g_variant_iter_loop(iter, "(y)", &value)) {
- addr64[i] = value;
- i++;
- }
-
- DBG(" Result: [%X]", result);
- DBG(" EUI(%d) : %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", i,
- addr64[0], addr64[1], addr64[2], addr64[3],
- addr64[4], addr64[5], addr64[6], addr64[7]);
- DBG(" nodeID [0x%04X]", _nodeid);
- DBG(" PanID [0x%04X]", _panid);
- DBG(" Channel [%d] Tx Power [%d]", _radio_channel, _radio_tx_power);
-
- if (nodeid)
- *nodeid = _nodeid;
- if (panid)
- *panid = _panid;
- if (channel)
- *channel = _radio_channel;
- if (tx_power)
- *tx_power = _radio_tx_power;
-
- if (iter)
- g_variant_iter_free(iter);
- g_variant_unref(variant);
-
- } else {
- ERR("Failed to get_network_info [%s]", dbus_err->message);
+ if (!variant) {
+ ERR("Failed to 'get_network_info' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(ia(y)qqyy)", &result, &iter,
+ &_nodeid, &_panid, &_radio_channel, &_radio_tx_power);
+
+ /* Get EUI */
+ i = 0;
+ while (g_variant_iter_loop(iter, "(y)", &value)) {
+ addr64[i] = value;
+ i++;
+ }
+
+ DBG(" Result: [%X]", result);
+ DBG(" EUI(%d) : %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", i,
+ addr64[0], addr64[1], addr64[2], addr64[3],
+ addr64[4], addr64[5], addr64[6], addr64[7]);
+ DBG(" nodeID [0x%04X]", _nodeid);
+ DBG(" PanID [0x%04X]", _panid);
+ DBG(" Channel [%d] Tx Power [%d]", _radio_channel, _radio_tx_power);
+
+ if (nodeid)
+ *nodeid = _nodeid;
+ if (panid)
+ *panid = _panid;
+ if (channel)
+ *channel = _radio_channel;
+ if (tx_power)
+ *tx_power = _radio_tx_power;
+
+ if (iter)
+ g_variant_iter_free(iter);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(service_gproxy, "get_mac",
NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(ia(y))", &result, &iter);
+ if (!variant) {
+ ERR("Failed to get_mac [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+ g_variant_get(variant, "(ia(y))", &result, &iter);
- while (g_variant_iter_loop(iter, "(y)", &value)) {
- addr64[j] = value;
- j++;
- }
+ while (g_variant_iter_loop(iter, "(y)", &value)) {
+ addr64[j] = value;
+ j++;
+ }
- DBG("IEEE ADDR 0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X, Ret=%d ",
- addr64[0], addr64[1], addr64[2], addr64[3], addr64[4], addr64[5],
- addr64[6], addr64[7], result);
+ DBG("IEEE ADDR 0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X, Ret=%d ",
+ addr64[0], addr64[1], addr64[2], addr64[3], addr64[4], addr64[5],
+ addr64[6], addr64[7], result);
- if (iter)
- g_variant_iter_free(iter);
- g_variant_unref(variant);
+ if (iter)
+ g_variant_iter_free(iter);
+ g_variant_unref(variant);
- return result;
- }
- else {
- ERR("Failed to get_mac [%s]", dbus_err->message);
- g_error_free(dbus_err);
- }
- return ZIGBEE_ERROR_IO_ERROR;
+ return result;
}
int zbl_get_cluster_list(ieee_addr eui64, unsigned char endpoint, unsigned short list[],
{
GVariant *variant = NULL;
GVariantBuilder *mac_builder = NULL;
+ int result = ZIGBEE_ERROR_NONE;
GVariant *mac_variant = NULL;
GError *dbus_err = NULL;
- unsigned char n_type = 0;
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
g_variant_new("(@a(y))", mac_variant),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(y)", &n_type);
- *node_type = n_type;
- DBG("Node Type 0x%x", n_type);
- g_variant_unref(variant);
- } else {
- ERR("NULL Variant [%s]", dbus_err->message);
+ if (!variant) {
+ ERR("Failed to get 'get_node_type' [%s]", dbus_err->message);
g_error_free(dbus_err);
- *node_type = 0;
return ZIGBEE_ERROR_IO_ERROR;
}
- return ZIGBEE_ERROR_NONE;
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_get_all_device_info(zb_end_device_info_h **dev_list, unsigned char* num)
variant = g_dbus_proxy_call_sync(service_gproxy, "coex_start", g_variant_new("(y)", channel),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get coex_start [%s]", dbus_err->message);
+
+ if (!variant) {
+
+ ERR("Failed to get 'coex_start' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
- return ZIGBEE_ERROR_NONE;
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_coex_stop(void)
variant = g_dbus_proxy_call_sync(service_gproxy, "coex_stop", NULL,
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get coex_stop [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'coex_stop' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
- return ZIGBEE_ERROR_NONE;
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_form_network(zigbee_h handle, zb_form_network_cb cb, void *user_data)
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(service_gproxy, "form_network", NULL, G_DBUS_CALL_FLAGS_NONE, to,
- NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(service_gproxy, "form_network", NULL,
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'form_network' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_disable_network(zigbee_h handle, zb_disable_network_cb cb, void *user_data)
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(service_gproxy, "leave_network", NULL, G_DBUS_CALL_FLAGS_NONE, to,
- NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(service_gproxy, "leave_network", NULL,
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'leave_network' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_leave_device(ieee_addr addr64, bool remove_children, bool rejoin)
variant = g_dbus_proxy_call_sync(service_gproxy, "leave_request",
g_variant_new("(@a(y)yy)", mac_variant, _remove_children, _rejoin),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get leave_request [%s]", dbus_err->message);
+
+ if (!variant) {
+
+ ERR("Failed to get 'leave_request' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(service_gproxy, "permit_join",
g_variant_new("(ib)", duration, broadcast), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get permit_join [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'permit_join' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
GVariantBuilder *mac_builder = NULL;
GVariant* mac_variant = NULL;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
mac_variant = g_variant_builder_end(mac_builder);
g_variant_builder_unref(mac_builder);
- g_dbus_proxy_call(zdo_dev_proxy, "nwk_addr_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "nwk_addr_req",
g_variant_new("(@a(y)yy)", mac_variant, request_type, start_idx),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'nwk_addr_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_ieee_addr_req(zigbee_h handle, nwk_addr addr16, zb_zdo_addr_rsp cb,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "ieee_addr_req", g_variant_new("(q)", addr16),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "ieee_addr_req", g_variant_new("(q)", addr16),
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
+
+ if (!variant) {
- return ZIGBEE_ERROR_NONE;
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'ieee_addr_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_active_ep(zigbee_h handle, nwk_addr addr16, zb_zdo_active_ep_rsp cb,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "active_ep_req",
- g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "active_ep_req",
+ g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'active_ep_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_simple_desc_req(zigbee_h handle, nwk_addr addr16, unsigned char ep,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "simple_desc_req",
- g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "simple_desc_req",
+ g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'simple_desc_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
#ifdef ZB_SUPPORT_PRIORITY_5
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
int i;
GVariantBuilder *incl_builder = NULL;
GVariant* incl_variant = NULL;
g_variant_builder_unref(incl_builder);
g_variant_builder_unref(outcl_builder);
- g_dbus_proxy_call(zdo_dev_proxy, "matched_descriptor_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "matched_descriptor_req",
g_variant_new("(qqy@aqy@aq)", addr16, profile_id, num_in_clusters,
incl_variant, num_out_clusters, outcl_variant),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'matched_descriptor_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_node_desc_req(nwk_addr addr16, zb_zdo_node_desc_rsp cb, void *user_data)
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "node_desc_req",
- g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "node_desc_req",
+ g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'node_desc_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_power_desc_req(nwk_addr addr16, zb_zdo_power_desc_rsp cb, void *user_data)
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "power_desc_req",
- g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "power_desc_req",
+ g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'power_desc_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_complex_desc_req(nwk_addr addr16, zb_zdo_complex_desc_rsp cb, void *user_data)
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "complex_desc_req",
- g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "complex_desc_req",
+ g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
-}
+ if (!variant) {
-int zbl_user_desc_req(nwk_addr addr16, zb_zdo_user_desc_rsp cb, void *user_data)
-{
- int sub_id, to;
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'complex_desc_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
+}
+
+int zbl_user_desc_req(nwk_addr addr16, zb_zdo_user_desc_rsp cb, void *user_data)
+{
+ int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "user_desc_req",
- g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "user_desc_req",
+ g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'user_desc_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
#define MAX_USER_DESC_SIZE 0x10
{
int sub_id, to;
zbl_req_cb_s *container;
+
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
unsigned char j = 0x00;
GVariantBuilder *user_desc_builder = NULL;
GVariant *user_desc_variant = NULL;
user_desc_variant = g_variant_builder_end(user_desc_builder);
g_variant_builder_unref(user_desc_builder);
- g_dbus_proxy_call(zdo_dev_proxy, "user_desc_set_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "user_desc_set_req",
g_variant_new("(qy@a(y))", addr16, len, user_desc_variant),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'user_desc_set_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_device_annce(zigbee_h handle, nwk_addr addr16, ieee_addr addr64,
variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "device_announce",
g_variant_new("(q@a(y)y)", addr16, mac_variant, capability),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get device_annce [%s]", dbus_err->message);
+
+ if (!variant) {
+
+ ERR("Failed to get 'device_announce' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
cluster_id, dst_addr64_variant, type, group_addr, dst_ep),
G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get device_annce [%s]", dbus_err->message);
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'bind_req' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
g_variant_new("(q@a(y)yq@a(y)yqy)", dst_addr16, src_addr64_variant, src_ep,
cluster_id, dst_addr64_variant, type, group_addr, dst_ep),
G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get device_annce [%s]", dbus_err->message);
+
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'unbind_req' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
unsigned char scan_duration, unsigned char scan_count, unsigned char start_idx,
zb_zdo_mgmt_nwk_disc_rsp cb, void *user_data)
{
-
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "nwk_disc_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "nwk_disc_req",
g_variant_new("(quyqy)", addr16, scan_channels, scan_duration, scan_count, start_idx),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'nwk_disc_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_mgmt_nwk_update_req(unsigned int scan_channels, unsigned char scan_duration,
variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "nwk_update_req",
g_variant_new("(quyyy)", nwk_manager_addr, scan_channels, scan_duration,
scan_count, nwk_update_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get nwk_update_req [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'nwk_update_req' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "mgmt_lqi_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "mgmt_lqi_req",
g_variant_new("(qy)", addr16, start_idx),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'mgmt_lqi_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_mgmt_rtg_req(nwk_addr addr16, unsigned char start_idx,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "mgmt_rtg_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "mgmt_rtg_req",
g_variant_new("(qy)", addr16, start_idx),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'mgmt_rtg_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_mgmt_bind_req(nwk_addr addr16, unsigned char start_idx,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zdo_dev_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "mgmt_bind_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "mgmt_bind_req",
g_variant_new("(qy)", addr16, start_idx),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'mgmt_bind_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_mgmt_leave_device(ieee_addr addr64, unsigned char remove_children,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
GVariantBuilder *mac_builder = NULL;
GVariant* mac_variant = NULL;
mac_variant = g_variant_builder_end(mac_builder);
g_variant_builder_unref(mac_builder);
- g_dbus_proxy_call(service_gproxy, "leave_request",
+ variant = g_dbus_proxy_call_sync(service_gproxy, "leave_request",
g_variant_new("(@a(y)yy)", mac_variant, remove_children, rejoin),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'leave_request' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_mgmt_permit_joining_req(nwk_addr addr16, unsigned char duration,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zdo_dev_proxy, "mgmt_permit_join_req",
+ variant = g_dbus_proxy_call_sync(zdo_dev_proxy, "mgmt_permit_join_req",
g_variant_new("(qyy)", addr16, duration, tc_significance),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'mgmt_permit_join_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_aps_send(nwk_addr addr16, unsigned char aps_frame_ctl, unsigned char src_ep,
profile_id, zcl_frame_ctl, mfg_code, cmd_id, payload_len, payload_variant),
G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to run 'aps_send' [%s]", dbus_err->message);
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'aps_send' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
g_variant_new("(qyyqyyq@a(y))", addr16, src_ep, dst_ep, cluster_id, zcl_frame_ctl,
cmd, payload_len, payload_variant), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to run 'zcl_send' [%s]", dbus_err->message);
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'zcl_send' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
g_variant_new("(q@a(y))", length, payload_variant),
G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to run 'send_to_local' [%s]", dbus_err->message);
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'send_to_local' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
{
int sub_id, to;
zbl_req_cb_s *container;
+
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
attr_variant = g_variant_builder_end(attr_builder);
g_variant_builder_unref(attr_builder);
- g_dbus_proxy_call(zcl_global_proxy, "read_attributes_req",
+ variant = g_dbus_proxy_call_sync(zcl_global_proxy, "read_attributes_req",
g_variant_new("(@ayiqqyy)", attr_variant, attribute_ids_len, addr16, cluster_id,
zcl_frame_ctl, dest_ep),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'read_attributes_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_write_attr_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
{
int sub_id, to;
zbl_req_cb_s *container;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
- zb_event_global_default_rsp_s *global_req = NULL;
-#endif
- RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ zb_event_global_default_rsp_s *global_req = NULL;
+#endif
+
+ RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zcl_global_proxy, ZIGBEE_ERROR_IO_ERROR);
DBG("zbl_write_attr_req()");
_zbl_register_global_req(handle, container);
#endif
- g_dbus_proxy_call(zcl_global_proxy, "write_attributes_req",
+ variant = g_dbus_proxy_call_sync(zcl_global_proxy, "write_attributes_req",
g_variant_new("(@ayiqqyyy)", rec_variant, writeAttributeIndex, addr16,
cluster_id, zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE,
- to, NULL, NULL, container);
+ to, NULL, &dbus_err);
free(isString);
free(dataSize);
free(writeAttribute);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'write_attributes_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_wattr_undivided_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
{
int sub_id, to;
zbl_req_cb_s *container;
+
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
_zbl_register_global_req(handle, container);
#endif
- g_dbus_proxy_call(zcl_global_proxy, "write_attributes_undivided_req",
+ variant = g_dbus_proxy_call_sync(zcl_global_proxy, "write_attributes_undivided_req",
g_variant_new("(@ayiqqyyy)", rec_variant, writeAttributeIndex, addr16,
cluster_id, zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE,
- to, NULL, NULL, container);
+ to, NULL, &dbus_err);
free(isString);
free(dataSize);
free(writeAttribute);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'write_attributes_undivided_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_wattr_req_no_rsp(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
g_variant_new("(@ayiqqyyy)", rec_variant, writeAttributeIndex, addr16,
cluster_id, zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE,
-1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get write_attributes_no_rep [%s]", dbus_err->message);
- g_error_free(dbus_err);
- free(isString);
- free(dataSize);
- free(writeAttribute);
+ free(isString);
+ free(dataSize);
+ free(writeAttribute);
+
+ if (!variant) {
+ ERR("Failed to get 'write_attributes_no_rep' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
- free(isString);
- free(dataSize);
- free(writeAttribute);
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
return result;
}
{
int sub_id, to;
zbl_req_cb_s *container;
+
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
rec_variant = g_variant_builder_end(rec_builder);
g_variant_builder_unref(rec_builder);
- g_dbus_proxy_call(zcl_global_proxy, "configure_reporting_req",
+ variant = g_dbus_proxy_call_sync(zcl_global_proxy, "configure_reporting_req",
g_variant_new("(@ayqqqyyy)", rec_variant, count, addr16, cluster_id,
- zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+
+ ERR("Failed to get 'configure_reporting_req' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_read_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
{
int sub_id, to;
zbl_req_cb_s *container;
+
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
rec_variant = g_variant_builder_end(rec_builder);
g_variant_builder_unref(rec_builder);
- g_dbus_proxy_call(zcl_global_proxy, "read_configure_reporting",
+ 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,
- src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
free(read_attributes);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'read_configure_reporting' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_discover_attr_req(zigbee_h handle, unsigned short addr16, unsigned char src_ep,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
_zbl_register_global_req(handle, container);
#endif
- g_dbus_proxy_call(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, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'discover_attributes' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_discover_cmds_gen(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
{
int sub_id, to;
zbl_req_cb_s *container;
+
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
_zbl_register_global_req(handle, container);
#endif
- g_dbus_proxy_call(zcl_global_proxy, "discover_commands_received",
+ variant = g_dbus_proxy_call_sync(zcl_global_proxy, "discover_commands_received",
g_variant_new("(qyyqqy)", addr16, dst_ep, zcl_frame_ctl, cluster_id,
- start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'discover_commands_received' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_discover_cmds_recv(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
unsigned char zcl_frame_ctl, unsigned short cluster_id, unsigned char start_command_id,
unsigned char max_command_ids, zb_zcl_global_discover_cmds_rsp cb, void *user_data)
{
+ int sub_id, to;
+ zbl_req_cb_s *container;
+
int result = ZIGBEE_ERROR_NONE;
GVariant *variant = NULL;
GError *dbus_err = NULL;
- int sub_id, to;
- zbl_req_cb_s *container;
-
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
variant = g_dbus_proxy_call_sync(zcl_global_proxy, "discover_commands_received",
g_variant_new("(qyyqqy)", addr16, dst_ep, zcl_frame_ctl, cluster_id,
start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get discover_commands_received [%s]", dbus_err->message);
+
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'discover_commands_received' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
zb_event_global_default_rsp_s *global_req = NULL;
#endif
_zbl_register_global_req(handle, container);
#endif
- g_dbus_proxy_call(zcl_global_proxy, "discover_attributes_extended",
+ variant = g_dbus_proxy_call_sync(zcl_global_proxy, "discover_attributes_extended",
g_variant_new("(qyyqqy)", addr16, dst_ep, zcl_frame_ctl, cluster_id, start_id,
- max_attribute_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ max_attribute_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
+ free(global_req);
+#endif
+ free(container);
+
+ ERR("Failed to get 'discover_attributes_extended' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_reset_alarm(nwk_addr addr16, unsigned char ep, unsigned char alarm_code,
variant = g_dbus_proxy_call_sync(alarm_gproxy, "reset_alarm",
g_variant_new("(qyyq)", addr16, ep, alarm_code, cluster_id),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get reset_alarm [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'reset_alarm' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(alarm_gproxy, "reset_all_alarm",
g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get reset_all_alarm [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'reset_all_alarm' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == alarm_gproxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(alarm_gproxy, "get_alarm",
- g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(alarm_gproxy, "get_alarm",
+ g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ ERR("Failed to get 'get_alarm' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_reset_all_alarm_log(nwk_addr addr16, unsigned char ep)
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == alarm_gproxy, ZIGBEE_ERROR_IO_ERROR);
- variant = g_dbus_proxy_call_sync(alarm_gproxy, "reset_all_alarm_log",
+ variant = g_dbus_proxy_call_sync(alarm_gproxy, "reset_alarm_log",
g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get reset_all_alarm_log [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'reset_alarm_log' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_to_hue",
g_variant_new("(qyyyq)", addr16, ep, hue, direction, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_to_hue [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_to_hue' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_hue",
g_variant_new("(qyyy)", addr16, ep, move_mode, rate),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_hue [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_hue' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "step_hue",
g_variant_new("(qyyyy)", addr16, ep, step_mode, step_size, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get step_hue [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'step_hue' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_to_saturation",
g_variant_new("(qyyq)", addr16, ep, saturation, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_to_saturation [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_to_saturation' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_saturation",
g_variant_new("(qyyy)", addr16, ep, move_mode, rate),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_saturation [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_saturation' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "step_saturation",
g_variant_new("(qyyyy)", addr16, ep, step_mode, step_size, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get step_saturation [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'step_saturation' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_to_hue_and_saturation",
g_variant_new("(qyyyq)", addr16, ep, hue, saturation, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_to_hue_and_saturation [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_to_hue_and_saturation' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_to_color",
g_variant_new("(qyqqq)", addr16, ep, color_x, color_y, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_to_color [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_to_color' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_color",
g_variant_new("(qyqq)", addr16, ep, rate_x, rate_y),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_color [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_color' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "step_color",
g_variant_new("(qyqqq)", addr16, ep, step_x, step_y, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get step_color [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'step_color' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_color_control_proxy, "move_color_temperature",
g_variant_new("(qyqq)", addr16, ep, color_temperature, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_color_temperature [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_color_temperature' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_basic_proxy, "reset_factory_default",
g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get reset_factory_default [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'reset_factory_default' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_identify_proxy, "identify",
g_variant_new("(qyq)", addr16, dst_ep, identify_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get identify [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'identify' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_identify_proxy, "query",
g_variant_new("(qy)", addr16, dst_ep), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get identify [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'query' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
int zbl_add_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
- const char *group_name, zb_zcl_group_add_group_rsp cb, void *user_data)
+ char *group_name, zb_zcl_group_add_group_rsp cb, void *user_data)
{
int result = ZIGBEE_ERROR_NONE;
GVariant *variant = NULL;
variant = g_dbus_proxy_call_sync(zcl_group_proxy, "add_group",
g_variant_new("(qyq@a(y))", addr16, ep, group_id, groupname_variant),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get identify [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'add_group' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_group_proxy, "view_group",
g_variant_new("(qyq)", addr16, ep, group_id),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get identify [%s]", dbus_err->message);
+
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'view_group' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
- return result;
-}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;}
int zbl_group_get_group_membership(nwk_addr addr16, unsigned char ep,
unsigned char group_count, unsigned short *group_list,
grouplist_builder = g_variant_builder_new(G_VARIANT_TYPE("aq"));
while (j < group_count) {
- g_variant_builder_add(grouplist_builder, "y", group_list[j]);
+ g_variant_builder_add(grouplist_builder, "q", group_list[j]);
j++;
}
grouplist_variant = g_variant_builder_end(grouplist_builder);
variant = g_dbus_proxy_call_sync(zcl_group_proxy, "get_group_membership",
g_variant_new("(qyy@aq)", addr16, ep, group_count, grouplist_variant),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get identify [%s]", dbus_err->message);
+
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'get_group_membership' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_group_proxy, "remove_group", g_variant_new("(qyq)",
addr16, ep, group_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get add_group_if_identifying [%s]", dbus_err->message);
+
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'remove_group' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_group_proxy, "remove_all_group",
g_variant_new("(qy)", addr16, ep),G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get remove_all_group [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'remove_all_group' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_group_proxy, "add_group_if_identifying",
g_variant_new("(qyq@a(y))", addr16, ep, group_id, groupname_variant),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get add_group_if_identifying [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'add_group_if_identifying' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "move_to_level",
g_variant_new("(qyyq)", addr16, ep, level, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_to_level [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_to_level' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "move",
g_variant_new("(qyyy)", addr16, ep, move_mode, rate),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "step",
g_variant_new("(qyyyq)", addr16, ep, step_mode, step_size, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get step [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'step' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "stop",
g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get stop [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'stop' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "move_to_level_with_on_off",
g_variant_new("(qyyq)", addr16, ep, level, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_to_level_with_on_off [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_to_level_with_on_off' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "move_with_on_off",
g_variant_new("(qyyy)", addr16, ep, move_mode, rate),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get move_with_on_off [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'move_with_on_off' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(level_control_gproxy, "step_with_on_off",
g_variant_new("(qyyyq)", addr16, ep, step_mode, step_size, transition_time),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get step_with_on_off [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'step_with_on_off' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(on_off_gproxy, "set_on_off",
g_variant_new("(qyy)", addr16, ep, on_off_type), G_DBUS_CALL_FLAGS_NONE,
-1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get set_on_off [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'set_on_off' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_ias_zone_proxy, "enroll_response",
g_variant_new("(qyyy)", addr16, dst_ep, enroll_response_code, zone_id),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get enroll_response [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'enroll_response' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_poll_control_proxy, "check_in_response",
g_variant_new("(qyyq)", addr16, ep, start_fast_polling, fast_poll_timeout),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get check_in_response [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'check_in_response' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
variant = g_dbus_proxy_call_sync(zcl_poll_control_proxy, "fast_poll_stop",
g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get fast_poll_stop [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'fast_poll_stop' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zcl_poll_control_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_poll_control_proxy, "set_long_poll_interval",
+ variant = g_dbus_proxy_call_sync(zcl_poll_control_proxy, "set_long_poll_interval",
g_variant_new("(qyu)", addr16, ep, new_long_poll_interval),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'set_long_poll_interval' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_pollcontrol_set_short_poll_interval(nwk_addr addr16, unsigned char ep,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
RETV_IF(NULL == zcl_poll_control_proxy, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_poll_control_proxy, "set_short_poll_interval",
+ variant = g_dbus_proxy_call_sync(zcl_poll_control_proxy, "set_short_poll_interval",
g_variant_new("(qyu)", addr16, ep, new_short_poll_interval),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'set_short_poll_interval' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_add_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
int j = 0;
int index = 0;
GVariant *scenename_variant = NULL;
extensionfieldSet_variant = g_variant_builder_end(extensionfieldSet_builder);
g_variant_builder_unref(extensionfieldSet_builder);
- g_dbus_proxy_call(zcl_scene_proxy, "add_scene",
+ variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "add_scene",
g_variant_new("(qyqyqq@a(y)@a(y))", addr16, ep, group_id, scene_id, transition_time,
ext_field_len, scenename_variant, extensionfieldSet_variant), G_DBUS_CALL_FLAGS_NONE,
- to, NULL, NULL, container);
+ to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'add_scene' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_view_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
DBG("zbl_scene_view_scene()");
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_scene_proxy, "view_scene",
+ variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "view_scene",
g_variant_new("(qyqy)", addr16, ep, group_id, scene_id), G_DBUS_CALL_FLAGS_NONE,
- to, NULL, NULL, container);
+ to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'view_scene' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_remove_scene(nwk_addr addr16, unsigned char ep,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
DBG("zbl_scene_remove_scene()");
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_scene_proxy, "remove_scene",
+ variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "remove_scene",
g_variant_new("(qyqy)", addr16, ep, group_id, scene_id),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'remove_scene' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_remove_all_scene(nwk_addr addr16, unsigned char ep,
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
DBG("zbl_scene_remove_all_scene()");
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_scene_proxy, "remove_all_scene",
+ variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "remove_all_scene",
g_variant_new("(qyq)", addr16, ep, group_id),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'remove_all_scene' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_store_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
unsigned char scene_id, zb_zcl_scene_store_scene_rsp cb, void *user_data)
{
- int result = ZIGBEE_ERROR_NONE;
- GVariant *variant = NULL;
-
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
DBG("zbl_scene_store_scene()");
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_scene_proxy, "store_scene",
+ variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "store_scene",
g_variant_new("(qyqy)", addr16, ep, group_id, scene_id),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get 'store_scene' [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_recall_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "recall_scene",
g_variant_new("(qyqy)", addr16, ep, group_id, scene_id), G_DBUS_CALL_FLAGS_NONE,
-1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get recall_scene [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'recall_scene' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}
int sub_id, to;
zbl_req_cb_s *container;
+ int result = ZIGBEE_ERROR_NONE;
+ GVariant *variant = NULL;
+ GError *dbus_err = NULL;
+
DBG("zbl_scene_get_scene_membership()");
RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_scene_proxy, "get_scene_membership",
+ variant = g_dbus_proxy_call_sync(zcl_scene_proxy, "get_scene_membership",
g_variant_new("(qyq)", addr16, ep, group_id),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
- return ZIGBEE_ERROR_NONE;
+ if (!variant) {
+ g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
+ g_source_remove(container->tid);
+ container->tid = 0;
+ free(container);
+
+ ERR("Failed to get get_scene_membership [%s]", dbus_err->message);
+ g_error_free(dbus_err);
+ return ZIGBEE_ERROR_IO_ERROR;
+ }
+
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
+ return result;
}
int zbl_thermostat_adjust_setpoint(nwk_addr addr16, unsigned char ep, unsigned char mode,
variant = g_dbus_proxy_call_sync(thermostat_gproxy, "setpoint_raise_lower",
g_variant_new("(qyyy)", addr16, ep, mode, amount),
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
- if (variant) {
- g_variant_get(variant, "(i)", &result);
- DBG("ret = [0x%x]", result);
- g_variant_unref(variant);
- } else {
- ERR("Failed to get setpoint_raise_lower [%s]", dbus_err->message);
+
+ if (!variant) {
+ ERR("Failed to get 'setpoint_raise_lower' [%s]", dbus_err->message);
g_error_free(dbus_err);
return ZIGBEE_ERROR_IO_ERROR;
}
+ g_variant_get(variant, "(i)", &result);
+ DBG("ret = [0x%x]", result);
+ g_variant_unref(variant);
+
return result;
}