From fce9c871e74cc0d9110182b8584ba799bc3948b5 Mon Sep 17 00:00:00 2001 From: Carol Yang Date: Sat, 11 Dec 2021 14:38:58 -0800 Subject: [PATCH] Convert OTAQueryStatus to an enum class (#12918) --- .../ota-provider-common/OTAProviderExample.cpp | 13 +++++++------ src/app/clusters/ota-requestor/OTARequestor.cpp | 11 ++++++----- src/app/zap-templates/templates/app/helper.js | 1 - .../app-common/zap-generated/cluster-objects.h | 6 ------ .../app-common/app-common/zap-generated/enums.h | 8 -------- 5 files changed, 13 insertions(+), 26 deletions(-) diff --git a/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp b/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp index 70668a011a9535..dabac2d9b237be 100644 --- a/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp +++ b/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp @@ -40,6 +40,7 @@ using chip::Optional; using chip::Server; using chip::Span; using chip::app::Clusters::OTAProviderDelegate; +using namespace chip::app::Clusters::OtaSoftwareUpdateProvider; using namespace chip::app::Clusters::OtaSoftwareUpdateProvider::Commands; constexpr uint8_t kUpdateTokenLen = 32; // must be between 8 and 32 @@ -89,7 +90,7 @@ EmberAfStatus OTAProviderExample::HandleQueryImage(chip::app::CommandHandler * c { // TODO: add confiuration for returning BUSY status - EmberAfOTAQueryStatus queryStatus = EMBER_ZCL_OTA_QUERY_STATUS_NOT_AVAILABLE; + OTAQueryStatus queryStatus = OTAQueryStatus::kNotAvailable; uint32_t newSoftwareVersion = commandData.softwareVersion + 1; // This implementation will always indicate that an update is // available (if the user provides a file). constexpr char kExampleSoftwareString[] = "Example-Image-V0.1"; @@ -122,25 +123,25 @@ EmberAfStatus OTAProviderExample::HandleQueryImage(chip::app::CommandHandler * c case kRespondWithUpdateAvailable: { if (strlen(mOTAFilePath) != 0) { - queryStatus = EMBER_ZCL_OTA_QUERY_STATUS_UPDATE_AVAILABLE; + queryStatus = OTAQueryStatus::kUpdateAvailable; } else { - queryStatus = EMBER_ZCL_OTA_QUERY_STATUS_NOT_AVAILABLE; + queryStatus = OTAQueryStatus::kNotAvailable; ChipLogError(SoftwareUpdate, "No OTA file configured on the Provider"); } break; } case kRespondWithBusy: { - queryStatus = EMBER_ZCL_OTA_QUERY_STATUS_BUSY; + queryStatus = OTAQueryStatus::kBusy; break; } case kRespondWithNotAvailable: { - queryStatus = EMBER_ZCL_OTA_QUERY_STATUS_NOT_AVAILABLE; + queryStatus = OTAQueryStatus::kNotAvailable; break; } default: - queryStatus = EMBER_ZCL_OTA_QUERY_STATUS_NOT_AVAILABLE; + queryStatus = OTAQueryStatus::kNotAvailable; } QueryImageResponse::Type response; diff --git a/src/app/clusters/ota-requestor/OTARequestor.cpp b/src/app/clusters/ota-requestor/OTARequestor.cpp index 4fb512a4c45698..4bdb2e481b334b 100644 --- a/src/app/clusters/ota-requestor/OTARequestor.cpp +++ b/src/app/clusters/ota-requestor/OTARequestor.cpp @@ -33,6 +33,7 @@ namespace chip { using namespace app::Clusters; +using namespace app::Clusters::OtaSoftwareUpdateProvider; using namespace app::Clusters::OtaSoftwareUpdateProvider::Commands; using namespace app::Clusters::OtaSoftwareUpdateRequestor::Commands; using bdx::TransferSession; @@ -45,7 +46,7 @@ constexpr uint32_t kImmediateStartDelayMs = 1; // Start the timer with this valu static void LogQueryImageResponse(const QueryImageResponse::DecodableType & response) { ChipLogDetail(SoftwareUpdate, "QueryImageResponse:"); - ChipLogDetail(SoftwareUpdate, " status: %" PRIu8 "", response.status); + ChipLogDetail(SoftwareUpdate, " status: %" PRIu8 "", to_underlying(response.status)); if (response.delayedActionTime.HasValue()) { ChipLogDetail(SoftwareUpdate, " delayedActionTime: %" PRIu32 " seconds", response.delayedActionTime.Value()); @@ -114,7 +115,7 @@ void OTARequestor::OnQueryImageResponse(void * context, const QueryImageResponse switch (response.status) { - case EMBER_ZCL_OTA_QUERY_STATUS_UPDATE_AVAILABLE: { + case OTAQueryStatus::kUpdateAvailable: { // Parse out the provider node ID and file designator from the image URI NodeId nodeId = kUndefinedNodeId; CharSpan fileDesignator; @@ -135,9 +136,9 @@ void OTARequestor::OnQueryImageResponse(void * context, const QueryImageResponse requestorCore->ConnectToProvider(kStartBDX); break; } - case EMBER_ZCL_OTA_QUERY_STATUS_BUSY: + case OTAQueryStatus::kBusy: break; - case EMBER_ZCL_OTA_QUERY_STATUS_NOT_AVAILABLE: + case OTAQueryStatus::kNotAvailable: break; // TODO: Add download protocol not supported // Issue #9524 should handle all response status appropriately @@ -437,7 +438,7 @@ CHIP_ERROR OTARequestor::BuildQueryImageRequest(QueryImageRequest & request) bool OTARequestor::ValidateQueryImageResponse(const QueryImageResponse::DecodableType & response) const { - if (response.status == EMBER_ZCL_OTA_QUERY_STATUS_UPDATE_AVAILABLE) + if (response.status == OTAQueryStatus::kUpdateAvailable) { VerifyOrReturnError(response.imageURI.HasValue(), false); VerifyOrReturnError(response.softwareVersion.HasValue() && response.softwareVersionString.HasValue(), false); diff --git a/src/app/zap-templates/templates/app/helper.js b/src/app/zap-templates/templates/app/helper.js index d4f92c9e4bf6af..5b5079b7994e0e 100644 --- a/src/app/zap-templates/templates/app/helper.js +++ b/src/app/zap-templates/templates/app/helper.js @@ -658,7 +658,6 @@ function isWeaklyTypedEnum(label) "OTAAnnouncementReason", "OTAApplyUpdateAction", "OTADownloadProtocol", - "OTAQueryStatus", "OnOffDelayedAllOffEffectVariant", "OnOffDyingLightEffectVariant", "OnOffEffectIdentifier", diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h index b306c6e01a51db..8f498bc240ea88 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h @@ -7696,9 +7696,6 @@ enum class OTADownloadProtocol : uint8_t #else // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM using OTADownloadProtocol = EmberAfOTADownloadProtocol; #endif -// Need to convert consumers to using the new enum classes, so we -// don't just have casts all over. -#ifdef CHIP_USE_ENUM_CLASS_FOR_IM_ENUM // Enum for OTAQueryStatus enum class OTAQueryStatus : uint8_t { @@ -7706,9 +7703,6 @@ enum class OTAQueryStatus : uint8_t kBusy = 0x01, kNotAvailable = 0x02, }; -#else // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM -using OTAQueryStatus = EmberAfOTAQueryStatus; -#endif namespace Commands { // Forward-declarations so we can reference these later. diff --git a/zzz_generated/app-common/app-common/zap-generated/enums.h b/zzz_generated/app-common/app-common/zap-generated/enums.h index 12c6daeb6c74ce..7ec02298590c5d 100644 --- a/zzz_generated/app-common/app-common/zap-generated/enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/enums.h @@ -588,14 +588,6 @@ enum EmberAfOTADownloadProtocol : uint8_t EMBER_ZCL_OTA_DOWNLOAD_PROTOCOL_VENDOR_SPECIFIC = 3, }; -// Enum for OTAQueryStatus -enum EmberAfOTAQueryStatus : uint8_t -{ - EMBER_ZCL_OTA_QUERY_STATUS_UPDATE_AVAILABLE = 0, - EMBER_ZCL_OTA_QUERY_STATUS_BUSY = 1, - EMBER_ZCL_OTA_QUERY_STATUS_NOT_AVAILABLE = 2, -}; - // Enum for OnOffDelayedAllOffEffectVariant enum EmberAfOnOffDelayedAllOffEffectVariant : uint8_t {