Z-Wave Protocol Controller Reference
Z-Wave TX Groups

Assigns GroupIDs to a list of nodes. More...

Collaboration diagram for Z-Wave TX Groups:

Modules

 Z-Wave Tx Group internals
 Internal functions / class definitions for the Tx Group functionality.
 

Macros

#define ZWAVE_TX_INVALID_GROUP   ((zwave_multicast_group_id_t)0)
 Group ID returned in case of error. More...
 

Functions

sl_status_t zwave_tx_add_node_to_group (zwave_node_id_t node_id, zwave_multicast_group_id_t group_id)
 Adds a NodeID to a Group ID. More...
 
sl_status_t zwave_tx_assign_group (const zwave_nodemask_t nodes, zwave_multicast_group_id_t *group_id)
 Assigns/returns a Group ID to the list of NodeIDs. More...
 
sl_status_t zwave_tx_get_nodes (zwave_nodemask_t nodes, zwave_multicast_group_id_t group_id)
 Returns the list of NodeIDs part of a group. More...
 
sl_status_t zwave_tx_lock_group (zwave_multicast_group_id_t group_id)
 Instructs the Z-Wave TX Group not to alter the list of NodeIDs part of a group, until the group is unlocked again. More...
 
sl_status_t zwave_tx_unlock_group (zwave_multicast_group_id_t group_id)
 Instructs the Z-Wave TX Group that the list of NodeIDs part of a group can be modified. More...
 
bool zwave_tx_is_group_locked (zwave_multicast_group_id_t group_id)
 Verifies if a group is locked. More...
 
void zwave_tx_group_log (zwave_multicast_group_id_t group_id)
 Logs the content / state of the group using sl_log. More...
 

Detailed Description

Assigns GroupIDs to a list of nodes.

Group Identifiers are assigned to a set of nodes, and can be used to trigger transmissions to the list of nodes.

Macro Definition Documentation

◆ ZWAVE_TX_INVALID_GROUP

#define ZWAVE_TX_INVALID_GROUP   ((zwave_multicast_group_id_t)0)

Group ID returned in case of error.

Function Documentation

◆ zwave_tx_add_node_to_group()

sl_status_t zwave_tx_add_node_to_group ( zwave_node_id_t  node_id,
zwave_multicast_group_id_t  group_id 
)

Adds a NodeID to a Group ID.

This function should only be used at initialization to restore groups.

Parameters
node_idNodemask for the list of nodes for which a GroupID is needed.
[out]group_idthe Group ID assigned for the list of nodes.
Returns
SL_STATUS_OK if the group was created/found and returned in the group_id pointer. SL_STATUS_FAIL if the nodes cannot be part of the same group and the group_id variable is not to be used.
Here is the caller graph for this function:

◆ zwave_tx_assign_group()

sl_status_t zwave_tx_assign_group ( const zwave_nodemask_t  nodes,
zwave_multicast_group_id_t group_id 
)

Assigns/returns a Group ID to the list of NodeIDs.

The following checks must be performed by the application before grouping nodes:

  1. Are the nodes all included with the same protocol
  2. Do the nodes share the same highest granted class (S0/Non-secure are accepted)
Parameters
nodesNodemask for the list of nodes for which a GroupID is needed.
[out]group_idthe Group ID assigned for the list of nodes.
Returns
SL_STATUS_OK if the group was created/found and returned in the group_id pointer. SL_STATUS_FAIL if the nodes cannot be part of the same group and the group_id variable is not to be used.

◆ zwave_tx_get_nodes()

sl_status_t zwave_tx_get_nodes ( zwave_nodemask_t  nodes,
zwave_multicast_group_id_t  group_id 
)

Returns the list of NodeIDs part of a group.

Parameters
[out]nodesNodemask for the list of nodes that are part of a group
group_idThe Group ID for which we want the list of nodes.
Returns
SL_STATUS_OK if the list of nodes was copied to the nodes nodemask. SL_STATUS_NOT_FOUND if the GroupID is empty or does not exist.
Here is the caller graph for this function:

◆ zwave_tx_group_log()

void zwave_tx_group_log ( zwave_multicast_group_id_t  group_id)

Logs the content / state of the group using sl_log.

Parameters
group_idThe multicast group to log

◆ zwave_tx_is_group_locked()

bool zwave_tx_is_group_locked ( zwave_multicast_group_id_t  group_id)

Verifies if a group is locked.

Parameters
group_idThe multicast group id to verify
Returns
true if the group is locked. false if the group does not exist or is unlocked.

◆ zwave_tx_lock_group()

sl_status_t zwave_tx_lock_group ( zwave_multicast_group_id_t  group_id)

Instructs the Z-Wave TX Group not to alter the list of NodeIDs part of a group, until the group is unlocked again.

This function should be called when before transmitting the first Multicast message. The unlock function should be called after the last follow up has been sent out.

Parameters
group_idThe multicast group to lock for changes.
Returns
SL_STATUS_OK if the group is locked. SL_STATUS_NOT_FOUND if there is an issue with the Group ID.
Here is the caller graph for this function:

◆ zwave_tx_unlock_group()

sl_status_t zwave_tx_unlock_group ( zwave_multicast_group_id_t  group_id)

Instructs the Z-Wave TX Group that the list of NodeIDs part of a group can be modified.

This function should be called when before transmitting the first Multicast message. The unlock function should be called after the last follow up has been sent out.

Parameters
group_idThe multicast group to unlock and allow to be updated
Returns
SL_STATUS_OK if the group is unlocked. SL_STATUS_NOT_FOUND if there is an error with the Group ID.
Here is the caller graph for this function: