更新时间:2024-06-25 03:07:54下载pdf
TuyaOS Bluetooth Mesh SDK 内实现了固件升级的功能,通过与手机 App 或者网关建立 GATT 连接链路后,进行固件传输与更新。
由于固件升级和芯片平台架构关联较大,不同平台的处理需要在 kernal 层中做相应的适配。目前,涂鸦已导入并发布的平台中已经适配完成,Application 无需做额外适配,只需要将蓝牙 LE 数据回调中收到的 GATT 数据填入 OTA 业务处理回调中即可。详细可参考 SDK 中的 Demo 实现。
升级流程图如下:
SDK 升级支持断点续传功能(TLSR825x 受限于平台特性不支持该功能),即升级过程中蓝牙断开或者设备重启的情况下,重新连接升级可以从上次停止的位置继续升级。
升级过程中,如果设备与 App/网关的蓝牙连接断开,则设备将会立即重启。
设备在初始化时需要调用 OTA 初始化接口实现相关变量的初始化,此接口已经在 SDK 内部初始化完成,应用层无需处理。
VOID tal_ble_ota_init(VOID);
通过 GATT 回调收到 OTA 数据后,需要使用此接口将数据输入到 OTA 组件中进行数据解密与处理。
VOID tal_ble_ota_data_recv(UINT8_T *buf, UINT16_T len);
在 Application 中实现蓝牙 LE 数据接收回调,并通过注册接口注册到 SDK 中,在回调内将蓝牙 LE 接收到的 TAL_BLE_EVT_WRITE_REQ
数据传入 OTA 数据接收接口中。
VOID app_ble_data_recv(TAL_BLE_EVT_PARAMS_T *p_event)
{
switch (p_event->type) {
case TAL_BLE_EVT_WRITE_REQ:
tal_ble_ota_data_recv(p_event->ble_event.write_report.report.p_data, p_event->ble_event.write_report.report.len);
break;
default:
break;
}
}
OPERATE_RET tal_mesh_ble_recv_cb_init(TAL_BLE_EVT_FUNC_CB ble_event);
创建和管理固件。
在涂鸦开发者平台的 硬件开发 页面,选择 OTA 升级。
或者 固件 OTA 页面创建升级,注意固件升级为 PID 维度,需要先选择要创建升级的产品 PID,创建后的升级也只能升级此 PID 下的设备。
升级方式区别:
是否支持差分的选项要根据平台是否支持来确定,要支持差分升级的话需要上传支持差分升级的固件。
固件升级在发布时应先进行单个设备验证,确定设备可升级成功且设备功能正常才可以将升级发布。
填入设备虚拟 ID,即完成该设备的 OTA 配置。再次进入设备面板便能收到 OTA 推送信息,进行 OTA 的升级测试。
注意:设备必须是当前 PID 下的设备,否则将无法添加成功。
在验证设备升级到新版本固件后功能正常,如果要推送到当前 PID 下所有设备升级,则可以将升级进行发布。升级发布后,无需将设备虚拟 ID 填到白名单内即可检测到升级。
升级发布可以选择灰度发布与全量发布,具体的区别可以在涂鸦开发者平台内查看相关的说明。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