Autore Topic: Ricezione dati USB non corretta  (Letto 484 volte)

Offline AleoxFalco

  • Nuovo arrivato
  • *
  • Post: 27
  • Poi ci penso
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    APC 87-50
  • Sistema operativo:
    Windows 7
Ricezione dati USB non corretta
« il: 05 Marzo 2013, 10:07:11 CET »
0
Ritorno alla carica... spero mi possiate aiutare

Codice (Java): [Seleziona]
        @Override
    public void run() {
                Log.e("aas","1");
                int bufferDataLength=5;
                ByteBuffer buffer = ByteBuffer.allocate(bufferDataLength);
                UsbRequest request = new UsbRequest();
                request.initialize(mConnection, mEndpointIn);
                while (true)
                {
                        request.queue(buffer, bufferDataLength);
                        if (mConnection.requestWait().equals(request)) {
                                //receiveCommandtoUsb();
                                Log.e("asd","2");
                                String str=String.valueOf(buffer.getInt());
                                buffer.clear();
                                fnSendMessagetoUI(str);
                                try {
                                        Thread.sleep(200);
                                } catch (InterruptedException e) {}
                                catch (BufferUnderflowException e) {}
                }
                }      
        }

Questo codice è parte di una mia app, gestisce la mia tanto ricercata comunicazione tra usb e seriale. Ho preso spunto da innumerevoli guide e post sparsi per la rete ma le mie scarse conoscenze teoriche fanno da muro alla soluzione dei seguenti problemi:

primo... Ogni volta che invio un dato la fnSendMessagetoUI() viene chiamata due volte. Essa gestisce la visualizzazione grafica su lista
secondo.... a prescindere da quello che ricevo leggo sempre numeri non esatti. Ho collegato il tablet ad un convertitore usb/seriale in commercio e ho collegato la seriale ad un vecchio pc con porta com reale. Tramite WinComm invio dati semplici ( numeri da 0 a 10 ) e quello che ricevo è tutt'altro che semplice. A volte numeri negativi, a volte numeri casuali... a volte lo stesso numero a prescindere da quello che invio.

Non capisco. Forse dovrei settare la porta in un altro modo. Forse sbaglio addirittura porta. Nel invio di dati non ho problemi... sul pc leggo tutto. Ma il procedimento inverso no

Conoscete magari anche qualche bella lettura teorica che può far a caso mio?

Grazie in anticipo

Offline Epx

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7
Re:Ricezione dati USB non corretta
« Risposta #1 il: 06 Maggio 2013, 13:01:05 CEST »
0
ciao, io ho un problema simile al tuo, il problema che a me non funziona la ricezione :) proverò con il tuo codice...
nel frattempo ho trovato un possibile problema al fatto che non ricevi correttamente i dati...


String str=String.valueOf(buffer.getInt());


il problema credo sia in questa riga...il buffer deve essere ti tipo byte, quindi dovresti fare una conversione da hex-to-string. Il fatto di recuperare i dati in modo int e poi riconvertirli in string probabilmente ti crea quel problema...fammi sapere :)