请问一下,ota提示开始升级,sdk会调用那个回调函数?
【已解决】bk7231n sdk2.3.1版本,ota升级问题
Re: bk7231n sdk2.3.1版本,ota升级问题
可以订阅下述事件
//ota开始
#define EVENT_OTA_PROCESS_NOTIFY "ota.process"
//ota失败
#define EVENT_OTA_FAILED_NOTIFY "ota.failed"
//ota成功
#define EVENT_OTA_FINISHED_NOTIFY "ota.finished"
Re: bk7231n sdk2.3.1版本,ota升级问题
这三个宏定义,在2.3.1sdk版本中,没有找到,是要重新定义吗?
Re: bk7231n sdk2.3.1版本,ota升级问题
你看看有没有base_event_info.h这个文件。
如果没有这个文件,你看看你初始化传入的TY_IOT_CBS里有没有这个成员GW_UG_INFORM_CB pre_gw_ug_cb,这个回调接口也可以在ota开始之前感知到。
另外如果你是开发新产品,建议升级到tuayos 3.x版本,2.3.1是3年多之前的版本了。
Re: bk7231n sdk2.3.1版本,ota升级问题
有这个base_event_info.h 这个文件,
也有这个成员 GW_UG_INFORM_CB pre_gw_ug_cb,
那我现在是调用 base_event_info.h ,还是调用这个成员 pre_gw_ug_cb?
2.3.1版本的sdk,现在是来修改维护之前的代码,下个新的项目再调新的sdk
Re: bk7231n sdk2.3.1版本,ota升级问题
我添加到初始化里面的代码
Code: Select all
int pre_gw_ug_cb(IN CONST FW_UG_S *fw)
{
log_printf("Rev GW Upgrade Info");
log_printf("fw->fw_url:%s", fw->fw_url);
log_printf("fw->sw_ver:%s", fw->sw_ver);
log_printf("fw->file_size:%d", fw->file_size);
log_printf("==================================> debug ota update.\r\r");
}
TY_IOT_CBS_S wf_cbs = {
gw_status_cb,\
gw_ug_cb,\
gw_reset_cb,\
dev_obj_dp_cb,\
dev_raw_dp_cb,\
dev_dp_query_cb,\
pre_gw_ug_cb,\
NULL
};
op_ret = tuya_iot_wf_soc_dev_init_param(tuya_hard_get_wifi_mode(),WF_START_SMART_FIRST,&wf_cbs,NULL,pid_product_key,USER_SW_VER);
点击开始升级的时候,没有进入回调函数里面输出log
Re: bk7231n sdk2.3.1版本,ota升级问题
wt呃呃 2023年 Apr 7日 09:13我添加到初始化里面的代码
Code: Select all
int pre_gw_ug_cb(IN CONST FW_UG_S *fw) { log_printf("Rev GW Upgrade Info"); log_printf("fw->fw_url:%s", fw->fw_url); log_printf("fw->sw_ver:%s", fw->sw_ver); log_printf("fw->file_size:%d", fw->file_size); log_printf("==================================> debug ota update.\r\r"); } TY_IOT_CBS_S wf_cbs = { gw_status_cb,\
gw_ug_cb,\
gw_reset_cb,\
dev_obj_dp_cb,\
dev_raw_dp_cb,\
dev_dp_query_cb,\
pre_gw_ug_cb,\
NULL }; op_ret = tuya_iot_wf_soc_dev_init_param(tuya_hard_get_wifi_mode(),WF_START_SMART_FIRST,&wf_cbs,NULL,pid_product_key,USER_SW_VER);点击开始升级的时候,没有进入回调函数里面输出log
你看看你的初始化方式和实际这个成员在结构体中的偏移是否一致,尽量采用这样的初始化方式:
Code: Select all
/* Initialize TuyaOS product information */
TY_IOT_CBS_S iot_cbs = {0};
wf_cbs .gw_status_cb = gw_status_cb;
wf_cbs .gw_ug_cb = gw_ug_cb;
wf_cbs .gw_reset_cb = gw_reset_cb;
wf_cbs .dev_obj_dp_cb = dev_obj_dp_cb;
wf_cbs .dev_raw_dp_cb = dev_raw_dp_cb;
wf_cbs .dev_dp_query_cb = dev_dp_query_cb;
wf_cbs .pre_gw_ug_cb = pre_gw_ug_cb;
Re: bk7231n sdk2.3.1版本,ota升级问题
这样是可以了,但每次都是提升网络不好,升级不了,网还是可以的
Re: bk7231n sdk2.3.1版本,ota升级问题
wf_cbs .pre_gw_ug_cb = pre_gw_ug_cb; 把这个回调函数注册进去,升级是有回调了,但提升“升级失败,可能是由于信号太弱,请检查设备网络后重新尝试”。网络我可以排除了,把这句平掉就可以了,这是什么原因?