Ota Broadcast Bootloader Server Plugin

Macros

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_MAX_STACK_ERRORS
 The number of consecutive stack message submission errors or stack-related errors, such as CCA failures, after which the plugin gives up. More...
 
#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_MAX_UNICAST_ERRORS
 The number of consecutive unicast attempts after which a target is declared unreachable. Legal values for this are in the [0,7] range. More...
 
#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_RESPONSE_TIMEOUT_MS
 The time in milliseconds after which the server gives up waiting for a response from a client. More...
 
#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_MAX_BROADCAST_ROUNDS
 The maximum number of image broadcast rounds the server performs before declaring an image distribution process failed. More...
 

Functions

EmberAfOtaBootloaderStatus emberAfPluginOtaBootloaderServerInitiateImageDistribution (uint32_t imageSize, uint8_t imageTag, EmberNodeId *targetList, uint16_t targetListLength)
 Initiates the image distribution process. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API at any time during the image distribution process to check the status of each target. More...
 
EmberAfOtaBootloaderStatus emberAfPluginBootloaderServerInitiateRequestTargetsStatus (EmberNodeId *targetList, uint16_t targetListLength, uint8_t applicationServerStatus)
 Initiates the process to request the status of a set of target devices. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API at any time during the target status request process to check the status of each target. More...
 
EmberAfOtaBootloaderStatus emberAfPluginBootloaderServerInitiateRequestTargetsBootload (uint32_t bootloadDelayMs, uint8_t imageTag, EmberNodeId *targetList, uint16_t targetListLength)
 Starts the process where a server requests a set of target devices to initiate the bootload of a received image at some point in the future. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API at any time during the bootload request process to check the status of each target. More...
 
EmberAfOtaBootloaderTargetStatus emberAfPluginBootloaderServerGetTargetStatus (EmberNodeId targetId, uint8_t *applicationTargetStatus)
 Retrieves the status of an individual target in the distribution list. More...
 
EmberAfOtaBootloaderStatus emberAfPluginOtaBootloaderServerAbortCurrentProcess (void)
 Aborts the ongoing process (image distribution, status request or bootload request). Note that aborting a bootload request process likely results in some targets performing the bootload while some others do not. More...
 
bool emberAfPluginOtaBootloaderServerGetImageSegmentCallback (uint32_t startIndex, uint32_t endIndex, uint8_t imageTag, uint8_t *imageSegment)
 A callback invoked by the OTA Bootloader Server plugin during an image distribution process to retrieve a contiguous segment of the image being distributed. More...
 
void emberAfPluginOtaBootloaderServerImageDistributionCompleteCallback (EmberAfOtaBootloaderStatus status)
 A callback invoked by the OTA Bootloader Server plugin when the image distribution process is terminated. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API to retrieve the status reported by each target device. More...
 
void emberAfPluginBootloaderServerRequestTargetsStatusCompleteCallback (EmberAfOtaBootloaderStatus status)
 A callback invoked by the OTA Bootloader Server plugin when bootload request process has completed. Within this callback, the application should use the ::emberAfPluginBoootloaderServerGetTargetStatus() API to retrieve the status and application status reported by each target. More...
 
void emberAfPluginBootloaderServerRequestTargetsBootloadCompleteCallback (EmberAfOtaBootloaderStatus status)
 A callback invoked by the OTA Bootloader Server plugin when a bootload request process has completed. Within this callback, the application should use the ::emberAfPluginBoootloaderServerGetTargetStatus() API to retrieve the status and the application status reported by each target. More...
 

Detailed Description

See ota-broadcast-bootloader-server.h for source code.

Macro Definition Documentation

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_MAX_BROADCAST_ROUNDS

The maximum number of image broadcast rounds the server performs before declaring an image distribution process failed.

Definition at line 36 of file ota-broadcast-bootloader-server.h.

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_MAX_STACK_ERRORS

The number of consecutive stack message submission errors or stack-related errors, such as CCA failures, after which the plugin gives up.

Definition at line 18 of file ota-broadcast-bootloader-server.h.

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_MAX_UNICAST_ERRORS

The number of consecutive unicast attempts after which a target is declared unreachable. Legal values for this are in the [0,7] range.

Definition at line 24 of file ota-broadcast-bootloader-server.h.

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_SERVER_RESPONSE_TIMEOUT_MS

The time in milliseconds after which the server gives up waiting for a response from a client.

Definition at line 30 of file ota-broadcast-bootloader-server.h.

Function Documentation

EmberAfOtaBootloaderTargetStatus emberAfPluginBootloaderServerGetTargetStatus ( EmberNodeId  targetId,
uint8_t *  applicationTargetStatus 
)

Retrieves the status of an individual target in the distribution list.

