Structures

This section details the structures used in the Touchlink Commissioning cluster (both Touchlink and Commissioning Utility parts).

tsZLL_CommissionEndpoint

This structure is used to hold endpoint information for a Touchlink application.

typedef struct
{
tsZCL_EndPointDefinition sEndPoint;
tsZLL_CommissionEndpointClusterInstances sClusterInstance;
#if (defined CLD_ZLL_COMMISSION) && (defined ZLL_COMMISSION_SERVER)
    tsCLD_ZllCommission sZllCommissionServerCluster;
    tsCLD_ZllCommissionCustomDataStructure      
                sZllCommissionServerCustomDataStructure;
#endif
#if (defined CLD_ZLL_COMMISSION) && (defined ZLL_COMMISSION_CLIENT)
    tsCLD_ZllCommission sZllCommissionClientCluster;
    tsCLD_ZllCommissionCustomDataStructure      
               sZllCommissionClientCustomDataStructure;
#endif
} tsZLL_CommissionEndpoint;

where:

  • sEndPoint is a ZCL structure containing information about the endpoint (refer to Section 6.1.1).

  • sClusterInstance is a structure containing information about the Touchlink Commissioning cluster instance on the endpoint (see Section 44.8.2).

  • For a Touchlink server, the following fields are used:

    • sZllCommissionServerCluster is the Touchlink Commissioning cluster structure (which contains no attributes).

    • sZllCommissionServerCustomDataStructure is a structure containing custom data for the cluster server (see Section 44.8.3).

  • For a Touchlink client, the following fields are used:

    • sZllCommissionClientClusteris the Touchlink Commissioning cluster structure (which contains no attributes).

    • sZllCommissionClientCustomDataStructure is a structure containing custom data for the cluster client (see Section 44.8.3).

Parent topic:Structures

tsZLL_CommissionEndpointClusterInstances

This structure holds information about the Touchlink Commissioning cluster instance on an endpoint.

typedef struct PACK
{
#if (defined CLD_ZLL_COMMISSION) && (defined ZLL_COMMISSION_SERVER)
    tsZCL_ClusterInstance sZllCommissionServer;
#endif
#if (defined CLD_ZLL_COMMISSION) && (defined ZLL_COMMISSION_CLIENT)
    tsZCL_ClusterInstance sZllCommissionClient;
#endif
} tsZLL_CommissionEndpointClusterInstances;

where:

  • s``ZllCommissionServer is a ZCL structure containing information about the Touchlink Commissioning cluster server instance (refer to Section 6.1.16).

  • s``ZllCommissionClient is a ZCL structure containing information about the Touchlink Commissioning cluster client instance (refer to Section 6.1.16).

Parent topic:Structures

tsCLD_ZllCommissionCustomDataStructure

This structure is used to hold the data for a Touchlink command received by a node.

typedef struct
{
    tsZCL_ReceiveEventAddressInterPan    sRxInterPanAddr;
    tsZCL_CallBackEvent                  sCustomCallBackEvent;
    tsCLD_ZllCommissionCallBackMessage   sCallBackMessage;
} tsCLD_ZllCommissionCustomDataStructure;

where:

  • RxInterPanAddr is a ZCL structure containing the Inter-PAN addresses of the source and destination nodes of the command.

  • sCustomCallBackEvent is the ZCL event structure for the command.

  • sCallBackMessage is a structure containing the command ID and payload (see Section 44.8.4).

Parent topic:Structures

tsCLD_ZllCommissionCallBackMessage

This structure contains the command ID and payload for a received Touchlink command.

