10#ifndef __TUYA_SVC_UPGRADE_H__
11#define __TUYA_SVC_UPGRADE_H__
13#include "tuya_cloud_types.h"
14#include "tuya_cloud_com_defs.h"
21typedef BYTE_T TI_UPGRD_STAT_S;
24#define TUS_UPGRD_FINI 3
25#define TUS_UPGRD_EXEC 4
27#define TUS_DOWNLOAD_START 10
28#define TUS_DOWNLOAD_COMPLETE 11
29#define TUS_UPGRADE_START 12
30#define TUS_UPGRADE_SUCCESS 3
32#define TUS_DOWNLOAD_ERROR_UNKONW 40
33#define TUS_DOWNLOAD_ERROR_LOW_BATTERY 41
34#define TUS_DOWNLOAD_ERROR_STORAGE_NOT_ENOUGH 42
35#define TUS_DOWNLOAD_ERROR_MALLOC_FAIL 43
36#define TUS_DOWNLOAD_ERROR_TIMEOUT 44
37#define TUS_DOWNLOAD_ERROR_HMAC 45
38#define TUS_UPGRADE_ERROR_LOW_BATTERY 46
39#define TUS_UPGRADE_ERROR_MALLOC_FAIL 47
40#define TUS_UPGRADE_ERROR_VERSION 48
41#define TUS_UPGRADE_ERROR_HMAC 49
47typedef OPERATE_RET(*UPGRADE_GET_DEV)(OUT CHAR_T dev_id[DEV_ID_LEN + 1]);
57typedef VOID (*UPGRADE_DETECT_RESULT)(IN BOOL_T is_err, IN BOOL_T is_exe, IN UINT_T detect_interval);
63 UPGRADE_GET_DEV upgrade_get_dev;
64 UPGRADE_DETECT_RESULT upgrade_detect_result;
137OPERATE_RET tuya_svc_upgrade_ug_info_parse(
ty_cJSON *result, UPGRADE_TYPE_T type,
FW_UG_S *ug_info);
191 CONST GET_FILE_DATA_CB get_file_cb,
193 CONST UPGRADE_NOTIFY_CB upgrd_nofity_cb,
194 CONST BOOL_T upload_upgrade_percent,
195 CONST UINT_T download_buf_size);
tuya sdk ota firmware info
Definition: tuya_cloud_com_defs.h:584
Definition of firmware upgrade workload
Definition: tuya_svc_upgrade.h:62
Definition of firmware upgrade handler
Definition: tuya_svc_upgrade.h:96
SUBDEV_UPGRADE_INFORM_CB pre_subdev_upgrade_cb
Definition: tuya_svc_upgrade.h:104
SUBDEV_UPGRADE_INFORM_CB subdev_upgrade_cb
Definition: tuya_svc_upgrade.h:100
DEV_UPGRADE_INFORM_CB dev_upgrade_cb
Definition: tuya_svc_upgrade.h:98
DEV_UPGRADE_INFORM_CB pre_dev_upgrade_cb
Definition: tuya_svc_upgrade.h:102
Definition: ty_cJSON.h:45
VOID(* DEV_UPGRADE_PRE_INFORM_CB)(BOOL_T *handled, CONST FW_UG_S *fw)
Handler of pre-process inform
Definition: tuya_svc_upgrade.h:77
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_detect_register(TUYA_UPGRADE_DETECT_T *detect)
Register a new firmware upgrade workload
INT_T(* dev_upgrade_mq15_inform_cb)(ty_cJSON *root_json)
Handler of process inform for some upgrade type
Definition: tuya_svc_upgrade.h:91
VOID tuya_svc_upgrade_register_mq15_cb(dev_upgrade_mq15_inform_cb mq15_cb)
Register process handler for some upgrade type
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
INT_T(* SUBDEV_UPGRADE_INFORM_CB)(CONST CHAR_T *dev_id, CONST FW_UG_S *fw)
Handler of sub-device upgrade inform
Definition: tuya_svc_upgrade.h:84
OPERATE_RET tuya_svc_upgrade_active(VOID_T)
Run firmware upgrade framework, workloads registered will be executed
OPERATE_RET tuya_svc_upgrade_refuse(CONST FW_UG_S *fw, CONST CHAR_T *dev_id)
Refuse to download the specific firmware
INT_T(* DEV_UPGRADE_INFORM_CB)(CONST FW_UG_S *fw)
Handler of GW upgrade inform
Definition: tuya_svc_upgrade.h:72
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_detect_reset(CONST INT_T upgrade_interval)
Reset firmware upgrade check interval
OPERATE_RET tuya_svc_upgrade_init(TUYA_UPGRADE_PARAM_T *ota_param)
Initilize firmware upgrade framework