TobiTobsen
25.06.2008, 23:11
allo zusammen,
ich habe ein Problem beim ansprechen des Parallel Ports.
Ich habe die javacomm Api bereits auf meinem System. Ich denke das funktioniert auch.
Mein Ziel ist zunächst einmal einzelne Pins der Schnittstelle auf high (+5V) zu setzen. Allerdings habe ich so etwas noch nie mit Java gemacht und frage mich ob das überhaupt so geht. Genaugenommen solls erst einmal Pin 2 sein, also Datenbit 1.
Wenn ich mein kleines Programm laufen lasse, dann schickt er auf jedenfall Daten an meinen Parallelport, allerdings denkt er da wäre mein alter Drucker dran. Das heisst in der Drucker Liste in der alle Aufträge aufgeführt sind, erscheinen auch meine gesendete Bits.
Wenn ich die Schnittstelle an verschiedenen Pins durchmesse, dann liegt permanent eine gewisse Spannung (irgendwas um die 3,8V) an. Lasse ich mein Programm laufen und messe dabei, so stelle ich keinen Unterschied fest. Ich vermute mal mein Multimeter ist zu träge? Wobei ich auch dachte man könne die Pins länger auf high setzen.
Ich hänge meinen Code mal an, vll sind da schon grundlegende Fehler enthalten.
package test;
import java.io.*;
import javax.comm.*;
public class main {
static CommPortIdentifier portId;
static ParallelPort pPort;
static OutputStream outputStream;
public static void main(String[] args) {
boolean run = true;
try {
portId = CommPortIdentifier.getPortIdentifier("LPT1");
pPort = (ParallelPort) portId.open("Parallel Test", 1);
outputStream = pPort.getOutputStream();
} catch (Exception e) {
run = false;
}
if (run) {
for (int i = 0; i < 100; i++) {
try {
outputStream.write(1);
Thread.sleep(20);
} catch (Exception exc) {
System.out.println("Fehler :" + exc);
}
}
}
//
// int portType = portId.getPortType();
// String name = pPort.getName();
// int mode = pPort.getMode();
//
// System.out.println(name + " " + mode + " " + portType);
pPort.close();
}
}
Habe den Drucker jetz mal gelöscht, mit dem Erfolg das jetz auch diese Druckauftragsliste nicht mehr erstellt wird, allerdings klappt es jetz nicht mehr denn das Programm terminiert nicht mehr. Läuft und hört nich mehr auf.
Erwartet er vll irgenwie eine Antwort, Handshake oder so was?
Danke und Gruß,
Tobi
ich habe ein Problem beim ansprechen des Parallel Ports.
Ich habe die javacomm Api bereits auf meinem System. Ich denke das funktioniert auch.
Mein Ziel ist zunächst einmal einzelne Pins der Schnittstelle auf high (+5V) zu setzen. Allerdings habe ich so etwas noch nie mit Java gemacht und frage mich ob das überhaupt so geht. Genaugenommen solls erst einmal Pin 2 sein, also Datenbit 1.
Wenn ich mein kleines Programm laufen lasse, dann schickt er auf jedenfall Daten an meinen Parallelport, allerdings denkt er da wäre mein alter Drucker dran. Das heisst in der Drucker Liste in der alle Aufträge aufgeführt sind, erscheinen auch meine gesendete Bits.
Wenn ich die Schnittstelle an verschiedenen Pins durchmesse, dann liegt permanent eine gewisse Spannung (irgendwas um die 3,8V) an. Lasse ich mein Programm laufen und messe dabei, so stelle ich keinen Unterschied fest. Ich vermute mal mein Multimeter ist zu träge? Wobei ich auch dachte man könne die Pins länger auf high setzen.
Ich hänge meinen Code mal an, vll sind da schon grundlegende Fehler enthalten.
package test;
import java.io.*;
import javax.comm.*;
public class main {
static CommPortIdentifier portId;
static ParallelPort pPort;
static OutputStream outputStream;
public static void main(String[] args) {
boolean run = true;
try {
portId = CommPortIdentifier.getPortIdentifier("LPT1");
pPort = (ParallelPort) portId.open("Parallel Test", 1);
outputStream = pPort.getOutputStream();
} catch (Exception e) {
run = false;
}
if (run) {
for (int i = 0; i < 100; i++) {
try {
outputStream.write(1);
Thread.sleep(20);
} catch (Exception exc) {
System.out.println("Fehler :" + exc);
}
}
}
//
// int portType = portId.getPortType();
// String name = pPort.getName();
// int mode = pPort.getMode();
//
// System.out.println(name + " " + mode + " " + portType);
pPort.close();
}
}
Habe den Drucker jetz mal gelöscht, mit dem Erfolg das jetz auch diese Druckauftragsliste nicht mehr erstellt wird, allerdings klappt es jetz nicht mehr denn das Programm terminiert nicht mehr. Läuft und hört nich mehr auf.
Erwartet er vll irgenwie eine Antwort, Handshake oder so was?
Danke und Gruß,
Tobi