import java.io.*;
import javax.comm.*;
import java.awt.*;
import java.awt.event.*;
public class GetDataFromComm extends Frame{
/**
*
*/
private static final long serialVersionUID = 1L;
static CommPortIdentifier portID;
InputStream ins;
OutputStream out;
static SerialPort serss;
TextArea ausgabe;
TextField tfe;
Button bt;
public static void main(String[] args){
try{portID = CommPortIdentifier.getPortIdentifier("COM1");
serss = (SerialPort) portID.open("mein_programm",2000);
GetDataFromComm f = new GetDataFromComm();
f.setSize(330,250);
f.show();
}
catch(Exception exc){System.out.println("Fehler :" + exc);}
}
public GetDataFromComm() {
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
setLayout(new FlowLayout());
add(tfe=new TextField(40));
tfe.addActionListener(new sendeListener());
add(bt=new Button("Senden"));
bt.addActionListener(new sendeListener());
add(ausgabe=new TextArea("Port COM1 geöffnet\n",7,40));
try {
ins = serss.getInputStream();
out = serss.getOutputStream();
serss.addEventListener(new commListener());
}
catch (Exception e) { System.out.println("Fehler: " + e);}
// ein Eventlistener für zu empfangende Daten erzeugt und aktiviert.
// Schließlich wird die Schnittstelle mit den gewünschten Parametern
// für die Übertragungsrate e.t.c durch den Methodenaufruf
serss.notifyOnDataAvailable(true);
try {serss.setSerialPortParams(2400,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1 ,
SerialPort.PARITY_NONE);}
catch (UnsupportedCommOperationException e) {}
}
public class sendeListener implements ActionListener{
public void actionPerformed(ActionEvent e){
PrintWriter aus = new PrintWriter(out);
aus.println(tfe.getText());
aus.flush();
aus.close();
}
}
public class commListener implements SerialPortEventListener{
public void serialEvent(SerialPortEvent event) {
if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
byte[] readBuffer = new byte[20];
try {
while (ins.available() > 0) {int numBytes = ins.read(readBuffer);}
String nachricht = new String(readBuffer);
ausgabe.append(nachricht);
}
catch (IOException e) {System.out.println("Fehler: " + e);}
}
}
}
} // @jve:decl-index=0:visual-constraint="10,10"