Serielle Schnitstelle ansprechen

borislav

Grünschnabel
Hallo
könnte mir jemand helfen, wie ich an eine serielle Schnittstelle Komandos senden kann.
Ich hab solches Programm gemacht, aber irgendwie funktioniert nicht. Die Komandos sind Bits.
Ich muss z.B.
1) Befehls: "U", "D"..an das Datenformat: 8-Datenbits, 1 Stopbut, 1-Startbit, keine Parität.
2) Befehls mit 4-Bit länge an einer Rellays mit: 19200 Baund, 8 Datenbits, ohne Parität, 1 Stopbit und ohne Handshake.

Könnte mir jemand sagen, wo meine Fehler sind, oder ein Beispiel senden, wo Bits-Befehle irgendwo gesendet werden.

Code:
import javax.comm.*;
import java.io.*;
import java.lang.*;
 
class Welaficommport {
public static void main(String[] args)throws NoSuchPortException, PortInUseException, IOException, UnsupportedCommOperationException{
	Welaficommport wp=new Welaficommport();
}
private final int MAX_REPLY_BYTES = 50;
private SerialPort tty;
private DataInputStream is;
private DataOutputStream os;
/** Konstruktor */
public Welaficommport() throws NoSuchPortException, PortInUseException, IOException, UnsupportedCommOperationException {
	super();
	init_comm("COM1");
// run();
}
private void run() {
	send("U");
	System.out.println(" Ende ");
// expect('!');
// curx = cury = 0;
// penUp();
}
 
 
private void init_comm(String portName) throws NoSuchPortException, PortInUseException, IOException, UnsupportedCommOperationException {
 
	CommPortIdentifier port = CommPortIdentifier.getPortIdentifier(portName);
 
	tty = (SerialPort) port.open("Test", 1000);
	// set up the serial port
	tty.setSerialPortParams(19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
	tty.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_OUT | SerialPort.FLOWCONTROL_RTSCTS_OUT);
	// Eingabe und Ausgabe Streams
	is = new DataInputStream(tty.getInputStream());
	os = new DataOutputStream(tty.getOutputStream());
 
	 run();
}
 
private void send(String s) {
	System.err.println("sending " + s + "...");
	try {
 
	os.writeBytes(s); // Komando senden
 
	 //String -> Bytes
/* for (int i = 0; i < s.length(); i++)
		os.writeByte(s.charAt(i));
	*/
	 //	os.writeByte(Integer.parseInt(s));
	}
	catch (IOException e) {e.printStackTrace();
	}System.out.println( s + " gesendet");
}
 
}
 

Neue Beiträge

Zurück