TuyaOS
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
tuya_svc_upgrade.h 文件参考

TUYA OTA service 更多...

#include "tuya_cloud_types.h"
#include "tuya_cloud_com_defs.h"
#include "ty_cJSON.h"
tuya_svc_upgrade.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  file_info
 

宏定义

#define STACK_SIZE_UPGRADE   (4096)
 
#define SVC_UPGRADE_SIGN_CONTENT_MAX_LEN   4096
 
#define TUS_DOWNLOAD_COMPLETE   11
 
#define TUS_DOWNLOAD_ERROR_HMAC   45
 
#define TUS_DOWNLOAD_ERROR_LOW_BATTERY   41
 
#define TUS_DOWNLOAD_ERROR_MALLOC_FAIL   43
 
#define TUS_DOWNLOAD_ERROR_STORAGE_NOT_ENOUGH   42
 
#define TUS_DOWNLOAD_ERROR_TIMEOUT   44
 
#define TUS_DOWNLOAD_ERROR_UNKONW   40
 
#define TUS_DOWNLOAD_START   10
 
#define TUS_RD   1
 
#define TUS_UPGRADE_ERROR_HMAC   49
 
#define TUS_UPGRADE_ERROR_LOW_BATTERY   46
 
#define TUS_UPGRADE_ERROR_MALLOC_FAIL   47
 
#define TUS_UPGRADE_ERROR_VERSION   48
 
#define TUS_UPGRADE_START   12
 
#define TUS_UPGRADE_SUCCESS   3
 
#define TUS_UPGRD_EXEC   4
 
#define TUS_UPGRD_FINI   3
 
#define TUS_UPGRDING   2
 

类型定义

typedef INT_T(* DEV_UPGRADE_INFORM_CB) (CONST FW_UG_S *fw)
 Handler of GW upgrade inform 更多...
 
typedef INT_T(* dev_upgrade_mq15_inform_cb) (ty_cJSON *root_json)
 Handler of process inform for some upgrade type 更多...
 
typedef VOID(* DEV_UPGRADE_PRE_INFORM_CB) (BOOL_T *handled, CONST FW_UG_S *fw)
 Handler of pre-process inform
 
typedef INT_T(* SUBDEV_UPGRADE_INFORM_CB) (CONST CHAR_T *dev_id, CONST FW_UG_S *fw)
 Handler of sub-device upgrade inform 更多...
 
typedef BYTE_T TI_UPGRD_STAT_S
 
typedef VOID(* UPGRADE_DETECT_RESULT) (IN BOOL_T is_err, IN BOOL_T is_exe, IN UINT_T detect_interval)
 
typedef OPERATE_RET(* UPGRADE_GET_DEV) (OUT CHAR_T dev_id[DEV_ID_LEN+1])
 

枚举

enum  SignContent_TYPE { SignContent_TYPE_USER = 0 , SignContent_TYPE_TUYA = 1 }
 

函数

OPERATE_RET tuya_lan_upgrade_data_proc (BYTE_T *p_data_block, UINT_T u_data_block_len)
 局域网升级数据处理 更多...
 
OPERATE_RET tuya_lan_upgrade_data_request_string (CHAR_T *request_string)
 局域网升级数据请求 更多...
 
OPERATE_RET tuya_lan_upgrade_start (ty_cJSON *p_upgrade_info)
 局域网升级启动 更多...
 
BOOL_T tuya_svc_devos_get_upgrade (VOID)
 Need upgrade or not(multi-section ota) 更多...
 
OPERATE_RET tuya_svc_upgrade_active (VOID_T)
 Run firmware upgrade framework, workloads registered will be executed 更多...
 
OPERATE_RET tuya_svc_upgrade_continue (VOID_T)
 Continue to process multi section upgrade 更多...
 
OPERATE_RET tuya_svc_upgrade_detect_register (TUYA_UPGRADE_DETECT_T *detect)
 Register a new firmware upgrade workload 更多...
 
