mw cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
..
ble_file_fota.lua cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
ble_fota.bin cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
ble_fota_tool.py cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
ble_main.lua cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
ble_packet_fota.lua cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
main.lua cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa
readme.md cb9247cf62 add:添加8101的fota核心库升级demo以及蓝牙升级demo 3 mesi fa

readme.md

功能模块介绍

1、main.lua:主程序入口,负责初始化系统和启动蓝牙FOTA服务;

2、ble_main.lua:BLE服务主功能模块,负责蓝牙连接管理、事件处理和数据传输;支持配置选择FOTA升级方式;

3、ble_file_fota.lua:FOTA业务逻辑模块(文件写入方式),负责升级流程控制、命令处理和文件操作;

4、ble_packet_fota.lua:FOTA业务逻辑模块(分段写入方式),负责升级流程控制、命令处理和分段数据操作;

5、ble_fota_tool.py:Python脚本工具,用于通过蓝牙发送升级包,演示ble升级的完整流程;

6、ble_fota.bin:演示蓝牙FOTA升级的升级包文件,用于测试升级功能的完整性;内容只升级了版本号,加了个打印

演示功能概述

本demo演示的核心功能为:

Air8101模块通过BLE(蓝牙低功耗)进行固件远程升级(FOTA)的完整实现方案,支持两种升级方式:

  1. 文件写入方式:将接收到的升级包数据先保存到本地临时文件,完成数据接收后再执行升级

    • 优点:适合完整固件升级,逻辑清晰,易于调试
    • 缺点:需要额外的文件系统分区存储空间保存完整固件
    • 适用场景:存储空间充足的设备
  2. 分段写入方式:直接将接收到的升级包数据通过fota.run()函数处理,无需保存到本地文件

    • 优点:节省存储空间,适合差分升级
    • 缺点:对内存要求较高,需要足够的内存缓冲区实时处理数据
    • 适用场景:存储空间有限的设备

适用场景:

  • 智能硬件、可穿戴设备等蓝牙连接设备的固件升级
  • 需要自定义升级流程的应用场景
  • 无网络环境下的设备固件更新

演示硬件环境

1、Air8101 核心板一块

2、TYPE-C USB数据线一根 ,Air8101 核心板和数据线的硬件接线方式为:

  • TYPE-C USB数据线直接插到核心板的TYPE-C USB座子,另外一端连接电脑USB口;

演示软件环境

1、Luatools下载调试工具,需要注意的是luatools工具版本必须为3.1.10及以上版本,否则制作的升级包没办法升级。

2、Air8101 V2001版本固件以上,25/12/17日后的固件)

3、Python 3 环境(用于运行ble_fota_tool.py发送升级包)

  注意需要安装bleak库,可通过pip安装:

  ```bash
     pip install bleak
  ```

蓝牙FOTA升级工具使用说明

工具功能

  • 连接Air8101设备并发送升级包
  • 显示升级进度和状态信息
  • 支持自定义升级包文件名

使用方法

  1. 确保Air8101设备处于蓝牙广播状态,设备名称为"Air8101_FOTA"
  2. 在命令行中运行ble_fota_tool.py脚本,指定升级包文件名

    python ble_fota_tool.py -f 升级包文件名
    

参数说明

  • -d 或 --device - 指定目标设备名称(默认值为"Air8101_FOTA")

  • -f 或 --firmware - 指定固件文件路径(必需参数)

工作流程

当运行脚本后,它会自动执行以下步骤:

  1. 加载指定的固件文件
  2. 扫描并发现蓝牙设备
  3. 连接到目标设备
  4. 发送开始升级命令
  5. 发送固件数据到设备
  6. 发送结束升级命令
  7. 等待设备处理升级
  8. 断开连接并完成升级过程

脚本会在每个步骤显示详细的日志信息,包括连接状态、数据传输进度等,方便用户监控整个升级过程。

蓝牙GATT服务设计

服务与特征值定义

类型 UUID 属性 功能描述
Service F000 - FOTA服务主UUID,用于标识升级服务
Characteristic F001 Write Without Response 命令特征值,用于发送升级控制命令
Characteristic F002 Write Without Response 数据特征值,用于发送升级包数据

命令报文格式

开始升级命令

  • 命令码:0x01
  • 格式[命令码(1字节)] + [文件大小(4字节)]
  • 示例01 75 15 00 00 表示开始升级,固件大小为5493字节
  • 说明
    • 命令码固定为0x01
    • 文件大小为4字节小端序
    • 设备收到此命令后,初始化FOTA子系统并准备接收数据

结束升级命令

  • 命令码:0x02
  • 格式[命令码(1字节)]
  • 示例02
  • 说明
    • 命令码固定为0x02
    • 设备收到此命令后,验证固件完整性并执行升级

数据报文格式

  • 格式[固件数据(n字节)]
  • 默认长度:200字节(可通过ble_fota_tool.py配置调整,最大256)
  • 说明
    • 固件数据为二进制格式
    • 每包数据大小不超过BLE数据包最大长度:Air8101系列模组硬件支持最大256字节,考虑到稳定性建议保持默认的200字节
    • 设备收到数据后,根据所选的FOTA方式进行处理:
    • 文件方式:将数据写入临时文件
    • 分段方式:直接通过fota.run()处理数据

升级流程

用法:

  1. 先把脚本和固件烧录到Air8101模块中,并确认设备正常启动
  2. 模块启动后会自动开启BLE广播,广播名称为"Air8101_FOTA"
  3. 在电脑端操作:运行ble_fota_tool.py脚本连接设备并发送升级固件 注意:确保升级文件名为正确格式,并且与ble_fota_tool.py在同一目录下
  4. 观察日志输出确认升级进度
  5. 模块接收并验证固件成功后,会自动重启并应用新固件

BLE通讯过程说明

蓝牙FOTA升级通过BLE特征值进行命令控制和数据传输: 协议流程:

  1. 上位机通过BLE扫描并连接名为"Air8101_FOTA"的设备
  2. 上位机向命令特征值(F001)发送开始升级命令(0x01)和固件大小
  3. 设备初始化FOTA功能并准备接收数据
  4. 上位机向数据特征值(F002)分包发送固件数据
  5. 设备接收并保存数据到临时文件
  6. 上位机发送结束升级命令(0x02)
  7. 设备验证固件完整性并执行FOTA升级流程
  8. 升级成功后设备自动重启

