ReaderWindow
Aus Programmers Guide
(Unterschied zwischen Versionen)
Roy (Diskussion | Beiträge)
(Die Seite wurde neu angelegt: „= ReaderWindow = <source lang="java"> import java.awt.Button; import java.awt.DisplayMode; import java.awt.Frame; import java.awt.GraphicsConfiguration; import…“)
Zum nächsten Versionsunterschied →
(Die Seite wurde neu angelegt: „= ReaderWindow = <source lang="java"> import java.awt.Button; import java.awt.DisplayMode; import java.awt.Frame; import java.awt.GraphicsConfiguration; import…“)
Zum nächsten Versionsunterschied →
Version vom 10:23, 25. Aug. 2010
ReaderWindow
import java.awt.Button; import java.awt.DisplayMode; import java.awt.Frame; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.InputStream; import java.util.Enumeration; import javax.comm.CommPortIdentifier; import javax.comm.SerialPort; public class ReaderWindow { private static final long serialVersionUID = 1L; private Button b1; private static TextArea ta; @SuppressWarnings("unchecked") static Enumeration ports; static CommPortIdentifier pID; InputStream inStream; SerialPort serPort; private Frame f; public ReaderWindow (CommPortIdentifier ci){ f = new Frame("PortReader"); f.addWindowListener(new WindowListener(){ public void windowClosing(WindowEvent e){ f.dispose(); try{ PortReader.getSerPort().close(); }catch(Exception ex){} System.exit(0); } @Override public void windowActivated(WindowEvent arg0) {} @Override public void windowClosed(WindowEvent arg0) {} @Override public void windowDeactivated(WindowEvent arg0) {} @Override public void windowDeiconified(WindowEvent arg0) {} @Override public void windowIconified(WindowEvent arg0) {} @Override public void windowOpened(WindowEvent arg0) {} }); f.setLayout(null); // "Null-Layout" setzen ta = new TextArea(); ta.setBounds(0, 0, 299, 120); // x, y, breite, höhe b1 = new Button(); b1.setBounds(110,125,80,20); b1.setLabel("schliessen"); b1.setName("Fenster schliessen"); b1.addActionListener(buttonListener); f.add(ta); f.add(b1); DisplayMode dMode = null; GraphicsConfiguration gc = f.getGraphicsConfiguration(); GraphicsDevice gd = gc.getDevice(); dMode = gd.getDisplayMode(); int width = dMode.getWidth() / 2 - 150; int height = dMode.getHeight() / 2 - 77; f.setLocation(width,height); f.setSize(300,150); f.setResizable(false); f.setUndecorated(true); f.setVisible(true); try { //new PortReader(ci); } catch (Exception e) { e.printStackTrace(); } } private ActionListener buttonListener = new ActionListener() { public void actionPerformed(ActionEvent event) { f.dispose(); try{ PortReader.getSerPort().close(); }catch(Exception ex){} System.exit(0); } }; public static TextArea getTa() { return ta; } public static void setTa(TextArea ta) { ReaderWindow.ta = ta; } }
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 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; } }