/**
* @ingroup CAPI_NETWORK_ZIGBEE_MODULE
- * @brief Enumeration for zigbee error code.
+ * @brief Enumeration for zigbee CAPI error code.
* @since_tizen 3.0
*
* @{
#include <zcl/zb-zcl-thermostat-cluster.h>
#include <zcl/zb-zcl-ias-zone-cluster.h>
+/**
+ * @brief Return readabble Zigbee Cluster Library status code for human
+ * @details Return Zigbee Cluster Library status code
+ *
+ * @since_tizen 3.0
+ *
+ * @param[in] id ZigBee Cluster Library Status code
+ *
+ * @return pointer of status code string
+ *
+ */
+const char* zb_get_zcl_status_code_name(int id);
+
/**
* @brief Return readable cluster name for human
* @details Return Zigbee Cluster name and ID
g_variant_get(variant, "(ib)", &result, &enabled);
DBG("ret = [0x%x]", result);
- if (variant)
+ if (variant) {
g_variant_unref(variant);
+ }
return result;
}
g_variant_builder_unref(attr_builder);
variant = g_dbus_proxy_call_sync(zcl_global_proxy, "read_attributes_req",
- 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);
+ 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);
if (!variant) {
ERR("Failed to get 'read_attributes_req' [%s]", dbus_err->message);
#include "zb-common.h"
#include "zcl/zb-zcl-type.h"
+API const char* zb_get_zcl_status_code_name(int id)
+{
+ const char* status_name = NULL;
+
+ switch(id) {
+ case ZB_ZCL_SUCCESS:
+ status_name = "ZB_ZCL_SUCCESS";
+ break;
+ case ZB_ZCL_FAILURE:
+ status_name = "ZB_ZCL_FAILURE";
+ break;
+ case ZB_ZCL_NOT_AUTHORIZED:
+ status_name = "ZB_ZCL_NOT_AUTHORIZED";
+ break;
+ case ZB_ZCL_RESERVED_FIELD_NOT_ZERO:
+ status_name = "ZB_ZCL_RESERVED_FIELD_NOT_ZERO";
+ break;
+ case ZB_ZCL_MALFORMED_COMMAND:
+ status_name = "ZB_ZCL_MALFORMED_COMMAND";
+ break;
+ case ZB_ZCL_UNSUP_CLUSTER_COMMAND:
+ status_name = "ZB_ZCL_UNSUP_CLUSTER_COMMAND";
+ break;
+ case ZB_ZCL_UNSUP_GENERAL_COMMAND:
+ status_name = "ZB_ZCL_UNSUP_GENERAL_COMMAND";
+ break;
+ case ZB_ZCL_UNSUP_MANUF_CLUSTER_COMMAND:
+ status_name = "ZB_ZCL_UNSUP_MANUF_CLUSTER_COMMAND";
+ break;
+ case ZB_ZCL_UNSUP_MANUF_GENERAL_COMMAND:
+ status_name = "ZB_ZCL_UNSUP_MANUF_GENERAL_COMMAND";
+ break;
+ case ZB_ZCL_INVALID_FIELD:
+ status_name = "ZB_ZCL_INVALID_FIELD";
+ break;
+ case ZB_ZCL_UNSUPPORTED_ATTRIBUTE:
+ status_name = "ZB_ZCL_SUCCESS";
+ break;
+ case ZB_ZCL_INVALID_VALUE:
+ status_name = "ZB_ZCL_INVALID_VALUE";
+ break;
+ case ZB_ZCL_READ_ONLY:
+ status_name = "ZB_ZCL_READ_ONLY";
+ break;
+ case ZB_ZCL_INSUFFICIENT_SPACE:
+ status_name = "ZB_ZCL_INSUFFICIENT_SPACE";
+ break;
+ case ZB_ZCL_DUPLICATE_EXISTS:
+ status_name = "ZB_ZCL_INSUFFICIENT_SPACE";
+ break;
+ case ZB_ZCL_NOT_FOUND:
+ status_name = "ZB_ZCL_NOT_FOUND";
+ break;
+ case ZB_ZCL_UNREPORTABLE_ATTRIBUTE:
+ status_name = "ZB_ZCL_UNREPORTABLE_ATTRIBUTE";
+ break;
+ case ZB_ZCL_INVALID_DATA_TYPE:
+ status_name = "ZB_ZCL_INVALID_DATA_TYPE";
+ break;
+ case ZB_ZCL_INVALID_SELECTOR:
+ status_name = "ZB_ZCL_INVALID_SELECTOR";
+ break;
+ case ZB_ZCL_WRITE_ONLY:
+ status_name = "ZB_ZCL_WRITE_ONLY";
+ break;
+ case ZB_ZCL_INCONSISTENT_STARTUP_STATE:
+ status_name = "ZB_ZCL_INCONSISTENT_STARTUP_STATE";
+ break;
+ case ZB_ZCL_DEFINED_OUT_OF_BAND:
+ status_name = "ZB_ZCL_DEFINED_OUT_OF_BAND";
+ break;
+ case ZB_ZCL_INCONSISTENT:
+ status_name = "ZB_ZCL_INCONSISTENT";
+ break;
+ case ZB_ZCL_ACTION_DENIED:
+ status_name = "ZB_ZCL_ACTION_DENIED";
+ break;
+ case ZB_ZCL_TIMEOUT:
+ status_name = "ZB_ZCL_TIMEOUT";
+ break;
+ case ZB_ZCL_ABORT:
+ status_name = "ZB_ZCL_ABORT";
+ break;
+ case ZB_ZCL_INVALID_IMAGE:
+ status_name = "ZB_ZCL_INVALID_IMAGE";
+ break;
+ case ZB_ZCL_WAIT_FOR_DATA:
+ status_name = "ZB_ZCL_WAIT_FOR_DATA";
+ break;
+ case ZB_ZCL_NO_IMAGE_AVAILABLE:
+ status_name = "ZB_ZCL_NO_IMAGE_AVAILABLE";
+ break;
+ case ZB_ZCL_REQUIRE_MORE_IMAGE:
+ status_name = "ZB_ZCL_REQUIRE_MORE_IMAGE";
+ break;
+ default:
+ status_name = "ZB_ZCL_UNDEFINED";
+ break;
+ }
+
+ return status_name;
+}
+
API const char* zb_get_cluster_name(int id)
{
const char* clust_name = NULL;
command_id = ev.data.global_default_rsp->command_id;
status = ev.data.global_default_rsp->status;
- msg(" addr16 = %04X", addr16);
- msg(" endpoint = %02X", ep);
- msg(" cluster_id = %04X", cluster_id);
- msg(" command_id = %02X", command_id);
- msg(" status = %02X", status);
+ msg(" addr16 = 0x%04X", addr16);
+ msg(" endpoint = 0x%02X", ep);
+ msg(" cluster_id = 0x%04X", cluster_id);
+ msg(" command_id = 0x%02X", command_id);
+ msg(" status = 0x%02X, %s", status, zb_get_zcl_status_code_name(status));
break;
}
case ZB_ZCL_GLOBAL_ATTRIBUTE_REPORT_EVENT:
}
if (records && *records) {
zb_get_status_from_read_attr_status_record(*records, &status);
- msg(" Status : 0x%02X", status);
+ msg(" Status : 0x%02X, %s", status, zb_get_zcl_status_code_name(status));
}
if (records && *records) {
zb_get_value_from_read_attr_status_record(*records, type, value);
}
if (records) {
zb_get_status_from_write_attr_status(*records, &status);
- msg(" status : 0x%02X", status);
+ msg(" status : 0x%02X, %s", status, zb_get_zcl_status_code_name(status));
}
zb_destroy_value(value);
}
msg(" records_len=%d", records_len);
for (i = 0; i < records_len; i++) {
zb_get_status_from_report_config_response_record(records[i], &status);
- msg(" [%d] status = 0x%02X", i, status);
+ msg(" [%d] status = 0x%02X %s", i, status, zb_get_zcl_status_code_name(status));
}
}