# Serial Communication - Thread / SerialPortEventListener:



## boarter (8. Mai 2007)

Hallo ich habe eine Frage zu Sun's Beispielcode für die Kommunikation mit der Seriellen Schnittstelle:
http://java.sun.com/developer/releases/javacomm/SimpleRead.java

Dort wird ein Thread aufgemacht. Die Run Methode beinhaltet nur ein 20sec. Schlaf vom Thread. 

Kann mir jemand sagen warum das so ist?:

```
public void run() {
	try {
	    Thread.sleep(20000);
	} catch (InterruptedException e) {}
    }
```

die eigentlichen Daten werden von einem Listener abgegriffen:

```
public void serialEvent(SerialPortEvent event) {
	switch (event.getEventType()) {

	case SerialPortEvent.BI:

	case SerialPortEvent.OE:

	case SerialPortEvent.FE:

	case SerialPortEvent.PE:

	case SerialPortEvent.CD:

	case SerialPortEvent.CTS:

	case SerialPortEvent.DSR:

	case SerialPortEvent.RI:

	case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
	    break;

	case SerialPortEvent.DATA_AVAILABLE:
	    byte[] readBuffer = new byte[20];

	    try {
		while (inputStream.available() > 0) {
		    int numBytes = inputStream.read(readBuffer);
		} 

		System.out.print(new String(readBuffer));
	    } catch (IOException e) {}

	    break;
	}
    }
```

Ich sehe da keine verbindung zwischen dem Thread und dem SerialEvent. Kann mir da jemand weiterhelfen? besten dank, boarter


----------