typedef struct
{
    uint8   u8CommandId;
    union
    {
        tsCLD_ZllCommission_ScanReqCommandPayload                   
                                    *psScanReqPayload;
        tsCLD_ZllCommission_ScanRspCommandPayload                   
                                    *psScanRspPayload;
        tsCLD_ZllCommission_IdentifyReqCommandPayload               
                                    *psIdentifyReqPayload;
        tsCLD_ZllCommission_DeviceInfoReqCommandPayload             
                                    *psDeviceInfoReqPayload;
        tsCLD_ZllCommission_DeviceInfoRspCommandPayload             
                                    *psDeviceInfoRspPayload;
        tsCLD_ZllCommission_FactoryResetReqCommandPayload           
                                    *psFactoryResetPayload;
        tsCLD_ZllCommission_NetworkStartReqCommandPayload           
                                    *psNwkStartReqPayload;
        tsCLD_ZllCommission_NetworkStartRspCommandPayload           
                                    *psNwkStartRspPayload;
        tsCLD_ZllCommission_NetworkJoinRouterReqCommandPayload      
                                    *psNwkJoinRouterReqPayload;
        tsCLD_ZllCommission_NetworkJoinRouterRspCommandPayload      
                                    *psNwkJoinRouterRspPayload;
        tsCLD_ZllCommission_NetworkJoinEndDeviceReqCommandPayload   
                                    *psNwkJoinEndDeviceReqPayload;
        tsCLD_ZllCommission_NetworkJoinEndDeviceRspCommandPayload   
                                    *psNwkJoinEndDeviceRspPayload;
        tsCLD_ZllCommission_NetworkUpdateReqCommandPayload          
                                    *psNwkUpdateReqPayload;
    } uMessage;
} tsCLD_ZllCommissionCallBackMessage;

where:

  • u8CommandId is the command ID - enumerations are provided, as detailed in Section 44.6.1.

  • uMessage contains the payload of the command, where the structure used depends on the command ID (the structures are detailed in the sections below).

Parent topic:Structures

tsCLD_ZllCommission_ScanReqCommandPayload

This structure is used to hold the payload data for a Touchlink Scan Request command.

typedef struct
{
    uint32 u32TransactionId;
    uint8  u8ZigbeeInfo;
    uint8  u8ZllInfo;
} tsCLD_ZllCommission_ScanReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u8ZigbeeInfo is a bitmap of ZigBee information which indicates the ZigBee device type of the sending node and whether the radio receiver remains on when the node is idle. This information is inserted by the ZigBee stack.

  • u8ZllInfo is a bitmap indicating properties of the sending node, including whether the node is factory new, whether the node is able to assign addresses to other nodes and whether the node is able to initiate a link operation (supports Touchlink Commissioning cluster on the client side). This information is inserted automatically.

Parent topic:Structures

tsCLD_ZllCommission_ScanRspCommandPayload

This structure is used to hold the payload data for a Touchlink Scan Response command.

