nRF5 SDK for Thread and Zigbee v4.1.0
Data Structures | Macros | Typedefs | Enumerations
Configure reporting command sending and parsing

Data Structures

struct  zb_zcl_configure_reporting_req_clnt_s
 
struct  zb_zcl_configure_reporting_req_srv_s
 
union  zb_zcl_configure_reporting_req_u_s
 General type for Configure Reporting Request command. More...
 
struct  zb_zcl_configure_reporting_req_s
 One chunk of Configure reporting command request. More...
 
struct  zb_zcl_configure_reporting_res_s
 

Macros

#define ZB_ZCL_GENERAL_GET_NEXT_CONFIGURE_REPORTING_REQ(data_buf, config_rep_req)
 Parses Configure reporting command request and returns next Attribute reporting configuration record or NULL if there is no more data. More...
 
#define ZB_ZCL_GENERAL_GET_NEXT_CONFIGURE_REPORTING_RES(data_buf, config_rep_res)
 Parses Configure reporting response and returns next configure attribute status record or NULL if there is no more data. More...
 
#define ZB_ZCL_GENERAL_INIT_CONFIGURE_REPORTING_SRV_REQ(buffer, ptr, def_resp)
 Initialize Configure reporting command (report send case) More...
 
#define ZB_ZCL_GENERAL_INIT_CONFIGURE_REPORTING_CLI_REQ(buffer, ptr, def_resp)
 Initialize Configure reporting command (report receive case) More...
 
#define ZB_ZCL_GENERAL_ADD_SEND_REPORT_CONFIGURE_REPORTING_REQ(ptr, attr_id, attr_type, min_interval, max_interval, report_change)
 Add attribute reporting configuration record to command payload (report send case) More...
 
#define ZB_ZCL_GENERAL_ADD_RECV_REPORT_CONFIGURE_REPORTING_REQ(ptr, attr_id, timeout)
 Add attribute reporting configuration record to command payload (report receive case) More...
 
#define ZB_ZCL_GENERAL_SEND_CONFIGURE_REPORTING_REQ(buffer, ptr, addr, dst_addr_mode, dst_ep, ep, prfl_id, cluster_id, cb)
 Sends Configure reporting command. More...
 

Typedefs

typedef struct
zb_zcl_configure_reporting_req_clnt_s 
zb_zcl_configure_reporting_req_clnt_t
 
typedef struct
zb_zcl_configure_reporting_req_srv_s 
zb_zcl_configure_reporting_req_srv_t
 
typedef union
zb_zcl_configure_reporting_req_u_s 
zb_zcl_configure_reporting_req_u_t
 General type for Configure Reporting Request command. More...
 
typedef struct
zb_zcl_configure_reporting_req_s 
zb_zcl_configure_reporting_req_t
 One chunk of Configure reporting command request. More...
 
typedef enum
zb_zcl_configure_reporting_direction_value_e 
zb_zcl_configure_reporting_direction_value_t
 
typedef struct
zb_zcl_configure_reporting_res_s 
zb_zcl_configure_reporting_res_t
 

Enumerations

enum  zb_zcl_configure_reporting_direction_value_e { ZB_ZCL_CONFIGURE_REPORTING_SEND_REPORT = 0x00, ZB_ZCL_CONFIGURE_REPORTING_RECV_REPORT = 0x01 }
 

Detailed Description

Most of actions related to the attribute reporting configuration are implemented in ZCL internals.

As described in ZCL spec, subclause 2.4.7, Configure Reporting command has two forms:

Request to configure server for attribute reporting can be filled like in the snippet below:

