Developing with ZBOSS for Zigbee
ZCL Poll Control cluster

Macros

#define ZB_ZCL_POLL_CONTROL_CHECKIN_INTERVAL_NO_CHECK_IN_VALUE   0x0000
 Value for stop Check-in process for Check-in Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_CHECKIN_INTERVAL_DEFAULT_VALUE   0x3840
 Default value for Check-in Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_CHECKIN_INTERVAL_MAX_VALUE   0x6e0000
 Maximum value for Check-in Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_LONG_POLL_INTERVAL_MIN_VALUE   ZB_PIM_MINIMUM_LONG_POLL_INTERVAL_IN_QS
 Minimum value for Long Poll Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_LONG_POLL_INTERVAL_DEFAULT_VALUE   ZB_PIM_DEFAULT_LONG_POLL_INTERVAL_IN_QS
 Default value for Long Poll Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_LONG_POLL_INTERVAL_MAX_VALUE   ZB_PIM_MAXIMUM_LONG_POLL_INTERVAL_IN_QS
 Maximum value for Long Poll Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_SHORT_POLL_INTERVAL_MIN_VALUE   ZB_PIM_MINIMUM_SHORT_POLL_INTERVAL_IN_QS
 Minimum value for Short Poll Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_SHORT_POLL_INTERVAL_DEFAULT_VALUE   ZB_PIM_DEFAULT_SHORT_POLL_INTERVAL_IN_QS
 Default value for Short Poll Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_SHORT_POLL_INTERVAL_MAX_VALUE   ZB_PIM_MAXIMUM_SHORT_POLL_INTERVAL_IN_QS
 Maximum value for Short Poll Interval attribute.
 
#define ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_MIN_VALUE   0x01
 Minimum value for Fast Poll Timeout attribute.
 
#define ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_DEFAULT_VALUE   0x0028
 Default value for Fast Poll Timeout attribute.
 
#define ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_MAX_VALUE   0xffff
 Maximum value for Fast Poll Timeout attribute.
 
#define ZB_ZCL_POLL_CONTROL_CHECKIN_MIN_INTERVAL_DEFAULT_VALUE   ((zb_uint32_t)0)
 Default value for CheckinIntervalMin attribute.
 
#define ZB_ZCL_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_DEFAULT_VALUE   ((zb_uint32_t)0)
 Default value for LongPollIntervalMin attribute.
 
#define ZB_ZCL_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_DEFAULT_VALUE   ((zb_uint16_t)0)
 Default value for FastPollTimeoutMax attribute.
 
#define ZB_ZCL_DECLARE_POLL_CONTROL_ATTRIB_LIST(attr_list, checkin_interval, long_poll_interval, short_poll_interval, fast_poll_timeout, checkin_interval_min, long_poll_interval_min, fast_poll_timeout_max)
 Declare attribute list for Poll Control cluster - server side. More...
 
#define ZB_ZCL_DECLARE_POLL_CONTROL_ATTRIB_LIST_CLIENT(attr_list)
 Declare attribute list for Poll Control cluster - client side. More...
 

Functions

void zb_zcl_poll_control_start (zb_uint8_t param, zb_uint8_t endpoint)
 Schedule poll control process on given endpoint First check-in will occur after one check-in interval Poll Controll process also starts automatically during ZCL periodic activities initialization if Poll Control server cluster is declared. More...
 
zb_uint8_t zb_zcl_poll_control_stop (void)
 Stop Poll control processing. More...
 
void zb_zcl_poll_control_start_check_in (zb_uint8_t param)
 Start Poll Control process on Server side. More...
 
void zb_zcl_poll_controll_register_cb (zb_callback_t cb)
 Register callback for Poll control cluster. More...
 

Poll Control cluster attribute identifiers

See also
HA spec, Poll Control Cluster 9.5.4.1

Note: These values were members of enum zb_zcl_poll_control_attr_e type but were converted to a set of macros due to MISRA violations.

#define ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID   0x0000U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID   0x0001U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID   0x0002U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID   0x0003U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID   0x0004U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID   0x0005U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID   0x0006U
 
#define ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID   0xefffU
 
#define ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID   0xeffeU
 

Detailed Description

All commands in the cluster have only request form, and carry no payload.

For more information see 5.51.2_poll_control_commands sample

Macro Definition Documentation

◆ ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID   0xeffeU

Status Data - custom non-spec parameters for server side

◆ ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID   0x0000U

Check-in Interval attribute, HA spec 9.5.4.1.1

◆ ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID   0x0006U

Fast Poll Timeout Max attribute, HA spec 9.5.4.1.6

◆ ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID   0x0003U

Fast Poll Timeout attribute, HA spec 9.5.4.1.

