AWS IoT Over-the-air Update
v3.1.0
Client library for AWS IoT OTA
|
|
Go to the documentation of this file.
53 #define CONST_STRLEN( s ) ( ( ( uint32_t ) sizeof( s ) ) - 1UL )
56 #define OTA_FILE_SIG_KEY_STR_MAX_LENGTH 32
113 typedef enum OtaState
115 OtaAgentStateNoTransition = -1,
116 OtaAgentStateInit = 0,
118 OtaAgentStateRequestingJob,
119 OtaAgentStateWaitingForJob,
120 OtaAgentStateCreatingFile,
121 OtaAgentStateRequestingFileBlock,
122 OtaAgentStateWaitingForFileBlock,
123 OtaAgentStateClosingFile,
124 OtaAgentStateSuspended,
125 OtaAgentStateShuttingDown,
126 OtaAgentStateStopped,
134 typedef enum OtaJobParseErr
136 OtaJobParseErrUnknown = -1,
137 OtaJobParseErrNone = 0,
138 OtaJobParseErrNullJob,
139 OtaJobParseErrUpdateCurrentJob,
140 OtaJobParseErrZeroFileSize,
141 OtaJobParseErrNonConformingJobDoc,
142 OtaJobParseErrBadModelInitParams,
143 OtaJobParseErrNoContextAvailable,
144 OtaJobParseErrNoActiveJobs
164 typedef enum OtaJobEvent
184 JobStatusInProgress = 0,
188 JobStatusFailedWithVal,
200 typedef struct OtaJobDocument
244 const void * pData );
256 typedef struct OtaInterface
270 typedef struct OtaAppBuffer
293 typedef struct OtaAgentContext
397 const uint8_t * pThingName,
440 uint8_t unsubscribeFlag );
OtaState_t
OTA Agent states.
Definition: ota.h:114
uint8_t * pStreamName
Name of stream to download the files.
Definition: ota.h:276
@ OtaErrFailedToEncodeCbor
Failed to encode CBOR object for requesting data block from streaming service.
Definition: ota.h:100
uint32_t serverFileID
Definition: ota.h:299
OtaState_t OTA_Shutdown(uint32_t ticksToWait, uint8_t unsubscribeFlag)
Signal to the OTA Agent to shut down.
Definition: ota.c:3156
@ OtaErrInitFileTransferFailed
Failed to update the OTA job status.
Definition: ota.h:87
Contains OTA OS Functional Interface statuses, type definitions and structures to store interface rou...
void OTA_EventProcessingTask(void *pUnused)
OTA agent event processing loop.
Definition: ota.c:2906
OTA Job document.
Definition: ota.h:201
@ OtaErrNoActiveJob
Attempt to set final image state without an active job.
Definition: ota.h:98
OtaOSInterface_t os
OS interface to store event, timers and memory operations.
Definition: ota.h:258
size_t jobDocLength
Job document length in bytes.
Definition: ota.h:203
@ OtaErrRequestFileBlockFailed
Failed to request file block.
Definition: ota.h:88
OTA File Context Information.
Definition: ota_private.h:382
OtaImageState_t
OTA Image states.
Definition: ota_private.h:314
@ OtaJobEventStartTest
OTA job is now in self test, perform user tests.
Definition: ota.h:168
OtaErr_t OTA_SetImageState(OtaImageState_t state)
Set the state of the current MCU image.
Definition: ota.c:3300
int32_t reason
Job status reason.
Definition: ota.h:209
@ OtaJobEventSelfTestFailed
OTA self-test failed for current job.
Definition: ota.h:170
#define OTA_JOB_ID_MAX_SIZE
Maximum size of the Job ID.
Definition: ota_private.h:109
OtaErr_t OTA_GetStatistics(OtaAgentStatistics_t *pStatistics)
Get the statistics of OTA message packets.
Definition: ota.c:3223
uint16_t certFilePathSize
Maximum size of the certificate file path.
Definition: ota.h:275
OtaAppCallback_t OtaAppCallback
Definition: ota.h:308
OtaImageState_t imageState
Definition: ota.h:303
This is the OTA statistics structure to hold useful info.
Definition: ota_private.h:291
uint8_t * pUrl
Presigned url to download files from S3.
Definition: ota.h:282
@ OtaErrUserAbort
User aborted the active OTA.
Definition: ota.h:99
OtaJobEvent_t
OTA Job callback events.
Definition: ota.h:165
uint16_t streamNameSize
Maximum size of the stream name.
Definition: ota.h:277
OtaErr_t
The OTA API return status. OTA agent error codes are in the upper 8 bits of the 32 bit OTA error word...
Definition: ota.h:79
const char * OTA_OsStatus_strerror(OtaOsStatus_t status)
Status code to string conversion for OTA OS status.
Definition: ota.c:3583
@ OtaErrCleanupDataFailed
Failed to clean up the data plane.
Definition: ota.h:90
uint8_t * pAuthScheme
Authentication scheme used to validate download.
Definition: ota.h:284
uint8_t * pCertFilePath
Path to certificate file.
Definition: ota.h:274
OTA OS Interface.
Definition: ota_os_interface.h:305
@ OtaErrSameFirmwareVersion
Firmware version is the same as previous. New firmware could have failed to commit.
Definition: ota.h:96
OtaErr_t OTA_ActivateNewImage(void)
Activate the newest MCU image received via OTA.
Definition: ota.c:3264
uint8_t * pUpdateFilePath
Path to store the files.
Definition: ota.h:272
@ OtaJobEventProcessed
OTA event queued by OTA_SignalEvent is processed.
Definition: ota.h:169
uint8_t * pDecodeMemory
Place to store the decoded files.
Definition: ota.h:278
@ OtaErrAgentStopped
Returned when operations are performed that requires OTA Agent running & its stopped.
Definition: ota.h:84
@ OtaErrFailedToDecodeCbor
Failed to decode CBOR object from streaming service response.
Definition: ota.h:101
@ OtaErrUninitialized
The error code has not yet been set by a logic path.
Definition: ota.h:81
OTA Interface for referencing different components.
Definition: ota.h:257
uint32_t numOfBlocksToReceive
Definition: ota.h:304
OtaErr_t OTA_CheckForUpdate(void)
Request for the next available OTA job from the job service.
Definition: ota.c:3236
The OTA agent is a singleton today. The structure keeps it nice and organized.
Definition: ota.h:294
OtaAgentStatistics_t statistics
Definition: ota.h:305
OTA Event Interface structure.
Definition: ota_mqtt_interface.h:162
const uint8_t * pJobDocJson
Job document in JSON format.
Definition: ota.h:202
uint32_t decodeMemorySize
Maximum size of the decoded files buffer.
Definition: ota.h:279
bool OTA_SignalEvent(const OtaEventMsg_t *const pEventMsg)
Signal event to the OTA Agent task.
Definition: ota.c:2921
Macros, enums, variables, and definitions internal to the OTA Agent module and shared by other OTA mo...
uint16_t urlSize
Maximum size of the URL.
Definition: ota.h:283
@ OtaJobEventReceivedJob
OTA event when a new valid AFT-OTA job is received.
Definition: ota.h:172
Contains OTA HTTP Statuses, function type definitions and http interface structure.
@ OtaJobEventParseCustomJob
OTA event for parsing custom job document.
Definition: ota.h:171
OtaJobStatus_t
Gives the status of the job operation.
Definition: ota.h:183
const char * OTA_Err_strerror(OtaErr_t err)
Error code to string conversion for OTA errors.
Definition: ota.c:3427
@ OtaErrNone
No error occurred during the operation.
Definition: ota.h:80
Stores information about the event message.
Definition: ota_private.h:434
@ OtaErrSignalEventFailed
Failed to send event to OTA state machine.
Definition: ota.h:85
OtaErr_t OTA_Suspend(void)
Suspend OTA agent operations .
Definition: ota.c:3365
size_t jobIdLength
Length of job ID in bytes.
Definition: ota.h:205
OtaOsStatus_t
The OTA OS interface return status.
Definition: ota_os_interface.h:99
OtaState_t OTA_GetState(void)
Get the current state of the OTA agent.
Definition: ota.c:3215
@ OtaJobEventUpdateComplete
OTA event when the update is completed.
Definition: ota.h:173
const uint8_t * pJobId
Job ID associated with the job document.
Definition: ota.h:204
OtaErr_t OTA_Resume(void)
Resume OTA agent operations .
Definition: ota.c:3398
@ OtaErrDowngradeNotAllowed
Firmware version is older than the previous version.
Definition: ota.h:95
uint32_t requestMomentum
Definition: ota.h:306
const char * OTA_PalStatus_strerror(OtaPalMainStatus_t status)
Status code to string conversion for OTA PAL status.
Definition: ota.c:3637
@ OtaErrPanic
Unrecoverable Firmware error. Probably should log error and reboot.
Definition: ota.h:82
uint16_t updateFilePathsize
Maximum size of the file path.
Definition: ota.h:273
uint8_t * pFileBitmap
Bitmap of the parameters received.
Definition: ota.h:280
@ OtaErrJobParserError
An error occurred during job document parsing. See reason sub-code.
Definition: ota.h:92
OtaImageState_t OTA_GetImageState(void)
Get the state of the currently running MCU image.
Definition: ota.c:3354
@ OtaErrActivateFailed
Failed to activate the new image.
Definition: ota.h:102
OtaPalMainStatus_t
The OTA platform interface main status.
Definition: ota_platform_interface.h:79
uint32_t timestampFromJob
Definition: ota.h:302
@ OtaJobEventFail
OTA receive failed. Unable to use this update.
Definition: ota.h:167
uint8_t * pClientTokenFromJob
Definition: ota.h:301
OTA Event Interface structure.
Definition: ota_http_interface.h:136
OtaJobParseErr_t parseErr
Job parsing status.
Definition: ota.h:207
OtaMqttInterface_t mqtt
MQTT interface that references the publish subscribe methods and callbacks.
Definition: ota.h:259
OtaState_t state
Definition: ota.h:295
OTA pal Interface structure.
Definition: ota_platform_interface.h:298
const OtaInterfaces_t * pOtaInterface
Definition: ota.h:307
@ OtaErrImageStateMismatch
The OTA job was in Self Test but the platform image state was not. Possible tampering.
Definition: ota.h:97
uint16_t fileBitmapSize
Maximum size of the bitmap.
Definition: ota.h:281
@ OtaErrInvalidArg
API called with invalid argument.
Definition: ota.h:83
OtaHttpInterface_t http
HTTP interface to request data.
Definition: ota.h:260
Contains OTA MQTT Statuses, function type definitions and mqtt interface structure.
@ OtaErrInvalidDataProtocol
Job does not have a valid protocol for data transfer.
Definition: ota.h:93
int32_t subReason
Job status subreason.
Definition: ota.h:210
uint32_t fileIndex
Definition: ota.h:298
#define otaconfigMAX_THINGNAME_LEN
The maximum allowed length of the thing name used by the OTA agent.
Definition: ota_config_defaults.h:138
OtaJobStatus_t status
Job status.
Definition: ota.h:208
uint32_t fileTypeId
File Type ID from the job document.
Definition: ota.h:206
@ OtaErrUpdateJobStatusFailed
Failed to update the OTA job status.
Definition: ota.h:91
@ OtaErrCleanupControlFailed
Failed to clean up the control plane.
Definition: ota.h:89
@ OtaErrMomentumAbort
Too many OTA stream requests without any response.
Definition: ota.h:94
uint16_t authSchemeSize
Maximum size of the auth scheme.
Definition: ota.h:285
const char * OTA_JobParse_strerror(OtaJobParseErr_t err)
Error code to string conversion for OTA Job Parsing errors.
Definition: ota.c:3533
OtaJobParseErr_t
OTA job document parser error codes.
Definition: ota.h:135
OtaFileContext_t fileContext
Definition: ota.h:297
uint8_t unsubscribeOnShutdown
Definition: ota.h:309
const char OTA_JsonFileSignatureKey[OTA_FILE_SIG_KEY_STR_MAX_LENGTH]
The OTA signature algorithm string is specified by the PAL.
@ OtaErrRequestJobFailed
Failed to request the job document.
Definition: ota.h:86
void(* OtaAppCallback_t)(OtaJobEvent_t eEvent, const void *pData)
OTA update complete callback function typedef.
Definition: ota.h:243
OtaErr_t OTA_Init(OtaAppBuffer_t *pOtaBuffer, const OtaInterfaces_t *pOtaInterfaces, const uint8_t *pThingName, OtaAppCallback_t OtaAppCallback)
OTA Agent initialization function.
Definition: ota.c:3062
OtaPalInterface_t pal
OTA PAL callback structure.
Definition: ota.h:261
@ OtaJobEventActivate
OTA receive is authenticated and ready to activate.
Definition: ota.h:166
OTA Application Buffer size information.
Definition: ota.h:271
#define OTA_FILE_SIG_KEY_STR_MAX_LENGTH
Definition: ota.h:56