我正在 Android 操作系统上开发 BLE 应用程序。我必须通过我的应用程序在 BLE 硬件上写入数据。我对必须发送的传输数据的类型感到困惑。下面的图像显示了我必须发送的字节数据。对于每个字节,它具有不同的结构。
在 Byte_2 中,我可以发送 0-100 个值,即可以。
在 Byte_3 中,前 4 位具有单个值,然后第 4 和第 5 位具有不同的含义。
在 Byte_4 中,数据分为 2 个相等的部分。
我不确定如何创建这种字节并使用它。
最佳答案
- 位 0 有 2 个值:0x00 (00000000) 和 0x01 (00000001)
- 位 1 有 2 个值:0x00 (00000000) 和 0x02 (00000010)
- 位 2 有 2 个值:0x00 (00000000) 和 0x04 (00000100)
- 位 3 有 2 个值:0x00 (00000000) 和 0x08 (00001000)
- 位 4 有 2 个值:0x00 (00000000) 和 0x10 (00010000)
- 第 5 位有 2 个值:0x00 (00000000) 和 0x20 (00100000)
- 第 6 位有 2 个值:0x00 (00000000) 和 0x40 (01000000)
- 位 7 有 2 个值:0x00 (00000000) 和 0x80 (10000000)
理解了这个结构后,就可以使用按位或运算将多个部分组合成1个字节。
以 Byte_3 为例:
- A 类型 = 1(00100000 -> 0x20)
- 类型 B = 0(00000000 -> 0x00)
- B 级 = 3(00000011 -> 0x03)
=> Byte_3 = 0x20 | 0x00 | 0x00 0x03 = 0x23
关于java - 如何设置字节中的特定位以进行 BLE 数据传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016349/