General Enumerations
Addressing Modes (teZCL_AddressMode)
The following enumerations are used to specify the addressing mode to be used in a communication with a remote node:
typedef enum
{
E_ZCL_AM_BOUND,
E_ZCL_AM_GROUP,
E_ZCL_AM_SHORT,
E_ZCL_AM_IEEE,
E_ZCL_AM_BROADCAST,
E_ZCL_AM_NO_TRANSMIT,
E_ZCL_AM_BOUND_NO_ACK,
E_ZCL_AM_SHORT_NO_ACK,
E_ZCL_AM_IEEE_NO_ACK,
E_ZCL_AM_BOUND_NON_BLOCKING,
E_ZCL_AM_BOUND_NON_BLOCKING_NO_ACK,
E_ZCL_AM_ENUM_END, /* enum End */
} teZCL_AddressMode;
The above enumerations are described in the table below.
Enumeration |
Description |
|---|---|
E_ZCL_AM_BOUND |
Use one or more bound nodes/endpoints, with acknowledgments |
E_ZCL_AM_GROUP |
Use a pre-defined group address, with acknowledgments |
E_ZCL_AM_SHORT |
Use a 16-bit network address, with acknowledgments |
E_ZCL_AM_IEEE |
Use a 64-bit IEEE/MAC address, with acknowledgments |
E_ZCL_AM_BROADCAST |
Perform a broadcast (see Section 7.1.2) |
E_ZCL_AM_NO_TRANSMIT |
Do not transmit |
E_ZCL_AM_BOUND_NO_ACK |
Perform a bound transmission, with no acknowledgments |
E_ZCL_AM_SHORT_NO_ACK |
Perform a transmission using a 16-bit network address, with no acknowledgments |
E_ZCL_AM_IEEE_NO_ACK |
Perform a transmission using a 64-bit IEEE/MAC address, with no acknowledgments |
E_ZCL_AM_BOUND_NON_BLOCKING |
Perform a non-blocking bound transmission, with acknowledgments |
E_ZCL_AM_BOUND_NON_BLOCKING_NO_ACK |
Perform a non-blocking bound transmission, with no acknowledgments |
The required addressing mode is specified in the structure tsZCL_Address (see Section 6.1.4).
Parent topic:General Enumerations
Broadcast Modes (ZPS_teAplAfBroadcastMode)
The following enumerations are used to specify the type of broadcast (when the addressing mode for a communication has been set to E_ZCL_AM_BROADCAST (see Section 7.1.1)):
typedef enum
{
ZPS_E_APL_AF_BROADCAST_ALL,
ZPS_E_APL_AF_BROADCAST_RX_ON,
ZPS_E_APL_AF_BROADCAST_ZC_ZR
} ZPS_teAplAfBroadcastMode;
The above enumerations are described in the table below.
Enumeration |
Description |
|---|---|
ZPS_E_APL_AF_BROADCAST_ALL |
All End Devices |
ZPS_E_APL_AF_BROADCAST_RX_ON |
Nodes on which the radio receiver remains enabled when the node is idle (e.g. sleeping) |
ZPS_E_APL_AF_BROADCAST_ZC_ZR |
Only the Coordinator and Routers |
The required broadcast mode is specified in the structure tsZCL_Address (see Section 6.1.4).
Parent topic:General Enumerations
Attribute Types (teZCL_ZCLAttributeType)
The following enumerations are used to represent the attribute types in the/ZCL clusters:
typedef enum
{
/* Null */
E_ZCL_NULL = 0x00,
/* General Data */
E_ZCL_GINT8 = 0x08, // General 8 bit - not specified if signed
E_ZCL_GINT16,
E_ZCL_GINT24,
E_ZCL_GINT32,
E_ZCL_GINT40,
E_ZCL_GINT48,
E_ZCL_GINT56,
E_ZCL_GINT64,
/* Logical */
E_ZCL_BOOL = 0x10,
/* Bitmap */
E_ZCL_BMAP8 = 0x18, // 8 bit bitmap
E_ZCL_BMAP16,
E_ZCL_BMAP24,
E_ZCL_BMAP32,
E_ZCL_BMAP40,
E_ZCL_BMAP48,
E_ZCL_BMAP56,
E_ZCL_BMAP64,
/* Unsigned Integer */
E_ZCL_UINT8 = 0x20, // Unsigned 8 bit
E_ZCL_UINT16,
E_ZCL_UINT24,
E_ZCL_UINT32,
E_ZCL_UINT40,
E_ZCL_UINT48,
E_ZCL_UINT56,
E_ZCL_UINT64,
/* Signed Integer */
E_ZCL_INT8 = 0x28, // Signed 8 bit
E_ZCL_INT16,
E_ZCL_INT24,
E_ZCL_INT32,
E_ZCL_INT40,
E_ZCL_INT48,
E_ZCL_INT56,
E_ZCL_INT64,
/* Enumeration */
E_ZCL_ENUM8 = 0x30, // 8 Bit enumeration
E_ZCL_ENUM16,
/* Floating Point */
E_ZCL_FLOAT_SEMI = 0x38, // Semi precision
E_ZCL_FLOAT_SINGLE, // Single precision
E_ZCL_FLOAT_DOUBLE, // Double precision
/* String */
E_ZCL_OSTRING = 0x41, // Octet string
E_ZCL_CSTRING, // Character string
E_ZCL_LOSTRING, // Long octet string
E_ZCL_LCSTRING, // Long character string
/* Ordered Sequence */
E_ZCL_ARRAY = 0x48,
E_ZCL_STRUCT = 0x4c,
E_ZCL_SET = 0x50,
E_ZCL_BAG = 0x51,
/* Time */
E_ZCL_TOD = 0xe0, // Time of day
E_ZCL_DATE, // Date
E_ZCL_UTCT, // UTC Time
/* Identifier */
E_ZCL_CLUSTER_ID = 0xe8, // Cluster ID
E_ZCL_ATTRIBUTE_ID, // Attribute ID
E_ZCL_BACNET_OID, // BACnet OID
/* Miscellaneous */
E_ZCL_IEEE_ADDR = 0xf0, // 64 Bit IEEE Address
E_ZCL_KEY_128, // 128 Bit security key
/* Unknown */
E_ZCL_UNKNOWN = 0xff
} teZCL_ZCLAttributeType;
Parent topic:General Enumerations
Command Status (teZCL_CommandStatus)
The following enumerations are used to indicate the status of a command:
typedef enum
{
E_ZCL_CMDS_SUCCESS =0x00,
E_ZCL_CMDS_FAILURE,
E_ZCL_CMDS_NOT_AUTHORIZED =0x7e,
E_ZCL_CMDS_RESERVED_FIELD_NOT_ZERO,
E_ZCL_CMDS_MALFORMED_COMMAND =0x80,
E_ZCL_CMDS_UNSUP_CLUSTER_COMMAND,
E_ZCL_CMDS_UNSUP_GENERAL_COMMAND,
E_ZCL_CMDS_UNSUP_MANUF_CLUSTER_COMMAND,
E_ZCL_CMDS_UNSUP_MANUF_GENERAL_COMMAND,
E_ZCL_CMDS_INVALID_FIELD,
E_ZCL_CMDS_UNSUPPORTED_ATTRIBUTE,
E_ZCL_CMDS_INVALID_VALUE,
E_ZCL_CMDS_READ_ONLY,
E_ZCL_CMDS_INSUFFICIENT_SPACE,
E_ZCL_CMDS_DUPLICATE_EXISTS,
E_ZCL_CMDS_NOT_FOUND,
E_ZCL_CMDS_UNREPORTABLE_ATTRIBUTE,
E_ZCL_CMDS_INVALID_DATA_TYPE,
E_ZCL_CMDS_INVALID_SELECTOR,
E_ZCL_CMDS_WRITE_ONLY,
E_ZCL_CMDS_INCONSISTENT_STARTUP_STATE,
E_ZCL_CMDS_DEFINED_OUT_OF_BAND,
E_ZCL_CMDS_INCONSISTENT,
E_ZCL_CMDS_ACTION_DENIED,
E_ZCL_CMDS_TIMEOUT,
E_ZCL_CMDS_HARDWARE_FAILURE =0xc0,
E_ZCL_CMDS_SOFTWARE_FAILURE,
E_ZCL_CMDS_CALIBRATION_ERROR,
E_ZCL_CMDS_UNSUPPORTED_CLUSTER,
E_ZCL_CMDS_ENUM_END
} teZCL_CommandStatus;
The above enumerations are described in the table below.
Enumeration |
Description |
|---|---|
E_ZCL_CMDS_SUCCESS |
Command was successful |
E_ZCL_CMDS_FAILURE |
Command was unsuccessful |
E_ZCL_CMDS_NOT_AUTHORIZED |
Sender does not have authorisation to issue the command |
E_ZCL_CMDS_RESERVED_FIELD_NOT_ZERO |
A reserved field of command is not set to zero |
E_ZCL_CMDS_MALFORMED_COMMAND |
Command has missing fields or invalid field values |
E_ZCL_CMDS_UNSUP_CLUSTER_COMMAND |
The specified cluster has not been registered with the ZCL on the device |
E_ZCL_CMDS_UNSUP_GENERAL_COMMAND |
Command does not have a handler enabled in the zcl_options.h file |
E_ZCL_CMDS_UNSUP_MANUF_CLUSTER_COMMAND |
Manufacturer-specific cluster command is not sup-ported or has unknown manufacturer code |
E_ZCL_CMDS_UNSUP_MANUF_GENERAL_COMMAND |
Manufacturer-specific ZCL command is not sup-ported or has unknown manufacturer code |
E_ZCL_CMDS_INVALID_FIELD |
Command has field which contains invalid value |
E_ZCL_CMDS_UNSUPPORTED_ATTRIBUTE |
Specified attribute is not supported on the device |
E_ZCL_CMDS_INVALID_VALUE |
Specified attribute value is out of range or a reserved value |
E_ZCL_CMDS_READ_ONLY |
Attempt to write to read-only attribute |
E_ZCL_CMDS_INSUFFICIENT_SPACE |
Not enough memory space to perform requested operation |
E_ZCL_CMDS_DUPLICATE_EXISTS |
Attempt made to create a table entry that already exists in the target table |
E_ZCL_CMDS_NOT_FOUND |
Requested information cannot be found |
E_ZCL_CMDS_UNREPORTABLE_ATTRIBUTE |
Periodic reports cannot be produced for this attribute |
E_ZCL_CMDS_INVALID_DATA_TYPE |
Invalid data type specified for attribute |
E_ZCL_CMDS_INVALID_SELECTOR |
Incorrect selector for this attribute |
E_ZCL_CMDS_WRITE_ONLY |
Issuer of command does not have authorisation to read specified attribute |
E_ZCL_CMDS_INCONSISTENT_STARTUP_STATE |
Setting the specified values would put device into an inconsistent state on start-up |
E_ZCL_CMDS_DEFINED_OUT_OF_BAND |
Attempt has been made to write to attribute using an out-of-band method or not over-air |
E_ZCL_CMDS_HARDWARE_FAILURE |
Command was unsuccessful due to hardware failure |
E_ZCL_CMDS_SOFTWARE_FAILURE |
Command was unsuccessful due to software failure |
E_ZCL_CMDS_CALIBRATION_ERROR |
Error occurred during calibration |
E_ZCL_CMDS_UNSUPPORTED_CLUSTER |
The cluster is not supported |
Parent topic:General Enumerations
Report Attribute Status (teZCL_ReportAttributeStatus)
The following enumerations are used to indicate the status of a report attribute command.
typedef enum
{
E_ZCL_ATTR_REPORT_OK = 0x00,
E_ZCL_ATTR_REPORT_EP_MISMATCH,
E_ZCL_ATTR_REPORT_ADDR_MISMATCH,
E_ZCL_ATTR_REPORT_ERR
} teZCL_ReportAttributeStatus;
The above enumerations are described in the table below.
Enumeration |
Description |
|---|---|
E_ZCL_ATTR_REPORT_OK |
Indicates that report is valid |
E_ZCL_ATTR_REPORT_EP_MISMATCH |
Indicates that source endpoint does not match endpoint in mirror |
E_ZCL_ATTR_REPORT_ADDR_MISMATCH |
Indicates that source address does not match address in mirror |
E_ZCL_ATTR_REPORT_ERR |
Indicates that there is an error in the report |
Parent topic:General Enumerations
Security Level (teZCL_ZCLSendSecurity)
The following enumerations are used to indicate the security level for transmissions:
typedef enum
{
E_ZCL_SECURITY_NETWORK = 0x00,
E_ZCL_SECURITY_APPLINK,
E_ZCL_SECURITY_TEMP_APPLINK,
E_ZCL_SECURITY_ENUM_END
} teZCL_ZCLSendSecurity;
The above enumerations are described in the table below.
Enumeration |
Description |
|---|---|
E_ZCL_SECURITY_NETWORK |
Network-level security, using a network key |
E_ZCL_SECURITY_APPLINK |
Application-level security, using an application link key |
E_ZCL_SECURITY_TEMP_APPLINK |
Temporary application-level security. This option is for internal use only. This is used for situations in which an application link key is to be used temporarily. For example, it can be used for an individual communication. |
Parent topic:General Enumerations
Parent topic:Enumerations and Status Codes