From f8133a4cb6eccbe7ec748ad17b0b753b81480ac0 Mon Sep 17 00:00:00 2001 From: Markus Becker Date: Wed, 20 Oct 2021 15:06:45 +0200 Subject: [PATCH] Use serial number and manufacturing date in Basic Cluster Basic Cluster is using the values from the zap file. At least Serial Number and Manufacturing Date should be taken from ConfigurationMgr. --- src/app/clusters/basic/basic.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/app/clusters/basic/basic.cpp b/src/app/clusters/basic/basic.cpp index 0747e43cf7cab1..cfd99a5a145e96 100644 --- a/src/app/clusters/basic/basic.cpp +++ b/src/app/clusters/basic/basic.cpp @@ -90,4 +90,26 @@ void emberAfBasicClusterServerInitCallback(chip::EndpointId endpoint) status = Attributes::HardwareVersion::Set(endpoint, firmwareRevision); VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(Zcl, "Error setting Software Version: 0x%02x", status)); } + + char serialNumberString[33]; + size_t serialNumberLen; + if (ConfigurationMgr().GetSerialNumber(serialNumberString, sizeof(serialNumberString), serialNumberLen) == CHIP_NO_ERROR) + { + status = Attributes::SerialNumber::Set(endpoint, chip::CharSpan(serialNumberString, strlen(serialNumberString))); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(Zcl, "Error setting Serial Number String: 0x%02x", status)); + } + + char manufacturingDateString[17]; + uint16_t manufacturingYear; + uint8_t manufacturingMonth; + uint8_t manufacturingDayOfMonth; + if (ConfigurationMgr().GetManufacturingDate(manufacturingYear, manufacturingMonth, manufacturingDayOfMonth) == CHIP_NO_ERROR) + { + snprintf(manufacturingDateString, sizeof(manufacturingDateString), "%04" PRIu16 "-%02" PRIu16 "-%02" PRIu16, + manufacturingYear, manufacturingMonth, manufacturingDayOfMonth); + status = + Attributes::ManufacturingDate::Set(endpoint, chip::CharSpan(manufacturingDateString, strlen(manufacturingDateString))); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, + ChipLogError(Zcl, "Error setting Manufacturing Date String: 0x%02x", status)); + } }