Z-Wave Protocol Controller Reference
zwave_association_toolbox.h
Go to the documentation of this file.
1/******************************************************************************
2 * # License
3 * <b>Copyright 2022 Silicon Laboratories Inc. www.silabs.com</b>
4 ******************************************************************************
5 * The licensor of this software is Silicon Laboratories Inc. Your use of this
6 * software is governed by the terms of Silicon Labs Master Software License
7 * Agreement (MSLA) available at
8 * www.silabs.com/about-us/legal/master-software-license-agreement. This
9 * software is distributed to you in Source Code format and is governed by the
10 * sections of the MSLA applicable to Source Code.
11 *
12 *****************************************************************************/
13
23#ifndef ZWAVE_ASSOCIATION_TOOLBOX_H
24#define ZWAVE_ASSOCIATION_TOOLBOX_H
25
26#include "attribute_store.h"
27#include "sl_status.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
49 attribute_store_type_t type);
50
63 association_group_id_t group_id);
64
79 association_t association);
80
92
107 association_group_id_t group_id);
108
121 association_group_id_t group_id,
122 association_t association);
123
136 association_group_id_t group_id,
137 association_t association);
138
152 association_group_id_t group_id,
153 association_t new_association);
154
169 association_group_id_t group_id,
170 association_t association);
171
186 association_group_id_t group_id,
187 association_t association);
188
201 association_group_id_t group_id);
202
215 association_group_id_t group_id);
216
230 association_group_id_t group_id);
231
243 association_group_id_t group_id);
244
256 association_group_id_t group_id);
257
270 association_group_id_t group_id,
271 association_t association);
272
283
296 association_t association);
297
310 association_t association);
311
323 zwave_node_id_t node_id_to_remove,
326
327#ifdef __cplusplus
328}
329#endif
330
331#endif //ZWAVE_ASSOCIATION_TOOLBOX_H
uint32_t sl_status_t
Definition: sl_status.h:139
sl_status_t add_reported_association(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t association)
Adds a reported association in a group in the Attribute Store.
sl_status_t remove_desired_association(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t association)
Removes a desired association in a group in the Attribute Store.
bool is_association_legal(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t association)
Checks if an association is legal or if we will get in trouble with cert if we establish it :-)
bool is_desired_group_full(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Checks if the desired value of an association group is full.
sl_status_t remove_all_reported_node_id_associations(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Removes all reported NodeID associations in a group in the Attribute Store.
sl_status_t add_desired_association(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t association)
Adds a desired association in a group in the Attribute Store.
sl_status_t remove_all_desired_associations(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Removes all desired association in a group in the Attribute Store. It will set the attribute to an AS...
attribute_store_node_t get_group_content_node(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Finds the Attribute Store Node for the group content.
bool is_association_in_group(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t association)
Checks if an association is already part of a group.
sl_status_t remove_all_reported_associations(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Removes all reported association in a group in the Attribute Store. It will set the attribute to an A...
sl_status_t force_add_desired_association(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t new_association)
Adds a desired association in a group in the Attribute Store and remove an existing association if ne...
association_group_count_t get_number_of_groups(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id)
Returns how many groups are supported by an endpoint.
sl_status_t remove_reported_association(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, association_t association)
Removes a reported association in a group in the Attribute Store.
void remove_desired_node_id_from_all_associations_in_network(zwave_node_id_t node_id)
Attempts to remove a NodeID for all associations groups in the current network.
bool is_reported_group_full(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Checks if the reported value of an association group is full.
association_group_capacity_t get_group_capacity(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id)
Checks in the attribute store the maximum number of associations for a group.
void remove_desired_node_id_from_all_associations(zwave_node_id_t node_id_to_remove, zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id)
Attempts to remove a NodeID for all associations groups for a given NodeID/Ep.
attribute_store_node_t get_group_child_node(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_group_id_t group_id, attribute_store_type_t type)
Get the Attribute store node of a certain type under an association Group ID.
void add_desired_association_in_all_groups(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_t association)
Attempts to add an Association for all associations groups for a given NodeID/Ep.
void remove_desired_association_in_all_groups(zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, association_t association)
Attempts to remove an Association for all associations groups for a given NodeID/Ep.
uint32_t association_group_count_t
‍Association Group count Type
Definition: zwave_command_class_association_types.h:53
uint32_t association_group_capacity_t
‍Association Group Capacity Type
Definition: zwave_command_class_association_types.h:51
uint8_t association_group_id_t
‍Association Group ID Type
Definition: zwave_command_class_association_types.h:49
uint8_t zwave_endpoint_id_t
Z-Wave Endpoint ID type.
Definition: zwave_node_id_definitions.h:125
uint16_t zwave_node_id_t
Z-Wave NodeID type.
Definition: zwave_node_id_definitions.h:84
SL Status Codes.
Association object.
Definition: zwave_command_class_association_types.h:39
const zwave_endpoint_id_t endpoint_id
const zwave_node_id_t node_id