nRF5 SDK for Thread and Zigbee v4.0.0
Data Structures | Macros | Typedefs | Functions
ZCL Identify cluster

Data Structures

struct  zb_zcl_identify_effect_req_s
 Structured representsation of Trigger effect command payload. More...
 
struct  zb_zcl_identify_effect_value_param_s
 Declare change Identify attribute for User Application. More...
 
struct  zb_zcl_identify_effect_user_app_schedule_e
 
struct  zb_zcl_identify_req_s
 Structured representation of Identify command payload. More...
 
struct  zb_zcl_identify_query_res_s
 Structured representation of Identify Query Response command payload. More...
 

Macros

#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_REQ(buffer, time, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb)
 Send Identify command. More...
 
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ(buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb)
 Send Identify Query command. More...
 
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_RES(buffer, time, addr, dst_addr_mode, dst_ep, ep, prfl_id, seq_num, aps_secured)
 Send Identify Query Response command. More...
 
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_REQ(data_ptr, buffer, status)
 Identify cluster Identify command payload structured read. More...
 
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_QUERY_RES(data_ptr, buffer, status)
 Identify cluster Identify Query Response command payload structured read. More...
 

Typedefs

typedef struct
zb_zcl_identify_req_s 
zb_zcl_identify_req_t
 Structured representation of Identify command payload.
 
typedef struct
zb_zcl_identify_query_res_s 
zb_zcl_identify_query_res_t
 Structured representation of Identify Query Response command payload.
 

Functions

zb_uint8_t zb_zcl_start_identifying (zb_uint8_t endpoint, zb_uint16_t timeout)
 Start identify process on given endpoint. More...
 
void zb_zcl_stop_identifying (zb_uint8_t endpoint)
 Stop identify process on given endpoint Complimentary function to zb_zcl_start_identifying. Used to force identify termination before timeout provided to zb_zcl_start_identifying is elapsed. More...
 
zb_uint8_t zb_zcl_is_identifying (zb_uint8_t endpoint)
 Indicates that endpoint supports Identify cluster and is identifying. More...
 

Identify cluster attributes

enum  zb_zcl_identify_attr_e { ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID = 0x0000 }
 Identify cluster attribute identifier. More...
 
#define ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE   0x0000
 Default value for Identify attribute.
 

Identify cluster command structures and definitions

enum  zb_zcl_identify_cmd_e { ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID = 0x00, ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_ID = 0x01, ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID = 0x40, ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_RSP_ID = 0x00 }
 Command identifiers for "Identify" cluster. More...
 
enum  zb_zcl_identify_trigger_effect_e {
  ZB_ZCL_IDENTIFY_EFFECT_ID_BLINK = 0x00, ZB_ZCL_IDENTIFY_EFFECT_ID_BREATHE = 0x01, ZB_ZCL_IDENTIFY_EFFECT_ID_OKAY = 0x02, ZB_ZCL_IDENTIFY_EFFECT_ID_CHANNEL_CHANGE = 0xb,
  ZB_ZCL_IDENTIFY_EFFECT_ID_FINISH_EFFECT = 0xfe, ZB_ZCL_IDENTIFY_EFFECT_ID_STOP = 0xff
}
 
enum  zb_zcl_identify_trigger_variant_e { ZB_ZCL_IDENTIFY_EFFECT_ID_VARIANT_DEFAULT = 0x00 }
 
typedef struct
zb_zcl_identify_effect_req_s 
zb_zcl_identify_effect_req_t
 Structured representsation of Trigger effect command payload.
 
#define ZB_ZCL_IDENTIFY_SEND_TRIGGER_VARIANT_REQ(buffer, addr, dst_addr_mode, dst_ep, ep, prof_id, def_resp, cb, effect_id, effect_var)
 Send Trigger effect command. More...
 
#define ZB_ZCL_IDENTIFY_GET_TRIGGER_VARIANT_REQ(data_ptr, buffer, status)
 Parses Trigger effect command. More...
 

Inform User App about ZCL Identify cluster command and change attributes.

Internal structures and define-procedure for inform User App about ZCL Identify cluster command and change attributes.

typedef struct
zb_zcl_identify_effect_value_param_s 
zb_zcl_identify_effect_value_param_t
 Declare change Identify attribute for User Application.
 
typedef struct
zb_zcl_identify_effect_user_app_schedule_e 
zb_zcl_identify_effect_user_app_schedule_t
 
#define ZB_ZCL_IDENTIFY_EFFECT_SCHEDULE_USER_APP(buffer, pcmd_info, effectId, effectVar)
 

Detailed Description

Identify cluster implementation supports Identify command and Identify Query request-response command pair. All these commands have simple payload. Both Identify and Identify Query request are being processed, and Identify Query response is being generated in ZCL internals.

