Zigbee Protocol Controller 1.6.0
|
Provides group command handling and group membership publications. More...
Functions | |
bool | is_unid_endpoint_in_group (dotdot_unid_t unid, dotdot_endpoint_id_t endpoint_id, uint16_t group_id) |
Helper function indicating if a UNID/Endpoint is part of a group. More... | |
sl_status_t | unify_dotdot_attribute_store_group_cluster_init () |
Initialize the ZCL Group cluster server. More... | |
void | publish_group_list_cluster_attribute (attribute_store_node_t endpoint_id_node) |
Publishes the list of groups for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/Attributes/GroupList/Reported ucl/by-unid/<unid>/ep<id>/Groups/Attributes/GroupList/Desired. More... | |
void | publish_name_support_cluster_attribute (attribute_store_node_t endpoint_id_node) |
Publishes the Groups NameSupport attribute for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/Attributes/NameSupport/Reported ucl/by-unid/<unid>/ep<id>/Groups/Attributes/NameSupport/Desired. More... | |
void | publish_group_cluster_supported_commands (const std::string &unid, dotdot_endpoint_id_t endpoint_id) |
Publishes the Groups SupportedCommands attribute for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/SupportedCommands. More... | |
void | publish_group_cluster_cluster_revision (const std::string &unid, dotdot_endpoint_id_t endpoint_id) |
Publishes the Groups Cluster Revision for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/Attributes/ClusterRevision. More... | |
void | publish_group_name_cluster_attribute (attribute_store_node_t group_name_node) |
Publishes the Groups Name attribute for an unid/endpoint and Group ID ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Reported ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Desired
| |
void | unretain_group_name_publications (const std::string &unid, dotdot_endpoint_id_t endpoint_id, uint16_t group_id) |
Removes the Groups Name attribute publications for an unid/endpoint and Group ID ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Reported ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Desired. More... | |
Provides group command handling and group membership publications.
bool is_unid_endpoint_in_group | ( | dotdot_unid_t | unid, |
dotdot_endpoint_id_t | endpoint_id, | ||
uint16_t | group_id | ||
) |
Helper function indicating if a UNID/Endpoint is part of a group.
unid | The UNID of the node to verify |
endpoint_id | The endpoint ID of the node to look for. |
group_id | The group ID to look for in the unid/endpoint data |
void publish_group_cluster_cluster_revision | ( | const std::string & | unid, |
dotdot_endpoint_id_t | endpoint_id | ||
) |
Publishes the Groups Cluster Revision for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/Attributes/ClusterRevision.
If the passed UNID is the Protocol Controller's unid, no publications will be made.
[in] | unid | UNID to use in the topic |
[in] | endpoint_id | Endpoint ID to use in the topic |
void publish_group_cluster_supported_commands | ( | const std::string & | unid, |
dotdot_endpoint_id_t | endpoint_id | ||
) |
Publishes the Groups SupportedCommands attribute for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/SupportedCommands.
If the passed UNID is the Protocol Controller's unid, no publications will be made.
The list of commands is static and identical for all unid/endpoints, so no verification will be made and it will just be published as such.
[in] | unid | UNID to use in the topic |
[in] | endpoint_id | Endpoint ID to use in the topic |
void publish_group_list_cluster_attribute | ( | attribute_store_node_t | endpoint_id_node | ) |
Publishes the list of groups for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/Attributes/GroupList/Reported ucl/by-unid/<unid>/ep<id>/Groups/Attributes/GroupList/Desired.
endpoint_id_node | Attribute Store node of the endpoint |
void publish_group_name_cluster_attribute | ( | attribute_store_node_t | group_name_node | ) |
Publishes the Groups Name attribute for an unid/endpoint and Group ID ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Reported ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Desired
[in] | group_name_node | Attribute Store Node containing the group name string |
void publish_name_support_cluster_attribute | ( | attribute_store_node_t | endpoint_id_node | ) |
Publishes the Groups NameSupport attribute for an unid/endpoint ucl/by-unid/<unid>/ep<id>/Groups/Attributes/NameSupport/Reported ucl/by-unid/<unid>/ep<id>/Groups/Attributes/NameSupport/Desired.
[in] | endpoint_id_node | Attribute Store node of the endpoint |
sl_status_t unify_dotdot_attribute_store_group_cluster_init | ( | ) |
Initialize the ZCL Group cluster server.
It will publish
void unretain_group_name_publications | ( | const std::string & | unid, |
dotdot_endpoint_id_t | endpoint_id, | ||
uint16_t | group_id | ||
) |
Removes the Groups Name attribute publications for an unid/endpoint and Group ID ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Reported ucl/by-unid/<unid>/ep<id>/Groups/<GroupID>/Name/Desired.
If the passed UNID is the ZPC's unid, no publications will be made.
The list of commands is static and identical for all unid/endpoints, so no verification will be made and it will just be published as such.
[in] | unid | UNID to use in the topic |
[in] | endpoint_id | Endpoint ID to use in the topic |
[in] | group_id | Group ID to use in the topic |