SDK说明

1. SDK简介

杰理OTA库是基于杰理RCSP协议而实现, 可以方便客户二次开发快速接入OTA功能。

  • 只要杰理设备的固件支持RCSP协议, 即可使用杰理OTA升级的App来升级。

  • 支持固件单双备份OTA的流程。

2. SDK框架

digraph framework { rankdir=BT; compound=true; ota_flow [label="OTA流程(JL_OTA库)", shape="Mrecord", style="filled", fillcolor="lightblue", width=5]; ota_rcsp [label="OTA基于RCSP实现类(JL_OTA库)", shape="Mrecord", style="filled", fillcolor="lightgreen", width=5]; rcsp_protocol [label="RCSP协议层(JL_RCSP库)", shape="Mrecord", style="filled", fillcolor="cornflowerblue", width=5]; ota_wrapper [label="OTA封装层", shape="Mrecord", style="filled", fillcolor="lightyellow", width=5]; bt_ota_manager [label="蓝牙OTA管理类", shape="Mrecord", style="filled", fillcolor="lightblue", width=5]; bt_proxy [label="蓝牙代理层", shape="Mrecord", style="filled", fillcolor="lightgreen", width=5]; bt_api [label="蓝牙api", shape="Mrecord", style="filled", fillcolor="cornflowerblue", width=5]; bt_api -> bt_proxy [label="负责蓝牙连接初始化,以及MTU分包发送数据", dir="both"]; bt_proxy -> bt_ota_manager [label="用于OTA封装层适配不同的蓝牙实现", dir="both"]; bt_ota_manager -> ota_wrapper [label="负责监听蓝牙连接状态和蓝牙数据传输", dir="both"]; ota_wrapper -> rcsp_protocol [label="封装处理回连流程\n负责管理JL_OTA库,JL_RCSP库,JL_Auth库", dir="both"]; rcsp_protocol -> ota_rcsp [label="基于RCSP协议生成OTA命令", dir="both"]; ota_rcsp -> ota_flow [label="控制OTA命令进行OTA升级流程交互", dir="both"]; }

杰理OTAApp(HarmonyOS)_应用架构

  • 蓝牙api:官方的蓝牙接口,定义蓝牙模块如何使用。

  • 蓝牙代理层:负责基于平台的api和接口特性,处理蓝牙设备的扫描、连接、收发数据。(注:对应代码中的SppImpl,BleImpl,BluetoothManager等)

  • 蓝牙OTA管理类:负责适配监听各个平台的蓝牙代理层的蓝牙信息(扫描、连接、收发数据),转换处理给OTA封装层。(注:BluetoothOTAManager)

  • OTA封装层:负责管理RCSP协议层对象和OTAManager对象,负责对设备进行RCSP认证。负责处理设备的回连过程。(注:OtaWrapper)

  • RCSP协议层:把RCSP不同命令的参数打包成命令裸数据,把设备推送的RCSP命令裸数据解析成不同命令对象和参数。(注:RcspImpl)

  • OTA基于RCSP实现:负责把OTA流程用RCSP协议进行通讯。(注:RcspOTAManager)

  • OTA流程:负责管理OTA的每个步骤的流程。(注:OTAImpl)

Important

1. 目前鸿蒙版支持BLE和SPP两种通讯方式。
2. 在使用SPP单备份升级时,需注意,SPP单备份升级时,需App端进行断开蓝牙操作,请在OTAUpgradeCallback.onExecuteDisconnectDevice()回调中进行蓝牙断开操作。BLE则不需要处理,由设备端主动断开。