演示操作步骤

1、搭建好演示硬件环境

2、根据ble_main.lua中的fota_mode选择FOTA升级方式:"file" 或 "packet",默认是"packet"方式。

   -- 选择FOTA升级方式,"file" 或 "packet"
   local fota_mode = "packet"

3、测试的时候可以直接使用demo目录下已经制作好的升级包,也可以自己制作升级包。

自己制作升级包时使用Luatools制作升级包,流程参考升级包制作流程。将制作好的升级包放在ble_fota_tool.py同级目录下

4、使用Luatools烧录内核固件和demo脚本代码,烧录成功后,自动开机运行。

5、确认设备处于蓝牙广播状态(设备名称为"Air8101_FOTA")

6、运行Python脚本发送升级包:

python ble_fota_tool.py -f ble_fota.bin

7、脚本会自动扫描并连接到目标设备,发送升级命令并传输固件文件

8、设备接收并验证升级包,校验升级包没问题后会启动升级并重启,重启后项目版本号会从1.0.0更新为1.0.1

9、可以看到如下日志:

蓝牙FOTA升级日志解读:

  1. 设备启动,蓝牙服务初始化成功

  2. 收到开始升级命令,初始化FOTA分区和缓冲区

  3. 开始分段接收固件数据

  4. 所有数据接收完成,验证固件完整性

  5. 升级完成,设备重启

  6. 重启后新版本正常运行,确认升级成功

packet 升级方式日志如下:

[2025-12-17 16:54:14.565] luat:U(1248):I/user.BLE_INIT 开始初始化BLE...
[2025-12-17 16:54:14.565] luat:D(1249):bluetooth:执行bt初始化
[2025-12-17 16:54:14.565] bt_ipc:W(1248):bt_ipc_init bt ipc already initialised
[2025-12-17 16:54:14.565] rwnx_cal_set_rfconfig(0x101) phy on; rf off
[2025-12-17 16:54:14.658] luat:U(1326):I/user.BLE_INIT 蓝牙核心初始化成功
[2025-12-17 16:54:14.658] luat:D(1326):bluetooth:cmd:27
[2025-12-17 16:54:14.658] luat:U(1327):I/user.BLE_INIT BLE功能初始化成功
[2025-12-17 16:54:14.658] luat:U(1327):I/user.BLE_INIT GATT服务创建成功
[2025-12-17 16:54:14.658] luat:U(1328):I/user.BLE_INIT 配置广播数据...
[2025-12-17 16:54:14.658] luat:D(1334):bluetooth:ble_cmd_cb cmd:1 status:0
[2025-12-17 16:54:14.690] luat:D(1340):bluetooth:ble_cmd_cb cmd:2 status:0
[2025-12-17 16:54:14.690] luat:U(1341):I/user.BLE_INIT 广播配置成功
[2025-12-17 16:54:14.690] luat:D(1347):bluetooth:ble_cmd_cb cmd:4 status:0
[2025-12-17 16:54:14.690] luat:U(1348):I/user.BLE_INIT BLE广播已启动,设备名称: Air8101_FOTA
[2025-12-17 16:54:14.690] luat:U(1350):I/user.BLE_EVENT 收到BLE事件: 1
[2025-12-17 16:54:14.690] luat:U(1351):I/user.BLE_EVENT 其他事件类型: 1
[2025-12-17 16:54:14.690] luat:U(1351):I/user.BLE_EVENT 收到BLE事件: 3
[2025-12-17 16:54:14.690] luat:U(1351):I/user.BLE_EVENT 其他事件类型: 3
[2025-12-17 16:54:14.690] luat:U(1352):I/user.BLE_EVENT 收到BLE事件: 4
[2025-12-17 16:54:14.690] luat:U(1352):I/user.BLE_EVENT 其他事件类型: 4
[2025-12-17 16:54:17.448] luat:U(4110):I/user.fota version 001.000.000
[2025-12-17 16:54:20.440] luat:U(7110):I/user.fota version 001.000.000
[2025-12-17 16:54:23.438] luat:U(10110):I/user.fota version 001.000.000
[2025-12-17 16:54:26.434] luat:U(13110):I/user.fota version 001.000.000
[2025-12-17 16:54:29.440] luat:U(16110):I/user.fota version 001.000.000
[2025-12-17 16:54:32.434] luat:U(19110):I/user.fota version 001.000.000
[2025-12-17 16:54:32.870] ap0:ble:W(19432):appm_msg_handler,src_task_id:0x11,dest_id:0x0,src_id:0x0,msgid:0x1104
[2025-12-17 16:54:32.870] ap0:ble:W(19432):[gapc_connection_req_ind_handler]conidx:0,dest_id:0x0,con_peer_addr:92:6d:c7:33:13:14
[2025-12-17 16:54:32.870] luat:U(19546):I/user.BLE_EVENT 收到BLE事件: 12
[2025-12-17 16:54:32.870] luat:U(19546):I/user.BLE_EVENT 设备已连接 地址: 141333C76D92
[2025-12-17 16:54:32.886] luat:U(19547):I/user.BLE 设备连接成功: 141333C76D92
[2025-12-17 16:54:33.975] luat:U(20639):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:54:33.975] luat:U(20639):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:54:33.975] luat:U(20640):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:54:33.975] luat:U(20640):I/user.BLE_EVENT 特征值UUID: F001
[2025-12-17 16:54:33.975] luat:U(20640):I/user.BLE_EVENT 数据长度: 5 字节
[2025-12-17 16:54:33.975] luat:U(20641):I/user.BLE 收到写请求: F000 F001 01C8A90000
[2025-12-17 16:54:33.975] luat:U(20641):I/user.ble_packet_fota 处理写入数据 F000 F001 01C8A90000 10
[2025-12-17 16:54:33.975] luat:U(20641):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: 1 数据匹配: nil
[2025-12-17 16:54:33.975] luat:U(20642):I/user.ble_packet_fota 命令特征值匹配,处理命令
[2025-12-17 16:54:33.975] luat:U(20642):I/user.FOTA_CMD 收到命令数据: 01C8A90000 长度: 5
[2025-12-17 16:54:33.975] luat:U(20642):I/user.FOTA_CMD 解析命令码: 1 (0x01)
[2025-12-17 16:54:33.975] luat:U(20642):I/user.FOTA_CMD 处理开始升级命令
[2025-12-17 16:54:33.975] luat:U(20643):I/user.FOTA_CMD 文件总大小: 43464 字节
[2025-12-17 16:54:33.975] luat:U(20643):I/user.FOTA_CMD 初始化FOTA子系统...
[2025-12-17 16:54:33.975] luat:U(20643):I/user.FOTA_CMD FOTA初始化成功
[2025-12-17 16:54:33.975] luat:U(20644):I/user.FOTA_CMD FOTA底层准备就绪
[2025-12-17 16:54:33.975] luat:U(20644):I/user.FOTA_CMD 升级状态已设置 总大小: 43464
[2025-12-17 16:54:33.975] luat:U(20644):I/user.FOTA_CMD 准备接收固件数据...
[2025-12-17 16:54:35.063] luat:U(21730):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:54:35.063] luat:U(21730):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:54:35.063] luat:U(21730):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:54:35.063] luat:U(21731):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:54:35.063] luat:U(21731):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:54:35.063] luat:U(21731):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 16:54:35.063] luat:U(21732):I/user.ble_packet_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 16:54:35.063] luat:U(21733):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:54:35.063] luat:U(21733):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:54:35.063] luat:U(21733):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:54:35.063] luat:U(21733):I/user.FOTA_DATA 处理分段数据,包序号: 0
[2025-12-17 16:54:35.063] luat:U(21733):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:54:35.063] luat:U(21734):I/user.FOTA_DATA 数据写入成功,当前总计: 200 字节
[2025-12-17 16:54:35.204] luat:U(21867):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:54:35.204] luat:U(21868):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:54:35.204] luat:U(21868):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:54:35.204] luat:U(21868):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:54:35.204] luat:U(21868):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:54:35.204] luat:U(21869):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 16:54:35.204] luat:U(21870):I/user.ble_packet_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 16:54:35.204] luat:U(21870):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:54:35.204] luat:U(21870):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:54:35.204] luat:U(21871):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:54:35.204] luat:U(21871):I/user.FOTA_DATA 处理分段数据,包序号: 1
[2025-12-17 16:54:35.204] luat:U(21871):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:54:35.204] luat:U(21871):I/user.FOTA_DATA 数据写入成功,当前总计: 400 字节
[2025-12-17 16:54:35.345] luat:U(22005):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:54:35.345] luat:U(22005):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:54:35.345] luat:U(22005):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:54:35.345] luat:U(22005):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:54:35.345] luat:U(22006):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:54:35.345] luat:U(22006):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 16:54:35.345] luat:U(22007):I/user.ble_packet_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 16:54:35.345] luat:U(22007):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:54:35.345] luat:U(22008):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:54:35.345] luat:U(22008):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:54:35.345] luat:U(22008):I/user.FOTA_DATA 处理分段数据,包序号: 2
[2025-12-17 16:54:35.345] luat:U(22008):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:54:35.345] luat:U(22009):I/user.FOTA_DATA 数据写入成功,当前总计: 600 字节
[2025-12-17 16:54:35.437] luat:U(22110):I/user.fota version 001.000.000
[2025-12-17 16:54:35.484] luat:U(22151):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:54:35.484] luat:U(22151):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:54:35.484] luat:U(22152):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:54:35.484] luat:U(22152):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:54:35.484] luat:U(22152):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:54:35.484] luat:U(22153):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 16:54:35.484] luat:U(22153):I/user.ble_packet_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 16:54:35.484] luat:U(22154):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:54:35.484] luat:U(22154):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:54:35.484] luat:U(22154):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:54:35.484] luat:U(22154):I/user.FOTA_DATA 处理分段数据,包序号: 3
[2025-12-17 16:54:35.484] luat:U(22155):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:54:35.484] luat:U(22155):I/user.FOTA_DATA 数据写入成功,当前总计: 800 字节
[2025-12-17 16:54:35.640] luat:U(22326):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:54:35.640] luat:U(22326):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:54:35.640] luat:U(22327):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:54:35.640] luat:U(22327):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:54:35.640] luat:U(22327):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:54:35.640] luat:U(22328):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 16:54:35.662] luat:U(22328):I/user.ble_packet_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 16:54:35.662] luat:U(22329):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:54:35.662] luat:U(22329):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:54:35.662] luat:U(22329):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:54:35.662] luat:U(22329):I/user.FOTA_DATA 处理分段数据,包序号: 4
[2025-12-17 16:54:35.662] luat:U(22330):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:54:35.662] luat:U(22330):I/user.FOTA_DATA 数据写入成功,当前总计: 1000 字节