typedef struct
{
    uint32  u32TransactionId;
    uint8   u8RSSICorrection;
    uint8   u8ZigbeeInfo;
    uint8   u8ZllInfo;
    uint16  u16KeyMask;
    uint32  u32ResponseId;
    uint64  u64ExtPanId;
    uint8   u8NwkUpdateId;
    uint8   u8LogicalChannel;
    uint16  u16PanId;
    uint16  u16NwkAddr;
    uint8   u8NumberSubDevices;
    uint8   u8TotalGroupIds;
    uint8   u8Endpoint;
    uint16  u16ProfileId;
    uint16  u16DeviceId;
    uint8   u8Version;
    uint8   u8GroupIdCount;
} tsCLD_ZllCommission_ScanRspCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the response, which must take the same value as the identifier in the corresponding request.

  • u8RSSICorrection is the 8-bit RSSI correction offset for the node, in the range 0x00 to 0x20.

  • u8ZigbeeInfo is an 8-bit field containing the following ZigBee-related information:

    • Bits 1-0: Node type (00 - Co-ordinator, 01 - Router, 10 - End Device)

    • Bit 2: Rx on when idle (1 - On, 0 - Off)

    • Bits 7-3: Reserved

  • u8ZllInfo is an 8-bit field containing the following information:

    • Bit 0: Factory new (1 - Yes, 0 - No)

    • Bit 1: Address assignment capability (1 - Yes, 0 - No)

    • Bits 3-2: Reserved

    • Bit 4: Touchlink initiator (1 - Yes, 0 - No)

    • Bit 5: Touchlink priority request (1 - Yes, 0 - No)

    • Bits 7-6: Reserved

  • u16KeyMask is a 16-bit bitmap indicating which link key is installed on the node - only one bit should be set to ‘1’, corresponding to the key that is in use. The possible values and keys are:

    • 0x0001 (bit 0 set): Development key (defined by developer for use during application development)

    • 0x0010 (bit 4 set): Master key (obtained from the ZigBee Alliance after successful certification and agreement with the terms of the ‘ZLL Security Key Licence and Confidentialty Agreement’)

    • 0x8000 (bit 15 set): Certification key (defined in the ZLL Specification for use during development and during certification at test houses)

  • u``32ResponseId is a 32-bit random identifier for the response, used during network key transfer.

  • u64ExtPanId is the 64-bit Extended PAN ID of a network to which the node already belongs, if any (a zero value indicates no network membership).

  • u8NwkUpdateId is the current value of the Network Update Identifier on the node (see Section 44.4.3).

  • u8LogicalChannel is the number of the IEEE 802.15.4 radio channel used by a network to which the node already belongs, if any (a zero value indicates no network membership and therefore that no particular channel is used).

  • u16PanId is the 16-bit PAN ID of a network to which the node already belongs, if any (a zero value indicates no network membership).

  • u16NwkAddr is the 16-bit network address currently assigned to the node (the value 0xFFFF indicates that the node is ‘factory new’ and has no assigned network address).

  • u8NumberSubDevices is the number of ZigBee devices on the node.

  • u8TotalGroupIds is the total number of groups (of lights) supported on the node (across all devices).

  • u8Endpoint is number of the endpoint (in the range 1-240) on which the ZigBee device is resident (this field is only used when there is only one ZigBee device on the node).

  • u16ProfileId is the 16-bit identifier of the ZigBee application profile that is supported by the device (this field is only used when there is only one ZigBee device on the node).

  • u16DeviceId is the 16-bit Device Identifier supported by the device (this field is only used when there is only one ZigBee device on the node).

  • u8Version is an 8-bit version number for the device - the four least significant bits are from the Application Device Version field of the appropriate Simple Descriptor and the four most significant bits are zero (this field is only used when there is only one ZigBee device on the node).

  • u8GroupIdCount is the number of groups (of lights) supported by the device (this field is only used when there is only one ZigBee device on the node).

Parent topic:Structures

tsCLD_ZllCommission_DeviceInfoReqCommandPayload

This structure is used to hold the payload data for a Touchlink Device Information Request command.

typedef struct
{
    uint32 u32TransactionId;
    uint8  u8StartIndex;
} tsCLD_ZllCommission_DeviceInfoReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u8StartIndex specifies the index (starting from 0) of the first entry in the device table from which device information should be obtained.

Parent topic:Structures

tsCLD_ZllCommission_DeviceInfoRspCommandPayload

This structure is used to hold the payload data for a Touchlink Device Information Response command.

typedef struct
{
    uint32  u32TransactionId;
    uint8   u8NumberSubDevices;
    uint8   u8StartIndex;
    uint8   u8DeviceInfoRecordCount;
    tsCLD_ZllDeviceRecord asDeviceRecords[ZLL_MAX_DEVICE_RECORDS];
} tsCLD_ZllCommission_DeviceInfoRspCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the response, which must take the same value as the identifier in the corresponding request.

  • u8NumberSubDevices is the number of ZigBee devices on the node (as reported in the Scan Response).

  • u8StartIndex is the index (starting from 0) of the first entry in the device table from which device information has been obtained (this value should be as specified in the corresponding request).

  • u8DeviceInfoRecordCount indicates the number of device information records included in the response (in the range 0 to 5).

  • asDeviceRecords[] is an array, where each array element is a tsCLD_ZllDeviceRecord structure containing a device information record for one ZigBee device on the node.

