【已解决】【tuyaos】请问如何连接指定IP端口获取FOTA文件

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
wxq1123
Posts: 108
Location: 深圳市水世界有限公司

愚者千虑必有一得 2023年 Dec 26日 13:41

还没给你发布呢,更新的话,在你原来的基础上更新,不会引入其他的修改。不过这个功能存在2个问题:
1,需要一定的flash空间,大概10k左右
2,工具侧需要开发,现在是没支持的

行,那能告诉我怎么通过接入指定WIFI获取FOTA文件吗,我先试着搞下局域网OTA

wxq1123
Posts: 108
Location: 深圳市水世界有限公司

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

愚者千虑必有一得 2023年 Dec 26日 13:41

还没给你发布呢,更新的话,在你原来的基础上更新,不会引入其他的修改。不过这个功能存在2个问题:
1,需要一定的flash空间,大概10k左右
2,工具侧需要开发,现在是没支持的

我在看 example_http_download 示例的时候有几个疑问
1)mk文件中“首先确保设备正确连接iot平台”是指手机配网后连接到的涂鸦云吗?如果是,出厂设备没有手机配网的如何连接到iot平台
2)连接平台后如何触发“pre_gw_ug_cb”这个回调来获取url,key这些信息

wxq1123
Posts: 108
Location: 深圳市水世界有限公司

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

wxq1123 2023年 Dec 18日 11:03
愚者千虑必有一得 2023年 Dec 15日 17:58

你们这个需求背景是什么?我们有类似局域网ota的功能。

在量产之前整机测试用,设置一个WIFI热点,上电设备扫描到后连接热点获取文件开始OTA。

我如果获取到了完整字节的UG bin文件,应该调哪个接口实现升级呢

yingtao_33
Posts: 245

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

wxq1123 2024年 Jan 26日 10:48
愚者千虑必有一得 2023年 Dec 26日 13:41

还没给你发布呢,更新的话,在你原来的基础上更新,不会引入其他的修改。不过这个功能存在2个问题:
1,需要一定的flash空间,大概10k左右
2,工具侧需要开发,现在是没支持的

我在看 example_http_download 示例的时候有几个疑问
1)mk文件中“首先确保设备正确连接iot平台”是指手机配网后连接到的涂鸦云吗?如果是,出厂设备没有手机配网的如何连接到iot平台
2)连接平台后如何触发“pre_gw_ug_cb”这个回调来获取url,key这些信息

  1. example_http_download 这个用来下载其他文件的示例,不是局域网ota的示例。故这连接iot是指手机配网后连到涂鸦云。
    2.pre_gw_ug_cb 这个回调是 开发框架收到云端的升级请求时通知应用的。通过app 触发或者配置了自动升级。关于主联网固件升级参考:https://developer.tuya.com/cn/docs/iot- ... s90hhrjuhn
    3.你要做局域网升级,以上的示例和接口都不适用。
愚者千虑必有一得
Posts: 499

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

wxq1123 2024年 Jan 29日 14:31
wxq1123 2023年 Dec 18日 11:03
愚者千虑必有一得 2023年 Dec 15日 17:58

你们这个需求背景是什么?我们有类似局域网ota的功能。

在量产之前整机测试用,设置一个WIFI热点,上电设备扫描到后连接热点获取文件开始OTA。

我如果获取到了完整字节的UG bin文件,应该调哪个接口实现升级呢

升级的过程主要分为三个部分:

  • 升级前的获取升级包和设备升级能力信息;

  • 下载写入固件到flash;

  • 进行升级切换工作;

如果开发者通过自己的方式获取到了UG固件,并能保证合法性,通过我们的TKL接口,可以直接进行OTA。

Code: Select all

//平台支持的 OTA 能力,一般用于选择下载域名,自己获取固件不需要用这个接口,自己保证正确即可。
OPERATE_RET tkl_ota_get_ability (
UINT_T *image_size,
TUYA_OTA_TYPE_E *type )	

//通知开发平台数据开始写入,需要准备资源
OPERATE_RET tkl_ota_start_notify (
UINT_T image_size,
TUYA_OTA_TYPE_E type,
TUYA_OTA_PATH_E path )	

//固件数据写入处理,TuyaOS 从云端拉数据写入平台 Flash
OPERATE_RET tkl_ota_data_process (
TUYA_OTA_DATA_T *pack,
UINT_T *remain_len )	

//通知开发平台数据写完成,需要校验文件,设置状态
OPERATE_RET tkl_ota_end_notify ( BOOL_T reset )	

具体的操作逻辑如下:

企业微信截图_17065816502795.png
wxq1123
Posts: 108
Location: 深圳市水世界有限公司

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

我之前获取一个20K的文件测试能够完整下载下来。但是换成UG文件长达6M的文件下载发现每次都不能下载完成,连接就断了。用example_wifi_sta 试验发现,连接成功后18S就会断开。有什么方法关闭这个超时机制或延长这个超时时长吗?

bfc0c65921e5ae33d1d50a29eb9df94.png
wxq1123
Posts: 108
Location: 深圳市水世界有限公司

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

愚者千虑必有一得 2024年 Jan 30日 10:29
wxq1123 2024年 Jan 29日 14:31
wxq1123 2023年 Dec 18日 11:03

在量产之前整机测试用,设置一个WIFI热点,上电设备扫描到后连接热点获取文件开始OTA。

我如果获取到了完整字节的UG bin文件,应该调哪个接口实现升级呢

升级的过程主要分为三个部分:

  • 升级前的获取升级包和设备升级能力信息;

  • 下载写入固件到flash;

  • 进行升级切换工作;

如果开发者通过自己的方式获取到了UG固件,并能保证合法性,通过我们的TKL接口,可以直接进行OTA。

Code: Select all

//平台支持的 OTA 能力,一般用于选择下载域名,自己获取固件不需要用这个接口,自己保证正确即可。
OPERATE_RET tkl_ota_get_ability (
UINT_T *image_size,
TUYA_OTA_TYPE_E *type )	

//通知开发平台数据开始写入,需要准备资源
OPERATE_RET tkl_ota_start_notify (
UINT_T image_size,
TUYA_OTA_TYPE_E type,
TUYA_OTA_PATH_E path )	

//固件数据写入处理,TuyaOS 从云端拉数据写入平台 Flash
OPERATE_RET tkl_ota_data_process (
TUYA_OTA_DATA_T *pack,
UINT_T *remain_len )	

//通知开发平台数据写完成,需要校验文件,设置状态
OPERATE_RET tkl_ota_end_notify ( BOOL_T reset )	

具体的操作逻辑如下:
企业微信截图_17065816502795.png

目前我们已经能获取到了完整字节的UG bin文件,因为我们服务器给的校验方式和tkl_ota.c文件中的校验方式不同,我们参考涂鸦适配层的tkl_ota.c文件,将接收到的数据从UG_START_ADDR 0x12A000开始写入。但写入完后重启没能成功升级,想询问一下如何触发将该区数据写到应用区,来实现升级。

愚者千虑必有一得
Posts: 499

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

这个接口有调用吗?
OPERATE_RET tkl_ota_end_notify ( BOOL_T reset )

chaser
Posts: 75

Re: 【求助】【tuyaos】请问如何连接指定IP端口获取FOTA文件

基于你们已经拉到完整的 UG 文件, 你们只要把 UG 文件中的涂鸦头去掉,把剩下的 UG 数据写到 0x12A000 地址上,重启设备就能正常升级了。 涂鸦头结构体如下:

企业微信截图_20240219140411.png
Post Reply