我正在开发一个应该通过蓝牙从非Android设备发送和接收数据包的应用程序。我使用此处的示例源代码来管理连接和设备配对:
主机 - Android手机
设备 - 我的设备(更像是上面链接中的这个FiO板)
现在我想从此表创建并发送请求(步骤1):
http://postimg.org/image/4n8yf27qr/
我这样做:
byte[] sendingbytes = new byte[6+8]; //byte array for packet
ByteBuffer buff2 = ByteBuffer.wrap(sendingbytes).order(ByteOrder.LITTLE_ENDIAN); //wrapping byte array for modification
// Get ID, Get serial (request)
// ----------------------------------------- //
// 0xAA | 1000 0000 | 2 | 0x83; 0x84 | CRC //
// ----------------------------------------- //
buff2.put((byte) 0xAA); //Header 0xAA
buff2.put((byte) 0x80); //flag 1000 0000
buff2.putInt((byte) 2);
buff2.put((byte) 0x83); //data 0x83
buff2.put((byte) 0x84); //data 0x84
buff2.put((byte) 0xFF); //CRC always FFFFh for testing
buff2.put((byte) 0xFF); //
if (mState == STATE_CONNECTED) mConnectedThread.write(sendingbytes);
我的设备应该像第2步那样使用数据包响应该请求。
我的问题是:
1。如何正确创建数据包,如步骤1,
2. 当设备将数据包发回给我时,如何解码数据包(步骤2)。
提前感谢!
答案 0 :(得分:1)
buff2.put((byte) 0xAA); //Header 0xAA
buff2.put((byte) 0x80); //flag 1000 0000
buff2.put((byte) 0x01); //data length
buff2.put((byte) 0x00); //data length
buff2.put((byte) 0x83); //data 0x83
buff2.put((byte) 0xFF); //CRC always FFFFh for testing
buff2.put((byte) 0xFF); //