Z-Wave Protocol Controller Reference
Firmware Update Command Class

Firmware Update Command Class transfer API functions. More...

Collaboration diagram for Firmware Update Command Class:

Modules

 Firmware Update Command Class internal types
 Internal types and definitions for the Firmware Update Command Class.
 

Functions

sl_status_t command_class_firmware_update_initiate_firmware_update (zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id, uint32_t firmware_target, unsigned long apply_after, const char *filename)
 Attempts to start a Firmware Update procedure for a node. More...
 
void command_class_firmware_update_abort_ongoing_firmware_operation (zwave_node_id_t node_id, zwave_endpoint_id_t endpoint_id)
 Abort any ongoing Firmware operation with a node. More...
 

Detailed Description

Firmware Update Command Class transfer API functions.

This module implement functions for the support and control of the Firmware Update Command Class.

The control part is sub-divided into 2 parts:

All control of the Firmware Update Command Class relies on the Attribute Store state. 2 Subtrees are used to keep track of everything.

The following subtree is used to store information about firmwares from supporting nodes:

Firmware Update information data model

The following subtree is used to keep track of firmware updates image transfers:

Firmware Update transfer data model

The following state diagram denotes how state transitions while doing firmware update:

Function Documentation

◆ command_class_firmware_update_abort_ongoing_firmware_operation()

void command_class_firmware_update_abort_ongoing_firmware_operation ( zwave_node_id_t  node_id,
zwave_endpoint_id_t  endpoint_id 
)

Abort any ongoing Firmware operation with a node.

This function will instruct the Firmware Update Command Class to return the firmware transfer to idle.

Parameters
node_idThe NodeID for which the Firmware Update transfer state must go to idle
endpoint_idThe Endpoint ID for which the Firmware Update must go to idle.
Here is the call graph for this function:

◆ command_class_firmware_update_initiate_firmware_update()

sl_status_t command_class_firmware_update_initiate_firmware_update ( zwave_node_id_t  node_id,
zwave_endpoint_id_t  endpoint_id,
uint32_t  firmware_target,
unsigned long  apply_after,
const char *  filename 
)

Attempts to start a Firmware Update procedure for a node.

This function will verify that that paramters are in accordance with the nodes capabilities and configure the Attribute Store state to initiate a Firmware Update request, and subsequent transfer.

Parameters
node_idThe NodeID for which the Firmware Update must be initiated
endpoint_idThe Endpoint ID for which the Firmware Update must take place.
firmware_targetThe Firmware target to upgrade at the end node.
apply_afterTimestamp of when to apply the firmware. If the node does not support subsequent activations, the firmware update attempt will be rejected and postponed.
filenameThe filename to open to access the content of the firmware
Returns
SL_STATUS_OK if the request was accepted and will be initiated. Other error codes otherwise.
Here is the call graph for this function: