esp-matter: Add script to update zap-common files when updating chip submodule

Fixes CON-1119
This commit is contained in:
WanqQixiang
2024-04-15 19:04:37 +08:00
parent 2fb2422c6f
commit 5c6037c2be
5 changed files with 648 additions and 267 deletions
@@ -9,16 +9,17 @@ void MatterApplicationBasicPluginServerInitCallback();
void MatterApplicationLauncherPluginServerInitCallback();
void MatterAudioOutputPluginServerInitCallback();
void MatterBallastConfigurationPluginServerInitCallback();
void MatterBarrierControlPluginServerInitCallback();
void MatterBasicInformationPluginServerInitCallback();
void MatterBinaryInputBasicPluginServerInitCallback();
void MatterBindingPluginServerInitCallback();
void MatterBooleanStatePluginServerInitCallback();
void MatterBooleanStateConfigurationPluginServerInitCallback();
void MatterBridgedDeviceBasicInformationPluginServerInitCallback();
void MatterCarbonDioxideConcentrationMeasurementPluginServerInitCallback();
void MatterCarbonMonoxideConcentrationMeasurementPluginServerInitCallback();
void MatterChannelPluginServerInitCallback();
void MatterColorControlPluginServerInitCallback();
void MatterContentAppObserverPluginServerInitCallback();
void MatterContentControlPluginServerInitCallback();
void MatterContentLauncherPluginServerInitCallback();
void MatterDescriptorPluginServerInitCallback();
void MatterDeviceEnergyManagementPluginServerInitCallback();
@@ -28,7 +29,6 @@ void MatterDishwasherAlarmPluginServerInitCallback();
void MatterDishwasherModePluginServerInitCallback();
void MatterDoorLockPluginServerInitCallback();
void MatterElectricalEnergyMeasurementPluginServerInitCallback();
void MatterElectricalMeasurementPluginServerInitCallback();
void MatterElectricalPowerMeasurementPluginServerInitCallback();
void MatterEnergyEvsePluginServerInitCallback();
void MatterEnergyEvseModePluginServerInitCallback();
@@ -56,13 +56,14 @@ void MatterLocalizationConfigurationPluginServerInitCallback();
void MatterLowPowerPluginServerInitCallback();
void MatterMediaInputPluginServerInitCallback();
void MatterMediaPlaybackPluginServerInitCallback();
void MatterMessagesPluginServerInitCallback();
void MatterMicrowaveOvenControlPluginServerInitCallback();
void MatterMicrowaveOvenModePluginServerInitCallback();
void MatterModeSelectPluginServerInitCallback();
void MatterNetworkCommissioningPluginServerInitCallback();
void MatterNitrogenDioxideConcentrationMeasurementPluginServerInitCallback();
void MatterOccupancySensingPluginServerInitCallback();
void MatterOnOffPluginServerInitCallback();
void MatterOnOffSwitchConfigurationPluginServerInitCallback();
void MatterOperationalCredentialsPluginServerInitCallback();
void MatterOperationalStatePluginServerInitCallback();
void MatterOtaSoftwareUpdateProviderPluginServerInitCallback();
@@ -77,6 +78,10 @@ void MatterPowerSourcePluginServerInitCallback();
void MatterPowerSourceConfigurationPluginServerInitCallback();
void MatterPowerTopologyPluginServerInitCallback();
void MatterPressureMeasurementPluginServerInitCallback();
void MatterProxyConfigurationPluginServerInitCallback();
void MatterProxyDiscoveryPluginServerInitCallback();
void MatterProxyValidPluginServerInitCallback();
void MatterPulseWidthModulationPluginServerInitCallback();
void MatterPumpConfigurationAndControlPluginServerInitCallback();
void MatterRadonConcentrationMeasurementPluginServerInitCallback();
void MatterRefrigeratorAlarmPluginServerInitCallback();
@@ -85,6 +90,7 @@ void MatterRelativeHumidityMeasurementPluginServerInitCallback();
void MatterRvcCleanModePluginServerInitCallback();
void MatterRvcOperationalStatePluginServerInitCallback();
void MatterRvcRunModePluginServerInitCallback();
void MatterSampleMeiPluginServerInitCallback();
void MatterScenesManagementPluginServerInitCallback();
void MatterSmokeCoAlarmPluginServerInitCallback();
void MatterSoftwareDiagnosticsPluginServerInitCallback();
@@ -105,7 +111,6 @@ void MatterValveConfigurationAndControlPluginServerInitCallback();
void MatterWakeOnLanPluginServerInitCallback();
void MatterWiFiNetworkDiagnosticsPluginServerInitCallback();
void MatterWindowCoveringPluginServerInitCallback();
void MatterBooleanStateConfigurationPluginServerInitCallback();
#include <esp_matter_cluster.h>
@@ -51,21 +51,11 @@ void __attribute__((weak)) emberAfBallastConfigurationClusterInitCallback(Endpoi
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfBarrierControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfBasicInformationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfBinaryInputBasicClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfBindingClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -81,6 +71,11 @@ void __attribute__((weak)) emberAfBooleanStateConfigurationClusterInitCallback(E
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfBridgedDeviceBasicInformationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfCarbonDioxideConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -101,6 +96,16 @@ void __attribute__((weak)) emberAfColorControlClusterInitCallback(EndpointId end
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfContentAppObserverClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfContentControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfContentLauncherClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -146,11 +151,6 @@ void __attribute__((weak)) emberAfElectricalEnergyMeasurementClusterInitCallback
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfElectricalMeasurementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfElectricalPowerMeasurementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -286,6 +286,16 @@ void __attribute__((weak)) emberAfMediaPlaybackClusterInitCallback(EndpointId en
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfMessagesClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfMicrowaveOvenControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfMicrowaveOvenModeClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -316,11 +326,6 @@ void __attribute__((weak)) emberAfOnOffClusterInitCallback(EndpointId endpoint)
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfOnOffSwitchConfigurationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfOperationalCredentialsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -391,6 +396,26 @@ void __attribute__((weak)) emberAfPressureMeasurementClusterInitCallback(Endpoin
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfProxyConfigurationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfProxyDiscoveryClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfProxyValidClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfPulseWidthModulationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfPumpConfigurationAndControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -431,6 +456,11 @@ void __attribute__((weak)) emberAfRvcRunModeClusterInitCallback(EndpointId endpo
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfSampleMeiClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfScenesManagementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -34,18 +34,15 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::ApplicationLauncher::Id:
emberAfApplicationLauncherClusterInitCallback(endpoint);
break;
case app::Clusters::AudioOutput::Id:
emberAfAudioOutputClusterInitCallback(endpoint);
break;
case app::Clusters::BallastConfiguration::Id:
emberAfBallastConfigurationClusterInitCallback(endpoint);
break;
case app::Clusters::BarrierControl::Id:
emberAfBarrierControlClusterInitCallback(endpoint);
break;
case app::Clusters::BasicInformation::Id:
emberAfBasicInformationClusterInitCallback(endpoint);
break;
case app::Clusters::BinaryInputBasic::Id:
emberAfBinaryInputBasicClusterInitCallback(endpoint);
break;
case app::Clusters::Binding::Id:
emberAfBindingClusterInitCallback(endpoint);
break;
@@ -55,6 +52,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::BooleanStateConfiguration::Id:
emberAfBooleanStateConfigurationClusterInitCallback(endpoint);
break;
case app::Clusters::BridgedDeviceBasicInformation::Id:
emberAfBridgedDeviceBasicInformationClusterInitCallback(endpoint);
break;
case app::Clusters::CarbonDioxideConcentrationMeasurement::Id:
emberAfCarbonDioxideConcentrationMeasurementClusterInitCallback(endpoint);
break;
@@ -67,6 +67,12 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::ColorControl::Id:
emberAfColorControlClusterInitCallback(endpoint);
break;
case app::Clusters::ContentAppObserver::Id:
emberAfContentAppObserverClusterInitCallback(endpoint);
break;
case app::Clusters::ContentControl::Id:
emberAfContentControlClusterInitCallback(endpoint);
break;
case app::Clusters::ContentLauncher::Id:
emberAfContentLauncherClusterInitCallback(endpoint);
break;
@@ -94,9 +100,6 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::ElectricalEnergyMeasurement::Id:
emberAfElectricalEnergyMeasurementClusterInitCallback(endpoint);
break;
case app::Clusters::ElectricalMeasurement::Id:
emberAfElectricalMeasurementClusterInitCallback(endpoint);
break;
case app::Clusters::ElectricalPowerMeasurement::Id:
emberAfElectricalPowerMeasurementClusterInitCallback(endpoint);
break;
@@ -178,6 +181,12 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::MediaPlayback::Id:
emberAfMediaPlaybackClusterInitCallback(endpoint);
break;
case app::Clusters::Messages::Id:
emberAfMessagesClusterInitCallback(endpoint);
break;
case app::Clusters::MicrowaveOvenControl::Id:
emberAfMicrowaveOvenControlClusterInitCallback(endpoint);
break;
case app::Clusters::MicrowaveOvenMode::Id:
emberAfMicrowaveOvenModeClusterInitCallback(endpoint);
break;
@@ -196,9 +205,6 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::OnOff::Id:
emberAfOnOffClusterInitCallback(endpoint);
break;
case app::Clusters::OnOffSwitchConfiguration::Id:
emberAfOnOffSwitchConfigurationClusterInitCallback(endpoint);
break;
case app::Clusters::OperationalCredentials::Id:
emberAfOperationalCredentialsClusterInitCallback(endpoint);
break;
@@ -241,6 +247,18 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::PressureMeasurement::Id:
emberAfPressureMeasurementClusterInitCallback(endpoint);
break;
case app::Clusters::ProxyConfiguration::Id:
emberAfProxyConfigurationClusterInitCallback(endpoint);
break;
case app::Clusters::ProxyDiscovery::Id:
emberAfProxyDiscoveryClusterInitCallback(endpoint);
break;
case app::Clusters::ProxyValid::Id:
emberAfProxyValidClusterInitCallback(endpoint);
break;
case app::Clusters::PulseWidthModulation::Id:
emberAfPulseWidthModulationClusterInitCallback(endpoint);
break;
case app::Clusters::PumpConfigurationAndControl::Id:
emberAfPumpConfigurationAndControlClusterInitCallback(endpoint);
break;
@@ -265,6 +283,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
case app::Clusters::RvcRunMode::Id:
emberAfRvcRunModeClusterInitCallback(endpoint);
break;
case app::Clusters::SampleMei::Id:
emberAfSampleMeiClusterInitCallback(endpoint);
break;
case app::Clusters::ScenesManagement::Id:
emberAfScenesManagementClusterInitCallback(endpoint);
break;
@@ -0,0 +1,351 @@
#!/usr/bin/env python3
# Copyright 2024 Espressif Systems (Shanghai) PTE LTD
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Script to generate files under zap_common directory
"""
import os
import xml.etree.ElementTree as ET
import argparse
import logging
import sys
import glob
import re
# These clusters are not implemented in current connectedhomeip repo
EXCLUDE_CLUSTERS = ['Demand Response Load Control', 'Timer']
# These words are special when formatting the cluster name
WORD_FORMAT_LIST = {'Wifi': 'WiFi', 'Pm2.5': 'Pm25'}
if not os.getenv('ESP_MATTER_PATH'):
logging.error("ESP_MATTER_PATH environment variable is not set")
sys.exit(1)
BASE_PATH = os.getenv('ESP_MATTER_PATH')
def get_args():
parser = argparse.ArgumentParser(description='Script to generate files under zap_common directory',
formatter_class=lambda prog: argparse.HelpFormatter(prog, max_help_position=50))
parser.add_argument('-x', '--xml-dir',
default=os.path.join(
BASE_PATH, 'connectedhomeip/connectedhomeip/src/app/zap-templates/zcl/data-model/chip'),
help='The directory of the xml template files of all the clusters')
parser.add_argument('-o', '--output-dir',
default=os.path.join(
BASE_PATH, 'components/esp_matter/zap_common'),
help='The output directory')
return parser.parse_args()
def format_id(id):
if id[0:2] != '0x':
id = hex(int(id))
hex_id = id[2:]
if len(hex_id) < 8:
hex_id = hex_id.zfill(8)
return '0x' + hex_id.upper()
def get_cluster_name(cluster):
ret = ''
for element in cluster:
if element.tag == 'name':
ret = element.text
return ret
def get_cluster_id(cluster):
for element in cluster:
if element.tag == 'code':
return format_id(element.text)
def get_clusters_from_xml_files(xml_files):
ret = []
for xml_file in xml_files:
tree = ET.parse(xml_file)
root = tree.getroot()
for child in root:
if child.tag == 'cluster' and get_cluster_name(child) not in EXCLUDE_CLUSTERS:
ret.append(child)
return ret
def word_format(word):
capitalized_word = word.capitalize()
if capitalized_word in WORD_FORMAT_LIST.keys():
return WORD_FORMAT_LIST[capitalized_word]
else:
return capitalized_word
def format_cluster_name(cluster_name):
words = re.split(r'[ /]', cluster_name)
capitalized_words = [word_format(word) for word in words]
return ''.join(capitalized_words)
def get_formatted_cluster_name(cluster):
return format_cluster_name(get_cluster_name(cluster))
def generate_plugin_application_callbacks_h(xml_files, output_dir):
with open(os.path.join(output_dir, 'app/PluginApplicationCallbacks.h'), 'w') as header_file:
header_file.write('#pragma once\n')
clusters = get_clusters_from_xml_files(xml_files)
clusters.sort(key=get_formatted_cluster_name)
for cluster in clusters:
header_file.write('void Matter{}PluginServerInitCallback();\n'.format(
format_cluster_name(get_cluster_name(cluster))))
header_file.writelines(
['\n',
'#include <esp_matter_cluster.h>\n',
'\n',
'#define MATTER_PLUGINS_INIT esp_matter::cluster::plugin_init_callback_common();\n'])
def generate_callback_stub_cpp(xml_files, output_dir):
with open(os.path.join(output_dir, 'app/callback-stub.cpp'), 'w') as src_file:
src_file.writelines(
['#include <app-common/zap-generated/callback.h>\n',
'\n',
'using namespace chip;\n'])
clusters = get_clusters_from_xml_files(xml_files)
clusters.sort(key=get_formatted_cluster_name)
for cluster in clusters:
src_file.write('void __attribute__((weak)) emberAf{}ClusterInitCallback(EndpointId endpoint)\n'.format(
format_cluster_name(get_cluster_name(cluster))))
src_file.writelines(
['{\n',
' // To prevent warning\n',
' (void) endpoint;\n'
'}\n'])
def generate_cluster_init_callback_cpp(xml_files, output_dir):
with open(os.path.join(output_dir, 'app/cluster-init-callback.cpp'), 'w') as src_file:
src_file.writelines(
['#include <app-common/zap-generated/callback.h>\n',
'#include <app-common/zap-generated/ids/Clusters.h>\n',
'#include <lib/support/Span.h>\n',
'#include <protocols/interaction_model/Constants.h>\n',
'\n',
'using namespace chip;\n',
'\n',
'// Cluster Init Functions\n',
'void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)\n',
'{\n',
' switch (clusterId)\n',
' {\n'])
clusters = get_clusters_from_xml_files(xml_files)
clusters.sort(key=get_formatted_cluster_name)
for cluster in clusters:
formatted_cluster_name = format_cluster_name(
get_cluster_name(cluster))
src_file.writelines(
[' case app::Clusters::{}::Id:\n'.format(formatted_cluster_name),
' emberAf{}ClusterInitCallback(endpoint);\n'.format(
formatted_cluster_name),
' break;\n'])
src_file.writelines(
[' default:\n',
' // Unrecognized cluster ID\n',
' break;\n',
' }\n',
'}\n'])
def get_attribute_read_privilege(attribute):
for element in attribute:
if element.tag == 'access' and element.attrib['op'] == 'read':
if 'privilege' in element.attrib.keys():
return element.attrib['privilege']
elif 'role' in element.attrib.keys():
return element.attrib['role']
return 'view'
def get_attribute_write_privilege(attribute):
for element in attribute:
if element.tag == 'access' and element.attrib['op'] == 'write':
if 'privilege' in element.attrib.keys():
return element.attrib['privilege']
elif 'role' in element.attrib.keys():
return element.attrib['role']
return 'operate'
def get_attribute_name(attribute):
for element in attribute:
if element.tag == 'description':
return element.text
def get_command_invoke_privilege(command):
for element in command:
if element.tag == 'access' and element.attrib['op'] == 'invoke':
if 'privilege' in element.attrib.keys():
return element.attrib['privilege']
elif 'role' in element.attrib.keys():
return element.attrib['role']
return 'operate'
def get_event_read_privilege(event):
for element in event:
if element.tag == 'access' and element.attrib['op'] == 'read':
if 'privilege' in element.attrib.keys():
return element.attrib['privilege']
elif 'role' in element.attrib.keys():
return element.attrib['role']
return 'view'
def get_privilege_sort_key(privilege):
return privilege[0] + privilege[2]
def get_privileges(clusters):
attribute_read_privileges = []
attribute_write_privileges = []
command_invoke_privileges = []
event_read_privileges = []
for cluster in clusters:
cluster_id = get_cluster_id(cluster)
cluster_name = get_cluster_name(cluster)
for element in cluster:
if element.tag == 'attribute':
attribute_id = format_id(element.attrib['code'])
attribute_name = get_attribute_name(element)
attribute_read_privilege = get_attribute_read_privilege(element)
attribute_write_privilege = get_attribute_write_privilege(element)
if attribute_read_privilege != 'view':
attribute_read_privileges.append(
[cluster_id, cluster_name, attribute_id, attribute_name, attribute_read_privilege])
if attribute_write_privilege != 'operate':
attribute_write_privileges.append(
[cluster_id, cluster_name, attribute_id, attribute_name, attribute_write_privilege])
if element.tag == 'command':
command_id = format_id(element.attrib['code'])
command_name = element.attrib['name']
command_invoke_privilege = get_command_invoke_privilege(element)
if command_invoke_privilege != 'operate':
command_invoke_privileges.append(
[cluster_id, cluster_name, command_id, command_name, command_invoke_privilege])
if element.tag == 'event':
event_id = format_id(element.attrib['code'])
event_name = element.attrib['name']
event_read_privilege = get_event_read_privilege(element)
if event_read_privilege != 'view':
event_read_privileges.append(
[cluster_id, cluster_name, event_id, event_name, event_read_privilege])
# Sort the privileges by cluster_id and attribute_id/command_id/event_id
attribute_read_privileges.sort(key=get_privilege_sort_key)
attribute_write_privileges.sort(key=get_privilege_sort_key)
command_invoke_privileges.sort(key=get_privilege_sort_key)
event_read_privileges.sort(key=get_privilege_sort_key)
return attribute_read_privileges, attribute_write_privileges, command_invoke_privileges, event_read_privileges
def get_privileges_array(privileges, array_type, interaction_type, object_type):
if array_type == 'cluster':
array = '// Parallel array data (*cluster*, {}, privilege) for {} {}\n'.format(
object_type, interaction_type, object_type)
elif array_type == 'attribute' or array_type == 'command' or array_type == 'event':
array = '// Parallel array data (cluster, *{}*, privilege) for {} {}\n'.format(
object_type, interaction_type, object_type)
elif array_type == 'privilege':
array = '// Parallel array data (cluster, {}, *privilege*) for {} {}\n'.format(
object_type, interaction_type, object_type)
else:
logging.error("Invalid array_type")
sys.exit(1)
array += '#define GENERATED_ACCESS_{}_{}__{} {{ \\\n'.format(
interaction_type.upper(), object_type.upper(), array_type.upper())
for privilege in privileges:
if array_type == 'cluster':
array += ' {}, /* Cluster: {}, {}: {}, Privilege: {} */ \\\n'.format(
privilege[0], privilege[1], object_type.capitalize(), privilege[3], privilege[4])
elif array_type == 'attribute' or array_type == 'command' or array_type == 'event':
array += ' {}, /* Cluster: {}, {}: {}, Privilege: {} */ \\\n'.format(
privilege[2], privilege[1], object_type.capitalize(), privilege[3], privilege[4])
elif array_type == 'privilege':
array += ' chip::Access::Privilege::k{}, /* Cluster: {}, {}: {}, Privilege: {} */ \\\n'.format(
privilege[4].capitalize(), privilege[1], object_type.capitalize(), privilege[3], privilege[4])
array += '}\n'
array += '\n'
return array
def write_privileges(file, privileges, interaction_type, object_type):
file.write(get_privileges_array(privileges, 'cluster', interaction_type, object_type))
file.write(get_privileges_array(privileges, object_type, interaction_type, object_type))
file.write(get_privileges_array(privileges, 'privilege', interaction_type, object_type))
file.write('////////////////////////////////////////////////////////////////////////////////\n')
file.write('\n')
def generate_access_h(xml_files, output_dir):
with open(os.path.join(output_dir, 'zap-generated/access.h'), 'w') as header_file:
header_file.writelines(
['#pragma once\n',
'\n',
'#include <access/Privilege.h>\n',
'\n',
'// Prevent changing generated format\n'
'// clang-format off\n',
'\n',
'////////////////////////////////////////////////////////////////////////////////\n',
'\n'])
# Get privileges from the xml files
clusters = get_clusters_from_xml_files(xml_files)
[attr_read, attr_write, cmd_invoke, event_read] = get_privileges(clusters)
write_privileges(header_file, attr_read, 'read', 'attribute')
write_privileges(header_file, attr_write, 'write', 'attribute')
write_privileges(header_file, cmd_invoke, 'invoke', 'command')
write_privileges(header_file, event_read, 'read', 'event')
header_file.write('// clang-format on\n')
def main():
logging.basicConfig(
format='[%(asctime)s] [%(levelname)7s] - %(message)s', level=logging.INFO)
args = get_args()
xml_files = glob.glob(os.path.join(args.xml_dir, '*.xml'))
generate_plugin_application_callbacks_h(xml_files, args.output_dir)
generate_callback_stub_cpp(xml_files, args.output_dir)
generate_cluster_init_callback_cpp(xml_files, args.output_dir)
generate_access_h(xml_files, args.output_dir)
if __name__ == "__main__":
main()
@@ -1,23 +1,3 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
// Prevent multiple inclusion
#pragma once
#include <access/Privilege.h>
@@ -29,215 +9,68 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
/* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
/* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \
/* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \
/* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
/* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
/* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
/* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
/* Cluster: User Label, Attribute: LabelList, Privilege: view */ \
0x00000046, /* Cluster: ICD Management, Attribute: RegisteredClients, Privilege: administer */ \
0x00000046, /* Cluster: ICD Management, Attribute: ICDCounter, Privilege: administer */ \
/* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \
/* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \
/* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \
/* Cluster: Door Lock, Attribute: Language, Privilege: view */ \
/* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \
/* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \
/* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \
/* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \
/* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \
/* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: view */ \
/* Cluster: Energy Preference, Attribute: CurrentEnergyBalance, Privilege: view */ \
/* Cluster: Energy Preference, Attribute: CurrentLowPowerModeSensitivity, Privilege: view */ \
/* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \
/* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \
/* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \
/* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \
/* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \
/* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \
/* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroReaderVerificationKey, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroReaderGroupIdentifier, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroReaderGroupSubIdentifier, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroExpeditedTransactionSupportedProtocolVersions, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \
0x0000050D, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \
}
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
/* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
/* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \
/* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \
/* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
/* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
/* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
0x00000000, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
0x00000001, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
0x00000005, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
0x00000006, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
0x00000007, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
0x00000000, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
/* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
/* Cluster: User Label, Attribute: LabelList, Privilege: view */ \
0x00000003, /* Cluster: ICD Management, Attribute: RegisteredClients, Privilege: administer */ \
0x00000004, /* Cluster: ICD Management, Attribute: ICDCounter, Privilege: administer */ \
/* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \
/* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \
/* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \
/* Cluster: Door Lock, Attribute: Language, Privilege: view */ \
/* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \
/* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \
/* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \
/* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \
/* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \
/* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: view */ \
/* Cluster: Energy Preference, Attribute: CurrentEnergyBalance, Privilege: view */ \
/* Cluster: Energy Preference, Attribute: CurrentLowPowerModeSensitivity, Privilege: view */ \
/* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \
/* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \
/* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \
/* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \
/* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \
/* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \
/* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
0x00000080, /* Cluster: Door Lock, Attribute: AliroReaderVerificationKey, Privilege: administer */ \
0x00000081, /* Cluster: Door Lock, Attribute: AliroReaderGroupIdentifier, Privilege: administer */ \
0x00000082, /* Cluster: Door Lock, Attribute: AliroReaderGroupSubIdentifier, Privilege: administer */ \
0x00000083, /* Cluster: Door Lock, Attribute: AliroExpeditedTransactionSupportedProtocolVersions, Privilege: administer */ \
0x00000084, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \
0x00000085, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \
0x00000086, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \
0x00000007, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \
}
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
/* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
/* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \
/* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \
/* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
/* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
/* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
/* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
/* Cluster: User Label, Attribute: LabelList, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: ICD Management, Attribute: RegisteredClients, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: ICD Management, Attribute: ICDCounter, Privilege: administer */ \
/* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \
/* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \
/* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \
/* Cluster: Door Lock, Attribute: Language, Privilege: view */ \
/* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \
/* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \
/* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \
/* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \
/* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \
/* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \
/* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: view */ \
/* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: view */ \
/* Cluster: Energy Preference, Attribute: CurrentEnergyBalance, Privilege: view */ \
/* Cluster: Energy Preference, Attribute: CurrentLowPowerModeSensitivity, Privilege: view */ \
/* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \
/* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \
/* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \
/* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \
/* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \
/* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \
/* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \
/* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \
/* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \
/* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \
/* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroReaderVerificationKey, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroReaderGroupIdentifier, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroReaderGroupSubIdentifier, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroExpeditedTransactionSupportedProtocolVersions, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \
}
////////////////////////////////////////////////////////////////////////////////
@@ -261,35 +94,56 @@
0x00000031, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
0x00000041, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
0x0000005C, /* Cluster: Smoke CO Alarm, Attribute: SmokeSensitivityLevel, Privilege: manage */ \
0x00000099, /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: manage */ \
0x00000099, /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: manage */ \
0x00000099, /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: LEDSettings, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnableLocalProgramming, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
0x00000101, /* Cluster: Door Lock, Attribute: LocalProgrammingFeatures, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: SendPINOverTheAir, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Attribute: ExpiringUserTimeout, Privilege: administer */ \
0x00000102, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \
0x00000200, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \
0x00000200, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \
0x00000200, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \
0x00000200, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: HVACSystemTypeConfiguration, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: LocalTemperatureCalibration, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: RemoteSensing, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: TemperatureSetpointHold, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: TemperatureSetpointHoldDuration, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ThermostatProgrammingOperationMode, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: OccupiedSetback, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: UnoccupiedSetback, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: EmergencyHeatDelta, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACType, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACCapacity, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACRefrigerantType, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACCompressorType, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACErrorCode, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACLouverPosition, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: ACCapacityformat, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: Presets, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Attribute: Schedules, Privilege: manage */ \
0x00000204, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \
@@ -316,6 +170,15 @@
0x00000301, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \
0x00000301, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \
0x00000301, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: UltrasonicOccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedThreshold, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactOccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000406, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedThreshold, Privilege: manage */ \
}
// Parallel array data (cluster, *attribute*, privilege) for write attribute
@@ -337,35 +200,56 @@
0x00000004, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
0x00000000, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
0x00000000, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \
0x00000004, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
0x00000005, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
0x00000006, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
0x00000021, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
0x00000023, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
0x00000024, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
0x00000025, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
0x00000029, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
0x0000002A, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
0x0000002B, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
0x00000030, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
0x00000031, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
0x00000033, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
0x0000000B, /* Cluster: Smoke CO Alarm, Attribute: SmokeSensitivityLevel, Privilege: manage */ \
0x00000009, /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: manage */ \
0x0000000A, /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: manage */ \
0x00000027, /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: manage */ \
0x00000004, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
0x00000005, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
0x00000006, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
0x00000021, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
0x00000022, /* Cluster: Door Lock, Attribute: LEDSettings, Privilege: manage */ \
0x00000023, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
0x00000024, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
0x00000025, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
0x00000028, /* Cluster: Door Lock, Attribute: EnableLocalProgramming, Privilege: administer */ \
0x00000029, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
0x0000002A, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
0x0000002B, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
0x0000002C, /* Cluster: Door Lock, Attribute: LocalProgrammingFeatures, Privilege: administer */ \
0x00000030, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
0x00000031, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
0x00000032, /* Cluster: Door Lock, Attribute: SendPINOverTheAir, Privilege: administer */ \
0x00000033, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
0x00000035, /* Cluster: Door Lock, Attribute: ExpiringUserTimeout, Privilege: administer */ \
0x00000017, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \
0x00000015, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \
0x00000017, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \
0x00000020, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \
0x00000021, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \
0x00000009, /* Cluster: Thermostat, Attribute: HVACSystemTypeConfiguration, Privilege: manage */ \
0x00000010, /* Cluster: Thermostat, Attribute: LocalTemperatureCalibration, Privilege: manage */ \
0x00000015, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \
0x00000016, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \
0x00000017, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \
0x00000018, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \
0x00000019, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \
0x0000001A, /* Cluster: Thermostat, Attribute: RemoteSensing, Privilege: manage */ \
0x0000001B, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \
0x0000001C, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \
0x00000023, /* Cluster: Thermostat, Attribute: TemperatureSetpointHold, Privilege: manage */ \
0x00000024, /* Cluster: Thermostat, Attribute: TemperatureSetpointHoldDuration, Privilege: manage */ \
0x00000025, /* Cluster: Thermostat, Attribute: ThermostatProgrammingOperationMode, Privilege: manage */ \
0x00000034, /* Cluster: Thermostat, Attribute: OccupiedSetback, Privilege: manage */ \
0x00000037, /* Cluster: Thermostat, Attribute: UnoccupiedSetback, Privilege: manage */ \
0x0000003A, /* Cluster: Thermostat, Attribute: EmergencyHeatDelta, Privilege: manage */ \
0x00000040, /* Cluster: Thermostat, Attribute: ACType, Privilege: manage */ \
0x00000041, /* Cluster: Thermostat, Attribute: ACCapacity, Privilege: manage */ \
0x00000042, /* Cluster: Thermostat, Attribute: ACRefrigerantType, Privilege: manage */ \
0x00000043, /* Cluster: Thermostat, Attribute: ACCompressorType, Privilege: manage */ \
0x00000044, /* Cluster: Thermostat, Attribute: ACErrorCode, Privilege: manage */ \
0x00000045, /* Cluster: Thermostat, Attribute: ACLouverPosition, Privilege: manage */ \
0x00000047, /* Cluster: Thermostat, Attribute: ACCapacityformat, Privilege: manage */ \
0x00000050, /* Cluster: Thermostat, Attribute: Presets, Privilege: manage */ \
0x00000051, /* Cluster: Thermostat, Attribute: Schedules, Privilege: manage */ \
0x00000001, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \
@@ -392,6 +276,15 @@
0x00000033, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \
0x00000034, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \
0x00000035, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \
0x00000010, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000011, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000012, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \
0x00000020, /* Cluster: Occupancy Sensing, Attribute: UltrasonicOccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000021, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000022, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedThreshold, Privilege: manage */ \
0x00000030, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactOccupiedToUnoccupiedDelay, Privilege: manage */ \
0x00000031, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedDelay, Privilege: manage */ \
0x00000032, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedThreshold, Privilege: manage */ \
}
// Parallel array data (cluster, attribute, *privilege*) for write attribute
@@ -413,35 +306,56 @@
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Smoke CO Alarm, Attribute: SmokeSensitivityLevel, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: LEDSettings, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: EnableLocalProgramming, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: LocalProgrammingFeatures, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: SendPINOverTheAir, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: ExpiringUserTimeout, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: HVACSystemTypeConfiguration, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: LocalTemperatureCalibration, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: RemoteSensing, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: TemperatureSetpointHold, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: TemperatureSetpointHoldDuration, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ThermostatProgrammingOperationMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: OccupiedSetback, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: UnoccupiedSetback, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: EmergencyHeatDelta, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACType, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACCapacity, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACRefrigerantType, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACCompressorType, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACErrorCode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACLouverPosition, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACCapacityformat, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: Presets, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: Schedules, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \
@@ -468,6 +382,15 @@
chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: UltrasonicOccupiedToUnoccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedThreshold, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactOccupiedToUnoccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedDelay, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedThreshold, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
@@ -489,6 +412,7 @@
0x00000031, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: QueryIdentity, Privilege: administer */ \
0x00000033, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
0x00000034, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \
0x00000035, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \
@@ -525,12 +449,28 @@
0x00000101, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearYearDaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: SetHolidaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: GetHolidaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearHolidaySchedule, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: SetAliroReaderConfig, Privilege: administer */ \
0x00000101, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \
0x00000201, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \
0x00000507, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \
0x0000050B, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \
0x0000050E, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \
0x0000050E, /* Cluster: Account Login, Command: Login, Privilege: administer */ \
0xFFF1FC06, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
0xFFF1FC06, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}
@@ -552,6 +492,7 @@
0x00000004, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
0x00000006, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
0x00000008, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
0x00000009, /* Cluster: Network Commissioning, Command: QueryIdentity, Privilege: administer */ \
0x00000000, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
0x00000000, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \
0x00000000, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \
@@ -588,12 +529,28 @@
0x0000000D, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
0x0000000E, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \
0x0000000F, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \
0x00000010, /* Cluster: Door Lock, Command: ClearYearDaySchedule, Privilege: administer */ \
0x00000011, /* Cluster: Door Lock, Command: SetHolidaySchedule, Privilege: administer */ \
0x00000012, /* Cluster: Door Lock, Command: GetHolidaySchedule, Privilege: administer */ \
0x00000013, /* Cluster: Door Lock, Command: ClearHolidaySchedule, Privilege: administer */ \
0x0000001A, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \
0x0000001B, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \
0x0000001D, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \
0x00000022, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \
0x00000024, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \
0x00000026, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \
0x00000028, /* Cluster: Door Lock, Command: SetAliroReaderConfig, Privilege: administer */ \
0x00000029, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \
0x00000001, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \
0x00000003, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \
0x00000007, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000008, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \
0x00000009, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \
0x0000000A, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \
0x00000003, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \
0x00000001, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \
0x00000000, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \
0x00000002, /* Cluster: Account Login, Command: Login, Privilege: administer */ \
0x00000000, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
0x00000001, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}
@@ -615,6 +572,7 @@
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: QueryIdentity, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \
@@ -651,12 +609,28 @@
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearYearDaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetHolidaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetHolidaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearHolidaySchedule, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetAliroReaderConfig, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Account Login, Command: Login, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}