跳转至

BLE 通信与协议

概述

OvApp 使用蓝牙低功耗(BLE)与 Omnivoltaic 设备(如充电站、电池系统、车辆和嵌入式键盘)通信。BLE 提供低功耗、短距离、可靠的通信,支持在线和离线操作。

本文档介绍 BLE 架构、连接流程、数据结构、安全模型和支持的操作。


支持的角色

BLE 功能主要通过 BLE 设备管理器角色访问,其他操作角色具有有限访问权限。

角色 BLE 访问级别
BLE 设备管理器 完整配置、诊断和控制
服务员 操作读/写访问
骑手 只读和有限命令
键盘 嵌入式 BLE 交互

BLE 架构

OvApp 遵循中央–外围 BLE 模型:

  • 中央设备: 运行 OvApp 的移动设备
  • 外围设备: Omnivoltaic 硬件设备
OvApp (Central)
   ↓ Scan
BLE Device (Peripheral)
   ↓ Advertise
Service Discovery
   ↓
Characteristic Read / Write / Notify

设备发现与配对

设备发现

  • OvApp 扫描广播 Omnivoltaic 特定 UUID 的附近设备
  • 设备按以下条件筛选:

  • 设备类型

  • 信号强度(RSSI)
  • 广播负载

配对与绑定

  • 首次连接需要安全配对
  • 支持的方法:

  • 密码或 PIN 码配对

  • 预共享密钥(PSK)
  • 配置码

!!! note 配对信息安全存储以允许受信任的重新连接。


GATT 服务与特征

OvApp 使用 GATT(通用属性规范)服务与设备通信。

核心服务

服务 描述
设备信息服务 制造商、固件、型号
状态服务 电池、健康、连接状态
命令服务 设备控制和配置
数据服务 遥测和测量
诊断服务 错误、日志、故障码

数据负载结构

BLE 消息遵循结构化负载格式:

{
  "att": {},
  "cmd": {},
  "sts": {},
  "dta": {},
  "dia": {}
}
部分 描述
att 设备属性
cmd OvApp 发出的命令
sts 当前设备状态
dta 遥测和传感器数据
dia 诊断和故障报告

通信操作

读取操作

  • 检索设备属性
  • 获取当前状态
  • 查询配置值

写入操作

  • 发送控制命令
  • 更新设备设置

通知/指示

  • 实时遥测更新
  • 状态变化
  • 故障和告警通知

连接生命周期

  1. 扫描 BLE 设备
  2. 连接到所选设备
  3. 发现 GATT 服务和特征
  4. 身份验证(如需要)
  5. 数据交换
  6. 订阅通知
  7. 正常断开连接

安全与授权

BLE 通信安全采用:

  • 加密 BLE 连接
  • 基于角色的命令授权
  • 设备白名单
  • 基于会话的身份验证令牌

!!! warning 敏感命令仅限授权角色使用。


错误处理与恢复

OvApp 实现了稳健的错误处理,包括:

  • 自动重连尝试
  • 超时处理
  • 命令重试逻辑
  • 离线后备机制

常见错误

错误 原因 解决方案
设备不可见 BLE 已禁用 启用蓝牙
连接超时 设备超出范围 移近设备
身份验证失败 凭据无效 重新配对设备
命令被拒绝 角色权限不足 验证权限

性能注意事项

  • 优化的 BLE 负载大小
  • 受控的通知频率
  • 省电的扫描策略
  • 自适应重连间隔