如何设置字节中的特定位以进行BLE数据传输?

时间:2018-04-25 07:24:30

标签: java android bluetooth-lowenergy bit

我正在开发Android操作系统上的BLE应用。我必须通过我的应用程序在BLE硬件上写入数据。我对我必须发送的传输数据的类型感到困惑。以下是显示我必须发送的字节数据的图像。对于每个字节,它具有不同的结构。 Transmission data structure

在Byte_2中我可以发送0-100个值,即好。

在Byte_3中,前4位具有单个值,然后是第4位和第4位。第5位具有不同的含义。

在Byte_4中,数据有两个相等的部分。

我不知道如何创建这种字节&用它。

enter image description here

1 个答案:

答案 0 :(得分:1)

  • 位0有2个值:0x00(00000000)和0x01(00000001)
  • 位1有2个值:0x00(00000000)和0x02(00000010)
  • 第2位有2个值:0x00(00000000)和0x04(00000100)
  • 第3位有2个值:0x00(00000000)和0x08(00001000)
  • bit 4有2个值:0x00(00000000)和0x10(00010000)
  • 第5位有2个值:0x00(00000000)和0x20(00100000)
  • 第6位有2个值:0x00(00000000)和0x40(01000000)
  • 第7位有2个值:0x00(00000000)和0x80(10000000)

在理解了这个结构之后,你可以使用按位OR运算将多个部分组合成1个字节。

Byte_3示例:

  • 类型A = 1(00100000 - > 0x20)
  • 类型B = 0(00000000 - > 0x00)
  • B level = 3(00000011 - > 0x03)

=> Byte_3 = 0x20 | 0x00 | 0x03 = 0x23