Zigbee Protocol Controller 1.6.0
attribute_map.h File Reference
#include <string.h>
#include "zigpc_common_zigbee.h"
#include "attribute_management_int.h"
#include "sl_status.h"

Go to the source code of this file.

Classes

struct  attribute_key
 the data structure used to access attributes when they are stored in this component. Each key is expected to correspond to one list of attributes. More...
 

Functions

sl_status_t register_node_attributes (const zigbee_node_t node)
 register_node_attributes - Registers the attributes of a node in a map for later retrieval. Should be called when a new node is available on the network. More...
 
sl_status_t register_endpoint_attributes (const zigbee_eui64_t eui64, const zigbee_endpoint_t endpoint)
 register_endpoint_attributes - Registers the attributes of an endpoint in a map for later retrieval. Should be called when a new endpoint is available on the network. More...
 
sl_status_t register_cluster_attributes (const zigbee_eui64_t eui64, const zigbee_endpoint_id_t endpoint_id, const zcl_cluster_id_t cluster_id)
 register_cluster_attributes - Registers the attributes of a cluster in a map for later retrieval. More...
 
sl_status_t register_attributes (const attribute_key key, zcl_attribute_t *attributes, unsigned int num_attributes)
 register_attributes - Directly store a list of attributes with a corresponding attribute_key More...
 
sl_status_t read_attributes (const attribute_key key, zcl_attribute_t *attributes, const unsigned int num_attributes)
 read_attributes - Retrieve a list of attributes corresponding to a single key More...
 
sl_status_t read_single_attribute (const attribute_key key, const zcl_attribute_id_t attribute_id, zcl_attribute_t *dest_attribute)
 read_single_attribute - Retrieve a single attribute More...
 
sl_status_t update_attributes (const attribute_key key, const zcl_attribute_t *attributes, unsigned int num_attributes)
 update_attributes - updates the value of stored attributes. A key should be registered before calling this function. More...
 
sl_status_t remove_attributes (const attribute_key key)
 remove_attributes - remove / deregister a list of attributes of a specific cluster More...
 

Function Documentation

◆ read_attributes()

sl_status_t read_attributes ( const attribute_key  key,
zcl_attribute_t attributes,
const unsigned int  num_attributes 
)

read_attributes - Retrieve a list of attributes corresponding to a single key

Parameters
key- the key, representing a specific cluster on an endpoint of a node which can be used to retrieve a list of attributes
attributes- the pointer where a list of attributes should be stored
num_attributes- the size of the above attributes list
Returns
SL_STATUS_OK if the list was able to successfully be retrieved

◆ read_single_attribute()

sl_status_t read_single_attribute ( const attribute_key  key,
const zcl_attribute_id_t  attribute_id,
zcl_attribute_t dest_attribute 
)

read_single_attribute - Retrieve a single attribute

Parameters
key- the key, representing a specific cluster on an endpoint of a node
attribute_id- the id of the specific attribute whose value should be read
dest_attribute- the pointer where the retrieved attribute should be stored
Returns
SL_STATUS_OK if the attribute was able to successfully be retrieved

◆ register_attributes()

sl_status_t register_attributes ( const attribute_key  key,
zcl_attribute_t attributes,
unsigned int  num_attributes 
)

register_attributes - Directly store a list of attributes with a corresponding attribute_key

Parameters
key- the key, representing a specific cluster on an endpoint of a node which can be used to retrieve a list of attributes
attributes- the pointer to a list of attributes that should be stored
num_attributes- the size of the above attributes list
Returns
SL_STATUS_OK if the list was able to successfully be stored

◆ register_cluster_attributes()

sl_status_t register_cluster_attributes ( const zigbee_eui64_t  eui64,
const zigbee_endpoint_id_t  endpoint_id,
const zcl_cluster_id_t  cluster_id 
)

register_cluster_attributes - Registers the attributes of a cluster in a map for later retrieval.

Parameters
eui64- the eui64 of the node hosting the specified endpoint
endpoint_id- the endpoint hosting the specified cluster
cluster_id- the cluster id whose attributes should be stored
Returns
SL_STATUS_OK if able to successfully add attributes of the specified cluster

◆ register_endpoint_attributes()

sl_status_t register_endpoint_attributes ( const zigbee_eui64_t  eui64,
const zigbee_endpoint_t  endpoint 
)

register_endpoint_attributes - Registers the attributes of an endpoint in a map for later retrieval. Should be called when a new endpoint is available on the network.

Parameters
node- the eui64 of the node hosting the endpoint
endpoint- the endpoint id of the specified endpoint, whose clusters' attributes should be stored
Returns
SL_STATUS_OK if able to successfully add attributes of clusters on the specified endpoint

◆ register_node_attributes()

sl_status_t register_node_attributes ( const zigbee_node_t  node)

register_node_attributes - Registers the attributes of a node in a map for later retrieval. Should be called when a new node is available on the network.

Parameters
node- the node whose attributes we wish to store for the first time
Returns
SL_STATUS_OK if able to successfully add attributes of clusters on the endpoints of the supplied node.

◆ remove_attributes()

sl_status_t remove_attributes ( const attribute_key  key)

remove_attributes - remove / deregister a list of attributes of a specific cluster

Parameters
key- the key, representing a specific cluster on an endpoint of a node
Returns
SL_STATUS_OK if the cluster's attributes were successfully removed

◆ update_attributes()

sl_status_t update_attributes ( const attribute_key  key,
const zcl_attribute_t attributes,
unsigned int  num_attributes 
)

update_attributes - updates the value of stored attributes. A key should be registered before calling this function.

Parameters
key- the key, representing a specific cluster on an endpoint of a node
attributes- the pointer with a list of attribute values to store
num_attributes- the size of the provided attribute list
Returns
SL_STATUS_OK if the new attribute list (and values) was able to be stored