Zigbee Protocol Controller 1.6.0
ZigPC Attribute Management Internals

Internal API for attribute management functionality. More...

Classes

struct  zigpc_attrmgmt_configure_status_record_t
 the structure representing a configure reporting response frame More...
 

Typedefs

typedef uint8_t configure_response_buffer_t[ZCL_CONFIGURE_STATUS_RESPONSE_SIZE]
 

Functions

sl_status_t zigpc_attrmgmt_build_configure_report_records (zcl_cluster_id_t cluster_id, std::vector< zigpc_zcl_configure_reporting_record_t > &record_list)
 Build list of ZCL Configure Report Records for a given cluster. More...
 
sl_status_t zigpc_attrmgmt_send_split_report_config_cmds (const zigbee_eui64_t eui64, zigbee_endpoint_id_t endpoint_id, zcl_cluster_id_t cluster_id, const std::vector< zigpc_zcl_configure_reporting_record_t > &records)
 Split a list of Attribute Report Configuration records into sets of ZIGPC_ATTRMGMT_REPORT_RECORDS_LIMIT_PER_MESSAGE sized messages (if needed) and deliver the configuration records to the destination endpoint. This is useful when configuring reports for a cluster that exceed the maximum ZCL packet size. More...
 
sl_status_t zigpc_attrmgmt_send_split_read_cmds (const zigbee_eui64_t eui64, zigbee_endpoint_id_t endpoint_id, zcl_cluster_id_t cluster_id, const std::vector< zcl_attribute_id_t > &attr_ids)
 Split a list of Attribute Read records into sets of ZIGPC_ATTRMGMT_READ_RECORDS_LIMIT_PER_MESSAGE sized ZCL frames (if needed) and send each ZCL frame to the destination endpoint. The splitting of the attribute read records allow frames to not exceed the maximum ZCL packet size. More...
 
sl_status_t zigpc_attrmgmt_get_next_poll_entry (zigbee_eui64_uint_t &eui64, zigbee_endpoint_id_t &endpoint_id, zcl_cluster_id_t &cluster_id)
 zigpc_attrmgmt_get_next_poll_entry Get the next poll entry to be sent More...
 
sl_status_t zigpc_attrmgmt_buffer_to_configure_status (const configure_response_buffer_t buffer, zigpc_attrmgmt_configure_status_record_t &record)
 zigpc_attrmgmt_buffer_to_configure_status Extract a configure report status record from a buffer of 4 bytes More...
 
sl_status_t zigpc_attrmgmt_buffer_to_configure_status_list (const uint8_t *buffer, size_t buffer_len, std::list< zigpc_attrmgmt_configure_status_record_t > &record_list)
 zigpc_attrmgmt_buffer_to_configure_status_list Extracts a series of records from a buffer of bytes More...
 

Variables

static const unsigned int ZCL_CONFIGURE_STATUS_RESPONSE_SIZE = 4
 

Detailed Description

Internal API for attribute management functionality.

Typedef Documentation

◆ configure_response_buffer_t

typedef uint8_t configure_response_buffer_t[ZCL_CONFIGURE_STATUS_RESPONSE_SIZE]

Function Documentation

◆ zigpc_attrmgmt_buffer_to_configure_status()

sl_status_t zigpc_attrmgmt_buffer_to_configure_status ( const configure_response_buffer_t  buffer,
zigpc_attrmgmt_configure_status_record_t record 
)

zigpc_attrmgmt_buffer_to_configure_status Extract a configure report status record from a buffer of 4 bytes

Parameters
buffer4-byte buffer where the record is stored
recorddestination reference to copy record
Returns
SL_STATUS_OK if the operation could complete

◆ zigpc_attrmgmt_buffer_to_configure_status_list()

sl_status_t zigpc_attrmgmt_buffer_to_configure_status_list ( const uint8_t *  buffer,
size_t  buffer_len,
std::list< zigpc_attrmgmt_configure_status_record_t > &  record_list 
)