OPERATE_RET tuya_svc_upgrade_detect_reset (CONST INT_T upgrade_interval)
 Reset firmware upgrade check interval 更多...
 
VOID tuya_svc_upgrade_enable_mqtt_notify ()
 enable mqtt notify
 
OPERATE_RET tuya_svc_upgrade_init (TUYA_UPGRADE_PARAM_T *ota_param)
 Initilize firmware upgrade framework 更多...
 
OPERATE_RET tuya_svc_upgrade_mqtt_notify (CHAR_T *dev_id, DEV_TYPE_T tp)
 Notify to upgrade immediately like mqtt15 更多...
 
OPERATE_RET tuya_svc_upgrade_refuse (CONST FW_UG_S *fw, CONST CHAR_T *dev_id)
 Refuse to download the specific firmware 更多...
 
VOID tuya_svc_upgrade_register_mq15_cb (dev_upgrade_mq15_inform_cb mq15_cb)
 Register process handler for some upgrade type 更多...
 
VOID tuya_svc_upgrade_register_pre_cb (DEV_UPGRADE_PRE_INFORM_CB pre_ug_cb)
 Register pre-precess handler to replace the default one 更多...
 
OPERATE_RET tuya_svc_upgrade_result_report (CONST CHAR_T *dev_id, CONST DEV_TYPE_T type, CONST int result)
 Sync dowload result to cloud 更多...
 
OPERATE_RET tuya_svc_upgrade_start (CONST CHAR_T *dev_id, CONST FW_UG_S *fw, CONST GET_FILE_DATA_CB get_file_cb, VOID *pri_data, CONST UPGRADE_NOTIFY_CB upgrd_nofity_cb, CONST BOOL_T upload_upgrade_percent, CONST UINT_T download_buf_size)
 Start to download the specific firmware 更多...
 
OPERATE_RET tuya_svc_upgrade_ug_info_parse (ty_cJSON *result, UPGRADE_TYPE_T type, FW_UG_S *ug_info)
 
OPERATE_RET tuya_svc_upgrade_verify_end (IN CONST FW_UG_S *fw, IN CONST INT_T download_result, IN PVOID_T pri_data)
 
OPERATE_RET tuya_svc_upgrade_verify_init (void)
 
OPERATE_RET tuya_svc_upgrade_verify_process (IN CONST FW_UG_S *fw, IN CONST UINT_T total_len, IN CONST UINT_T offset, IN CONST BYTE_T *data, IN CONST UINT_T len, OUT UINT_T *remain_len, IN PVOID_T pri_data)
 
TUYA_OTA_PATH_E tuya_upgrade_get_path (VOID)
 

详细描述

TUYA OTA service

版本
0.1
日期
2019-08-28

类型定义说明

◆ DEV_UPGRADE_INFORM_CB

typedef INT_T(* DEV_UPGRADE_INFORM_CB) (CONST FW_UG_S *fw)

Handler of GW upgrade inform

返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ dev_upgrade_mq15_inform_cb

typedef INT_T(* dev_upgrade_mq15_inform_cb) (ty_cJSON *root_json)

Handler of process inform for some upgrade type

返回
OPRT_OK on had handled. Others should process by svc_upgrade

◆ SUBDEV_UPGRADE_INFORM_CB

typedef INT_T(* SUBDEV_UPGRADE_INFORM_CB) (CONST CHAR_T *dev_id, CONST FW_UG_S *fw)

Handler of sub-device upgrade inform

返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

函数说明

◆ tuya_lan_upgrade_data_proc()

OPERATE_RET tuya_lan_upgrade_data_proc ( BYTE_T *  p_data_block,
UINT_T  u_data_block_len 
)

局域网升级数据处理

参数
[in]p_data_block升级固件数据块指针
[in]u_data_block_len数据块长度
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_lan_upgrade_data_request_string()

OPERATE_RET tuya_lan_upgrade_data_request_string ( CHAR_T *  request_string)

局域网升级数据请求

