Ota_bootloader_common

Set of types defined for ota-broadcast-bootloader. More...

Macros

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_INVALID_APPLICATION_TARGET_STATUS   0xFF
 A value indicating that client application did not set the application level target status in any of the client callbacks. More...
 

Enumerations

enum  EmberAfOtaBootloaderStatus {
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_SUCCESS = 0x00,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_INVALID_CALL = 0x01,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_BUSY = 0x02,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_NO_BUFFERS = 0x03,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_DATA_UNDERFLOW = 0x04,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_STACK_ERROR = 0x05,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_TIMEOUT = 0x06,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_FAILED = 0x07,
  EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_ABORTED = 0x08
}
 OTA Broadcast Bootloader return status codes. More...
 
enum  EmberAfOtaBootloaderTargetStatus {
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_INVALID = 0x00,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_UNREACHABLE = 0x01,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_COMPLETED = 0x02,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ONGOING = 0x03,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_FAILED = 0x04,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_REFUSED = 0x05,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ABORTED = 0x06,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_COMPLETED = 0x07,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_ONGOING = 0x08,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ACCEPTED = 0x09,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ONGOING = 0x0A,
  EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_REFUSED = 0x0B
}
 OTA Broadcast Bootloader target status codes, returned by emberAfPluginBootloaderServerGetTargetStatus(). More...
 

Detailed Description

Set of types defined for ota-broadcast-bootloader.

OTA bootloading plugins are usable to send firmware images Over The Air when the application is running. When the firmware is downloaded to a device, a bootloader can be started to replace the application in the flash to the one just downloaded.

All Connect bootloader related code relies on the Gecko Bootloader for bootloading and it must be installed on the device for these plugins to work. For details on the Gecko Bootloader, see UG266.

The Broadcast OTA plugins implement the OTA download operation in broadcast, so the same image can be sent to many devices at the same time. The server however requires to know the clients downloading the image, because it implements error handling by querying all clients for missing segments, and then the server will re-broadcast those segments.

Communication relies on standard broadcast data messages, which means routing is not available, and only clients that are in the range of the server can download. However, the same device can be both client and server, i.e. after downloading the image, a client can configure itself to be a server, and provide the image to another part of the network.

Sleepy end devices cannot be addressed in broadcast, but a sleepy end device can reconnect as a normal end device while the OTA is active.

Broadcast OTA uses a plugin configurable endpoint, which is 14 by default.

Security can be also enabled as plugin configuration on the server, as well as the interval of the messages. The client has a timeout plugin configuration after which it stops the OTA session with an error.

See UG235.06 for further details.

Note
OTA Broadcast Bootloading plugins are not available in MAC mode due to the lack of endpoints.

Macro Definition Documentation

◆ EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_INVALID_APPLICATION_TARGET_STATUS

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_INVALID_APPLICATION_TARGET_STATUS   0xFF

A value indicating that client application did not set the application level target status in any of the client callbacks.

Definition at line 189 of file ota-broadcast-bootloader-types.h.

Enumeration Type Documentation

◆ EmberAfOtaBootloaderStatus

OTA Broadcast Bootloader return status codes.

Enumerator
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_SUCCESS 

The generic "no error" message.

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_INVALID_CALL 

Indicates that some parameters are invalid, or the OTA server/client is not in the expected state for the call

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_BUSY 

Indicates that the OTA server is busy performing another OTA task

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_NO_BUFFERS 

Indicates that the OTA server couldn't allocate memory from the heap (See Memory_buffer for details).

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_DATA_UNDERFLOW 

Indicates that the application did not provided the requested data to the OTA server

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_STACK_ERROR 

Indicates that the Connect stack returned an error to the OTA client/server.

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_TIMEOUT 

Indicates that the OTA image download is timed out during missing segment requests.

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_FAILED 

Indicates that the OTA image download is failed during the broadcast phase.

EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_ABORTED 

Indicates that the application aborted the OTA process.

Definition at line 79 of file ota-broadcast-bootloader-types.h.

◆ EmberAfOtaBootloaderTargetStatus

OTA Broadcast Bootloader target status codes, returned by emberAfPluginBootloaderServerGetTargetStatus().

Enumerator
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_INVALID 

The passed node ID does not appear in the current server target list of the current ongoing process or there is no current ongoing process.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_UNREACHABLE 

The target has not responded to any of the server's unicast messages.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_COMPLETED 

The server is currently performing an image distribution process and the target confirmed that it received the full image.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ONGOING 

The server is currently performing an image distribution process and the target has partially received the image and distribution is continuing.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_FAILED 

The server is currently performing an image distribution process and the target reported that an error was encountered.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_REFUSED 

The target has refused the current image.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ABORTED 

The server is currently performing an image distribution process and the target decided to abort the image download process. In this case, the client also reports an application status.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_COMPLETED 

The server is currently performing a target status request process and the target has responded to the server's inquiry. In this case, the client also reports an application status.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_ONGOING 

The server is currently performing a target status request process and the target is not yet queried by the server.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ACCEPTED 

The server is currently performing a bootload request process and the target has accepted to perform the requested image bootload.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ONGOING 

The server is currently performing a bootload request process and the target is not yet reached by the server.

EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_REFUSED 

The server is currently performing a bootload request process and the target has refused to perform the requested image bootload.

Definition at line 117 of file ota-broadcast-bootloader-types.h.