--省略重复日志--

[2025-12-17 16:55:13.372] luat:U(60038):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:55:13.372] luat:U(60038):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:55:13.372] luat:U(60038):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:55:13.372] luat:U(60038):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:55:13.372] luat:U(60039):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:55:13.372] luat:U(60039):I/user.BLE 收到写请求: F000 F002 6E744279496428276C6F67696E506167A9CA6527292E636C6173734C6973742E616464282768696464656E27293B0D0A202066E4202020202020202020202020202020202020646F63756D656E742E676574456C4B87656D656E7442794964282766696C655061676527292E636C6173734C6973742EAEB172656D6F7665282768696464656E27293B0D0A202020202020202020202020207228202020202020206C6F616446696C657328272F6C7561646227293B0D0A202020B82D202020202020202020202020
[2025-12-17 16:55:13.372] luat:U(60040):I/user.ble_packet_fota 处理写入数据 F000 F002 6E744279496428276C6F67696E506167A9CA6527292E636C6173734C6973742E616464282768696464656E27293B0D0A202066E4202020202020202020202020202020202020646F63756D656E742E676574456C4B87656D656E7442794964282766696C655061676527292E636C6173734C6973742EAEB172656D6F7665282768696464656E27293B0D0A202020202020202020202020207228202020202020206C6F616446696C657328272F6C7561646227293B0D0A202020B82D202020202020202020202020 400
[2025-12-17 16:55:13.372] luat:U(60040):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:55:13.372] luat:U(60040):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:55:13.372] luat:U(60041):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:55:13.372] luat:U(60041):I/user.FOTA_DATA 处理分段数据,包序号: 214
[2025-12-17 16:55:13.372] luat:U(60041):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:55:13.372] luat:U(60041):I/user.FOTA_DATA 数据写入成功,当前总计: 43000 字节
[2025-12-17 16:55:13.528] luat:U(60213):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:55:13.528] luat:U(60213):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:55:13.528] luat:U(60213):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:55:13.528] luat:U(60213):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:55:13.528] luat:U(60214):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:55:13.528] luat:U(60214):I/user.BLE 收到写请求: F000 F002 207D0D0A2020202020202020202020207D293B0D2DB30A20202020202020207D3B0D0A202020203C2F7363726970743E0D0A3C2F626FB49164793E0D0A3C2F68746D6C3E0D0A01045AA55AA502142E6169726D326D5F616C41256C5F637263232E62696E030410000000FE025F0A85779E0F60399D926FD45C9203CFFE06FEBA00000000000000000000000000000000000000000000000000000000E548000000000000000000000000000000000000000000000000000000000000000080290000000000000000
[2025-12-17 16:55:13.528] luat:U(60215):I/user.ble_packet_fota 处理写入数据 F000 F002 207D0D0A2020202020202020202020207D293B0D2DB30A20202020202020207D3B0D0A202020203C2F7363726970743E0D0A3C2F626FB49164793E0D0A3C2F68746D6C3E0D0A01045AA55AA502142E6169726D326D5F616C41256C5F637263232E62696E030410000000FE025F0A85779E0F60399D926FD45C9203CFFE06FEBA00000000000000000000000000000000000000000000000000000000E548000000000000000000000000000000000000000000000000000000000000000080290000000000000000 400
[2025-12-17 16:55:13.528] luat:U(60215):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:55:13.528] luat:U(60216):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:55:13.528] luat:U(60216):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:55:13.528] luat:U(60216):I/user.FOTA_DATA 处理分段数据,包序号: 215
[2025-12-17 16:55:13.563] luat:U(60216):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:55:13.563] luat:U(60216):I/user.FOTA_DATA 数据写入成功,当前总计: 43200 字节
[2025-12-17 16:55:13.714] luat:U(60388):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:55:13.714] luat:U(60388):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:55:13.714] luat:U(60388):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:55:13.714] luat:U(60388):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:55:13.714] luat:U(60389):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 16:55:13.714] luat:U(60389):I/user.BLE 收到写请求: F000 F002 0000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000
[2025-12-17 16:55:13.734] luat:U(60390):I/user.ble_packet_fota 处理写入数据 F000 F002 0000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000 400
[2025-12-17 16:55:13.734] luat:U(60390):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:55:13.734] luat:U(60391):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:55:13.734] luat:U(60391):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 16:55:13.734] luat:U(60391):I/user.FOTA_DATA 处理分段数据,包序号: 216
[2025-12-17 16:55:13.734] luat:U(60391):I/user.FOTA_DATA 分段写入结果: result: true isDone: false
[2025-12-17 16:55:13.734] luat:U(60391):I/user.FOTA_DATA 数据写入成功,当前总计: 43400 字节
[2025-12-17 16:55:13.870] luat:U(60559):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:55:13.870] luat:U(60560):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:55:13.870] luat:U(60560):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:55:13.870] luat:U(60560):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 16:55:13.870] luat:U(60560):I/user.BLE_EVENT 数据长度: 64 字节
[2025-12-17 16:55:13.870] luat:U(60561):I/user.BLE 收到写请求: F000 F002 00000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029
[2025-12-17 16:55:13.898] luat:U(60561):I/user.ble_packet_fota 处理写入数据 F000 F002 00000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029 128
[2025-12-17 16:55:13.898] luat:U(60562):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 16:55:13.910] luat:U(60562):I/user.ble_packet_fota 数据特征值匹配,处理数据
[2025-12-17 16:55:13.910] luat:U(60562):I/user.FOTA_DATA 收到数据包,长度: 64 字节
[2025-12-17 16:55:13.923] luat:U(60562):I/user.FOTA_DATA 处理分段数据,包序号: 217
[2025-12-17 16:55:14.183] luat:I(60853):fota:erase time used 290ms
[2025-12-17 16:55:14.230] luat:I(60897):fota:write time used 44ms
[2025-12-17 16:55:14.230] luat:I(60897):fota:FOTA progress: 43464 bytes written , total 40254ms
[2025-12-17 16:55:14.230] luat:U(60898):I/user.FOTA_DATA 分段写入结果: result: true isDone: true
[2025-12-17 16:55:14.230] luat:U(60898):I/user.FOTA_DATA 升级进度: 100 % ( 43464 / 43464 )
[2025-12-17 16:55:14.230] luat:U(60898):I/user.FOTA_DATA 数据写入成功,当前总计: 43464 字节
[2025-12-17 16:55:14.230] luat:U(60899):I/user.FOTA_DATA 所有数据已接收,等待升级完成...
[2025-12-17 16:55:14.324] luat:U(60996):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 16:55:14.324] luat:U(60996):I/user.BLE_EVENT 处理写入事件
[2025-12-17 16:55:14.324] luat:U(60996):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 16:55:14.324] luat:U(60996):I/user.BLE_EVENT 特征值UUID: F001
[2025-12-17 16:55:14.324] luat:U(60997):I/user.BLE_EVENT 数据长度: 1 字节
[2025-12-17 16:55:14.324] luat:U(60997):I/user.BLE 收到写请求: F000 F001 02
[2025-12-17 16:55:14.324] luat:U(60997):I/user.ble_packet_fota 处理写入数据 F000 F001 02 2
[2025-12-17 16:55:14.324] luat:U(60998):I/user.ble_packet_fota UUID匹配结果: 服务匹配: 1 命令匹配: 1 数据匹配: nil
[2025-12-17 16:55:14.324] luat:U(60998):I/user.ble_packet_fota 命令特征值匹配,处理命令
[2025-12-17 16:55:14.324] luat:U(60998):I/user.FOTA_CMD 收到命令数据: 02 长度: 1
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 解析命令码: 2 (0x02)
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 处理结束升级命令
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 验证文件完整性...
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 已接收: 43464 字节
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 应接收: 43464 字节
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 文件完整性验证通过
[2025-12-17 16:55:14.324] luat:U(60999):I/user.FOTA_CMD 升级数据已全部接收,等待升级完成...
[2025-12-17 16:55:14.432] luat:I(61099):fota:fota done, write 43464 bytes
[2025-12-17 16:55:14.432] luat:U(61099):I/user.FOTA_CMD FOTA升级成功!
[2025-12-17 16:55:14.432] luat:U(61100):I/user.FOTA_CMD 2秒后设备将自动重启...,重启后通过日志判断最终是否升级成功
[2025-12-17 16:55:14.432] luat:U(61100):I/user.FOTA_CMD 结束升级命令处理完成
[2025-12-17 16:55:14.432] luat:U(61109):I/user.fota version 001.000.000
[2025-12-17 16:55:16.430] luat:U(63099):I/user.FOTA_CMD 正在重启设备...

