From e15a46e3cccc90c01b2b65305ffb845541bec22b Mon Sep 17 00:00:00 2001 From: Paul Regan Date: Thu, 14 Sep 2023 13:58:46 -0400 Subject: [PATCH 1/5] properly tagging storage option based on zcl.json --- src-electron/db/query-config.js | 2 +- src-electron/zcl/zcl-loader-silabs.js | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src-electron/db/query-config.js b/src-electron/db/query-config.js index 743431c02d..802e2a6b3d 100644 --- a/src-electron/db/query-config.js +++ b/src-electron/db/query-config.js @@ -245,7 +245,7 @@ INTO ENDPOINT_TYPE_ATTRIBUTE ( cluster.endpointTypeClusterId, attributeId, staticAttribute.defaultValue ? staticAttribute.defaultValue : '', - dbEnum.storageOption.ram, + staticAttribute.storagePolicy, clusterRef, reportMinInterval, reportMaxInterval, diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js index a9f2a591a9..d58c334986 100644 --- a/src-electron/zcl/zcl-loader-silabs.js +++ b/src-electron/zcl/zcl-loader-silabs.js @@ -556,15 +556,14 @@ function prepareCluster(cluster, context, isExtension = false) { attribute.$.reportingPolicy ) } - let storagePolicy = dbEnum.storagePolicy.any - if (context.listsUseAttributeAccessInterface && attribute.$.entryType) { - storagePolicy = dbEnum.storagePolicy.attributeAccessInterface - } else if ( + let storagePolicy = dbEnum.storageOption.ram + if ( + context.listsUseAttributeAccessInterface && context.attributeAccessInterfaceAttributes && context.attributeAccessInterfaceAttributes[cluster.name] && context.attributeAccessInterfaceAttributes[cluster.name].includes(name) ) { - storagePolicy = dbEnum.storagePolicy.attributeAccessInterface + storagePolicy = dbEnum.storageOption.external } let att = { code: parseInt(attribute.$.code), From bcad57dc939bebd9eb09eb6a72f1dada19a5edc6 Mon Sep 17 00:00:00 2001 From: Paul Regan Date: Thu, 14 Sep 2023 15:00:05 -0400 Subject: [PATCH 2/5] attempt at fixing matter codegen --- src-electron/zcl/zcl-loader-silabs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js index d58c334986..0b06b183e1 100644 --- a/src-electron/zcl/zcl-loader-silabs.js +++ b/src-electron/zcl/zcl-loader-silabs.js @@ -556,7 +556,7 @@ function prepareCluster(cluster, context, isExtension = false) { attribute.$.reportingPolicy ) } - let storagePolicy = dbEnum.storageOption.ram + let storagePolicy = dbEnum.storageOption.any if ( context.listsUseAttributeAccessInterface && context.attributeAccessInterfaceAttributes && From 35e4480568a700c552779b3155b5943a3f5e3147 Mon Sep 17 00:00:00 2001 From: Paul Regan Date: Thu, 14 Sep 2023 15:07:09 -0400 Subject: [PATCH 3/5] List types need to be external as well --- src-electron/zcl/zcl-loader-silabs.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js index 0b06b183e1..4bf04747e9 100644 --- a/src-electron/zcl/zcl-loader-silabs.js +++ b/src-electron/zcl/zcl-loader-silabs.js @@ -556,8 +556,10 @@ function prepareCluster(cluster, context, isExtension = false) { attribute.$.reportingPolicy ) } - let storagePolicy = dbEnum.storageOption.any - if ( + let storagePolicy = dbEnum.storageOption.ram + if (context.listsUseAttributeAccessInterface && attribute.$.entryType) { + storagePolicy = dbEnum.storageOption.external + } else if ( context.listsUseAttributeAccessInterface && context.attributeAccessInterfaceAttributes && context.attributeAccessInterfaceAttributes[cluster.name] && From c3861908927d113177009209f452a506a3f60939 Mon Sep 17 00:00:00 2001 From: Paul Regan Date: Thu, 14 Sep 2023 15:53:42 -0400 Subject: [PATCH 4/5] retainging storage policy and setting GUI --- src-electron/db/query-config.js | 5 +++++ src-electron/zcl/zcl-loader-silabs.js | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src-electron/db/query-config.js b/src-electron/db/query-config.js index 802e2a6b3d..353ed4b374 100644 --- a/src-electron/db/query-config.js +++ b/src-electron/db/query-config.js @@ -211,6 +211,11 @@ async function insertOrUpdateAttributeState( attributeId, clusterRef ) + if (staticAttribute.storagePolicy == 'attributeAccessInterface') { + staticAttribute.storagePolicy = dbEnum.storageOption.external + } else { + staticAttribute.storagePolicy = dbEnum.storageOption.ram + } if (staticAttribute == null) { throw new Error(`COULD NOT LOCATE ATTRIBUTE: ${attributeId} `) diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js index 4bf04747e9..1db35958db 100644 --- a/src-electron/zcl/zcl-loader-silabs.js +++ b/src-electron/zcl/zcl-loader-silabs.js @@ -556,16 +556,16 @@ function prepareCluster(cluster, context, isExtension = false) { attribute.$.reportingPolicy ) } - let storagePolicy = dbEnum.storageOption.ram + let storagePolicy = dbEnum.storagePolicy.any if (context.listsUseAttributeAccessInterface && attribute.$.entryType) { - storagePolicy = dbEnum.storageOption.external + storagePolicy = dbEnum.storagePolicy.attributeAccessInterface } else if ( context.listsUseAttributeAccessInterface && context.attributeAccessInterfaceAttributes && context.attributeAccessInterfaceAttributes[cluster.name] && context.attributeAccessInterfaceAttributes[cluster.name].includes(name) ) { - storagePolicy = dbEnum.storageOption.external + storagePolicy = dbEnum.storagePolicy.attributeAccessInterface } let att = { code: parseInt(attribute.$.code), From 6df3140491bf606154135a084c2b46faba95b8fa Mon Sep 17 00:00:00 2001 From: Paul Regan Date: Fri, 15 Sep 2023 09:28:14 -0400 Subject: [PATCH 5/5] changing from string to enum --- src-electron/db/query-config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src-electron/db/query-config.js b/src-electron/db/query-config.js index 353ed4b374..e9fa1c8794 100644 --- a/src-electron/db/query-config.js +++ b/src-electron/db/query-config.js @@ -211,7 +211,10 @@ async function insertOrUpdateAttributeState( attributeId, clusterRef ) - if (staticAttribute.storagePolicy == 'attributeAccessInterface') { + if ( + staticAttribute.storagePolicy == + dbEnum.storagePolicy.attributeAccessInterface + ) { staticAttribute.storagePolicy = dbEnum.storageOption.external } else { staticAttribute.storagePolicy = dbEnum.storageOption.ram