如何构建正确的命令值以将其写入 Android BLE 特性

问题描述

我正在尝试构建具有蓝牙 LE 通信功能的 Android 应用程序。 Kotlin 用于 Android Studio。 发现 Gatt 服务、特征和描述符, 一个关于 CCCD 列表的通知

到目前为止,没问题!

现在我需要帮助将正确的命令发送(写入)到特征。

这就是命令的样子 / 来自制造商 api 的信息:

通用命令格式

B0 B1 B2 B3 B4 B5 B6 Bn
序言 (0xAB) 命令 ID(低字节) 命令 ID(高字节) 参数字节0 参数字节1 参数字节2 参数字节3 参数字节(n-3)

命令ID为两字节(16bit)整数,低位占B1,高位 B2 部分。整个协议使用的字节序是little-endian

命令名称 ID
PCMD_API_GET_INFO 0x01
PCMD_ ... 0x02
... 0x03

变量的正确定义是什么

val PCMD_API_GET_INFO = 0x01

用于

.setValue(value: ????)

功能

Command ID 是如何组成的/它是如何形成的?

预先感谢您的努力并希望得到好的答案

解决方法

这是将其写入 Characteristic 的正确值/格式:

    val PCMD_API_GET_INFO = byteArrayOf(
        0xAB.toByte(),0x01.toByte(),0x00.toByte(),0x00.toByte()
    )