RealHAZZARD
Erfahrenes Mitglied
Hallo Leute,
ich habe da mal ein Problem. Ich möchte einen seriellen Drucker ansteuern. Dafür verwende ich rxtx. Mein Beispielprogramm sieht so aus:
Der Durcker empfängt den Befehl auch. Das habe ich getestet.
Aber nun zu meinem Problem:
Ich bekomme keine Ausgabe vom Drucker. Ich habe auch schon so einiges hin und her probiert, aber es will nicht funktionieren.
Und das Beste daran: Wenn mein Programm durchgelaufen ist.Schaue ich mir COM1 mit Putty an und schon sehe ich sie Ausgabe des Druckers.
Ich habe auch schon 10 Sekunden gewartet bevor ich den inputstream gelesen habe. Aber auch dann ist da nichts zu holen.
Das Programm läuft einfach ohne Fehler durch und im Inputstream stehen 0 bytes.
BTW: Die erste Zeile in connect(...) braucht 5 - 10 Sekunden, bevor es weiter geht.
Weiß einer Rat?
ich habe da mal ein Problem. Ich möchte einen seriellen Drucker ansteuern. Dafür verwende ich rxtx. Mein Beispielprogramm sieht so aus:
Java:
package example;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class StartSerial {
private SerialPort serialPort = null;
private InputStream inStream = null;
private OutputStream outStream = null;
private void connect(String portName)throws Exception{
CommPortIdentifier commIdent = CommPortIdentifier.getPortIdentifier(portName);
CommPort cp = commIdent.open(this.getClass().getName(),5000);
if (cp instanceof CommPort){
serialPort = (SerialPort)cp;
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
inStream = serialPort.getInputStream();
outStream = serialPort.getOutputStream();
}
}
private void getStatus() throws Exception{
byte[] request = new byte[]{2,27,34,3}; //Fordert den Drucker auf seinen Namen zu senden.
outStream.write(request);
outStream.flush();
byte[] bernd = new byte[inStream.available()];
System.out.println(bernd.length);
inStream.read(bernd);
System.out.println(new String(bernd));
}
public boolean isConnected(){
return serialPort!=null&&inStream!=null&&outStream!=null;
}
public void disconnect() throws Exception{
if(isConnected()){
inStream.close();
outStream.close();
serialPort.close();
}
}
public static void main(String[] args) throws Exception{
StartSerial ss = new StartSerial();
ss.connect("COM1");
ss.getStatus();
ss.disconnect();
}
}
Der Durcker empfängt den Befehl auch. Das habe ich getestet.
Aber nun zu meinem Problem:
Ich bekomme keine Ausgabe vom Drucker. Ich habe auch schon so einiges hin und her probiert, aber es will nicht funktionieren.
Und das Beste daran: Wenn mein Programm durchgelaufen ist.Schaue ich mir COM1 mit Putty an und schon sehe ich sie Ausgabe des Druckers.
Ich habe auch schon 10 Sekunden gewartet bevor ich den inputstream gelesen habe. Aber auch dann ist da nichts zu holen.
Das Programm läuft einfach ohne Fehler durch und im Inputstream stehen 0 bytes.
BTW: Die erste Zeile in connect(...) braucht 5 - 10 Sekunden, bevor es weiter geht.
Weiß einer Rat?
Zuletzt bearbeitet: