Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一个字节中设置特定的位以进行BLE数据传输?_Java_Android_Bluetooth Lowenergy_Bit - Fatal编程技术网

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

Java 如何在一个字节中设置特定的位以进行BLE数据传输?,java,android,bluetooth-lowenergy,bit,Java,Android,Bluetooth Lowenergy,Bit,我正在安卓操作系统上开发一款BLE应用程序。我必须通过我的应用程序在BLE硬件上写入数据。我对必须发送的传输数据类型感到困惑。下图显示了我必须发送的字节数据。对于每个字节,它都有不同的结构 在字节_2中,我可以发送0-100个值,即OK 在字节_3中,前4位具有单个值,然后第4位和第5位具有不同的含义 在字节_4中,数据分为两个相等的部分 我不知道如何创建和使用这种字节 位0有2个值:0x00 00000000和0x01 0000000 1 位1有2个值:0x00 00000000和0x02 0

我正在安卓操作系统上开发一款BLE应用程序。我必须通过我的应用程序在BLE硬件上写入数据。我对必须发送的传输数据类型感到困惑。下图显示了我必须发送的字节数据。对于每个字节,它都有不同的结构

在字节_2中,我可以发送0-100个值,即OK

在字节_3中,前4位具有单个值,然后第4位和第5位具有不同的含义

在字节_4中,数据分为两个相等的部分

我不知道如何创建和使用这种字节

位0有2个值:0x00 00000000和0x01 0000000 1 位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个字节

字节_3的示例:

类型A=1 00100000->0x20 类型B=0 00000000->0x00 B级=300万11->0x03
=>字节_3=0x20 | 0x00 | 0x03=0x23

使用按位或运算。例如,字节_3:0x10 | 0x20 | 0x0F=0x3F。这等于A型、B型和BLevel16型。这和在android中使用others标志的方式相同,您只需要定义您的值。