Parent topic:Structures

tsCLD_ZllCommission_IdentifyReqCommandPayload

This structure is used to hold the payload data for a Touchlink Identify Request command.

typedef struct
{
    uint32  u32TransactionId;
    uint16  u16Duration;
} tsCLD_ZllCommission_IdentifyReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u16Duration specifies the length of time (in seconds) that the target node is to remain in identify mode. The possible values are:

    • 0x0000: Exit identify mode immediately

    • 0x0001–0xFFFE: Number of seconds to remain in identify mode

    • 0xFFFF: Remain in identify mode for the default time for the target node

      • If the target node is unable to provide accurate timings, it will attempt to remain in identify mode for as close to the requested time as possible

Parent topic:Structures

tsCLD_ZllCommission_FactoryResetReqCommandPayload

This structure is used to hold the payload data for a Touchlink Reset to Factory New Request command.

typedef struct
{
    uint32 u32TransactionId;
} tsCLD_ZllCommission_FactoryResetReqCommandPayload;

where u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

Parent topic:Structures

tsCLD_ZllCommission_NetworkStartReqCommandPayload

This structure is used to hold the payload data for a Touchlink Network Start Request command.

typedef struct
{
    uint32  u32TransactionId;
    uint64  u64ExtPanId;
    uint8   u8KeyIndex;
    uint8   au8NwkKey[16];
    uint8   u8LogicalChannel;
    uint16  u16PanId;
    uint16  u16NwkAddr;
    uint16  u16GroupIdBegin;
    uint16  u16GroupIdEnd;
    uint16  u16FreeNwkAddrBegin;
    uint16  u16FreeNwkAddrEnd;
    uint16  u16FreeGroupIdBegin;
    uint16  u16FreeGroupIdEnd;
    uint64  u64InitiatorIEEEAddr;
    uint16  u16InitiatorNwkAddr;
} tsCLD_ZllCommission_NetworkStartReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u64ExtPanId is the Extended PAN ID (EPID) of the new network (if set to zero, the target node will choose the EPID).

  • u8KeyIndex is a value indicating the type of security key used to encrypt the randomly generated network key in au8NwkKey. The valid values are as follows (all other values are reserved for future use):

    • 0: Development key, used during development before ZigBee certification

    • 4: Master key, used after successful ZigBee certification

    • 15: Certification key, used during ZigBee certification testing

  • au8NwkKey[16] is the 128-bit randomly generated network key encrypted using the key specified in u8KeyIndex.

  • u8LogicalChannel is the number of the IEEE 802.15.4 radio channel to be used by the network (if set to zero, the target node will choose the channel).

  • u16PanId is the PAN ID of the new network (if set to zero, the target node will choose the PAN ID).

  • u16NwkAddr is the 16-bit network (short) address assigned to the target node

  • u16GroupIdBegin is the start value of the range of group identifiers that the target node can use for its own endpoints (if set to zero, no range of group identifiers has been allocated).

  • u16GroupIdEnd is the end value of the range of group identifiers that the target node can use for its own endpoints (if set to zero, no range of group identifiers has been allocated).

  • u16FreeNwkAddrBegin is the start address of the range of network addresses that the target node can assign to other nodes (if set to zero, no range of network addresses has been allocated).

  • u16FreeNwkAddrEnd is the end address of the range of network addresses that the target node can assign to other nodes (if set to zero, no range of network addresses has been allocated).

  • u16FreeGroupIdBegin is the start value of the range of free group identifiers that the target node can assign to other nodes (if set to zero, no range of free group identifiers has been allocated).

  • u16FreeGroupIdEnd is the end value of the range of free group identifiers that the target node can assign to other nodes (if set to zero, no range of free group identifiers has been allocated).

  • u64InitiatorIEEEAddr is the IEEE (MAC) address of the local node (network initiator)

  • u16InitiatorNwkAddr is the network (short) address of the local node (network initiator)