Example
Identify sending:
ZB_ZCL_IDENTIFY_SEND_IDENTIFY_REQ(zcl_cmd_buf, TIME_TO_IDENTIFY,
DST_ADDR, DST_ADDR_MODE, DST_ENDPOINT, HA_SWITCH_ENDPOINT,
Identify Query request sending:
zcl_cmd_buf,
DST_ADDR,
DST_ADDR_MODE,
DST_ENDPOINT,
HA_SWITCH_ENDPOINT,
NULL);
Identify Query response parsing:

For more information see 5.5.3_groups, 5.4.2_identify samples

Macro Definition Documentation

#define ZB_ZCL_IDENTIFY_EFFECT_SCHEDULE_USER_APP (   buffer,
  pcmd_info,
  effectId,
  effectVar 
)
Value:
{ \
ZB_MEMMOVE(&(data->cmd_info), (pcmd_info), sizeof(zb_zcl_parsed_hdr_t)); \
data->param.effect_id = (effectId); \
data->param.effect_variant = (effectVar); \
ZB_SCHEDULE_CALLBACK(zb_zcl_identify_effect_invoke_user_app, (buffer)); \
}
Definition: zb_zcl_common.h:972
struct zb_zcl_identify_effect_user_app_schedule_e zb_zcl_identify_effect_user_app_schedule_t
#define ZB_BUF_GET_PARAM(buf, type)
Definition: zboss_api_buf.h:478
Definition: zb_zcl_identify.h:229
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_QUERY_RES (   data_ptr,
  buffer,
  status 
)
Value:
{ \
if (zb_buf_len((buffer)) != sizeof(zb_zcl_identify_query_res_t)) \
{ \
} \
else \
{ \
ZB_HTOLE16(&((data_ptr)->timeout), &(src_ptr->timeout)); \
} \
}
Definition: zb_zcl_common.h:325
struct zb_zcl_identify_query_res_s zb_zcl_identify_query_res_t
Structured representation of Identify Query Response command payload.
Structured representation of Identify Query Response command payload.
Definition: zb_zcl_identify.h:348
Definition: zb_zcl_common.h:324
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:341
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:388

Identify cluster Identify Query Response command payload structured read.

Parameters
data_ptr- pointer to a variable of type zb_zcl_identify_query_res_t
buffercontaining the packet (by pointer).
status- variable to put parse status to (see zb_zcl_parse_status_t).
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_REQ (   data_ptr,
  buffer,
  status 
)
Value:
{ \
if (zb_buf_len((buffer)) != sizeof(zb_zcl_identify_req_t)) \
{ \
} \
else \
{ \
ZB_HTOLE16(&((data_ptr)->timeout), &(src_ptr->timeout)); \
} \
}
Definition: zb_zcl_common.h:325
struct zb_zcl_identify_req_s zb_zcl_identify_req_t
Structured representation of Identify command payload.
Definition: zb_zcl_common.h:324
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:341
Structured representation of Identify command payload.
Definition: zb_zcl_identify.h:342
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:388

Identify cluster Identify command payload structured read.

Parameters
data_ptr- pointer to a variable of type zb_zcl_identify_req_t
buffercontaining the packet (by pointer).
status- variable to put parse status to (see zb_zcl_parse_status_t).
#define ZB_ZCL_IDENTIFY_GET_TRIGGER_VARIANT_REQ (   data_ptr,
  buffer,
  status 
)
Value:
{ \
if (zb_buf_len((buffer)) != sizeof(zb_zcl_identify_effect_req_t)) \
{ \
} \
else \
{ \
ZB_MEMCPY((data_ptr), src_ptr, sizeof(zb_zcl_identify_effect_req_t)); \
} \
}
Structured representsation of Trigger effect command payload.
Definition: zb_zcl_identify.h:156
Definition: zb_zcl_common.h:325
struct zb_zcl_identify_effect_req_s zb_zcl_identify_effect_req_t
Structured representsation of Trigger effect command payload.
Definition: zb_zcl_common.h:324
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:341
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:388

Parses Trigger effect command.

