PortReader
Aus Programmers Guide
(Unterschied zwischen Versionen)
Roy (Diskussion | Beiträge) |
Roy (Diskussion | Beiträge) |
||
(Der Versionsvergleich bezieht 1 dazwischenliegende Version mit ein.) | |||
Zeile 86: | Zeile 86: | ||
</source> | </source> | ||
- | Wird von [[ComPortTester]] und [[ | + | Wird von [[ComPortTester]] und [[ReaderWindow]] implementiert. |
[[Category:Com]] [[Category:Java]] [[Category:Klassen]] [[Category:Snippet]] | [[Category:Com]] [[Category:Java]] [[Category:Klassen]] [[Category:Snippet]] |
Aktuelle Version vom 10:50, 25. Aug. 2010
PortReader
import java.io.IOException; import java.io.InputStream; import javax.comm.CommPortIdentifier; import javax.comm.PortInUseException; import javax.comm.SerialPort; import javax.comm.SerialPortEvent; import javax.comm.SerialPortEventListener; public class PortReader implements SerialPortEventListener { //@SuppressWarnings("unchecked") // private static Enumeration ports; //static CommPortIdentifier pID; private InputStream inStream; private static SerialPort serPort=null; public PortReader(CommPortIdentifier pID) throws Exception{ ReaderWindow.getTa().append("Lausche auf Port:"+pID.getName()+"\n"); try{ serPort = (SerialPort) pID.open("PortReader", 2000); inStream = serPort.getInputStream(); serPort.addEventListener(this); serPort.notifyOnDataAvailable(true); serPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); }catch(PortInUseException piu){ ReaderWindow.getTa().append("Der Port ist in Benutzung\n"); } } public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.BI: ReaderWindow.getTa().append("SerialPortEvent.BI occurred\n"); case SerialPortEvent.OE: ReaderWindow.getTa().append("SerialPortEvent.OE occurred\n"); case SerialPortEvent.FE: ReaderWindow.getTa().append("SerialPortEvent.FE occurred\n"); case SerialPortEvent.PE: ReaderWindow.getTa().append("SerialPortEvent.PE occurred\n"); case SerialPortEvent.CD: ReaderWindow.getTa().append("SerialPortEvent.CD occurred\n"); case SerialPortEvent.CTS: ReaderWindow.getTa().append("SerialPortEvent.CTS occurred\n"); case SerialPortEvent.DSR: ReaderWindow.getTa().append("SerialPortEvent.DSR occurred\n"); case SerialPortEvent.RI: ReaderWindow.getTa().append("SerialPortEvent.RI occurred\n"); case SerialPortEvent.OUTPUT_BUFFER_EMPTY: ReaderWindow.getTa().append("SerialPortEvent.OUTPUT_BUFFER_EMPTY occurred\n"); break; case SerialPortEvent.DATA_AVAILABLE: ReaderWindow.getTa().append("SerialPortEvent.DATA_AVAILABLE occurred\n"); byte[] readBuffer = new byte[20]; try { while (inStream.available() > 0) { int numBytes = inStream.read(readBuffer); ReaderWindow.getTa().append("Bytes: "+numBytes+"\n"); } ReaderWindow.getTa().append(new String(readBuffer)); } catch (IOException ioe) { ReaderWindow.getTa().append("Exception " + ioe+"\n"); } break; } } public static SerialPort getSerPort() { return serPort; } public void setSerPort(SerialPort serPort) { PortReader.serPort = serPort; } }
Wird von ComPortTester und ReaderWindow implementiert.