License#
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
SPDX-License-Identifier: Zlib
The licensor of this software is Silicon Laboratories Inc.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
This notice may not be removed or altered from any source distribution.
/***************************************************************************/
#ifndef _OTA_UNICAST_BOOTLOADER_CLIENT_H_
#define _OTA_UNICAST_BOOTLOADER_CLIENT_H_
#include "ota-unicast-bootloader/ota-unicast-bootloader-protocol.h"
#include "ota-unicast-bootloader/ota-unicast-bootloader-types.h"
EmberAfOtaUnicastBootloaderStatus emberAfPluginOtaUnicastBootloaderClientAbortImageDownload(
uint8_t imageTag
);
bool emberAfPluginOtaUnicastBootloaderClientNewIncomingImageCallback(
EmberNodeId serverId,
uint8_t imageTag,
uint32_t imageSize,
uint32_t *startIndex
);
void emberAfPluginOtaUnicastBootloaderClientIncomingImageSegmentCallback(
EmberNodeId serverId,
uint32_t startIndex,
uint32_t endIndex,
uint8_t imageTag,
uint8_t *imageSegment
);
void emberAfPluginOtaUnicastBootloaderClientImageDownloadCompleteCallback(
EmberAfOtaUnicastBootloaderStatus status,
uint8_t imageTag,
uint32_t imageSize
);
bool emberAfPluginOtaUnicastBootloaderClientIncomingRequestBootloadCallback(
EmberNodeId serverId,
uint8_t imageTag,
uint32_t bootloadDelayMs
);
#endif // _OTA_UNICAST_BOOTLOADER_CLIENT_H_
Callbacks#
A callback invoked when the client starts receiving a new image. The application can choose to start receiving the image or ignore it. If the application chooses to receive the image, other images sent out by other servers shall be ignored until the client completes the download.
A callback invoked when an image segment that is part of an image the application chose to download was received.
A callback invoked to indicate that an image download has completed.
A callback invoked to indicate that a server has requested to perform a bootload operation at a certain point in time in the future.
Functions#
An API for aborting an ongoing image download process.
Callbacks Documentation#
emberAfPluginOtaUnicastBootloaderClientNewIncomingImageCallback#
bool emberAfPluginOtaUnicastBootloaderClientNewIncomingImageCallback (EmberNodeId serverId, uint8_t imageTag, uint32_t imageSize, uint32_t * startIndex)
A callback invoked when the client starts receiving a new image. The application can choose to start receiving the image or ignore it. If the application chooses to receive the image, other images sent out by other servers shall be ignored until the client completes the download.
[in] | serverId | The node ID of the server that initiated the new image distribution process. |
[in] | imageTag | A 1-byte tag that identifies the incoming image. |
[in] | imageSize | The size in bytes of the new image. |
[out] | startIndex | The index of the first byte at which the image download shall be started/resumed. The client can use this argument to resume a partially downloaded image. If this value is not set, it defaults to 0 (that is, the download starts at the beginning of the image). Note, this is ignored in case the server does not support download resume. |
Returns
Return true to accept the image or false to ignore it.
88
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/ota-unicast-bootloader/ota-unicast-bootloader-client/ota-unicast-bootloader-client.h
emberAfPluginOtaUnicastBootloaderClientIncomingImageSegmentCallback#
void emberAfPluginOtaUnicastBootloaderClientIncomingImageSegmentCallback (EmberNodeId serverId, uint32_t startIndex, uint32_t endIndex, uint8_t imageTag, uint8_t * imageSegment)
A callback invoked when an image segment that is part of an image the application chose to download was received.
[in] | serverId | The node ID of the server that initiated the image distribution process. |
[in] | startIndex | The index of the first byte of the passed segment. |
[in] | endIndex | The index of the last byte of the passed segment. |
[in] | imageTag | A 1-byte tag of the image the passed segment belongs to. |
[in] | imageSegment | An array containing the image segment. |
110
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/ota-unicast-bootloader/ota-unicast-bootloader-client/ota-unicast-bootloader-client.h
emberAfPluginOtaUnicastBootloaderClientImageDownloadCompleteCallback#
void emberAfPluginOtaUnicastBootloaderClientImageDownloadCompleteCallback (EmberAfOtaUnicastBootloaderStatus status, uint8_t imageTag, uint32_t imageSize)
A callback invoked to indicate that an image download has completed.
[in] | status | An EmberAfOtaUnicastBootloaderStatus value of:
|
[in] | imageTag | A 1-byte tag of the image this callback refers to. |
[in] | imageSize | The total size of the downloaded image in bytes. This parameter is meaningful only in case the status parameter is set to EMBER_OTA_UNICAST_BOOTLOADER_STATUS_SUCCESS. |
140
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/ota-unicast-bootloader/ota-unicast-bootloader-client/ota-unicast-bootloader-client.h
emberAfPluginOtaUnicastBootloaderClientIncomingRequestBootloadCallback#
bool emberAfPluginOtaUnicastBootloaderClientIncomingRequestBootloadCallback (EmberNodeId serverId, uint8_t imageTag, uint32_t bootloadDelayMs)
A callback invoked to indicate that a server has requested to perform a bootload operation at a certain point in time in the future.
[in] | serverId | The ID of the server the request came from. |
[in] | imageTag | A 1-byte tag of the image this callback refers to. |
[in] | bootloadDelayMs | The delay in milliseconds after which the client has been requested to perform a bootload operation. |
Returns
Return true if the application accepted the request of bootloading the specified image at the requested time, false otherwise.
159
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/ota-unicast-bootloader/ota-unicast-bootloader-client/ota-unicast-bootloader-client.h
Function Documentation#
emberAfPluginOtaUnicastBootloaderClientAbortImageDownload#
EmberAfOtaUnicastBootloaderStatus emberAfPluginOtaUnicastBootloaderClientAbortImageDownload (uint8_t imageTag)
An API for aborting an ongoing image download process.
[in] | imageTag | A 1-byte tag that identifies the image the client should no longer download. |
Returns
An EmberAfOtaUnicastBootloaderStatus value of:
EMBER_OTA_UNICAST_BOOTLOADER_STATUS_SUCCESS If the ongoing image download process was successfully aborted.
EMBER_OTA_UNICAST_BOOTLOADER_STATUS_INVALID_CALL If the client was not currently involved in an image download process or it was currently downloading an image with a different tag.
59
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/ota-unicast-bootloader/ota-unicast-bootloader-client/ota-unicast-bootloader-client.h