Parent topic:Structures

tsCLD_ZllCommission_NetworkStartRspCommandPayload

This structure is used to hold the payload data for a Touchlink Network Start Response command.

typedef struct
{
    uint32  u32TransactionId;
    uint8   u8Status;
    uint64  u64ExtPanId;
    uint8   u8NwkUpdateId;
    uint8   u8LogicalChannel;
    uint16  u16PanId;
} tsCLD_ZllCommission_NetworkStartRspCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the response, which must take the same value as the identifier in the corresponding request.

  • u8Status indicates the outcome of the corresponding Network Start Request: 0x00 for success, 0x01 for failure.

  • u64ExtPanId is the Extended PAN ID (EPID) of the new network (this will be the value specified in the corresponding request or a value chosen by the local node).

  • u8NwkUpdateId is the current value of the Network Update Identifier, which will be set to zero for a new network (see Section 44.4.3).

  • u8LogicalChannel is the number of the IEEE 802.15.4 radio channel to be used by the network (this will be the value specified in the corresponding request or a value chosen by the local node).

  • u16PanId is the PAN ID of the new network (this will be the value specified in the corresponding request or a value chosen by the local node).

Parent topic:Structures

tsCLD_ZllCommission_NetworkJoinRouterReqCommandPayload

This structure is used to hold the payload data for a Touchlink Network Join Router Request command.

typedef struct
{
    uint32  u32TransactionId;
    uint64  u64ExtPanId;
    uint8   u8KeyIndex;
    uint8   au8NwkKey[16];
    uint8   u8NwkUpdateId;
    uint8   u8LogicalChannel;
    uint16  u16PanId;
    uint16  u16NwkAddr;
    uint16  u16GroupIdBegin;
    uint16  u16GroupIdEnd;
    uint16  u16FreeNwkAddrBegin;
    uint16  u16FreeNwkAddrEnd;
    uint16  u16FreeGroupIdBegin;
    uint16  u16FreeGroupIdEnd;
} tsCLD_ZllCommission_NetworkJoinRouterReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u64ExtPanId is the Extended PAN ID (EPID) of the network.

  • u8KeyIndex is a value indicating the type of security key used to encrypt the network key in au8NwkKey. The valid values are as follows (all other values are reserved for future use):

    • 0: Development key, used during development before ZigBee certification

    • 4: Master key, used after successful ZigBee certification

    • 15: Certification key, used during ZigBee certification testing

  • au8NwkKey[16] is the 128-bit network key encrypted using the key specified in u8KeyIndex.

  • u8NwkUpdateId is the current value of the Network Update Identifier. This identifier takes a value in the range 0x00 to 0xFF and is incremented when a network update has occurred which requires the network settings on the nodes to be changed.

  • u8LogicalChannel is the number of the IEEE 802.15.4 radio channel used by the network.

  • u16PanId is the PAN ID of the network

  • u16NwkAddr is the 16-bit network (short) address assigned to the target node

  • u16GroupIdBegin is the start value of the range of group identifiers that the target node can use for its own endpoints (if set to zero, no range of group identifiers has been allocated).

  • u16GroupIdEnd is the end value of the range of group identifiers that the target node can use for its own endpoints (if set to zero, no range of group identifiers has been allocated).

  • u16FreeNwkAddrBegin is the start address of the range of network addresses that the target node can assign to other nodes (if set to zero, no range of network addresses has been allocated).

  • u16FreeNwkAddrEnd is the end address of the range of network addresses that the target node can assign to other nodes (if set to zero, no range of network addresses has been allocated).

  • u16FreeGroupIdBegin is the start value of the range of free group identifiers that the target node can assign to other nodes (if set to zero, no range of free group identifiers has been allocated).

  • u16FreeGroupIdEnd is the end value of the range of free group identifiers that the target node can assign to other nodes (if set to zero, no range of free group identifiers has been allocated).