Parameters
targetIdThe node ID of the target device whose status is being requested.
applicationTargetStatusThe application status reported by the client side application. This parameter is valid only for certain return status codes (see return status documentation).
Returns
An EmberAfOtaBootloaderTargetStatus value of:
EmberAfOtaBootloaderStatus emberAfPluginBootloaderServerInitiateRequestTargetsBootload ( uint32_t  bootloadDelayMs,
uint8_t  imageTag,
EmberNodeId targetList,
uint16_t  targetListLength 
)

Starts the process where a server requests a set of target devices to initiate the bootload of a received image at some point in the future. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API at any time during the bootload request process to check the status of each target.

Parameters
bootloadDelayMsThe delay in milliseconds after which all the targets should perform an image bootload.
imageTagA 1-byte tag that identifies the image to be bootloaded at the target devices.
targetListAn array of EmberNodeId indicating the node IDs of the target devices that is requested to bootload an image.
targetListLengthThe length of the passed target list.
Returns
An EmberAfOtaBootloaderStatus value of:
EmberAfOtaBootloaderStatus emberAfPluginBootloaderServerInitiateRequestTargetsStatus ( EmberNodeId targetList,
uint16_t  targetListLength,
uint8_t  applicationServerStatus 
)

Initiates the process to request the status of a set of target devices. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API at any time during the target status request process to check the status of each target.

Parameters
targetListAn array of EmberNodeId indicating the node IDs of the target devices that are queried for their status.
targetListLengthThe length of the passed target list.
Returns
An EmberAfOtaBootloaderStatus value of:
void emberAfPluginBootloaderServerRequestTargetsBootloadCompleteCallback ( EmberAfOtaBootloaderStatus  status)

A callback invoked by the OTA Bootloader Server plugin when a bootload request process has completed. Within this callback, the application should use the ::emberAfPluginBoootloaderServerGetTargetStatus() API to retrieve the status and the application status reported by each target.

Parameters
statusAn EmberAfOtaBootloaderStatus value of:
void emberAfPluginBootloaderServerRequestTargetsStatusCompleteCallback ( EmberAfOtaBootloaderStatus  status)

A callback invoked by the OTA Bootloader Server plugin when bootload request process has completed. Within this callback, the application should use the ::emberAfPluginBoootloaderServerGetTargetStatus() API to retrieve the status and application status reported by each target.

Parameters
statusAn EmberAfOtaBootloaderStatus value of:
EmberAfOtaBootloaderStatus emberAfPluginOtaBootloaderServerAbortCurrentProcess ( void  )

Aborts the ongoing process (image distribution, status request or bootload request). Note that aborting a bootload request process likely results in some targets performing the bootload while some others do not.

Returns
An EmberAfOtaBootloaderStatus value of:
bool emberAfPluginOtaBootloaderServerGetImageSegmentCallback ( uint32_t  startIndex,
uint32_t  endIndex,
uint8_t  imageTag,
uint8_t *  imageSegment 
)

A callback invoked by the OTA Bootloader Server plugin during an image distribution process to retrieve a contiguous segment of the image being distributed.

Parameters
startIndexThe index of the first byte the application should copy into the passed array.
endIndexThe index of the last byte the application should copy into the passed array.
imageTagA 1-byte tag of the image for which a segment is being requested.
imageSegmentAn array of (endIndex - startIndex + 1) length to which the application should copy the requested image segment.
Returns
A boolean indicating whether the application successfully copied the requested bytes into the passed array. If the application returns FALSE, the OTA Server plugin aborts the ongoing distribution process.
void emberAfPluginOtaBootloaderServerImageDistributionCompleteCallback ( EmberAfOtaBootloaderStatus  status)

A callback invoked by the OTA Bootloader Server plugin when the image distribution process is terminated. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API to retrieve the status reported by each target device.

Parameters
statusAn EmberAfOtaBootloaderStatus value of:
EmberAfOtaBootloaderStatus emberAfPluginOtaBootloaderServerInitiateImageDistribution ( uint32_t  imageSize,
uint8_t  imageTag,
EmberNodeId targetList,
uint16_t  targetListLength 
)

Initiates the image distribution process. The application can use the emberAfPluginBootloaderServerGetTargetStatus() API at any time during the image distribution process to check the status of each target.

Parameters
imageSizeThe image size in bytes to be distributed.
imageTagA 1-byte tag that will be embedded in the server-to-client over-the-air messages. The application can use the image tag for versioning purposes and/or for distinguishing between different image types.
targetListAn array of EmberNodeId indicating the node IDs of the target devices.
targetListLengthThe length of the passed target list.
Returns
An EmberAfOtaBootloaderStatus value of: