Structures

Custom Data Structure

The Identity cluster requires extra storage space to be allocated to be used by internal functions. The structure definition for this storage is shown below:

typedef struct
{
    tsZCL_ReceiveEventAddress                     sReceiveEventAddress;
    tsZCL_CallBackEvent                                   sCustomCallBackEvent;
    tsCLD_IdentifyCallBackMessage         sCallBackMessage;
        } tsCLD_IdentifyCustomDataStructure;

The fields are for internal use and no knowledge of them is required.

Parent topic:Structures

Custom Command Payloads

The following structure contains the payload for an Identify cluster custom command (sent using the function eCLD_IdentifyCommandIdentifyRequestSend()):

/* Identify request command payload */
typedef struct
{
    zuint16                 u16IdentifyTime;
} tsCLD_Identify_IdentifyRequestPayload;

where u16IdentifyTime is the amount of time, in seconds, for which the target device is to remain in identification mode. If this element is set to 0x0000 and the target device is in identification mode, the mode is terminated immediately.

Parent topic:Structures

Custom Command Responses

The following structure contains the response to a query whether a device is in identification mode (the original query is sent using the function eCLD_IdentifyCommandIdentifyQueryRequestSend()):

/* Identify query response command payload */
typedef struct
{
    zuint16                 u16Timeout;
} tsCLD_Identify_IdentifyQueryResponsePayload;

where u16Timeout is the amount of time, in seconds, that the responding device remains in identification mode.

Parent topic:Structures

EZ-mode Commissioning Command Payloads

The structures described below may be used when the Identify cluster is used with EZ-mode commissioning (which is part of the ZigBee Base Device functionality and is described in the ZigBee Devices User Guide (JNUG3131)).

‘EZ-Mode Invoke’ Command Payload

The following structure is used when sending an ‘EZ-mode Invoke’ command (using the eCLD_IdentifyEZModeInvokeCommandSend() function).

typedef struct
{
    zbmap8    u8Action;
} tsCLD_Identify_EZModeInvokePayload;

where u8Action is a bitmap specifying the EZ-mode commissioning actions to be performed on the destination device - a bit is set to ‘1’ if the corresponding action is required, or to ‘0’ if it is not required:

Bits

Action

0

Factory Reset - clears all bindings, group table entries, and the u8CommissionState attribute, and reverts to the ‘Factory Fresh’ settings

1

Network Steering - puts the device into the ‘Network Steering’ phase

2

Find and Bind - puts the device into the ‘Find and Bind’ phase

3 - 7

Reserved

‘Update Commission State’ Command Payload

The following structure is used when sending an ‘Update Commission State’ command (using the eCLD_IdentifyUpdateCommissionStateCommandSend() function), which requests an update to the value of the u8CommissionState attribute (for the definition of the attribute, refer to Section 11.2).

typedef struct
{
    zenum8    u8Action;
    zbmap8    u8CommissionStateMask;
} tsCLD_Identify_UpdateCommissionStatePayload;

where:

  • u8Action is a value specifying the action to perform (set or clear) on the u8CommissionState bits specified through u8CommissionStateMask:

    • 1: Set the specified bits to ‘1’.

    • 2: Clear the specified bits to ‘0’.

      • All other values are reserved.

  • u8CommissionStateMask is a bitmap in which the bits correspond to the bits of the u8CommissionState attribute. A bit of this field indicates whether the corresponding attribute bit is to be updated (according to the action specified in u8Action):

    • If a bit is set to ‘1’, the corresponding u8CommissionState bit should be updated.

    • If a bit is set to ‘0’, the corresponding u8CommissionState bit should not be updated.

Parent topic:Structures

Parent topic:Identify Cluster