OTA Client#

API and Callbacks for the OTA Cluster Client Component.

Silicon Labs implementation of the Zigbee Over-the-air Bootload Client Cluster (a multi-hop, application bootloader). This implementation finds the OTA server in the network, periodically queries the server for a new image to download, downloads the data, and then waits for the server command to tell it to upgrade. Optionally, it can cryptographically verify the image before upgrade.

Modules#

OTA Client

API#

void

Set whether OTA clients use non TC servers.

void

Set whether OTA clients use non TC servers.

bool

Return the current value of ignoreNonTrustCenter for OTA clients.

void

Set whether OTA Clients will permit firmware downgrades.

bool

Return the current value of disableOtaDowngrades.

API Documentation#

emberAfOtaServerSendUpgradeRequest#

void emberAfOtaServerSendUpgradeRequest ( IgnoreNonTc)

Set whether OTA clients use non TC servers.

Parameters
TypeDirectionArgument NameDescription
N/AIgnoreNonTc

a bool determining whether client should ignore any non Trust Center OTA servers

Sets the behavior of OTA clients when determining whether or not to use non Trust Center OTA servers and abort any download that is in progress.


emberAfPluginOtaClientSetIgnoreNonTrustCenter#

void emberAfPluginOtaClientSetIgnoreNonTrustCenter (bool ignoreNonTc)

Set whether OTA clients use non TC servers.

Parameters
TypeDirectionArgument NameDescription
boolN/AignoreNonTc

a bool determining whether client should ignore any non Trust Center OTA servers

Sets the behavior of OTA clients when determining whether or not to use non Trust Center OTA servers and abort any download that is in progress.


emberAfPluginOtaClientGetIgnoreNonTrustCenter#

bool emberAfPluginOtaClientGetIgnoreNonTrustCenter ()

Return the current value of ignoreNonTrustCenter for OTA clients.


emberAfPluginSetDisableOtaDowngrades#

void emberAfPluginSetDisableOtaDowngrades (bool isDisabled)

Set whether OTA Clients will permit firmware downgrades.

Parameters
TypeDirectionArgument NameDescription
boolN/AisDisabled

A bool value indicating whether or not downgrades will be disabled


emberAfPluginGetDisableOtaDowngrades#

bool emberAfPluginGetDisableOtaDowngrades ()

Return the current value of disableOtaDowngrades.


Variable Documentation#

sli_zigbee_af_ota_client_stopDownloadPercentage#

uint8_t sli_zigbee_af_ota_client_stopDownloadPercentage

Macro Definition Documentation#

EMBER_AF_PLUGIN_OTA_CLIENT_DOWNLOAD_DELAY_MS#

#define EMBER_AF_PLUGIN_OTA_CLIENT_DOWNLOAD_DELAY_MS
Value:
0L

EMBER_AF_OTA_SERVER_DISCOVERY_DELAY_MS#

#define EMBER_AF_OTA_SERVER_DISCOVERY_DELAY_MS
Value:
(2 * MINUTES_IN_MS)

EMBER_AF_OTA_QUERY_DELAY_MS#

#define EMBER_AF_OTA_QUERY_DELAY_MS
Value:
(5 * MINUTES_IN_MS)

EMBER_AF_PLUGIN_OTA_CLIENT_QUERY_ERROR_THRESHOLD#

#define EMBER_AF_PLUGIN_OTA_CLIENT_QUERY_ERROR_THRESHOLD
Value:
10

EMBER_AF_PLUGIN_OTA_CLIENT_DOWNLOAD_ERROR_THRESHOLD#

#define EMBER_AF_PLUGIN_OTA_CLIENT_DOWNLOAD_ERROR_THRESHOLD
Value:
10

EMBER_AF_RUN_UPGRADE_REQUEST_DELAY_MS#

#define EMBER_AF_RUN_UPGRADE_REQUEST_DELAY_MS
Value:
(10 * MINUTES_IN_MS)

EMBER_AF_PLUGIN_OTA_CLIENT_UPGRADE_WAIT_THRESHOLD#

#define EMBER_AF_PLUGIN_OTA_CLIENT_UPGRADE_WAIT_THRESHOLD
Value:
10

EMBER_AF_PLUGIN_OTA_CLIENT_PAGE_REQUEST_SIZE#

#define EMBER_AF_PLUGIN_OTA_CLIENT_PAGE_REQUEST_SIZE
Value:
1024

EMBER_AF_OTA_CLIENT_PAGE_REQUEST_SPACING_MS#

#define EMBER_AF_OTA_CLIENT_PAGE_REQUEST_SPACING_MS
Value:
50L

EMBER_AF_PLUGIN_OTA_CLIENT_VERIFY_DELAY_MS#

#define EMBER_AF_PLUGIN_OTA_CLIENT_VERIFY_DELAY_MS
Value:
10L

NULL_EUI64#

#define NULL_EUI64
Value:
{ 0, 0, 0, 0, 0, 0, 0, 0 }

EMBER_AF_PLUGIN_OTA_CLIENT_SIGNER_EUI0#

#define EMBER_AF_PLUGIN_OTA_CLIENT_SIGNER_EUI0
Value:
NULL_EUI64

EMBER_AF_PLUGIN_OTA_CLIENT_SIGNER_EUI1#

#define EMBER_AF_PLUGIN_OTA_CLIENT_SIGNER_EUI1
Value:
NULL_EUI64

EMBER_AF_PLUGIN_OTA_CLIENT_SIGNER_EUI2#

#define EMBER_AF_PLUGIN_OTA_CLIENT_SIGNER_EUI2
Value:
NULL_EUI64

SECONDS_IN_MS#

#define SECONDS_IN_MS
Value:
(1000L)

MINUTES_IN_MS#

#define MINUTES_IN_MS
Value:
(60 * SECONDS_IN_MS)

HOURS_IN_MS#

#define HOURS_IN_MS
Value:
(60 * MINUTES_IN_MS)

EMBER_AF_INVALID_HARDWARE_VERSION#

#define EMBER_AF_INVALID_HARDWARE_VERSION
Value:
0xFFFF