nRF5 SDK for Thread and Zigbee v1.0.0
Data Structures | 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...
 

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...
 

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, 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, 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, dis_default_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 ZLL Identify cluster command and change attributes.

Internal structures and define-procedure for inform User App about ZLL 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
 

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

Internal structures and define-procedure for inform User App about ZLL 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_zll_identify_effect_user_app_schedule_e 
zb_zll_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:
ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ(
zcl_cmd_buf,
DST_ADDR,
DST_ADDR_MODE,
DST_ENDPOINT,
HA_SWITCH_ENDPOINT,
NULL);
Identify Query response parsing:
ZB_ZCL_IDENTIFY_GET_IDENTIFY_QUERY_RES(&payload, zcl_cmd_buf, st);

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_GET_BUF_PARAM((buffer), zb_zll_identify_effect_user_app_schedule_t); \
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, ZB_REF_FROM_BUF((buffer))); \
}
#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)); \
} \
}

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_TRIGGER_VARIANT_REQ (   buffer,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prof_id,
  dis_default_resp,
  cb,
  effect_id,
  effect_var 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET(buffer); \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp); \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_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, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}

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
dis_default_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
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
dis_default_resp- flag "Default response required"
cb- callback for getting command send status
effect_id- effect identifiy, 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

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
ZLL spec 6.3.1.2.1.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

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
ZLL spec 6.3.1.2.1.2
Enumerator
ZB_ZCL_IDENTIFY_EFFECT_ID_VARIANT_DEFAULT 

Effect variant field value: Default

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