| /** {{description}} */ |
| {{#if generateClientCluster}}client {{else}}server {{/if~}} |
| cluster {{asUpperCamelCase name}} = {{code}} { |
| {{#zcl_enums}} |
| enum {{asUpperCamelCase name}} : ENUM{{multiply size 8}} { |
| {{#zcl_enum_items}} |
| k{{asUpperCamelCase label}} = {{value}}; |
| {{/zcl_enum_items}} |
| } |
| |
| {{/zcl_enums}} |
| {{#zcl_bitmaps}} |
| bitmap {{name}} : BITMAP{{multiply size 8}} { |
| {{#zcl_bitmap_items}} |
| k{{asUpperCamelCase label}} = {{asHex mask}}; |
| {{/zcl_bitmap_items}} |
| } |
| |
| {{/zcl_bitmaps}} |
| {{#zcl_structs}} |
| {{~>idl_structure_definition extraIndent=1}} |
| |
| {{/zcl_structs}} |
| {{#zcl_events}} |
| {{#if isFabricSensitive}}fabric_sensitive {{/if~}} {{priority}} event {{!ensure space}} |
| {{~#chip_access_elements entity="event"~}} |
| {{~#first~}}access({{~/first~}} |
| {{~#not_first~}}, {{/not_first~}} |
| {{operation}}: {{role}} |
| {{~#last}}) {{/last~}} |
| {{~/chip_access_elements~}} |
| {{asUpperCamelCase name}} = {{code}} { |
| {{#zcl_event_fields}} |
| {{>idl_structure_member label=name}} |
| |
| {{/zcl_event_fields}} |
| } |
| |
| {{/zcl_events}} |
| {{#if generateClientCluster}} |
| {{#zcl_attributes_server}} |
| {{#if clusterRef}} |
| {{! ensure indent }}{{>idl_attribute_definition}} |
| {{/if}} |
| {{/zcl_attributes_server}} |
| |
| {{~else}} |
| {{#enabled_attributes_for_cluster_and_side name 'server'}} |
| {{#unless isGlobalAttribute}} |
| {{! ensure indent }}{{>idl_attribute_definition}} |
| {{/unless}} |
| {{/enabled_attributes_for_cluster_and_side~}} |
| |
| {{~/if}} |
| {{~!--Global attributes: spec 7.13 describes these as mandatory --}} |
| {{~!TODO(26053): global attributes are marked as optional, |
| hence the exclusion above and re-add here.}} |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| {{!--Open:Generating command request structs for all incoming commands into server side--~}} |
| {{#unless generateClientCluster}} |
| {{#all_incoming_commands_for_cluster name side}} |
| {{~>idl_command_request_struct}} |
| {{/all_incoming_commands_for_cluster}} |
| {{/unless}} |
| {{~!--Close:Generating command request structs for all incoming commands into server side--~}} |
| {{~!--Open:Generating command request structs for all outgoing commands from client side--~}} |
| {{#if generateClientCluster}} |
| {{#zcl_commands}} |
| {{#if (isStrEqual source "client")}} |
| {{~>idl_command_request_struct}} |
| {{else}} |
| {{~>idl_command_response_struct}} |
| {{/if}} |
| {{/zcl_commands}} |
| {{/if}} |
| {{~!--Close:Generating command request structs for all outgoing commands from client side--~}} |
| {{~!--Open:Generating command response structs for all incoming commands into client side--~}} |
| {{~!--Close:Generating command response structs for all incoming commands into client side--~}} |
| {{~!--Open:Generating command response structs for all outgoing commands from server side--~}} |
| {{#unless generateClientCluster}} |
| {{#all_outgoing_commands_for_cluster name side}} |
| {{~>idl_command_response_struct}} |
| {{/all_outgoing_commands_for_cluster}} |
| {{/unless}} |
| {{~!--Close:Generating command response structs for all outgoing commands from server side--~}} |
| {{#unless generateClientCluster}} |
| {{#all_incoming_commands_for_cluster name side}} |
| {{~>idl_command_request_response}}{{~new_line 1~}} |
| {{/all_incoming_commands_for_cluster}} |
| {{/unless}} |
| {{#if generateClientCluster}} |
| {{#zcl_commands_source_client}} |
| {{~>idl_command_request_response}}{{~new_line 1~}} |
| {{/zcl_commands_source_client}} |
| {{/if}} |
| } |
| |