3.2.8.7.3 OTA Services Interface
List of options for OTA service:
OTA Service Enum
typedef enum
{
SYS_RNWF_OTA_ENABLE, /**<Connected to MQTT broker event */
SYS_RNWF_OTA_DISABLE, /**<Connected to MQTT broker event */
SYS_RNWF_OTA_REQUEST, /**<Connected to MQTT broker event */
SYS_RNWF_OTA_SET_CALLBACK, /**<Register OTA application callback*/
SYS_RNWF_OTA_SET_SRVC_CALLBACK,
SYS_RNWF_OTA_AUTO_MODE, /**<OTA Auto mode, triggered reqularly*/
SYS_RNWF_OTA_DFU_INIT, /**<OTA Trigger, Actual programming start*/
SYS_RNWF_OTA_DFU_WRITE, /**<OTA Write, Writes the FW max 4096 bytes*/
SYS_RNWF_OTA_DFU_ERASE, /**<OTA Erase, Erases the given size*/
SYS_RNWF_OTA_DFU_ERROR,
SYS_RNWF_OTA_DFU_IDLE,
}SYS_RNWF_OTA_SERVICE_t;
RNWF OTA Event Enum
OTA Service Event
list.
typedef enum
{
SYS_RNWF_EVENT_MAKE_UART, /**<Change to UART mode */
SYS_RNWF_EVENT_DWLD_START, /**<FW Download complete */
SYS_RNWF_EVENT_DWLD_DONE, /**<FW Download complete */
}SYS_RNWF_OTA_EVENT_t;RNWF OTA Modes Enum
typedef enum
{
SYS_RNWF_OTA_EVENT_MAKE_UART, /**<Change to UART mode */
SYS_RNWF_OTA_EVENT_IMAGE_INFO, /**<Inform Image details */
SYS_RNWF_OTA_EVENT_FILE_CHUNK, /**<FW Downloaded file chunk */
SYS_RNWF_OTA_EVENT_DWLD_START, /**<FW Download complete */
SYS_RNWF_OTA_EVENT_DWLD_DONE, /**<FW Download done */
SYS_RNWF_OTA_EVENT_DOWNLOAD_FAIL,
SYS_RNWF_OTA_EVENT_CONFIG_INFO,
}SYS_RNWF_OTA_EVENT_t;
OTA Chunk Header Struct
OTA Chunk
struct:
typedef struct
{
uint32_t chunk_addr;
uint32_t chunk_size;
uint8_t *chunk_ptr;
}SYS_RNWF_OTA_CHUNK_t;
OTA Header
struct:
typedef struct
{
uint32_t seq_num;
uint32_t fw_ver;
uint32_t start_addr;
uint32_t img_len;
}SYS_RNWF_OTA_HDR_t;OTA Configuration Parameters Enum
typedef enum
{
SYS_RNWF_OTA_CFG_PARAM_PORT,
SYS_RNWF_OTA_CFG_PARAM_SERVER,
SYS_RNWF_OTA_CFG_PARAM_FILE,
SYS_RNWF_OTA_CFG_PARAM_TYPE,
SYS_RNWF_OTA_CFG_PARAM_MAX,
}SYS_RNWF_OTA_CFG_PARAM_t;
OTA Configuration Struct
typedef struct
{
SYS_RNWF_NET_SOCKET_t socket; /**<Socket handler for HTTP link*/
SYS_RNWF_OTA_MODES_t mode; /**<Active OTA mode */
SYS_RNWF_OTA_IMAGE_t type; /**<Image type */
const char *file; /**<Image File Name */
const char *certificate;
}SYS_RNWF_OTA_CFG_t;
OTA Image Enum
typedef enum
{
SYS_RNWF_OTA_LOW_FW, /**<FW at lower slot */
SYS_RNWF_OTA_HIGH_FW, /**<FW at higher slot */
SYS_RNWF_OTA_FILESYSTEM, /**<Files system slot*/
}SYS_RNWF_OTA_IMAGE_t;
