Charge-CmdType
作用:蓝牙通信协议,定义的协议命令,本质上是协议说明书,和硬件之间沟通双方协定好的命令
类比理解
就像你和朋友约定: "我说 1 代表'你好'" "我说 2 代表'再见'" CmdType 就是你和硬件之间的"暗号本" 在命令交互过程中,设备信息上报会标记一个码,标识”这个是我主动上报的信息“, 我们区分设备上报信息的时候,就是识别过滤出这个码,携带的信息。 当我给设备发送请求某个命令请求信息的时候,设备回过来的信息上,就会打上另外的码 ,标识“这个是你请求到的信息”。DeviceInfoType
这个里面的命令,是定义更加详细的数据类型, 通过这个类,可以知道,这个充电宝/蓝牙设备支持哪些功能响应流程图
┌─────────────────────────────────────────────────────────────────┐ │ 协议通信流程 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 📱 App 端 │ │ │ │ │ │ 发送命令: (CmdType.info) │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 硬件收到 CmdType.info │ │ │ │ 知道:"App 想要我的信息" │ │ │ │ 开始准备数据... │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ 回复数据:电量码 (电量) + 数值 │ │ │ 固件码(固件版本) + 数值 │ │ │ MTU码(MTU) + 数值 │ │ ▼ │ │ 📱 App 收到数据 │ │ 根据 DeviceInfoType 解析 │ │ 电量码 → 电量 │ │ 固件码 → 固件版本 │ │ MTU码 → MTU │ │ │ └─────────────────────────────────────────────────────────────────┘代码示例
///定义的协议命令ID class CmdType { //设置 CmdType._(); static const info = 0x00; /// 请求到的设备信息 static const notifyInfo = 0x00; /// 设备信息主动上报 } class DeviceInfoType{ //读取 DeviceInfoType._(); static const battery = 0x00; ///电量 static const mtu = 0x00; ///MTU static const firmware = 0x00;///固件版本 static const port = 0x00;///端口信息 static const capacity = 0x00;///电容量 static const model = 0x00;///获取型号 static const temperature = 0x00;///温度 }