file方式升级日志如下:

[2025-12-17 17:18:56.849] luat:U(1246):I/user.BLE_INIT 开始初始化BLE...
[2025-12-17 17:18:56.849] luat:D(1246):bluetooth:执行bt初始化
[2025-12-17 17:18:56.849] bt_ipc:W(1245):bt_ipc_init bt ipc already initialised
[2025-12-17 17:18:56.849] rwnx_cal_set_rfconfig(0x101) phy on; rf off
[2025-12-17 17:18:56.927] luat:U(1323):I/user.BLE_INIT 蓝牙核心初始化成功
[2025-12-17 17:18:56.927] luat:D(1323):bluetooth:cmd:27
[2025-12-17 17:18:56.927] luat:U(1324):I/user.BLE_INIT BLE功能初始化成功
[2025-12-17 17:18:56.927] luat:U(1325):I/user.BLE_INIT GATT服务创建成功
[2025-12-17 17:18:56.927] luat:U(1325):I/user.BLE_INIT 配置广播数据...
[2025-12-17 17:18:56.927] luat:D(1331):bluetooth:ble_cmd_cb cmd:1 status:0
[2025-12-17 17:18:56.961] luat:D(1338):bluetooth:ble_cmd_cb cmd:2 status:0
[2025-12-17 17:18:56.961] luat:U(1339):I/user.BLE_INIT 广播配置成功
[2025-12-17 17:18:56.961] luat:D(1345):bluetooth:ble_cmd_cb cmd:4 status:0
[2025-12-17 17:18:56.961] luat:U(1346):I/user.BLE_INIT BLE广播已启动,设备名称: Air8101_FOTA
[2025-12-17 17:18:56.961] luat:U(1348):I/user.BLE_EVENT 收到BLE事件: 1
[2025-12-17 17:18:56.961] luat:U(1349):I/user.BLE_EVENT 其他事件类型: 1
[2025-12-17 17:18:56.961] luat:U(1349):I/user.BLE_EVENT 收到BLE事件: 3
[2025-12-17 17:18:56.961] luat:U(1349):I/user.BLE_EVENT 其他事件类型: 3
[2025-12-17 17:18:56.961] luat:U(1349):I/user.BLE_EVENT 收到BLE事件: 4
[2025-12-17 17:18:56.961] luat:U(1350):I/user.BLE_EVENT 其他事件类型: 4
[2025-12-17 17:18:59.706] luat:U(4105):I/user.fota version 001.000.000
[2025-12-17 17:19:02.699] luat:U(7105):I/user.fota version 001.000.000
[2025-12-17 17:19:05.704] luat:U(10105):I/user.fota version 001.000.000
[2025-12-17 17:19:08.695] luat:U(13105):I/user.fota version 001.000.000
[2025-12-17 17:19:11.706] luat:U(16105):I/user.fota version 001.000.000
[2025-12-17 17:19:14.707] luat:U(19105):I/user.fota version 001.000.000
[2025-12-17 17:19:15.805] ap0:ble:W(20098):appm_msg_handler,src_task_id:0x11,dest_id:0x0,src_id:0x0,msgid:0x1104
[2025-12-17 17:19:15.805] ap0:ble:W(20098):[gapc_connection_req_ind_handler]conidx:0,dest_id:0x0,con_peer_addr:92:6d:c7:33:13:14
[2025-12-17 17:19:15.805] luat:U(20206):I/user.BLE_EVENT 收到BLE事件: 12
[2025-12-17 17:19:15.805] luat:U(20206):I/user.BLE_EVENT 设备已连接 地址: 141333C76D92
[2025-12-17 17:19:15.805] luat:U(20207):I/user.BLE 设备连接成功: 141333C76D92
[2025-12-17 17:19:16.833] luat:U(21237):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:16.833] luat:U(21237):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:16.833] luat:U(21237):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:16.833] luat:U(21237):I/user.BLE_EVENT 特征值UUID: F001
[2025-12-17 17:19:16.833] luat:U(21238):I/user.BLE_EVENT 数据长度: 5 字节
[2025-12-17 17:19:16.833] luat:U(21238):I/user.BLE 收到写请求: F000 F001 01C8A90000
[2025-12-17 17:19:16.833] luat:U(21239):I/user.ble_file_fota 处理写入数据 F000 F001 01C8A90000 10
[2025-12-17 17:19:16.833] luat:U(21239):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: 1 数据匹配: nil
[2025-12-17 17:19:16.833] luat:U(21239):I/user.ble_file_fota 命令特征值匹配,处理命令
[2025-12-17 17:19:16.833] luat:U(21239):I/user.FOTA_CMD 收到命令数据: 01C8A90000 长度: 5
[2025-12-17 17:19:16.833] luat:U(21240):I/user.FOTA_CMD 解析命令码: 1 (0x01)
[2025-12-17 17:19:16.833] luat:U(21240):I/user.FOTA_CMD 处理开始升级命令
[2025-12-17 17:19:16.833] luat:U(21240):I/user.FOTA_CMD 文件总大小: 43464 字节
[2025-12-17 17:19:16.833] luat:U(21240):I/user.FOTA_CMD 初始化FOTA子系统...
[2025-12-17 17:19:16.833] luat:U(21241):I/user.FOTA_CMD FOTA初始化成功
[2025-12-17 17:19:16.833] luat:U(21241):I/user.FOTA_CMD FOTA底层准备就绪
[2025-12-17 17:19:16.872] luat:U(21278):I/user.FOTA_CMD 升级状态已设置 总大小: 43464 临时文件: /ble_fota.bin
[2025-12-17 17:19:16.872] luat:U(21278):I/user.FOTA_CMD 准备接收固件数据...
[2025-12-17 17:19:17.705] luat:U(22105):I/user.fota version 001.000.000
[2025-12-17 17:19:17.909] luat:U(22314):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:17.909] luat:U(22314):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:17.909] luat:U(22314):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:17.909] luat:U(22315):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:17.909] luat:U(22315):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:17.909] luat:U(22315):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 17:19:17.929] luat:U(22316):I/user.ble_file_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 17:19:17.929] luat:U(22317):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:17.929] luat:U(22317):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:17.929] luat:U(22317):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:17.929] luat:U(22317):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:17.943] luat:U(22359):I/user.FOTA_DATA 数据写入成功,当前总计: 200 字节
[2025-12-17 17:19:18.047] luat:U(22451):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:18.047] luat:U(22451):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:18.047] luat:U(22452):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:18.047] luat:U(22452):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:18.047] luat:U(22452):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:18.047] luat:U(22453):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 17:19:18.047] luat:U(22453):I/user.ble_file_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 17:19:18.047] luat:U(22454):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:18.085] luat:U(22454):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:18.085] luat:U(22454):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:18.085] luat:U(22455):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:18.624] luat:U(23023):I/user.FOTA_DATA 数据写入成功,当前总计: 400 字节
[2025-12-17 17:19:18.624] luat:U(23024):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:18.624] luat:U(23024):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:18.624] luat:U(23024):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:18.624] luat:U(23025):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:18.624] luat:U(23025):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:18.624] luat:U(23026):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 17:19:18.624] luat:U(23026):I/user.ble_file_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 17:19:18.624] luat:U(23027):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:18.624] luat:U(23027):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:18.624] luat:U(23027):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:18.624] luat:U(23027):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:18.673] luat:U(23098):I/user.FOTA_DATA 数据写入成功,当前总计: 600 字节
[2025-12-17 17:19:18.673] luat:U(23099):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:18.684] luat:U(23099):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:18.684] luat:U(23099):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:18.684] luat:U(23099):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:18.684] luat:U(23100):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:18.684] luat:U(23100):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 17:19:18.684] luat:U(23101):I/user.ble_file_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 17:19:18.684] luat:U(23101):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:18.684] luat:U(23102):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:18.684] luat:U(23102):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:18.684] luat:U(23102):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:18.779] luat:U(23177):I/user.FOTA_DATA 数据写入成功,当前总计: 800 字节
[2025-12-17 17:19:18.779] luat:U(23178):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:18.779] luat:U(23178):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:18.779] luat:U(23178):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:18.779] luat:U(23179):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:18.779] luat:U(23179):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:18.779] luat:U(23180):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[2025-12-17 17:19:18.779] luat:U(23180):I/user.ble_file_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 400
[2025-12-17 17:19:18.779] luat:U(23181):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:18.779] luat:U(23182):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:18.779] luat:U(23182):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:18.779] luat:U(23183):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:18.856] luat:U(23264):I/user.FOTA_DATA 数据写入成功,当前总计: 1000 字节
[2025-12-17 17:19:18.856] luat:U(23265):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:18.856] luat:U(23265):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:18.856] luat:U(23265):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:18.856] luat:U(23266):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:18.856] luat:U(23266):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:18.886] luat:U(23266):I/user.BLE 收到写请求: F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5441554CC0A5000001045AA55AA50202020003041800000004020600FE02340301045AA55AA50212C6EE626C655F66696C655F666F74612E6C75616303045E1B0000FE02A50A1B4C7561195C530019930D0A1A0A0404040808785600000000000000000000002877400113404052626C655F66696C655F666F74612E6C7561000000000000000000010714000000A9720B0000004B0001004A4040804AC040814AC040824A80C1828B0001008A00C283
[2025-12-17 17:19:18.886] luat:U(23267):I/user.ble_file_fota 处理写入数据 F000 F002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5441554CC0A5000001045AA55AA50202020003041800000004020600FE02340301045AA55AA50212C6EE626C655F66696C655F666F74612E6C75616303045E1B0000FE02A50A1B4C7561195C530019930D0A1A0A0404040808785600000000000000000000002877400113404052626C655F66696C655F666F74612E6C7561000000000000000000010714000000A9720B0000004B0001004A4040804AC040814AC040824A80C1828B0001008A00C283 400
[2025-12-17 17:19:18.886] luat:U(23268):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:18.886] luat:U(23268):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:18.886] luat:U(23269):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:18.886] luat:U(23269):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:18.964] luat:U(23370):I/user.FOTA_DATA 数据写入成功,当前总计: 1200 字节
[2025-12-17 17:19:18.997] luat:U(23404):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:18.997] luat:U(23404):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:18.997] luat:U(23404):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:18.997] luat:U(23405):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:18.997] luat:U(23405):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:18.997] luat:U(23405):I/user.BLE 收到写请求: F000 F002 B76B8A80C2848A00C3858A80C386EC0000002C4100006C810000ACC100000A80818780E0AC0101000A800188260000012600800011000000040D69735F757067726164693D9D6E670100040B746F74616C5F73697A65130000000000000000040E7265636569A4007665645F73697A65040D757067726164655F66696C65040E2F626C655F666F7444D9612E62696E040D736572766963655F75756964040546303030040E636861725F5297757569645F636D64040546303031040F636861725F757569645F6461
[2025-12-17 17:19:19.032] luat:U(23406):I/user.ble_file_fota 处理写入数据 F000 F002 B76B8A80C2848A00C3858A80C386EC0000002C4100006C810000ACC100000A80818780E0AC0101000A800188260000012600800011000000040D69735F757067726164693D9D6E670100040B746F74616C5F73697A65130000000000000000040E7265636569A4007665645F73697A65040D757067726164655F66696C65040E2F626C655F666F7444D9612E62696E040D736572766963655F75756964040546303030040E636861725F5297757569645F636D64040546303031040F636861725F757569645F6461 400
[2025-12-17 17:19:19.032] luat:U(23407):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:19.032] luat:U(23407):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:19.032] luat:U(23407):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:19.032] luat:U(23407):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:19.106] luat:U(23509):I/user.FOTA_DATA 数据写入成功,当前总计: 1400 字节
[2025-12-17 17:19:19.214] luat:U(23623):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:19.214] luat:U(23623):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:19.214] luat:U(23623):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:19.214] luat:U(23623):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:19.214] luat:U(23624):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:19.232] luat:U(23624):I/user.BLE 收到写请求: F000 F002 746104052CB34630303204106D61785F7061636B65745F73697A6513C8000000000000000405050070726F63041070726F635F646973636F6E6E6563740100000001000500000000624C280000002D0000000000030D0000000600400007404000430080002440000106608F80400007C040004100010081400100244080010680410007C041002440800026A48D008000080000000405666F7461040766696E69736804046C6F670405696E666FB93E0409464F54415F434D440416E6ADA3E59CA8E9878DE590AF
[2025-12-17 17:19:19.232] luat:U(23625):I/user.ble_file_fota 处理写入数据 F000 F002 746104052CB34630303204106D61785F7061636B65745F73697A6513C8000000000000000405050070726F63041070726F635F646973636F6E6E6563740100000001000500000000624C280000002D0000000000030D0000000600400007404000430080002440000106608F80400007C040004100010081400100244080010680410007C041002440800026A48D008000080000000405666F7461040766696E69736804046C6F670405696E666FB93E0409464F54415F434D440416E6ADA3E59CA8E9878DE590AF 400
[2025-12-17 17:19:19.232] luat:U(23626):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:19.232] luat:U(23626):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:19.232] luat:U(23626):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:19.232] luat:U(23626):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:19.325] luat:U(23735):I/user.FOTA_DATA 数据写入成功,当前总计: 1600 字节
[2025-12-17 17:19:19.437] luat:U(23841):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:19:19.437] luat:U(23841):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:19:19.437] luat:U(23842):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:19:19.437] luat:U(23842):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:19:19.437] luat:U(23842):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:19:19.437] luat:U(23843):I/user.BLE 收到写请求: F000 F002 E8AEBEE5A4872E2E003F2E040572746F7304077265626F6F74010000000000000000000D0000002A00006479002A0000002A0000002A0000002B0000002B0000002B0000002B0000002B000083EB002C0000002C0000002C0000002D0000000000000001000000055F454E560030490A0000009F00000001000C0C010000460040004740C00081800000C1C000000C01FA41410024810001414101009C010000644000035C0000002080C1001E4001804600C8CD400047C0C10081800000C1000200644080012600
[2025-12-17 17:19:19.464] luat:U(23843):I/user.ble_file_fota 处理写入数据 F000 F002 E8AEBEE5A4872E2E003F2E040572746F7304077265626F6F74010000000000000000000D0000002A00006479002A0000002A0000002A0000002B0000002B0000002B0000002B0000002B000083EB002C0000002C0000002C0000002D0000000000000001000000055F454E560030490A0000009F00000001000C0C010000460040004740C00081800000C1C000000C01FA41410024810001414101009C010000644000035C0000002080C1001E4001804600C8CD400047C0C10081800000C1000200644080012600 400
[2025-12-17 17:19:19.464] luat:U(23844):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:19:19.464] luat:U(23844):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:19:19.464] luat:U(23844):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:19:19.464] luat:U(23844):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:19:19.564] luat:U(23963):I/user.FOTA_DATA 数据写入成功,当前总计: 1800 字节

