Gast
#1053133
Hallo zusammen,
ich möchte die COMM API von SUN einsetzen, um die serielle Schnittstelle
mit JAVA 1.6 nutzen zu können. Auf dem Rechner ist OpenSuse 10.3
installiert.
Für die ersten Gehversuche sollten die Beispiele aus dem Verzeichnis
"examples" aus dem Archiv comm3.0_u1_linux.zip herhalten.
Die Lib libLinuxSerialParallel.so wurde nach /usr/lib kopiert. Die Datei
javax.comm.properties liegt im Verzeichnis von SerialDemo. Ihr Inhalt
ist:
Driver=com.sun.comm.LinuxDriver
Der Start von SerialDemo erfolgt problemlos. Eine Auswahl der
Schnittstelle ist nicht möglich. Die Liste ist leer.
Die gleiche Vorgehensweise führte auf einen Ubuntu-System zum Erfolg.
Die Liste enthielt zwei COM und einmal Parallel-Port.
Doch zurück zum Suse-System:
linux:/root/commapi/examples/SerialDemo # dmesg | grep ttyS
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Eine RS232-Schnittstelle wurde wie erwartet vom Kernel erkannt.
Weitere Untersuchungen im Quell-Code von SerialDemo zeigten, dass der
Aufruf "CommPortIdentifier.getPortIdentifiers()" in der Datei
SerialDemo.java eine leere Liste zurückgibt:
void listPortChoices() {
CommPortIdentifier portId;
Enumeration en = CommPortIdentifier.getPortIdentifiers();
// iterate through the ports.
while (en.hasMoreElements()) {
portId = (CommPortIdentifier) en.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
portChoice.addItem(portId.getName());
}
}
portChoice.select(parameters.getPortName());
}
Was sind die Eigenheiten von Suse-Linux in diesem Fall? Habt ihr eine
Idee wieso diese Liste unter suse leer ist?
Ein langer Text und ein Dank im Voraus für's Lesen.
Ich hoffe auf eure Tipps ...
Grüße, Olli