From b1568d47e05ab7d99081741387531842c4bc32f8 Mon Sep 17 00:00:00 2001 From: liyashuai Date: Thu, 6 Mar 2025 10:27:16 +0800 Subject: [PATCH] fix total operation hours value get incorrect --- .../ESP32/DiagnosticDataProviderImpl.cpp | 15 +-------------- src/platform/ESP32/PlatformManagerImpl.cpp | 17 ++++------------- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/platform/ESP32/DiagnosticDataProviderImpl.cpp b/src/platform/ESP32/DiagnosticDataProviderImpl.cpp index f061b8400edc49..5b6abf08b1fd43 100644 --- a/src/platform/ESP32/DiagnosticDataProviderImpl.cpp +++ b/src/platform/ESP32/DiagnosticDataProviderImpl.cpp @@ -156,20 +156,7 @@ CHIP_ERROR DiagnosticDataProviderImpl::GetUpTime(uint64_t & upTime) CHIP_ERROR DiagnosticDataProviderImpl::GetTotalOperationalHours(uint32_t & totalOperationalHours) { - uint64_t upTime = 0; - - if (GetUpTime(upTime) == CHIP_NO_ERROR) - { - uint32_t totalHours = 0; - if (ConfigurationMgr().GetTotalOperationalHours(totalHours) == CHIP_NO_ERROR) - { - VerifyOrReturnError(upTime / 3600 <= UINT32_MAX, CHIP_ERROR_INVALID_INTEGER_VALUE); - totalOperationalHours = totalHours + static_cast(upTime / 3600); - return CHIP_NO_ERROR; - } - } - - return CHIP_ERROR_INVALID_TIME; + return ConfigurationMgr().GetTotalOperationalHours(totalOperationalHours); } CHIP_ERROR DiagnosticDataProviderImpl::GetBootReason(BootReasonType & bootReason) diff --git a/src/platform/ESP32/PlatformManagerImpl.cpp b/src/platform/ESP32/PlatformManagerImpl.cpp index ed9f6aca7128c9..6d21107c08aa79 100644 --- a/src/platform/ESP32/PlatformManagerImpl.cpp +++ b/src/platform/ESP32/PlatformManagerImpl.cpp @@ -85,24 +85,15 @@ CHIP_ERROR PlatformManagerImpl::_InitChipStack(void) void PlatformManagerImpl::_Shutdown() { - uint64_t upTime = 0; + uint32_t totalOperationalHours = 0; - if (GetDiagnosticDataProvider().GetUpTime(upTime) == CHIP_NO_ERROR) + if (ConfigurationMgr().GetTotalOperationalHours(totalOperationalHours) == CHIP_NO_ERROR) { - uint32_t totalOperationalHours = 0; - - if (ConfigurationMgr().GetTotalOperationalHours(totalOperationalHours) == CHIP_NO_ERROR) - { - ConfigurationMgr().StoreTotalOperationalHours(totalOperationalHours + static_cast(upTime / 3600)); - } - else - { - ChipLogError(DeviceLayer, "Failed to get total operational hours of the Node"); - } + ConfigurationMgr().StoreTotalOperationalHours(totalOperationalHours); } else { - ChipLogError(DeviceLayer, "Failed to get current uptime since the Node’s last reboot"); + ChipLogError(DeviceLayer, "Failed to get total operational hours of the Node"); } Internal::GenericPlatformManagerImpl_FreeRTOS::_Shutdown();