Беда с буфером с помощью блютуз андроида - PullRequest
4 голосов
/ 06 сентября 2011

Я использую Bluetooth телефона Android для отправки некоторых данных (строк) на Arduino с устройством Bluetooth.

Все работает как шарм ... но я могу отправить только 325 строк !!!(каждая строка содержит только 2 положительных целых числа).

После этого в logcat eclipse появляется следующее сообщение: «rfc_setup_rx_bufout of buffer: rfc_setup_rx_bufout of buffer: Out of Buffers» каждый раз, когда андроид пытаетсядля отправки новых данных.

Я не могу закрыть bluetooth-сокет и повторно открыть его (или подключить) во время приложения, потому что мне нужно очень быстро отправлять данные для моей цели (около 100-200 мс один за другим)и времени для этого нет.Как я могу "очистить" буфер?Это действительно проблема с буфером ??

Часть кода, который я использую, это:

    <code>

private BluetoothSocket btSocket = null; 
try { 
            btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);

       } catch (IOException e) { 

       } 
           try { 
                outStream = btSocket.getOutputStream(); 

           } catch (IOException e) { 
                Log.e(TAG, "ON RESUME: Output stream creation failed.", e); 
           } 

byte[] msgBuffer = message.getBytes(); 
           try { 
                outStream.write(msgBuffer); 

           } catch (IOException e) { 
                Log.e(TAG, "ON RESUME: Exception during write.", e); 
           } 


</code>

«message» в message.getBytes ();на самом деле это строка, которую я отправляю.

Еще одна вещь: я использую массив (byte [] msgBuffer).Могу ли я в любом случае сделать «цикл», чтобы получить индекс [0] или [1] после отправки данных, чтобы эта строка никогда не была заполнена, потому что я бы использовал только 2 значения.

Или проблемас внутренним буфером моего телефона (samsung GT-I5500), а с кодом нет?

A действительно оценит любую помощь, потому что я застрял в этом.

...