cmd_ptr,
cmd_ptr, ZB_ZCL_ATTR_CUSTOM_ATTR_BOOL_ID, ZB_ZCL_ATTR_TYPE_BOOL, TEST_MIN_INTERVAL, TEST_MAX_INTERVAL, 0);
cmd_ptr, ZB_ZCL_ATTR_CUSTOM_ATTR_BOOL_ID, ZB_ZCL_ATTR_TYPE_BOOL, TEST_MIN_INTERVAL, TEST_MAX_INTERVAL, 0);
cmd_ptr, ZB_ZCL_ATTR_CUSTOM_ATTR_BOOL_ID, ZB_ZCL_ATTR_TYPE_BOOL, TEST_MIN_INTERVAL, TEST_MAX_INTERVAL, 0);
cmd_ptr, ZB_ZCL_ATTR_CUSTOM_ATTR_BOOL_ID, ZB_ZCL_ATTR_TYPE_BOOL, TEST_MIN_INTERVAL, TEST_MAX_INTERVAL, 0);
ZB_ZCL_GENERAL_SEND_CONFIGURE_REPORTING_REQ(zcl_cmd_buf, cmd_ptr, DST_ADDR, DST_ADDR_MODE,
DST_ENDPOINT, HA_SWITCH_ENDPOINT,

Other variant of the command can be filled in a similar way with ZB_ZCL_GENERAL_INIT_CONFIGURE_REPORTING_CLI_REQ() and ZB_ZCL_GENERAL_ADD_RECV_REPORT_CONFIGURE_REPORTING_REQ() macros, and scheduled for sending with ZB_ZCL_GENERAL_SEND_CONFIGURE_REPORTING_REQ() macro.

Configure reporting request record can be parsed as:

zb_bufid_t buffer = pointer_to_the_packet_buffer;
...
do
{
if (! req_record)
{
break;
}
process_request_record(req_record);
} while (1);

Configure Reporting response command will be generated automatically by ZCL internals. Response record to the Configure Reporting command can be parsed as:

If there are several Configure Reporting response records, they could be processed cyclically in the same manner as Configure Reporting request ones.

For more information see any HA sample

Macro Definition Documentation

#define ZB_ZCL_GENERAL_ADD_RECV_REPORT_CONFIGURE_REPORTING_REQ (   ptr,
  attr_id,
  timeout 
)
Value:
{ \
}
#define ZB_ZCL_PACKET_PUT_DATA8(ptr, val)
Put 8-bit value to packet.
Definition: zb_zcl_common.h:1370
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1389
Definition: zb_zcl_commands.h:1444

Add attribute reporting configuration record to command payload (report receive case)

Parameters
ptr- command buffer pointer
attr_id- attribute identifier
timeout- reporting timeout
#define ZB_ZCL_GENERAL_ADD_SEND_REPORT_CONFIGURE_REPORTING_REQ (   ptr,
  attr_id,
  attr_type,
  min_interval,
  max_interval,
  report_change 
)
Value:
{ \
ZB_ZCL_PACKET_PUT_DATA8(ptr, (attr_type)); \
ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, (min_interval)); \
ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, (max_interval)); \
if (zb_zcl_is_analog_data_type(attr_type)) \
{ \
(ptr) = zb_zcl_put_value_to_packet((ptr), (attr_type), report_change); \
} \
}
#define ZB_ZCL_PACKET_PUT_DATA8(ptr, val)
Put 8-bit value to packet.
Definition: zb_zcl_common.h:1370
Definition: zb_zcl_commands.h:1443
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1389
zb_uint8_t * zb_zcl_put_value_to_packet(zb_uint8_t *cmd_ptr, zb_uint8_t attr_type, zb_uint8_t *attr_value)
zb_bool_t zb_zcl_is_analog_data_type(zb_uint8_t attr_type)
Check whether type of ZCL attrbiute is analog.

Add attribute reporting configuration record to command payload (report send case)

Parameters
ptr- command buffer pointer
attr_id- attribute identifier
attr_type- type of the attribute
min_interval- reporting minimum interval
max_interval- reporting maximum interval
report_change- reportable value change
#define ZB_ZCL_GENERAL_GET_NEXT_CONFIGURE_REPORTING_REQ (   data_buf,
  config_rep_req 
)

Parses Configure reporting command request and returns next Attribute reporting configuration record or NULL if there is no more data.

If request contains invlid data, NULL is returned.