Parent topic:Structures

tsCLD_ZllCommission_NetworkJoinRouterRspCommandPayload

This structure is used to hold the payload data for a Touchlink Network Join Router Response command.

typedef struct
{
    uint32  u32TransactionId;
    uint8   u8Status;
} tsCLD_ZllCommission_NetworkJoinRouterRspCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the response, which must take the same value as the identifier in the corresponding request.

  • u8Status indicates the outcome of the corresponding Network Join Router Request: 0x00 for success, 0x01 for failure.

Parent topic:Structures

tsCLD_ZllCommission_NetworkJoinEndDeviceReqCommandPayload

This structure is used to hold the payload data for a Touchlink Network Join End Device Request command.

typedef struct
{
    uint32  u32TransactionId;
    uint64  u64ExtPanId;
    uint8   u8KeyIndex;
    uint8   au8NwkKey[16];
    uint8   u8NwkUpdateId;
    uint8   u8LogicalChannel;
    uint16  u16PanId;
    uint16  u16NwkAddr;
    uint16  u16GroupIdBegin;
    uint16  u16GroupIdEnd;
    uint16  u16FreeNwkAddrBegin;
    uint16  u16FreeNwkAddrEnd;
    uint16  u16FreeGroupIdBegin;
    uint16  u16FreeGroupIdEnd;
} tsCLD_ZllCommission_NetworkJoinEndDeviceReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u64ExtPanId is the Extended PAN ID (EPID) of the network.

  • u8KeyIndex is a value indicating the type of security key used to encrypt the network key in au8NwkKey. The valid values are as follows (all other values are reserved for future use):

    • 0: Development key, used during development before ZigBee certification

    • 4: Master key, used after successful ZigBee certification

    • 15: Certification key, used during ZigBee certification testing

  • au8NwkKey[16] is the 128-bit network key encrypted using the key specified in u8KeyIndex.

  • u8NwkUpdateId is the current value of the Network Update Identifier. This identifier takes a value in the range 0x00 to 0xFF and is incremented when a network update has occurred which requires the network settings on the nodes to be changed.

  • u8LogicalChannel is the number of the IEEE 802.15.4 radio channel used by the network.

  • u16PanId is the PAN ID of the network.

  • u16NwkAddr is the 16-bit network (short) address assigned to the target node.

  • u16GroupIdBegin is the start value of the range of group identifiers that the target node can use for its own endpoints (if set to zero, no range of group identifiers has been allocated).

  • u16GroupIdEnd is the end value of the range of group identifiers that the target node can use for its own endpoints (if set to zero, no range of group identifiers has been allocated).

  • u16FreeNwkAddrBegin is the start address of the range of network addresses that the target node can assign to other nodes (if set to zero, no range of network addresses has been allocated).

  • u16FreeNwkAddrEnd is the end address of the range of network addresses that the target node can assign to other nodes (if set to zero, no range of network addresses has been allocated).

  • u16FreeGroupIdBegin is the start value of the range of free group identifiers that the target node can assign to other nodes (if set to zero, no range of free group identifiers has been allocated).

  • u16FreeGroupIdEnd is the end value of the range of free group identifiers that the target node can assign to other nodes (if set to zero, no range of free group identifiers has been allocated).

Parent topic:Structures

tsCLD_ZllCommission_NetworkJoinEndDeviceRspCommandPayload

This structure is used to hold the payload data for a Touchlink Network Join End Device Response command.

typedef struct
{
    uint32 u32TransactionId;
    uint8   u8Status;
} tsCLD_ZllCommission_NetworkJoinEndDeviceRspCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the response, which must take the same value as the identifier in the corresponding request.

  • u8Status indicates the outcome of the corresponding Network Join End Device Request: 0x00 for success, 0x01 for failure.

