Hallo!
Ich bin noch neu in Sachen Java. Ich will eine Sache austesten, ob das funktioniert, was ich mir vorstelle und damit dann richtig in Java einsteigen: Ich habe mir die Java.comm installiert, um ein Gerät über die RS232 anzusprechen. Der Code ist aus dem Internet:
Das Empfangen geht damit gut, aber das Senden klappt irgendwie nicht richtig. Ich muss einen String z. B. in einem solchen Format senden: M10=EIN. Unter Pascal musste ich daran immer noch ein #13 (cr) anhängen. Kann mir jemand sagen, wie ich das umsetze?
Ich bin noch neu in Sachen Java. Ich will eine Sache austesten, ob das funktioniert, was ich mir vorstelle und damit dann richtig in Java einsteigen: Ich habe mir die Java.comm installiert, um ein Gerät über die RS232 anzusprechen. Der Code ist aus dem Internet:
Code:
import java.io.*;
import javax.comm.*;
import java.awt.*;
import java.awt.event.*;
public class test extends Frame{
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("COM4");
serss = (SerialPort) portID.open("test",2000);
test f = new test();
f.setSize(330,250);
f.show();
}
catch(Exception exc){System.out.println("Fehler :"+exc);}
}
public test() {
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 COM4 geöffnet\n",7,40));
try {ins = serss.getInputStream();
out = serss.getOutputStream();
serss.addEventListener(new commListener());
}
catch (Exception e) { System.out.println("Fehler: "+e);}
serss.notifyOnDataAvailable(true);
try {serss.setSerialPortParams(9400,
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);}
}
}
}
}