5.1.7.3.1 ZCL_AttributeReq Function
Syntax
void ZCL_AttributeReq(ZCL_Request_t *req);
Description
This function sends a general ZCL command related to attributes to a remote device.
The application can use this function to read/write attributes from a remote device, report local attributes and discover attributes supported by a particular cluster on a remote device.
The commands parameters include addressing information, callback functions, the command’s ID and the payload. The payload can be formed using the ZCL_PutNextElement() function and an instance of the ZCL_NextElement_t type. Use the command to perform actions on multiple attributes simultaneously. For example, it can read several attributes from a remote device.
In general, the application sends attribute-related commands to specific short or extended addresses. Sending such commands to bound devices (employing APS_NO_ADDRESS mode) can not be as efficient because in case of receiving responses from more than one device, the ZCL component is going to process only the first one.
req->ZCL_Notify field is called twice for most commands (excluding reporting).- To confirm that the command was sent.
- After receiving the response command.
To differentiate these, the callback’s argument includes the ZCL_Notify_t-id field, which equals ZCL_APS_CONFIRM_ID in the first case and the ZCL_ZCL_RESPONSE_ID in the second.
req->id field):ZCL_READ_ATTRIBUTES_COMMAND_ID– Reading remote attributes (obtaining values)ZCL_WRITE_ATTRIBUTES_COMMAND_ID– Writing remote attributes (assigning new values)ZCL_REPORT_ATTRIBUTES_COMMAND_ID– Reporting local attributes to remote devices (sending current attribute’s values)ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID– Discovering attributes of a remote device (obtaining data types and IDs of attributes supported by a particular cluster)ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID– Discovering the commands received (obtaining the list of commands those can be received and processed)ZCL_DISCOVER_COMMANDS_GENEARATED_COMMAND_ID– Discovering the commands generated (obtaining the list of commands those can be generated and processed)ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID– Discovering attributes of a remote device (obtaining data types, access control and IDs of attributes supported by a particular cluster)
The response statuses, accessed via the argument’s ZCL_Notify_t-status field of the callback function specified in the req->ZCL_Notify field, are as follows:
- All commands:
ZCL_SUCCESS_STATUS (0x00)– The request is executed successfully (all attributes are written, read or reported and more).ZCL_INSUFFICIENT_SPACE_STATUS (0x89)– The ZCL buffer is not big enough to hold the request’s payload.ZCL_UNSUPPORTED_ATTRIBUTE_STATUS (0x86)– An attribute specified in the request is not supported by the destination node.ZCL_INVALID_FIELD_STATUS (0x85)– A command’s field contains an incorrect value.ZCL_INVALID_DATA_TYPE_STATUS (0x8D)– Wrong attribute type was specified.ZCL_TIMEOUT_STATUS (0x94)– The response command is expected but not received in time; the timeout, based on network parameters (such as max network depth), occurred.
- Write attributes command:
ZCL_WRITE_ATTRIBUTES_FAILURE_STATUS (0x0F)– Not all attributes are written; see individual statuses of attribute records to check each attribute.
- Report attributes command:
ZCL_UNREPORTABLE_ATTRIBUTE_STATUS (0x8C)– The requested attribute is not reportable.
| Parameter Name | Description |
|---|---|
req | Command parameters |
- None