Parameters
data_buf- ID zb_bufid_t of a buffer containing Parses Configure reporting command data
config_rep_req- out pointer to zb_zcl_configure_reporting_req_t, containing Attribute reporting configuration record
Note
data_buf buffer should contain Configure reporting command payload, without ZCL header. Each parsed Attribute reporting configuration record is exctracted from intial data_buf buffer
#define ZB_ZCL_GENERAL_GET_NEXT_CONFIGURE_REPORTING_RES (   data_buf,
  config_rep_res 
)

Parses Configure reporting response and returns next configure attribute status record or NULL if there is no more data.

If response contains invlid data, NULL is returned.

Parameters
data_buf- ID zb_bufid_t of a buffer containing Configure reporting response data
config_rep_res- out pointer to zb_zcl_configure_reporting_res_t, containing Configure attribute status record
Note
data_buf buffer should contain Configure reporting response payload, without ZCL header. Each parsed Configure attribute status record is exctracted from intial data_buf buffer
#define ZB_ZCL_GENERAL_INIT_CONFIGURE_REPORTING_CLI_REQ (   buffer,
  ptr,
  def_resp 
)
Value:
{ \
ptr = ZB_ZCL_START_PACKET(buffer); \
ZB_ZCL_CONSTRUCT_GENERAL_COMMAND_REQ_FRAME_CONTROL_A( \
}
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1262
Definition: zb_zcl_common.h:897
#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
Standard profile command.
Definition: zb_zcl_common.h:867
#define ZB_ZCL_CONSTRUCT_COMMAND_HEADER(data_ptr, tsn, cmd_id)
Construct ZCL header.
Definition: zb_zcl_common.h:1219
Definition: zb_zcl_commands.h:84

Initialize Configure reporting command (report receive case)

Parameters
bufferto put packet to
ptr- command buffer pointer
def_resp- enable/disable default response
#define ZB_ZCL_GENERAL_INIT_CONFIGURE_REPORTING_SRV_REQ (   buffer,
  ptr,
  def_resp 
)
Value:
{ \
ptr = ZB_ZCL_START_PACKET(buffer); \
ZB_ZCL_CONSTRUCT_GENERAL_COMMAND_REQ_FRAME_CONTROL_A( \
}
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1262
#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
Standard profile command.
Definition: zb_zcl_common.h:867
Definition: zb_zcl_common.h:895
#define ZB_ZCL_CONSTRUCT_COMMAND_HEADER(data_ptr, tsn, cmd_id)
Construct ZCL header.
Definition: zb_zcl_common.h:1219
Definition: zb_zcl_commands.h:84

Initialize Configure reporting command (report send case)

Parameters
bufferto put packet to
ptr- command buffer pointer
def_resp- enable/disable default response
#define ZB_ZCL_GENERAL_SEND_CONFIGURE_REPORTING_REQ (   buffer,
  ptr,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  cluster_id,
  cb 
)
Value:
{ \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT(buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, cluster_id, cb); \
}
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1678

Sends Configure reporting command.

Parameters
bufferto put data to
ptr- pointer to the memory area to put data to
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
cluster_id- cluster identifier
cb- callback for getting command send status

Typedef Documentation

Configure reporting command, direction field values

u.clnt: as usual, cluster with client role sends this request to a server to configure reporting: how attribute should be reprted by a server

u.srv: as usual, cluster with server role sends this request to a client, to inform him how an attribute will be reported by a server

One chunk of Configure reporting command request.

Attribute reporting configuration record

General type for Configure Reporting Request command.

see zb_zcl_configure_reporting_req_srv_t see zb_zcl_configure_reporting_req_clnt_t

One chunk of Configure reporting response command

Attribute status record

Enumeration Type Documentation

Configure reporting command, direction field values

Enumerator
ZB_ZCL_CONFIGURE_REPORTING_SEND_REPORT 

Report should be send by a cluster.

ZB_ZCL_CONFIGURE_REPORTING_RECV_REPORT 

Report should be received by a cluster.


Documentation feedback | Developer Zone | Subscribe | Updated