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

Data Structures

struct  zb_zcl_identify_effect_req_s
 Structured representation 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_CLUSTER_REVISION_DEFAULT   ((zb_uint16_t)0x0002u)
 Default value for Identify cluster revision global attribute.
 
#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 = 0x0b,
  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 representation 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(buffer, 0, DST_ADDR, DST_ADDR_MODE, ENDPOINT_C, ENDPOINT_ED, ZB_AF_HA_PROFILE_ID, ZB_ZCL_ENABLE_DEFAULT_RESPONSE, NULL);
Identify Query request sending:
ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ(buffer, DST_ADDR, DST_ADDR_MODE, ENDPOINT_C, ENDPOINT_ED, ZB_AF_HA_PROFILE_ID, ZB_ZCL_ENABLE_DEFAULT_RESPONSE, NULL);

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:1145
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:466
Definition: zb_zcl_identify.h:228
#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:348
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:349
Definition: zb_zcl_common.h:347
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:362
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:380

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:348
struct zb_zcl_identify_req_s zb_zcl_identify_req_t
Structured representation of Identify command payload.
Definition: zb_zcl_common.h:347
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:362
Structured representation of Identify command payload.
Definition: zb_zcl_identify.h:343
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:380

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 representation of Trigger effect command payload.
Definition: zb_zcl_identify.h:155
Definition: zb_zcl_common.h:348
struct zb_zcl_identify_effect_req_s zb_zcl_identify_effect_req_t
Structured representation of Trigger effect command payload.
Definition: zb_zcl_common.h:347
#define zb_buf_begin(buf)
Definition: zboss_api_buf.h:362
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:380

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:1443
Definition: zb_zcl_identify.h:100
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1823
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:155
#define ZB_ZCL_CLUSTER_ID_IDENTIFY
Definition: zb_zcl_common.h:227

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
ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ(buffer, DST_ADDR, DST_ADDR_MODE, ENDPOINT_C, ENDPOINT_ED, ZB_AF_HA_PROFILE_ID, ZB_ZCL_ENABLE_DEFAULT_RESPONSE, NULL);
#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:1523
#define ZB_ZCL_CONSTRUCT_COMMAND_HEADER(data_ptr, tsn, cmd_id)
Construct ZCL header.
Definition: zb_zcl_common.h:1400
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1579
#define ZB_FALSE
Definition: zb_types.h:356
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:155
Definition: zb_zcl_identify.h:102
#define ZB_ZCL_CLUSTER_ID_IDENTIFY
Definition: zb_zcl_common.h:227
#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:1387

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 security 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:1443
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1579
Definition: zb_zcl_identify.h:99
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1823
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:155
#define ZB_ZCL_CLUSTER_ID_IDENTIFY
Definition: zb_zcl_common.h:227

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:1559
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1443
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1823
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:155
#define ZB_ZCL_CLUSTER_ID_IDENTIFY
Definition: zb_zcl_common.h:227
Definition: zb_zcl_identify.h:101

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
ZCL8 spec, subclause 3.5.2.2
Enumerator
ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID 

Identify time attribute

Command identifiers for "Identify" cluster.

See also
ZCL8 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
ZCL8 spec 3.5.2.3.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 variant enum

See also
ZCL8 spec 3.5.2.3.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