Parent topic:Structures

tsCLD_ZllCommission_NetworkUpdateReqCommandPayload

This structure is used to hold the payload data for a Touchlink Network Update Request command.

typedef struct
{
 uint32  u32TransactionId;
 uint64  u64ExtPanId;
 uint8u8NwkUpdateId;
 uint8u8LogicalChannel;
 uint16  u16PanId;
 uint16  u16NwkAddr;
} tsCLD_ZllCommission_NetworkUpdateReqCommandPayload;

where:

  • u32TransactionId is the 32-bit Inter-PAN Transaction Identifier of the request. This is a random number generated and inserted automatically.

  • u64ExtPanId is the Extended PAN ID (EPID) of the network.

  • u8NwkUpdateId is the current value of the Network Update Identifier (see Section 44.4.3).

  • u8LogicalChannel is the number of the IEEE 802.15.4 radio channel used by the network.

  • u16PanId is the PAN ID of the network.

  • u16NwkAddr is the 16-bit network (short) address assigned to the target node.

Parent topic:Structures

tsCLD_ZllUtilityCustomDataStructure

This structure is used to hold custom data for a Commissioning Utility instance of the Touchlink Commissioning cluster.

typedef struct
{
 tsZCL_ReceiveEventAddress sRxAddr;
 tsZCL_CallBackEvent sCustomCallBackEvent;
 tsCLD_ZllUtilityCallBackMessage sCallBackMessage;
} tsCLD_ZllUtilityCustomDataStructure;

where:

  • sRxAddr is a ZCL structure containing the destination address of the command.

  • sCustomCallBackEvent is the ZCL event structure for the command.

  • sCallBackMessage is a structure containing the command ID and payload (see Section 44.8.19).

Parent topic:Structures

tsCLD_ZllUtilityCallBackMessage

This structure contains the command ID and payload for a received Commissioning Utility command.

typedef struct
{
 uint8u8CommandId;
 union
 {
  tsCLD_ZllUtility_EndpointInformationCommandPayload 
 *psEndpointInfoPayload;
  tsCLD_ZllUtility_GetGroupIdReqCommandPayload 
 *psGetGroupIdReqPayload;
  tsCLD_ZllUtility_GetGroupIdRspCommandPayload 
 *psGetGroupIdRspPayload;
  tsCLD_ZllUtility_GetEndpointListReqCommandPayload  
 *psGetEndpointlistReqPayload;
  tsCLD_ZllUtility_GetEndpointListRspCommandPayload  
 *psGetEndpointListRspPayload;
 } uMessage;
} tsCLD_ZllUtilityCallBackMessage;

where:

  • u8CommandId is the command ID - enumerations are provided, as detailed in Section 44.6.2.

  • uMessage contains the payload of the command, where the structure used depends on the command ID (the structures are detailed in the sections below).

Parent topic:Structures

tsCLD_ZllUtility_EndpointInformationCommandPayload

This structure is used to hold the payload data for a Commissioning Utility Endpoint Information command.

typedef struct
{
 uint64  u64IEEEAddr;
 uint16  u16NwkAddr;
 uint8u8Endpoint;
 uint16  u16ProfileID;
 uint16  u16DeviceID;
 uint8u8Version;
} tsCLD_ZllUtility_EndpointInformationCommandPayload;

where:

  • u64IEEEAddr is the IEEE (MAC) address of the local node.

  • u16NwkAddr is the network (short) address of the local node.

  • u8Endpoint is the number of the local endpoint (1-240).

  • u16ProfileID is the identifier of the ZigBee application profile supported on the local endpoint.

  • u16DeviceID is identifier of the ZigBee device on the local endpoint.

  • u8Version specifies the version number of the ZigBee device on the local endpoint.

Parent topic:Structures

Parent topic:Touchlink Commissioning Cluster