1 {{#if (zcl_command_arguments_count this.id)}}
2 uint16_t payloadOffset = cmd->payloadStartIndex;
3 {{#zcl_command_arguments}}
4 {{#if (isOctetString type)}}
5 chip::ByteSpan {{asSymbol label}};
7 {{asUnderlyingZclType type}} {{asSymbol label}};
9 {{/zcl_command_arguments}}
11 {{#zcl_command_arguments}}
17 {{asSymbol label}} = cmd->buffer + payloadOffset;
19 if (cmd->bufLen < payloadOffset + {{asReadTypeLength type}})
21 return EMBER_ZCL_STATUS_MALFORMED_COMMAND;
23 {{#if (isSigned type)}}
24 {{asSymbol label}} = static_cast<{{asUnderlyingZclType type}}>(emberAfGet{{asReadType type}}(cmd->buffer, payloadOffset, cmd->bufLen));
25 {{else if (isOctetString type)}}
27 uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen);
28 {{asSymbol label}} = chip::ByteSpan(rawData + {{asReadTypeLength type}}, emberAf{{asReadType type}}Length(rawData));
31 {{asSymbol label}} = emberAfGet{{asReadType type}}(cmd->buffer, payloadOffset, cmd->bufLen);
33 {{#unless (isLastElement index count)}}
34 {{#if (isOctetString type)}}
35 payloadOffset = static_cast<uint16_t>(payloadOffset + {{asSymbol label}}.size() + {{asReadTypeLength type}});
36 {{else if (isString type)}}
37 payloadOffset = static_cast<uint16_t>(payloadOffset + emberAf{{asReadType type}}Length({{asSymbol label}}) + {{asReadTypeLength type}});
39 payloadOffset = static_cast<uint16_t>(payloadOffset + {{asReadTypeLength type}});
47 {{asSymbol label}} = {{asValueIfNotPresent type isArray}};
50 {{/zcl_command_arguments}}
53 wasHandled = emberAf{{asCamelCased parent.name false}}Cluster{{asCamelCased name false}}Callback({{#zcl_command_arguments}}{{asSymbol label}}{{#unless (isLastElement index count)}}, {{/unless}}{{/zcl_command_arguments}});