Przesyłanie danych USB
Próbuję wysyłać i odbierać dane przez USB, moje urządzenie, Acer Iconia A500 ma wszystko, co potrzebne do połączenia z urządzeniem i wszystkim, co jest w porządku i działa poprawnie, ale kiedy próbuję wysyłać i odbierać dane, nie zachowuje się tak spodziewany. To jest mój kod
<code>for( ; ; ) { //this is the main loop for transferring String get = "$getPos"; byte[] getBytes = get.getBytes(); conn.bulkTransfer( epOUT, getBytes, getBytes.length, 500 ); try { Thread.sleep( 500 ); byte[] buffer = new byte[4096]; conn.bulkTransfer( epIN, buffer, 4096, 500 ); StringBuilder byStr = new StringBuilder(); for( int i = 0; i < buffer.length; i++ ) { if( buffer[i] != 0 ) { byStr.append( buffer[i] + ", " ); } } l( byStr ); } catch( InterruptedException e ) { e.printStackTrace(); } if( mStop ) { mStopped = true; return; } l( "sent " + counter ); counter++; counter = (byte)( counter % 16 ); } </code>
Jego przeznaczeniem jest zwrócenie tablicy bajtów o długości około 80 znaków, ale zwraca ona tylko dwa bajty z powrotem, czyli 1 i 96, jeśli wystąpił błąd na urządzeniu USB, to nadal zwraca kilka więcej niż dwa. Czy mój kod jest jeszcze bliski poprawienia? Oparłem go o USB na seryjnym artykule przez serverbox.