Zigbee Protocol Controller 1.6.0
|
Public functions from the attribute store. It allows other components to manipulate the Attribute Store tree. and register callbacks for Attribute Store updates. More...
Modules | |
Attribute Store Configuration | |
Allows to configure how the attribute store behaves. | |
Attribute Store Type registration | |
Type registration to the Attribute Store. | |
Internal configuration functions | |
Internal functions for the attribute store configuration. | |
Classes | |
struct | attribute_changed_event |
structure that contains information about the current state of a given node in the attribute store. More... | |
Macros | |
#define | ATTRIBUTE_STORE_MAXIMUM_VALUE_LENGTH DATASTORE_ATTRIBUTE_VALUE_SIZE |
Maximum length for a value associated to an attribute. More... | |
#define | ATTRIBUTE_STORE_INVALID_NODE (attribute_store_node_t)0 |
Special attribute_store_node_t value indicating that it does not exist. More... | |
Typedefs | |
typedef datastore_attribute_id_t | attribute_store_node_t |
Handle to identify attribute store nodes. More... | |
typedef void(* | attribute_store_node_changed_callback_t) (attribute_store_node_t, attribute_store_change_t) |
Attribute store callback type for tree node updates. More... | |
typedef void(* | attribute_store_node_touch_callback_t) (attribute_store_node_t) |
Attribute store callback type for "touch" events. More... | |
typedef void(* | attribute_store_node_delete_callback_t) (attribute_store_node_t) |
Attribute store callback type for deletion events. More... | |
typedef struct attribute_changed_event | attribute_changed_event_t |
structure that contains information about the current state of a given node in the attribute store. More... | |
typedef void(* | attribute_store_node_update_callback_t) (attribute_changed_event_t *event_data) |
Attribute store callback type for tree node updates. More... | |
Enumerations | |
enum | attribute_store_change_t { ATTRIBUTE_CREATED , ATTRIBUTE_UPDATED , ATTRIBUTE_DELETED } |
Attribute Store type to indicate the modification type that triggered a callback. More... | |
enum | attribute_store_node_value_state_t { REPORTED_ATTRIBUTE , DESIRED_ATTRIBUTE , DESIRED_OR_REPORTED_ATTRIBUTE } |
This is the value state of a value. More... | |
Public functions from the attribute store. It allows other components to manipulate the Attribute Store tree. and register callbacks for Attribute Store updates.
#define ATTRIBUTE_STORE_INVALID_NODE (attribute_store_node_t)0 |
Special attribute_store_node_t value indicating that it does not exist.
#define ATTRIBUTE_STORE_MAXIMUM_VALUE_LENGTH DATASTORE_ATTRIBUTE_VALUE_SIZE |
Maximum length for a value associated to an attribute.
typedef struct attribute_changed_event attribute_changed_event_t |
structure that contains information about the current state of a given node in the attribute store.
typedef void(* attribute_store_node_changed_callback_t) (attribute_store_node_t, attribute_store_change_t) |
Attribute store callback type for tree node updates.
typedef void(* attribute_store_node_delete_callback_t) (attribute_store_node_t) |
Attribute store callback type for deletion events.
Handle to identify attribute store nodes.
typedef void(* attribute_store_node_touch_callback_t) (attribute_store_node_t) |
Attribute store callback type for "touch" events.
typedef void(* attribute_store_node_update_callback_t) (attribute_changed_event_t *event_data) |
Attribute store callback type for tree node updates.
This is the value state of a value.
attribute_store_node_t attribute_store_add_node | ( | attribute_store_type_t | type, |
attribute_store_node_t | parent_node | ||
) |
Add a new node in the current attribute store.
type | The type to assign to the new node. MUST be different than ATTRIBUTE_STORE_INVALID_ATTRIBUTE_TYPE |
parent_node | Parent node for the node to add. |
sl_status_t attribute_store_delete_node | ( | attribute_store_node_t | node | ) |
Delete a node and all its children from the attribute store.
node | The identifier of the node to delete. |
|
inlinestatic |
attribute_store_node_t attribute_store_get_first_parent_with_type | ( | attribute_store_node_t | node, |
attribute_store_type_t | parent_type | ||
) |
Traverse up the tree from a node and finds the first parent with a given type.
node | The Attribute Store node for which the parents will be searched for the given type |
parent_type | The type of the parent that we search |
sl_status_t attribute_store_get_node_attribute_value | ( | attribute_store_node_t | node, |
attribute_store_node_value_state_t | value_state, | ||
uint8_t * | value, | ||
uint8_t * | value_size | ||
) |
Get the attribute value of a node.
node | The node handle of the node for which attribute value is to be retrieved |
value_state | The attribute_store_node_value_state_t value state to retrieve from the node. (Desired or Reported) |
value | A uint8_t pointer to an array for which the value/value state will be written to. This array should be able to contain 255 bytes. |
value_size | Pointer to an uint8_t variable where the size of the value/payload written to the value pointer will be written. |
attribute_store_node_t attribute_store_get_node_child | ( | attribute_store_node_t | node, |
uint32_t | child_index | ||
) |
Get the node handle of a child of a node.
node | The tree handle of the node for which the child handle will be returned |
child_index | Value to indicate which child to find. 0 will match the first child, 1 the second child, etc. |
attribute_store_node_t attribute_store_get_node_child_by_type | ( | attribute_store_node_t | node, |
attribute_store_type_t | child_type, | ||
uint32_t | child_index | ||
) |
Get the node handle of a child of a node with a certain type.
node | The node handle of the node for which the child identifier will be written |
child_type | The attribute store type of the child. |
child_index | Value to indicate which child to find. 0 will match the first child (with that type), 1 the second child (with that type), etc. |
attribute_store_node_t attribute_store_get_node_child_by_value | ( | attribute_store_node_t | node, |
attribute_store_type_t | child_type, | ||
attribute_store_node_value_state_t | value_state, | ||
const uint8_t * | value, | ||
uint8_t | value_size, | ||
uint32_t | child_index | ||
) |
Get the node handle of a child of a node with a certain type and value.
node | The node handle of the node for which the child identifier will be written |
child_type | The attribute type of the child. |
value_state | The attribute_store_node_value_state_t value state to compare for the child. (Desired or Reported) |
value | A uint8_t pointer to an array for which the value/value state will be compared. |
value_size | The number of bytes to compare from the value pointer. |
child_index | Value to indicate which child to find. 0 will match the first child (with that type and value), 1 the second child (with that type and value), etc. |
size_t attribute_store_get_node_child_count | ( | attribute_store_node_t | node | ) |
Get the number of children of the given node.
node | The tree handle of the node for which the child handle will be returned |
size_t attribute_store_get_node_child_count_by_type | ( | attribute_store_node_t | node, |
attribute_store_type_t | child_type | ||
) |
Get the number of children of a certain type for a node.
node | The tree handle of the node for which the child with a type will be returned |
child_type | The attribute type of the children. |
attribute_store_node_t attribute_store_get_node_parent | ( | attribute_store_node_t | node | ) |
Get the node handle of the parent of a node.
node | The tree handle of the node for which the parent identifier will be returned |
size_t attribute_store_get_node_total_child_count | ( | attribute_store_node_t | node | ) |
Get the number of total children of the given node.
node | The tree handle of the node for which the child handle will be returned |
attribute_store_type_t attribute_store_get_node_type | ( | attribute_store_node_t | node | ) |
Get the type of a node.
node | The node handle of the node for which the type is to be returned |
uint8_t attribute_store_get_node_value_size | ( | attribute_store_node_t | node, |
attribute_store_node_value_state_t | value_state | ||
) |
Checks the size of the REPORTED or DESIRED value for a node.
node | The identifier of the node to check one of its value sizes |
value_state | The attribute_store_node_value_state_t value state to check. (Desired or Reported) |
attribute_store_node_t attribute_store_get_root | ( | ) |
Retrieve the root node of the tree.
bool attribute_store_is_node_a_child | ( | attribute_store_node_t | node, |
attribute_store_node_t | possible_parent | ||
) |
Verify whether a node is a child of another node.
node | The identifier of the node to verify if it is a child of the possible parent node. |
possible_parent | The identifier of the node to verify if it is a parent of the node |
void attribute_store_log | ( | void | ) |
Log the content of the Attribute Store tree using Unify Logging system.
void attribute_store_log_node | ( | attribute_store_node_t | node, |
bool | log_children | ||
) |
Log the content of the Attribute Store tree using Unify Logging system from a given node.
node | The node handle of the node for which the tree will be printed out. |
log_children | bool value indicating if children should be printed out as well. |
bool attribute_store_node_exists | ( | attribute_store_node_t | node | ) |
Verify whether a node is in the Attribute Store.
node | The identifier of the node to verify if it is present in the Attribute Store |
sl_status_t attribute_store_refresh_node_and_children_callbacks | ( | attribute_store_node_t | node | ) |
Invoking update of callbacks for the given node and all children nodes.
WARNING: Callbacks registered by DESIRED_ATTRIBUTE or DESIRED_OR_REPORTED_ATTRIBUTE will not be invoked.
node | The identifier of the node to update and all its children |
sl_status_t attribute_store_register_callback | ( | attribute_store_node_update_callback_t | callback_function | ) |
Register a callback function to any node change.
WARNING: Do not use this function, unless you are a component that really wants to know about almost all updates in the attribute store. See attribute_store_register_callback_by_type and attribute_store_register_callback_by_type_and_state
callback_function | The function to invoke when the node's value is updated. |
sl_status_t attribute_store_register_callback_by_type | ( | attribute_store_node_changed_callback_t | callback_function, |
attribute_store_type_t | type | ||
) |
Register a callback function to any node with a given type.
callback_function | The function to invoke when the node's value is updated. |
type | The attribute node type for which a callback will be registered. |
sl_status_t attribute_store_register_callback_by_type_and_state | ( | attribute_store_node_changed_callback_t | callback_function, |
attribute_store_type_t | type, | ||
attribute_store_node_value_state_t | value_state | ||
) |
Register a callback function to any node with a given type for a given value_state update.
callback_function | The function to invoke when the node's value is updated. |
type | The attribute node type for which a callback will be registered. |
value_state | The value-state that will trigger a callback when it's modified. |
sl_status_t attribute_store_register_delete_callback | ( | attribute_store_node_delete_callback_t | callback_function | ) |
Register a callback function that will be called when an attribute is deleted.
callback_function | The function to invoke when a node is deleted |
sl_status_t attribute_store_register_touch_notification_callback | ( | attribute_store_node_touch_callback_t | callback_function | ) |
Register a callback function that will be called on touch events.
NOTE: Use this function only if necessary, as it may trigger a lot of touched callbacks
callback_function | The function to invoke when a node desired or reported value is touched. |
sl_status_t attribute_store_set_node_attribute_value | ( | attribute_store_node_t | node, |
attribute_store_node_value_state_t | value_state, | ||
const uint8_t * | value, | ||
uint8_t | value_size | ||
) |
Set the attribute value of a node in the current attribute store tree.
node | The node handle for which the value must be updated. |
value_state | The attribute_store_node_value_state_t value state to write for the node. (Desired or Reported) |
value | A uint8_t pointer to an array containing the data to be written for the node. This array may contain up to 255 bytes. |
value_size | The number of bytes to read from the value pointer. |