Attention
Assumes that ZCL header already cut.
Parameters
data_ptr- pointer to a variable of type zb_zcl_identify_effect_req_s.
buffercontaining the packet (by pointer).
status- variable to put parse status to (see zb_zcl_parse_status_t).
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ (   buffer,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  def_resp,
  cb 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ( \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1262
Definition: zb_zcl_identify.h:101
Definition: zb_zcl_common.h:205
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1678
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:128

Send Identify Query command.

Parameters
bufferto put packet to
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
def_resp- flag "Default response required"
cb- callback for getting command send status
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_RES (   buffer,
  time,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  seq_num,
  aps_secured 
)
Value:
{ \
ZB_ZCL_FINISH_N_SEND_PACKET_NEW(buffer, ptr, \
addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, NULL, aps_secured, \
ZB_FALSE, 0); \
}
#define ZB_ZCL_START_PACKET(zbbuf)
Initializes zb_buf_t buffer and returns pointer to the beginning of array.
Definition: zb_zcl_common.h:1344
#define ZB_ZCL_CONSTRUCT_COMMAND_HEADER(data_ptr, tsn, cmd_id)
Construct ZCL header.
Definition: zb_zcl_common.h:1219
Definition: zb_zcl_common.h:205
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1389
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:128
Definition: zb_zcl_identify.h:103
#define ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_RES_FRAME_CONTROL(buf_ptr)
Construct ZCL header frame control value for cluster-specific command response.
Definition: zb_zcl_common.h:1206
Definition: zb_types.h:112

Send Identify Query Response command.

Parameters
bufferto put packet to
timethe device will be identifying
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
seq_num- sequence number
aps_secured- APS sequrity mode
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_REQ (   buffer,
  time,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  def_resp,
  cb 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID); \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1262
Definition: zb_zcl_common.h:205
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1389
Definition: zb_zcl_identify.h:100
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1678
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:128

Send Identify command.

Parameters
bufferto put packet to
timethe device will be identifying
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
def_resp- flag "Default response required"
cb- callback for getting command send status
#define ZB_ZCL_IDENTIFY_SEND_TRIGGER_VARIANT_REQ (   buffer,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prof_id,
  def_resp,
  cb,
  effect_id,
  effect_var 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID); \
ZB_ZCL_PACKET_PUT_DATA8(ptr, (effect_id)); \
ZB_ZCL_PACKET_PUT_DATA8(ptr, (effect_var)); \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prof_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}
#define ZB_ZCL_PACKET_PUT_DATA8(ptr, val)
Put 8-bit value to packet.
Definition: zb_zcl_common.h:1370
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1262
Definition: zb_zcl_common.h:205
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1678
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:128
Definition: zb_zcl_identify.h:102

Send Trigger effect command.

Parameters
bufferto put packet to
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prof_id- profile identifier
def_resp- flag "Default response required"
cb- callback for getting command send status
effect_id- effect identify, see zb_zcl_identify_trigger_effect_e
effect_var- effect variant, see zb_zcl_identify_trigger_variant_e

Typedef Documentation

Struct for invoke User App & continue after

Enumeration Type Documentation

Identify cluster attribute identifier.

See also
ZCL spec, subclause 3.5.2.2
Enumerator
ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID 

Identify time attribute

Command identifiers for "Identify" cluster.

See also
ZCL spec, subclauses 3.5.2.3, 3.5.2.4
Enumerator
ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID 

Identify command

ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_ID 

Identify query command

ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID 

"Trigger effect" command identifier.

ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_RSP_ID 

Identify query response

Effect identifier enum

See also
ZCL spec 3.5.2.2.3.1
Enumerator
ZB_ZCL_IDENTIFY_EFFECT_ID_BLINK 

Effect identifier field value: Light is turned on/off once Effect identifier field value: Light turned on/off over 1 second and repeated 15 times

ZB_ZCL_IDENTIFY_EFFECT_ID_BREATHE 

Effect identifier field value: Colored light turns green for 1 second; non-colored light flashes twice

ZB_ZCL_IDENTIFY_EFFECT_ID_OKAY 

Effect identifier field value: Colored light turns orange for 8 seconds; non-colored light switches to maximum brightness for 0.5s and then minimum brightness for 7.5s

ZB_ZCL_IDENTIFY_EFFECT_ID_CHANNEL_CHANGE 

Effect identifier field value: Complete the current effect sequence before terminating. E.g., if in the middle of a breathe effect (as above), first complete the current 1s breathe effect and then terminate the effect

ZB_ZCL_IDENTIFY_EFFECT_ID_FINISH_EFFECT 

Effect identifier field value: Terminate the effect as soon as possible

Effect identifier enum

See also
ZCL spec 3.5.2.2.3.2
Enumerator
ZB_ZCL_IDENTIFY_EFFECT_ID_VARIANT_DEFAULT 

Effect variant field value: Default

Function Documentation

zb_uint8_t zb_zcl_is_identifying ( zb_uint8_t  endpoint)

Indicates that endpoint supports Identify cluster and is identifying.

Parameters
endpointnumber to analyze
Returns
ZB_TRUE if endpoint is in the "identifying" state, ZB_FALSE otherwise.
zb_uint8_t zb_zcl_start_identifying ( zb_uint8_t  endpoint,
zb_uint16_t  timeout 
)

Start identify process on given endpoint.

Parameters
endpoint- endpoint to start identifying on
timeout- time (in seconds) after which identifying will stop
void zb_zcl_stop_identifying ( zb_uint8_t  endpoint)

Stop identify process on given endpoint Complimentary function to zb_zcl_start_identifying. Used to force identify termination before timeout provided to zb_zcl_start_identifying is elapsed.

Parameters
endpointEndpoint

Documentation feedback | Developer Zone | Subscribe | Updated