zigpc_attrmgmt_buffer_to_configure_status_list Extracts a series of records from a buffer of bytes

Parameters
bufferbuffer of bytes containing configure status records
buffer_lenthe length of the above buffer
record_listthe reference to the list to store the records
Returns
SL_STATUS_OK if the buffer could be properly read

◆ zigpc_attrmgmt_build_configure_report_records()

sl_status_t zigpc_attrmgmt_build_configure_report_records ( zcl_cluster_id_t  cluster_id,
std::vector< zigpc_zcl_configure_reporting_record_t > &  record_list 
)

Build list of ZCL Configure Report Records for a given cluster.

Parameters
cluster_idZCL Cluster ID
record_listConfigure Reporting List to populate
Returns
sl_status_t SL_STATUS_OK if reportable attribute records were populated, if not SL_STATUS_NOT_SUPPORTED is returned

◆ zigpc_attrmgmt_get_next_poll_entry()

sl_status_t zigpc_attrmgmt_get_next_poll_entry ( zigbee_eui64_uint_t eui64,
zigbee_endpoint_id_t endpoint_id,
zcl_cluster_id_t cluster_id 
)

zigpc_attrmgmt_get_next_poll_entry Get the next poll entry to be sent

Parameters
eui64reference to store eui64 of next entry
endpoint_idreference to store endpoint of next entry
cluster_idreference to store cluster of next entry
Returns
SL_STATUS_OK if the information could be retrieved. SL_STATUS_EMPTY if no entries in the poll list, SL_STATUS_FAIL if some other error occurred

◆ zigpc_attrmgmt_send_split_read_cmds()

sl_status_t zigpc_attrmgmt_send_split_read_cmds ( const zigbee_eui64_t  eui64,
zigbee_endpoint_id_t  endpoint_id,
zcl_cluster_id_t  cluster_id,
const std::vector< zcl_attribute_id_t > &  attr_ids 
)

Split a list of Attribute Read records into sets of ZIGPC_ATTRMGMT_READ_RECORDS_LIMIT_PER_MESSAGE sized ZCL frames (if needed) and send each ZCL frame to the destination endpoint. The splitting of the attribute read records allow frames to not exceed the maximum ZCL packet size.

Parameters
eui64Targetted Zigbee device .
endpoint_idTargetted endpoint in device.
cluster_idTargetted ZCL cluster in endpoint.
attr_idsList of attribute IDs to read (and split if needed)
Returns
sl_status_t SL_STATUS_OK if the split and send operations are successful, SL_STATUS_NULL_POINTER if invalid arguments passed in, or another error if the zigpc_gateway send process fails.

◆ zigpc_attrmgmt_send_split_report_config_cmds()

sl_status_t zigpc_attrmgmt_send_split_report_config_cmds ( const zigbee_eui64_t  eui64,
zigbee_endpoint_id_t  endpoint_id,
zcl_cluster_id_t  cluster_id,
const std::vector< zigpc_zcl_configure_reporting_record_t > &  records 
)

Split a list of Attribute Report Configuration records into sets of ZIGPC_ATTRMGMT_REPORT_RECORDS_LIMIT_PER_MESSAGE sized messages (if needed) and deliver the configuration records to the destination endpoint. This is useful when configuring reports for a cluster that exceed the maximum ZCL packet size.

Parameters
eui64Targetted Zigbee device .
endpoint_idTargetted endpoint in device.
cluster_idTargetted ZCL cluster in endpoint.
record_listFull list of attribute report records to split if needed.
Returns
sl_status_t SL_STATUS_OK if the split and send operations are successful, SL_STATUS_NULL_POINTER if invalid arguments passed in, or another error if the zigpc_gateway send process fails.

Variable Documentation

◆ ZCL_CONFIGURE_STATUS_RESPONSE_SIZE

const unsigned int ZCL_CONFIGURE_STATUS_RESPONSE_SIZE = 4
static