24 #ifndef __AIOT_OTA_API_H__ 25 #define __AIOT_OTA_API_H__ 27 #if defined(__cplusplus) 244 aiot_download_recv_type_t
type;
477 int32_t
aiot_ota_setopt(
void *handle, aiot_ota_option_t option,
void *data);
483 #define STATE_OTA_BASE (-0x0900) 489 #define STATE_OTA_DIGEST_MATCH (-0x0901) 495 #define STATE_OTA_REPORT_FAILED (-0x0902) 501 #define STATE_DOWNLOAD_RECV_ERROR (-0x0903) 511 #define STATE_OTA_DIGEST_MISMATCH (-0x0904) 521 #define STATE_OTA_PARSE_JSON_ERROR (-0x0905) 531 #define STATE_DOWNLOAD_SEND_REQUEST_FAILED (-0x0906) 541 #define STATE_DOWNLOAD_RANGE_FINISHED (-0x0907) 547 #define STATE_OTA_PARSE_JSON_MALLOC_FAILED (-0x0908) 553 #define STATE_OTA_DEINIT_HANDLE_IS_NULL (-0x0909) 559 #define STATE_OTA_SETOPT_HANDLE_IS_NULL (-0x090A) 565 #define STATE_OTA_SETOPT_DATA_IS_NULL (-0x090B) 571 #define STATE_DOWNLOAD_DEINIT_HANDLE_IS_NULL (-0x090C) 577 #define STATE_DOWNLOAD_SETOPT_HANDLE_IS_NULL (-0x090D) 583 #define STATE_DOWNLOAD_SETOPT_DATA_IS_NULL (-0x090E) 589 #define STATE_DOWNLOAD_SETOPT_COPIED_DATA_IS_NULL (-0x090F) 595 #define STATE_OTA_REPORT_HANDLE_IS_NULL (-0x0910) 601 #define STATE_OTA_REPORT_VERSION_IS_NULL (-0x0911) 607 #define STATE_OTA_REPORT_MQTT_HANDLE_IS_NULL (-0x0912) 613 #define STATE_OTA_REPORT_EXT_HANELD_IS_NULL (-0x0913) 619 #define STATE_OTA_REPORT_EXT_VERSION_NULL (-0x0914) 625 #define STATE_OTA_REPORT_EXT_PRODUCT_KEY_IS_NULL (-0x0915) 631 #define STATE_OTA_REPORT_EXT_DEVICE_NAME_IS_NULL (-0x0916) 637 #define STATE_OTA_REPORT_EXT_MQTT_HANDLE_IS_NULL (-0x0917) 643 #define STATE_DOWNLOAD_REPORT_HANDLE_IS_NULL (-0x0918) 649 #define STATE_DOWNLOAD_REPORT_TASK_DESC_IS_NULL (-0x0919) 655 #define STATE_DOWNLOAD_RECV_HANDLE_IS_NULL (-0x091A) 661 #define STATE_DOWNLOAD_REQUEST_HANDLE_IS_NULL (-0x091B) 667 #define STATE_DOWNLOAD_REQUEST_TASK_DESC_IS_NULL (-0x091C) 673 #define STATE_DOWNLOAD_REQUEST_URL_IS_NULL (-0x091D) 679 #define STATE_OTA_UNKNOWN_DIGEST_METHOD (-0x091E) 685 #define STATE_DOWNLOAD_FINISHED (-0x091F) 691 #define STATE_DOWNLOAD_HTTPRSP_CODE_ERROR (-0x0920) 697 #define STATE_DOWNLOAD_HTTPRSP_HEADER_ERROR (-0x0921) 703 #define STATE_DOWNLOAD_RENEWAL_REQUEST_SENT (-0x0922) 709 #define STATE_DOWNLOAD_SETOPT_MALLOC_SHA256_CTX_FAILED (-0x0923) 715 #define STATE_DOWNLOAD_SETOPT_MALLOC_MD5_CTX_FAILED (-0x0924) 721 #define STATE_OTA_PARSE_URL_HOST_IS_NULL (-0x0925) 727 #define STATE_OTA_PARSE_URL_PATH_IS_NULL (-0x0926) 735 #define STATE_DOWNLOAD_FETCH_TOO_MANY (-0x0927) 744 #define STATE_OTA_QUERY_FIRMWARE_HANDLE_IS_NULL (-0x0928) 752 #define STATE_OTA_HOST_STRING_OVERFLOW (-0x0929) 760 #define STATE_OTA_PATH_STRING_OVERFLOW (-0x092A) 762 #if defined(__cplusplus) 下载固件过程中收到的分片的报文的描述, 包括类型, 以及所存储的buffer地址, buffer的长度, 以及当前的下载进度
Definition: aiot_ota_api.h:238
设置处理OTA消息的用户回调函数
Definition: aiot_ota_api.h:330
uint8_t * buffer
下载固件过程中, SDK分配出来的存储云端下行的固件内容的buffer地址.在回调函数结束后SDK就会主动释放.用户需要自行将报文拷贝保存.
Definition: aiot_ota_api.h:252
void * aiot_ota_init()
创建一个OTA实例
Definition: aiot_ota_api.c:59
与云端约定的设备下载出错的错误码描述
Definition: aiot_ota_api.h:296
aiot_download_recv_type_t
下载固件过程中收到的分片的报文的类型
Definition: aiot_ota_api.h:225
uint32_t file_num
ota任务中总共的url数量
Definition: aiot_ota_api.h:180
与云端约定的设备升级出错的错误描述
Definition: aiot_ota_api.h:291
char * extra_data
当前下载信息中的扩展内容
Definition: aiot_ota_api.h:170
Definition: aiot_ota_api.h:95
char * device_name
待升级设备的device_name
Definition: aiot_ota_api.h:114
与云端约定的烧写固件出错的错误码描述
Definition: aiot_ota_api.h:306
下载OTA文件的方式为HTTPS
Definition: aiot_ota_api.h:88
下载OTA文件的方式为MQTT
Definition: aiot_ota_api.h:94
void(* aiot_ota_recv_handler_t)(void *handle, const aiot_ota_recv_t *const msg, void *userdata)
设备收到OTA的mqtt下行报文时的接收回调函数.用户在这个回调函数中可以看到待升级固件的版本号, 决定升级策略(是否升级, 何时升级等)
Definition: aiot_ota_api.h:219
int32_t percent
当前的下载进度的百分比
Definition: aiot_ota_api.h:264
用户需要SDK暂存的上下文
Definition: aiot_ota_api.h:352
int32_t aiot_ota_setopt(void *handle, aiot_ota_option_t option, void *data)
设置ota句柄的参数
Definition: aiot_ota_api.c:110
aiot_ota_recv_type_t
云端下行的OTA消息的类型, 分为固件升级和远程配置两种
Definition: aiot_ota_api.h:41
uint32_t file_id
当前下载任务的序号
Definition: aiot_ota_api.h:185
uint8_t digest_method
Definition: aiot_ota_api.h:141
uint32_t len
下载固件过程中, SDK分配出来的存储云端下行的固件内容的buffer的大小, 用户可以通过AIOT_DLOPT_BODY_BUFFER...
Definition: aiot_ota_api.h:258
aiot_ota_protocol_type_t
OTA下载升级文件的方式
Definition: aiot_ota_api.h:82
云端下行的OTA消息, 包括其消息类型(固件升级/远程配置)和升级任务的具体描述
Definition: aiot_ota_api.h:197
设置MQTT的handle
Definition: aiot_ota_api.h:341
与云端约定的固件校验数字签名时出错的错误码描述
Definition: aiot_ota_api.h:301
收到的OTA固件的digest方法为SHA256
Definition: aiot_ota_api.h:73
aiot_ota_digest_type_t
OTA过程中使用的digest方法类型, 分为MD5和SHA256两种
Definition: aiot_ota_api.h:61
char * version
固件的版本信息. 如果为固件信息, 则这个version字段为固件的版本号. 如果为远程配置消息, 则为配置的configId
Definition: aiot_ota_api.h:153
Definition: aiot_ota_api.h:74
aiot_ota_option_t
调用 aiot_ota_setopt 接口时, option参数的可用值
Definition: aiot_ota_api.h:314
char * file_name
Definition: aiot_ota_api.h:175
char * expect_digest
Definition: aiot_ota_api.h:147
收到的OTA消息为固件升级消息
Definition: aiot_ota_api.h:47
void(* aiot_download_recv_handler_t)(void *handle, const aiot_download_recv_t *packet, void *userdata)
升级开始后, 设备收到分成一段段的固件内容时的收包回调函数.当前默认是通过https报文下推分段后的固件内容...
Definition: aiot_ota_api.h:278
int32_t aiot_ota_report_version_ext(void *handle, char *product_key, char *device_name, char *version)
用于网关中的子设备上报版本号
Definition: aiot_ota_api.c:196
如果当前ota是针对某个外接模块(mcu等), 需要通过该字段设置模块名
Definition: aiot_ota_api.h:364
uint32_t size_total
Definition: aiot_ota_api.h:135
aiot_download_task_desc_t * task_desc
云端下推的固件升级任务的描述信息, 包括url, 大小, 签名等, 更多信息参考aiot_download_task_desc_t ...
Definition: aiot_ota_api.h:207
uint32_t stream_id
Definition: aiot_ota_api.h:125
aiot_ota_protocol_errcode_t
与云端约定的OTA过程中的错误码, 云端据此知道升级过程中出错在哪个环节
Definition: aiot_ota_api.h:286
aiot_ota_protocol_type_t protocol_type
下载ota文件的协议
Definition: aiot_ota_api.h:189
char * product_key
待升级设备的product_key
Definition: aiot_ota_api.h:108
int32_t aiot_ota_report_version(void *handle, char *version)
上报普通设备(非网关中的子设备)的版本号
Definition: aiot_ota_api.c:156
int32_t aiot_ota_query_firmware(void *handle)
设备端主动向云端查询升级任务
Definition: aiot_ota_api.c:235
aiot_download_recv_type_t type
下载固件过程中收到的分片的报文的类型, 具体见aiot_download_recv_type_t
Definition: aiot_ota_api.h:244
收到的OTA消息为远程配置消息
Definition: aiot_ota_api.h:53
云端下推的固件升级任务的描述信息, 包括url, 大小, 签名等
Definition: aiot_ota_api.h:102
aiot_ota_recv_type_t type
云端下行的OTA消息类型, 更多信息请参考aiot_ota_recv_type_t
Definition: aiot_ota_api.h:202
收到的OTA固件的digest方法为MD5
Definition: aiot_ota_api.h:67
void * mqtt_handle
*固件升级过程中需用往云端上报消息时需要用到的mqtt句柄
Definition: aiot_ota_api.h:164
char * module
当前固件所都对应的模块
Definition: aiot_ota_api.h:159
Definition: aiot_ota_api.h:365
uint32_t stream_file_id
Definition: aiot_ota_api.h:130
int32_t aiot_ota_deinit(void **handle)
销毁ota实例句柄
Definition: aiot_ota_api.c:80
基于HTTP传输的固件分片报文
Definition: aiot_ota_api.h:231
char * url
Definition: aiot_ota_api.h:120