-- 省略重复日志--

[2025-12-17 17:20:05.106] luat:U(69516):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:20:05.106] luat:U(69516):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:20:05.106] luat:U(69516):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:20:05.106] luat:U(69517):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:20:05.106] luat:U(69517):I/user.BLE_EVENT 数据长度: 200 字节
[2025-12-17 17:20:05.120] luat:U(69517):I/user.BLE 收到写请求: F000 F002 0000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000
[2025-12-17 17:20:05.120] luat:U(69518):I/user.ble_file_fota 处理写入数据 F000 F002 0000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029000000000000000000000000000000000000000000000000000000000000000080290000000000000000000000000000000000000000000000000000000000000000802900000000 400
[2025-12-17 17:20:05.120] luat:U(69519):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:20:05.120] luat:U(69519):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:20:05.120] luat:U(69519):I/user.FOTA_DATA 收到数据包,长度: 200 字节
[2025-12-17 17:20:05.120] luat:U(69519):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:20:05.245] luat:U(69658):I/user.FOTA_DATA 数据写入成功,当前总计: 43400 字节
[2025-12-17 17:20:05.416] luat:U(69819):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:20:05.416] luat:U(69819):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:20:05.416] luat:U(69819):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:20:05.416] luat:U(69820):I/user.BLE_EVENT 特征值UUID: F002
[2025-12-17 17:20:05.416] luat:U(69820):I/user.BLE_EVENT 数据长度: 64 字节
[2025-12-17 17:20:05.416] luat:U(69820):I/user.BLE 收到写请求: F000 F002 00000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029
[2025-12-17 17:20:05.416] luat:U(69821):I/user.ble_file_fota 处理写入数据 F000 F002 00000000000000000000000000000000000000000000000000000000802900000000000000000000000000000000000000000000000000000000000000008029 128
[2025-12-17 17:20:05.416] luat:U(69821):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: nil 数据匹配: 1
[2025-12-17 17:20:05.416] luat:U(69821):I/user.ble_file_fota 数据特征值匹配,处理数据
[2025-12-17 17:20:05.416] luat:U(69822):I/user.FOTA_DATA 收到数据包,长度: 64 字节
[2025-12-17 17:20:05.416] luat:U(69822):I/user.FOTA_DATA 写入文件: /ble_fota.bin
[2025-12-17 17:20:05.556] luat:U(69962):I/user.FOTA_DATA 升级进度: 100 % ( 43464 / 43464 )
[2025-12-17 17:20:05.556] luat:U(69962):I/user.FOTA_DATA 数据写入成功,当前总计: 43464 字节
[2025-12-17 17:20:05.636] luat:U(70036):I/user.BLE_EVENT 收到BLE事件: 15
[2025-12-17 17:20:05.636] luat:U(70036):I/user.BLE_EVENT 处理写入事件
[2025-12-17 17:20:05.636] luat:U(70037):I/user.BLE_EVENT 服务UUID: F000
[2025-12-17 17:20:05.636] luat:U(70037):I/user.BLE_EVENT 特征值UUID: F001
[2025-12-17 17:20:05.636] luat:U(70037):I/user.BLE_EVENT 数据长度: 1 字节
[2025-12-17 17:20:05.636] luat:U(70038):I/user.BLE 收到写请求: F000 F001 02
[2025-12-17 17:20:05.636] luat:U(70038):I/user.ble_file_fota 处理写入数据 F000 F001 02 2
[2025-12-17 17:20:05.636] luat:U(70038):I/user.ble_file_fota UUID匹配结果: 服务匹配: 1 命令匹配: 1 数据匹配: nil
[2025-12-17 17:20:05.636] luat:U(70038):I/user.ble_file_fota 命令特征值匹配,处理命令
[2025-12-17 17:20:05.636] luat:U(70039):I/user.FOTA_CMD 收到命令数据: 02 长度: 1
[2025-12-17 17:20:05.636] luat:U(70039):I/user.FOTA_CMD 解析命令码: 2 (0x02)
[2025-12-17 17:20:05.636] luat:U(70039):I/user.FOTA_CMD 处理结束升级命令
[2025-12-17 17:20:05.636] luat:U(70039):I/user.FOTA_CMD 验证文件完整性...
[2025-12-17 17:20:05.636] luat:U(70040):I/user.FOTA_CMD 已接收: 43464 字节
[2025-12-17 17:20:05.636] luat:U(70040):I/user.FOTA_CMD 应接收: 43464 字节
[2025-12-17 17:20:05.636] luat:U(70040):I/user.FOTA_CMD 文件完整性验证通过
[2025-12-17 17:20:05.636] luat:U(70040):I/user.FOTA_CMD 开始执行FOTA升级...
[2025-12-17 17:20:05.685] luat:U(70062):I/user.FOTA_CMD 文件大小: 43464 字节
[2025-12-17 17:20:05.685] luat:I(70104):fota:升级包类型: type=1, expected_len=43464
[2025-12-17 17:20:06.257] luat:I(70666):fota:erase time used 316ms
[2025-12-17 17:20:06.367] luat:I(70792):fota:write time used 125ms
[2025-12-17 17:20:06.367] luat:I(70793):fota:FOTA progress: 32768 bytes written , total 49552ms
[2025-12-17 17:20:06.740] luat:I(71144):fota:erase time used 271ms
[2025-12-17 17:20:06.786] luat:I(71187):fota:write time used 42ms
[2025-12-17 17:20:06.786] luat:I(71188):fota:FOTA progress: 43464 bytes written , total 49947ms
[2025-12-17 17:20:06.786] luat:I(71188):fota:fota file write done, call fota.done()
[2025-12-17 17:20:06.786] luat:I(71188):fota:fota done, write 43464 bytes
[2025-12-17 17:20:06.786] luat:I(71188):fota:fota done success, call fota.end()
[2025-12-17 17:20:06.786] luat:U(71188):I/user.FOTA_CMD FOTA升级结果: result: true isDone: true
[2025-12-17 17:20:06.786] luat:U(71188):I/user.FOTA_CMD  FOTA升级成功!
[2025-12-17 17:20:06.786] luat:U(71188):I/user.FOTA_CMD 2秒后设备将自动重启...,重启后通过日志判断最终是否升级成功
[2025-12-17 17:20:06.786] luat:U(71189):I/user.FOTA_CMD 清理升级状态...
[2025-12-17 17:20:06.808] luat:U(71221):I/user.FOTA_CMD 已删除临时文件
[2025-12-17 17:20:06.808] luat:E(71221):fota:fota aborted status=10 written=43464
[2025-12-17 17:20:06.808] luat:U(71221):I/user.FOTA_CMD 升级流程结束

10、两种升级方式设备重启后现象一样,可以看到版本更新以及打印

[2025-12-17 16:51:51.110] luat:U(1773201):I/user.fota version 001.000.001
[2025-12-17 16:51:51.110] luat:U(1773201):I/user.hezhou ble_fota test
[2025-12-17 16:51:54.111] luat:U(1776201):I/user.fota version 001.000.001
[2025-12-17 16:51:54.111] luat:U(1776201):I/user.hezhou ble_fota test
[2025-12-17 16:51:57.114] luat:U(1779201):I/user.fota version 001.000.001
[2025-12-17 16:51:57.114] luat:U(1779201):I/user.hezhou ble_fota test
[2025-12-17 16:52:00.091] luat:U(1782201):I/user.fota version 001.000.001
[2025-12-17 16:52:00.091] luat:U(1782201):I/user.hezhou ble_fota test

11、工具日志如下:

D:\gitee_hz\LuatOS_demo_v2_temp\module\Air8101\demo\fota\ble_fota>python ble_fota_tool.py -f ble_fota.bin

1. 加载固件文件...
   固件加载完成,大小: 43464 字节

2. 扫描目标设备...
   正在扫描,请等待...
   找到匹配设备: Air8101_FOTA (地址: C8:C2:C6:8C:5D:40)
   选择设备: Air8101_FOTA (地址: C8:C2:C6:8C:5D:40)

3. 建立BLE连接...
   连接成功,状态: True

4. 发现服务和特征值...
   找到FOTA服务: 0000f000-0000-1000-8000-00805f9b34fb
     特征值: 0000f001-0000-1000-8000-00805f9b34fb - 属性: ['write', 'write-without-response']
       -> 命令特征值 (可写)
     特征值: 0000f002-0000-1000-8000-00805f9b34fb - 属性: ['write', 'write-without-response']
       -> 数据特征值 (可写)

5. 发送开始升级命令...
   连接成功,等待1秒...
   写入特征值 f001,数据长度: 5 字节
   开始命令发送完成

6. 分块传输固件数据...
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   进度: 9.2% - 1.1 KB/s - 已发送 20 包 - 预计剩余: 34.3s
   写入特征值 f002,数据长度: 200 字节

  --省略发送数据的重复日志--

   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 200 字节
   写入特征值 f002,数据长度: 64 字节
   进度: 100.0% - 1.1 KB/s - 已发送 218 包 - 预计剩余: 0.0s
   数据传输完成! 总时间: 39.3s, 平均速度: 1.1 KB/s

7. 发送结束升级命令...
   写入特征值 f001,数据长度: 1 字节
   结束命令发送完成

8. 等待设备处理升级...

==================================================
升级流程完成! 设备应该正在重启...
==================================================
   已断开连接