From: saerome kim Date: Wed, 8 Feb 2017 13:45:37 +0000 (+0900) Subject: Add API to print Zigbee Cluster Library status code X-Git-Tag: submit/tizen/20170512.045637~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f1577b5e801c563af7fbe8f99f25da5e5442fd06;p=platform%2Fcore%2Fapi%2Fzigbee.git Add API to print Zigbee Cluster Library status code Change-Id: I9e1ff35b91b5f733ef0180d4a1ecb8499ae4b43c Signed-off-by: saerome kim --- diff --git a/include/zb-error.h b/include/zb-error.h index 5b8a25a..3566a46 100644 --- a/include/zb-error.h +++ b/include/zb-error.h @@ -29,7 +29,7 @@ /** * @ingroup CAPI_NETWORK_ZIGBEE_MODULE - * @brief Enumeration for zigbee error code. + * @brief Enumeration for zigbee CAPI error code. * @since_tizen 3.0 * * @{ diff --git a/include/zb-zcl.h b/include/zb-zcl.h index 87f683a..33dbb82 100644 --- a/include/zb-zcl.h +++ b/include/zb-zcl.h @@ -53,6 +53,19 @@ #include #include +/** + * @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 diff --git a/lib/zbl-dbus.c b/lib/zbl-dbus.c index cbfeb29..618eb90 100644 --- a/lib/zbl-dbus.c +++ b/lib/zbl-dbus.c @@ -2924,8 +2924,9 @@ int zbl_enable(zigbee_h handle, zb_event_cb event_handler) g_variant_get(variant, "(ib)", &result, &enabled); DBG("ret = [0x%x]", result); - if (variant) + if (variant) { g_variant_unref(variant); + } return result; } @@ -4982,9 +4983,8 @@ int zbl_read_attr_req(zigbee_h handle, unsigned short addr16, unsigned char dest 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); diff --git a/lib/zbl-zcl.c b/lib/zbl-zcl.c index 4501b78..89d525f 100644 --- a/lib/zbl-zcl.c +++ b/lib/zbl-zcl.c @@ -12,6 +12,109 @@ #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; diff --git a/test/main.c b/test/main.c index 6395556..7a73c61 100644 --- a/test/main.c +++ b/test/main.c @@ -323,11 +323,11 @@ static void zigbee_event_cb(nwk_addr addr16, ieee_addr addr64, zb_event_e e, zb_ 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: diff --git a/test/zcl-global-cmd.c b/test/zcl-global-cmd.c index f9112ff..eb0f214 100644 --- a/test/zcl-global-cmd.c +++ b/test/zcl-global-cmd.c @@ -102,7 +102,7 @@ static void zigbee_zcl_global_read_attributes_rsp(nwk_addr addr16, } 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); @@ -148,7 +148,7 @@ static void zigbee_zcl_global_write_attributes_rsp(nwk_addr addr16, } 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); } @@ -174,7 +174,7 @@ static void zigbee_zcl_global_configure_reporting_rsp(nwk_addr addr16, 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)); } }