Dafür brauchst du eine spezielle Libary. Ich kann dir leider nicht verraten, wo man die bekommt, aber ich kann dir sagen wie sie heißt: javax.comm
Zu dem Thema gibt es in Software, Algorithmen und KI auch einen Thread mit einer ähnlichen Frage. Da geht es um die Steuerung des COM-Ports über eine Website mithilfe eines Applets.
Hier ist ein Codefetzen (copyright Jochen Steinmann):
Hoffe, ich konnte dir weiterhelfen.Code:class RS232Driver { /**Vector für Dateneinlesen*/ public static Vector rs232vector = new Vector(); /** Port-Identifier*/ public static CommPortIdentifier portId; /**Serielle Schnittstelle*/ public static SerialPort RS232port; /** RS232-Input-Stream*/ public static InputStream RS232in; /** RS232-Output-Stream*/ public static OutputStream RS232out; PrintWriter Out; /**Methode zum Testen des Vektors*/ public void testvector() { for(int i=0;i<50;i++) { rs232vector.add("test"); } checkvector(); } /**Port öffnen*/ public void openport(String comname,PrintWriter Out) { try { CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier(comname); if(cpi.getPortType() == cpi.PORT_SERIAL) { RS232port = (SerialPort)cpi.open("server",1000); RS232port.setSerialPortParams(9600,RS232port.DATABITS_8, RS232port.STOPBITS_1, RS232port.PARITY_NONE); RS232port.enableReceiveTimeout(2000); System.out.println(" "+RS232port.getName()+" wurde geöffnet"); Out.println("Schnittstelle geoeffnet "); } } catch(Exception e) { Out.println(e); System.out.println(e); } try { RS232in = RS232port.getInputStream(); RS232port.notifyOnDataAvailable(true); RS232out = RS232port.getOutputStream(); RS232port.addEventListener(new commListener()); } catch (Exception e) { System.out.println("Fehler: "+e);} } /** Serielle Schnittstelle schliessen */ public static void closeRS232() { if(RS232port != null) { RS232port.close(); //Out.println(" Schnittstelle wurde geschlossen"); } } /** STRING auf die RS232 ausgeben*/ public void writeRS232(String ausgabe,PrintWriter Out) { if (RS232port != null) { PrintWriter aus = new PrintWriter(RS232out); aus.println(ausgabe); aus.flush(); aus.close(); } } /** CHAR auf die RS232 ausgeben*/ public void writecharRS232(char ausgabe,PrintWriter Out) { if (RS232port != null) { PrintWriter aus = new PrintWriter(RS232out); aus.print(ausgabe); aus.flush(); aus.close(); } } /**Vektor auslesen*/ public void getrs232vector(PrintWriter Out) { for(int i=0;i<rs232vector.size();i++) { Out.println("RS232> "+(String)rs232vector.get(i)+" "); } Out.println(); } /**Vektor auf Länge überprüfen und trimmen*/ public void checkvector() { if(rs232vector.size()>50) { rs232vector.remove(0); } } /** Klasse für die permanente Datenaufzeichnung der seriellen Schnittstelle * @author Jochen Steinmann * @version 1.0 * @since 1.0 */ public class commListener implements SerialPortEventListener{ int z = 0; public void serialEvent(SerialPortEvent event) { if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){ byte[] readBuffer = new byte[20]; try { while (RS232in.available() > 0) {int numBytes = RS232in.read(readBuffer);} String nachricht = new String(readBuffer); rs232vector.add(nachricht); checkvector(); } catch (IOException e) {System.out.println("Fehler: "+e);} } } }
Gruß







Zitieren

Lesezeichen