2009-03-11 9 views
0

Ich lese Daten von einer seriellen Schnittstelle in Java, aber ich bekomme nicht die vollständigen Daten, es wird zehn teilen es wird kommen.Problem beim Lesen von Serialport Java

Beispiel:

Wenn Zielgerät datas_ok schreibt, dann bekomme ich datas_ zuerst lesen dann ok zum zweiten Mal.

case SerialPortEvent.DATA_AVAILABLE: 

       try { 
        while (inputStream.available() > 0) { 
         numBytes = inputStream.available(); 
         readBufferArray = new byte[numBytes]; 
         // int readtheBytes = (int) inputStream.skip(2); 
         int readBytes = inputStream.read(readBufferArray); 

         one = new String(readBufferArray); 
         System.out.println("readBytes " + one); 

         handleFlashResponse(one); 

        } 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

Was ist los?

+0

Hmm. Siehe http://stackoverflow.com/questions/348777/reading-com-port-value-and-printing-in-textablea-which-located-inside-the-panel-- Ich erkenne eine Hausaufgabe. –

Antwort

2

Aus der Beschreibung, es klingt wie Sie lesen schneller als die Daten gesendet werden. Das ist normal. Wenn Sie vom Port lesen und dort nichts zu sehen ist, müssen Sie es weiter versuchen (es sei denn, es gibt einen Anruf, den Sie für einen blockierenden Lesevorgang machen können).