2014-06-06 3 views
2

Я разрабатываю приложение, которое должно отправлять и принимать пакеты с не-андроидного устройства через Bluetooth. Я использую пример исходного кода здесь для управления соединения и устройства сопряжения:Как создать указанный кадр и отправить его через Bluetooth?

http://www.aimagin.com/learn/index.php/Interfacing_FiO_Board_and_Android_Phone_via_Bluetooth_%28Between_Andriod_and_FiO_-_Closed_Loop%29#Target_Model:Receiver_and_Sender

Хост - Android телефона
Device - Мое устройство (более менее как этот 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), когда устройство отправит его мне обратно.

благодарит заранее!

ответ

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); // 

 Смежные вопросы

  • Нет связанных вопросов^_^