RS232
Aus Programmers Guide
(Unterschied zwischen Versionen)
Roy (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Java und die RS232-Schnittstelle = == Einbinden der JAVA-COMM-API == ===== 1.Schritt ===== Kopiere win32com.dll C:\Programme\Java\jre6\bin<br> ===== 2. …“) |
Roy (Diskussion | Beiträge) |
||
Zeile 136: | Zeile 136: | ||
} | } | ||
- | </source> | + | </source> |
+ | |||
+ | Das ReaderWindow wird dann aufgerufen sobald ein Element in der Liste geklickt wurde. |
Version vom 10:14, 25. Aug. 2010
Inhaltsverzeichnis |
Java und die RS232-Schnittstelle
Einbinden der JAVA-COMM-API
1.Schritt
Kopiere win32com.dll C:\Programme\Java\jre6\bin
2. Schritt
Kopiere javax.comm.properties C:\Programme\Java\jre6\lib
3. Schritt
- Kopiere comm.jar C:\Programme\Java\jre6\lib\ext
- Implementiere die comm.jar in Dein Projekt indem du den Build-Path anpasst und die jar mit einfügst
Jetzt kann die API einfach genutzt werden: Beispielprogramm zum Anzeigen aller verfügbaren Ports in einem Frame:
package de.roybohn.com; import java.awt.Button; import java.awt.DisplayMode; import java.awt.Frame; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.List; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Enumeration; import javax.comm.CommPortIdentifier; import javax.comm.NoSuchPortException; public class Main { private static final long serialVersionUID = 1L; private Button b1; private static List list; @SuppressWarnings("unchecked") static Enumeration ports; private static CommPortIdentifier pID; private Frame f; public Main (){ f = new Frame("verfügbare Ports"); f.addWindowListener(new ExitWindowListener()); f.setLayout(null); // "Null-Layout" setzen list = new List(); list.setBounds(0, 0, 299, 120); // x, y, breite, höhe list.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent arg0) { System.out.println(list.getItem(Integer.valueOf(arg0.getItem().toString()))); CommPortIdentifier ci=null; try { ci = (CommPortIdentifier.getPortIdentifier(list.getItem(Integer.valueOf(arg0.getItem().toString())))); } catch (NumberFormatException e) { e.printStackTrace(); } catch (NoSuchPortException e) { e.printStackTrace(); } try { //new ReaderWindow(ci); f.dispose(); } catch (Exception e) { e.printStackTrace(); } } }); b1 = new Button(); b1.setBounds(110,125,80,20); b1.setLabel("schliessen"); b1.setName("Fenster schliessen"); b1.addActionListener(buttonListener); f.add(list); 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); } private ActionListener buttonListener = new ActionListener() { public void actionPerformed(ActionEvent event) { f.dispose(); try{ PortReader.getSerPort().close(); }catch(Exception ex){} System.exit(0); } }; private class ExitWindowListener extends WindowAdapter{ public void windowClosing(WindowEvent e){ f.dispose(); try{ PortReader.getSerPort().close(); }catch(Exception ex){} System.exit(0); } } public static void getPortList(){ ports = CommPortIdentifier.getPortIdentifiers(); while (ports.hasMoreElements()) { pID = (CommPortIdentifier) ports.nextElement(); System.out.println("Port " + pID.getName()); if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL) { list.add(pID.getName()); } } } public static void main (String args[]){ new Main (); getPortList(); } }
Das ReaderWindow wird dann aufgerufen sobald ein Element in der Liste geklickt wurde.