Z-Wave Protocol Controller Reference
Z-Wave Network Management helpers

Internal helper functions used with Network Management. More...

Collaboration diagram for Z-Wave Network Management helpers:

Functions

void reset_nms_last_operation_data ()
 Resets all the variables sets in the nms struct. More...
 
bool we_are_alone_in_our_network ()
 Checks if we are alone in our network and returns true if so. More...
 
bool network_management_is_ready_for_a_new_operation ()
 Checks if all the conditions are fulfilled to start a new network management operation. (Set default operation excluded) More...
 
void network_management_refresh_cached_ids ()
 Asks the Z-Wave API to tell us our current HomeID and NodeID. More...
 
void network_management_refresh_cached_node_list ()
 Asks the Z-Wave API about the list of NodeIDs in our network. More...
 
void network_management_refresh_controller_capabilities_bitmask ()
 Asks the Z-Wave API to tell us what are the controller's capabilities in this network. More...
 
void network_management_refresh_network_information ()
 Quick helper function that will refresh all network information (HomeID, NodeID, Node list, controller capabilities) More...
 
void network_management_stop_ongoing_operations ()
 Makes sure that the Z-Wave API is not performing any network management operation. More...
 
bool is_command_class_in_nif (const zwave_command_class_t *nif, uint8_t nif_length, zwave_command_class_t command_class)
 Verifies if a Command Class is part of of NIF's command class list. More...
 
bool we_should_self_destruct ()
 Looks at the state of network S2 bootstrapping after being SmartStart included and decides if we should reset and leave the network. More...
 
void network_management_take_sis_role_if_no_suc_in_network ()
 Attempts to take the SUC/SIS Role, if there is no SUC in the network. More...
 

Detailed Description

Internal helper functions used with Network Management.

Internal helper functions used with Network Management

Function Documentation

◆ is_command_class_in_nif()

bool is_command_class_in_nif ( const zwave_command_class_t nif,
uint8_t  nif_length,
zwave_command_class_t  command_class 
)

Verifies if a Command Class is part of of NIF's command class list.

Parameters
nifPointer to a Z-Wave Command Class array
nif_lengthThe number of elements in the NIF pointer
command_classThe command class to search for.
Returns
true if the Command Class is in the NIF, false otherwise.
Here is the caller graph for this function:

◆ network_management_is_ready_for_a_new_operation()

bool network_management_is_ready_for_a_new_operation ( )

Checks if all the conditions are fulfilled to start a new network management operation. (Set default operation excluded)

We will check that we are not already doing something and that for example the Z-Wave Controller is not resetting.

Returns
true if we can start a new operation, false otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ network_management_refresh_cached_ids()

void network_management_refresh_cached_ids ( )

Asks the Z-Wave API to tell us our current HomeID and NodeID.

NOTE: Should be used only when necessary, as communicating with the Z-Wave API is slow and blocking.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ network_management_refresh_cached_node_list()

void network_management_refresh_cached_node_list ( )

Asks the Z-Wave API about the list of NodeIDs in our network.

NOTE: Should be used only when necessary, as communicating with the Z-Wave API is slow and blocking.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ network_management_refresh_controller_capabilities_bitmask()

void network_management_refresh_controller_capabilities_bitmask ( )

Asks the Z-Wave API to tell us what are the controller's capabilities in this network.

NOTE: Should be used only when necessary, as communicating with the Z-Wave API is slow and blocking.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ network_management_refresh_network_information()

void network_management_refresh_network_information ( )

Quick helper function that will refresh all network information (HomeID, NodeID, Node list, controller capabilities)

NOTE: Should be used only when necessary, as communicating with the Z-Wave API is slow and blocking.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ network_management_stop_ongoing_operations()

void network_management_stop_ongoing_operations ( )

Makes sure that the Z-Wave API is not performing any network management operation.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ network_management_take_sis_role_if_no_suc_in_network()

void network_management_take_sis_role_if_no_suc_in_network ( )

Attempts to take the SUC/SIS Role, if there is no SUC in the network.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset_nms_last_operation_data()

void reset_nms_last_operation_data ( )

Resets all the variables sets in the nms struct.

Use this when returning to IDLE or when swapping between Network Management Operations not to read data set by a previous operation.

Here is the caller graph for this function:

◆ we_are_alone_in_our_network()

bool we_are_alone_in_our_network ( )

Checks if we are alone in our network and returns true if so.

Returns
true if we are alone in our networks
false if at least another NodeID is part of the network
Here is the caller graph for this function:

◆ we_should_self_destruct()

bool we_should_self_destruct ( )

Looks at the state of network S2 bootstrapping after being SmartStart included and decides if we should reset and leave the network.

Returns
true if we should reset and leave the network, false if we are happy
Here is the caller graph for this function: