蓝牙调试助手开发(03):概要设计

视频地址:哔哩哔哩

项目概述

蓝牙调试助手是一个用于蓝牙低功耗(BLE)设备开发和调试的移动应用程序,旨在帮助开发者更高效地进行蓝牙相关项目的调试和分析。

主要功能包括:

  1. 蓝牙数据捕获:实时捕获蓝牙设备之间的通信数据,包括连接状态、传输数据等。
  2. 数据包分析:解析蓝牙数据包,显示详细信息如信号强度、设备地址、数据内容等。
  3. 设备管理:支持对蓝牙设备的扫描、连接、数据收发和断开操作。
  4. 实时监控:提供实时的蓝牙设备状态监控,帮助开发者快速定位问题。
  5. 配置管理:支持对蓝牙设备的配置参数进行调整和管理。

该工具以图形化界面呈现,操作简单,适用于需要进行蓝牙通信测试和调试的场景。

用户使用App的流程见下表:

步骤 具体内容
1 用户打开App并扫描蓝牙设备
2 用户连接目标蓝牙设备
3 选择需要读写的UUID
4 根据通信协议,发送数据测试

项目框图

功能概述

1.蓝牙列表

  • 蓝牙搜索
    • 支持 蓝牙名称、mac地址、RSSI(0到-100范围)搜索过滤
  • 蓝牙列表,显示 设备名称(没有显示 N/A)mac地址、rssi
  • 蓝牙连接,只有支持连接的设备才会显示连接按钮,点击跳转到收据收发页面
  • 广播数据解析,按照官方的格式进行解析,参考 https://www.bluetooth.com/specifications/assigned-numbers/
参考图
功能描述
触发方式

应用初始化时进入此页面

页面展示内容
  • 初始化时,开始扫描附近的蓝牙设备
  • 扫描到设备后进行数据处理,并渲染
    • 将设备的mac地址、rssi、名称 封装到一个map对象中,方便取值
    • 将map 添加到 数组中
  • 点击连接按钮进入数据收发界面
    • 只有当设备支持连接时才会展示连接按钮

2.数据收发功能

  • 蓝牙通信设置
    • 基本设置,mtu、phy
    • 通信协议设置,支持拼接帧头、帧尾、校验位、帧长、控制字,用户只需发送数据位
    • 追加符设置,支持追加换行符 0x0D(回车)、 0x0A(换行)
  • 日志管理
    • 自动滚屏,可以进行设置日志是否自动滚屏
    • 日志显示,在日志中高亮显示不同UUID的内容
    • 时间戳拼接,可以进行设置日志是否拼接时间戳
    • 日志一键清理
    • 日志存储限制,当前窗口显示的数据 不超过 1000条
      • 用户每次打开软件,清空日志文件,一旦有数据接收并将日志追加写入到此文件(该文件保留的是全部日志内容)
    • 日志保存,默认存储日志文件到系统位置
  • 数据收发
    • 支持Hex和文本两种数据格式发送与显示

    • 支持监听多个读UUID,写只写一个UUID

参考图
功能描述
触发方式

在蓝牙列表页面点击蓝牙连接时进入此页面

页面展示内容
  • 初始化时
    • 配置蓝牙连接状态监听,并赋值给isConnect;
    • 配置蓝牙数据接收监听,将接收到的数据进行处理。
  • 页面上方有两个tab切换,分别是 蓝牙服务、实时日志
    • 蓝牙服务 主要展示了该设备的服务列表和读写UUID,该部分用于选择设备的接收UUID、写UUID
    • 实时日志 主要展示了该设备从连接以来的收发记录、连接、断开连接等记录
  • 页面下方主要就是发送按钮 及 发送相关的配置
    • 循环发送
    • 拼接换行
    • 协议配置
  • 快捷发送按钮 是跳转到 自定义数据界面,选择已经配置好的自定义数据发送给硬件

3.自定义数据功能

  • 添加自定义数据

    • 通过输入数据描述和数据内容添加自定义数据,数据内容支持Hex格式
  • 编辑自定义数据

    • 在自定义数据列表中点击编辑按钮即可编辑自定义数据
  • 删除自定义数据

    • 在自定义数据列表中点击删除按钮即可删除自定义数据
  • 使用自定义数据

    • 在数据收发界面 点击快捷发送 跳转至自定义数据页面,选择自定义数据后并携带返回结果
参考图
功能描述
触发方式

在数据收发页面点击快捷发送时进入此页面

页面展示内容
  • 初始化时
    • 读取缓存文件中的自定义数据列表并赋值。
  • 点击添加
    • 跳出添加数据弹窗,结束后并将输入结果添加到list中
  • 点击发送
    • 将该项数据的值保存在缓存中,并由上层页面调用
  • 点击删除
    • 删除该项的值

4.数据波形图功能

窗口展示区根据设备发送的数据自动调整窗口宽度,可设置当前窗口展示的最大点数

通信协议参考如下

规则

<计数戳>{窗口名称}数据\n

备注

1.任意数据都可以分窗

2.当数据为逗号分隔数字时可以绘图

3.不支持中文,花括号、尖括号、换行符\n不可省略

4.计数戳为纯数字,作为X轴数据,不可带单位

数据示例

<0.0>{plotter}1,2,3,4

<1.0>{plotter}1,2,3,4

<2.5>{plotter}1,2,3,4

功能描述
触发方式

在数据收发页面点击数据波形时进入此页面

页面展示内容
  • 初始化时
    • 开始蓝牙状态监听操作,一旦断开连接返回到上个页面
    • 蓝牙数据监听,对读取到的数据进行处理
      • 根据通信协议解析 不同窗口的x、y值
  • 页面销毁
    • 取消蓝牙状态监听、蓝牙数据监听
  • 页面上方是窗口的列表,用来选择窗口
  • 页面中间是波形展示区域,用来显示处理好的波形数据
相关推荐
千码君201614 分钟前
Trae:一些关于flutter和 go前后端开发构建的分享
android·flutter·gradle·android-studio·trae·vibe code
maaath2 小时前
【maaath】Flutter for OpenHarmony 手表配饰应用实战开发
flutter·华为·harmonyos
maaath2 小时前
【maaath】Flutter for OpenHarmony 跨平台计算器应用开发实践
flutter·华为·harmonyos
maaath7 小时前
【maaath】Flutter for OpenHarmony 闹钟时钟应用开发实战
flutter·华为·harmonyos
maaath8 小时前
【maaath】Flutter for OpenHarmony 短信管理应用实战
flutter·华为·harmonyos
maaath9 小时前
【maaath】Flutter for OpenHarmony打造跨平台便签备忘录应用
flutter·华为·harmonyos
千码君20169 小时前
flutter:与Android Studio模拟器的调试分享
android·flutter
xmdy586610 小时前
Flutter+开源鸿蒙实战|智联邻里Day8 Lottie动画集成+url_launcher跳转拨号+个人中心完善+全局UI统一
flutter·开源·harmonyos
liulian091618 小时前
Flutter for OpenHarmony 跨平台开发:颜色选择器功能实战指南
flutter
liulian09161 天前
Flutter for OpenHarmony 跨平台开发:BMI计算器功能实战指南
flutter·华为