参数
[out]request_string升级固件数据请求字符串,包括file_offset, data_block_len
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_lan_upgrade_start()

OPERATE_RET tuya_lan_upgrade_start ( ty_cJSON p_upgrade_info)

局域网升级启动

参数
[in]p_ug_info升级固件信息
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_devos_get_upgrade()

BOOL_T tuya_svc_devos_get_upgrade ( VOID  )

Need upgrade or not(multi-section ota)

返回
TRUE or FALSE

◆ tuya_svc_upgrade_active()

OPERATE_RET tuya_svc_upgrade_active ( VOID_T  )

Run firmware upgrade framework, workloads registered will be executed

返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_continue()

OPERATE_RET tuya_svc_upgrade_continue ( VOID_T  )

Continue to process multi section upgrade

返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_detect_register()

OPERATE_RET tuya_svc_upgrade_detect_register ( TUYA_UPGRADE_DETECT_T detect)

Register a new firmware upgrade workload

参数
[in]detectThe workload, see tuya_upgrade_detect_t
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_detect_reset()

OPERATE_RET tuya_svc_upgrade_detect_reset ( CONST INT_T  upgrade_interval)

Reset firmware upgrade check interval

参数
[in]upgrade_intervalNext interval to check(unit sec)
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_init()

OPERATE_RET tuya_svc_upgrade_init ( TUYA_UPGRADE_PARAM_T ota_param)

Initilize firmware upgrade framework

返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_mqtt_notify()

OPERATE_RET tuya_svc_upgrade_mqtt_notify ( CHAR_T *  dev_id,
DEV_TYPE_T  tp 
)

Notify to upgrade immediately like mqtt15

参数
[in]dev_idID of sub-device, or NULL for GW
[in]devtype to upgrade
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_refuse()

OPERATE_RET tuya_svc_upgrade_refuse ( CONST FW_UG_S fw,
CONST CHAR_T *  dev_id 
)

Refuse to download the specific firmware

参数
[in]dev_idID of sub-device, or NULL for GW
[in]fwFirmware info to download
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_register_mq15_cb()

VOID tuya_svc_upgrade_register_mq15_cb ( dev_upgrade_mq15_inform_cb  mq15_cb)

Register process handler for some upgrade type

参数
[in]mq15_cbThe process handler

◆ tuya_svc_upgrade_register_pre_cb()

VOID tuya_svc_upgrade_register_pre_cb ( DEV_UPGRADE_PRE_INFORM_CB  pre_ug_cb)

Register pre-precess handler to replace the default one

参数
[in]pre_ug_cbThe new handler

◆ tuya_svc_upgrade_result_report()

OPERATE_RET tuya_svc_upgrade_result_report ( CONST CHAR_T *  dev_id,
CONST DEV_TYPE_T  type,
CONST int  result 
)

Sync dowload result to cloud

参数
[in]dev_idID of sub-device, or NULL for GW
[in]tpOTA channel, see DEV_TYPE_T
[in]resultSee TI_UPGRD_STAT_S
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h

◆ tuya_svc_upgrade_start()

OPERATE_RET tuya_svc_upgrade_start ( CONST CHAR_T *  dev_id,
CONST FW_UG_S fw,
CONST GET_FILE_DATA_CB  get_file_cb,
VOID *  pri_data,
CONST UPGRADE_NOTIFY_CB  upgrd_nofity_cb,
CONST BOOL_T  upload_upgrade_percent,
CONST UINT_T  download_buf_size 
)

Start to download the specific firmware

参数
[in]dev_idID of sub-device, or NULL for GW
[in]fwFirmware info to download
[in]get_file_cbCallback to transfer data while downloading
[in]pri_dataPrivate data
[in]upgrd_nofity_cbCallback when upgrade complete or error
[in]upload_upgrade_percentUpload upgrade percent or not
[in]download_buf_sizeBuffer size allocated for OTA
返回
OPRT_OK on success. Others on error, please refer to tuya_error_code.h