◆ ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID   0x0001U

Long Poll Interval attribute, HA spec 9.5.4.1.2

◆ ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID   0x0005U

Long Poll Interval Min attribute, HA spec 9.5.4.1.5

◆ ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID   0x0004U

Check-in Interval Min attribute, HA spec 9.5.4.1.4

◆ ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID   0x0002U

Short Poll Interval attribute, HA spec 9.5.4.1.3

◆ ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID

#define ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID   0xefffU

Status Data - custom non-spec parameters

◆ ZB_ZCL_DECLARE_POLL_CONTROL_ATTRIB_LIST

#define ZB_ZCL_DECLARE_POLL_CONTROL_ATTRIB_LIST (   attr_list,
  checkin_interval,
  long_poll_interval,
  short_poll_interval,
  fast_poll_timeout,
  checkin_interval_min,
  long_poll_interval_min,
  fast_poll_timeout_max 
)
Value:
zb_zcl_poll_control_srv_cfg_data_t srv_cfg_data_ctx_##attr_list = \
{ ZB_ZCL_POLL_CTRL_INVALID_ADDR, ZB_ZCL_POLL_INVALID_EP, 0, 0 }; \
ZB_ZCL_START_DECLARE_ATTRIB_LIST(attr_list) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID, (checkin_interval)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID, (long_poll_interval)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID, (short_poll_interval)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID, (fast_poll_timeout)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID, (checkin_interval_min)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID, (long_poll_interval_min)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID, (fast_poll_timeout_max)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID, &(srv_cfg_data_ctx_##attr_list)) \
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST

Declare attribute list for Poll Control cluster - server side.

Parameters
attr_list- attribute list name
checkin_interval- pointer to variable to store Check-in Interval attribute
long_poll_interval- pointer to variable to store Long Poll Interval attribute
short_poll_interval- pointer to variable to store Short Poll Interval attribute
fast_poll_timeout- pointer to variable to store Fast Poll Timeout attribute
checkin_interval_min- pointer to variable to store Check-in Interval Min attribute
long_poll_interval_min-pointer to variable to store Long Poll Interval Min attribute
fast_poll_timeout_max- pointer to variable to store Fast Poll Timeout Max attribute

◆ ZB_ZCL_DECLARE_POLL_CONTROL_ATTRIB_LIST_CLIENT

#define ZB_ZCL_DECLARE_POLL_CONTROL_ATTRIB_LIST_CLIENT (   attr_list)
Value:
zb_zcl_poll_control_client_status_t client_status_data_ctx_##attr_list = \
{ ZB_FALSE, ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_CLIENT_DEFAULT_VALUE }; \
ZB_ZCL_START_DECLARE_ATTRIB_LIST(attr_list) \
(&(client_status_data_ctx_##attr_list))) \
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST

Declare attribute list for Poll Control cluster - client side.

Parameters
attr_list- attribute list name

Function Documentation

◆ zb_zcl_poll_control_start()

void zb_zcl_poll_control_start ( zb_uint8_t  param,
zb_uint8_t  endpoint 
)

Schedule poll control process on given endpoint First check-in will occur after one check-in interval Poll Controll process also starts automatically during ZCL periodic activities initialization if Poll Control server cluster is declared.

Parameters
param- buffer for check-in command
endpoint- endpoint to start poll control process on

◆ zb_zcl_poll_control_start_check_in()

void zb_zcl_poll_control_start_check_in ( zb_uint8_t  param)

Start Poll Control process on Server side.

Parameters
param- buffer for Poll Process

◆ zb_zcl_poll_control_stop()

zb_uint8_t zb_zcl_poll_control_stop ( void  )

Stop Poll control processing.

Checking already scheduled will be canceled

Returns
reference to buffer which was previously reserved for check-in. It must be reused or explicitly freed.

◆ zb_zcl_poll_controll_register_cb()

void zb_zcl_poll_controll_register_cb ( zb_callback_t  cb)

Register callback for Poll control cluster.

This callback will be called when check-in command is sent.

Parameters
cb- pointer to callback
ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID
Definition: zb_zcl_poll_control.h:101
ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID
Definition: zb_zcl_poll_control.h:103
ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID
Definition: zb_zcl_poll_control.h:112
ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID
Definition: zb_zcl_poll_control.h:97
ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID
Definition: zb_zcl_poll_control.h:107
ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID
Definition: zb_zcl_poll_control.h:110
ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID
Definition: zb_zcl_poll_control.h:99
ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID
Definition: zb_zcl_poll_control.h:95
ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID
#define ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID
Definition: zb_zcl_poll_control.h:105
ZB_FALSE
#define ZB_FALSE
Definition: zb_types.h:366