@@ -38,18 +38,50 @@ CHIP_ERROR GenericDeviceInstanceInfoProvider<ConfigClass>::GetProductId(uint16_t
38
38
template <class ConfigClass >
39
39
CHIP_ERROR GenericDeviceInstanceInfoProvider<ConfigClass>::GetVendorName(char * buf, size_t bufSize)
40
40
{
41
- ReturnErrorCodeIf (bufSize < sizeof (CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME), CHIP_ERROR_BUFFER_TOO_SMALL);
42
- strcpy (buf, CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME);
43
- return CHIP_NO_ERROR;
41
+ ChipError err = CHIP_NO_ERROR;
42
+ size_t vendorNameLen = 0 ; // without counting null-terminator
43
+
44
+ err = mGenericConfigManager .ReadConfigValueStr (ConfigClass::kConfigKey_VendorName , buf, bufSize, vendorNameLen);
45
+ #ifdef CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME
46
+ if (CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME[0 ] != 0 && err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND)
47
+ {
48
+ ReturnErrorCodeIf (bufSize < sizeof (CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME), CHIP_ERROR_BUFFER_TOO_SMALL);
49
+ memcpy (buf, CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME, sizeof (CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME));
50
+ vendorNameLen = sizeof (CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME) - 1 ;
51
+ err = CHIP_NO_ERROR;
52
+ }
53
+ #endif
54
+ ReturnErrorOnFailure (err);
55
+
56
+ ReturnErrorCodeIf (vendorNameLen >= bufSize, CHIP_ERROR_BUFFER_TOO_SMALL);
57
+ ReturnErrorCodeIf (buf[vendorNameLen] != 0 , CHIP_ERROR_INVALID_STRING_LENGTH);
58
+
59
+ return err;
44
60
}
45
61
46
62
template <class ConfigClass >
47
63
CHIP_ERROR GenericDeviceInstanceInfoProvider<ConfigClass>::GetProductName(char * buf, size_t bufSize)
48
64
{
49
- ReturnErrorCodeIf (bufSize < sizeof (CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME), CHIP_ERROR_BUFFER_TOO_SMALL) ;
50
- strcpy (buf, CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME);
65
+ ChipError err = CHIP_NO_ERROR ;
66
+ size_t productNameLen = 0 ; // without counting null-terminator
51
67
52
- return CHIP_NO_ERROR;
68
+ err = mGenericConfigManager .ReadConfigValueStr (ConfigClass::kConfigKey_ProductName , buf, bufSize, productNameLen);
69
+
70
+ #ifdef CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME
71
+ if (CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME[0 ] != 0 && err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND)
72
+ {
73
+ ReturnErrorCodeIf (bufSize < sizeof (CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME), CHIP_ERROR_BUFFER_TOO_SMALL);
74
+ memcpy (buf, CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME, sizeof (CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME));
75
+ productNameLen = sizeof (CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME) - 1 ;
76
+ err = CHIP_NO_ERROR;
77
+ }
78
+ #endif
79
+ ReturnErrorOnFailure (err);
80
+
81
+ ReturnErrorCodeIf (productNameLen >= bufSize, CHIP_ERROR_BUFFER_TOO_SMALL);
82
+ ReturnErrorCodeIf (buf[productNameLen] != 0 , CHIP_ERROR_INVALID_STRING_LENGTH);
83
+
84
+ return err;
53
85
}
54
86
55
87
template <class ConfigClass >
@@ -176,9 +208,26 @@ CHIP_ERROR GenericDeviceInstanceInfoProvider<ConfigClass>::GetHardwareVersion(ui
176
208
template <class ConfigClass >
177
209
CHIP_ERROR GenericDeviceInstanceInfoProvider<ConfigClass>::GetHardwareVersionString(char * buf, size_t bufSize)
178
210
{
179
- ReturnErrorCodeIf (bufSize < sizeof (CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING), CHIP_ERROR_BUFFER_TOO_SMALL);
180
- strcpy (buf, CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING);
181
- return CHIP_NO_ERROR;
211
+ ChipError err = CHIP_NO_ERROR;
212
+ size_t hardwareVersionStringLen = 0 ; // without counting null-terminator
213
+
214
+ err = mGenericConfigManager .ReadConfigValueStr (ConfigClass::kConfigKey_HardwareVersionString , buf, bufSize, hardwareVersionStringLen);
215
+
216
+ #ifdef CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING
217
+ if (CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING[0 ] != 0 && err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND)
218
+ {
219
+ ReturnErrorCodeIf (bufSize < sizeof (CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING), CHIP_ERROR_BUFFER_TOO_SMALL);
220
+ memcpy (buf, CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING, sizeof (CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING));
221
+ hardwareVersionStringLen = sizeof (CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER) - 1 ;
222
+ err = CHIP_NO_ERROR;
223
+ }
224
+ #endif
225
+ ReturnErrorOnFailure (err);
226
+
227
+ ReturnErrorCodeIf (hardwareVersionStringLen >= bufSize, CHIP_ERROR_BUFFER_TOO_SMALL);
228
+ ReturnErrorCodeIf (buf[hardwareVersionStringLen] != 0 , CHIP_ERROR_INVALID_STRING_LENGTH);
229
+
230
+ return err;
182
231
}
183
232
184
233
template <class ConfigClass >
0 commit comments