# Serielle Schnittstelle ansprechen



## Nathy (10. Jan 2007)

Guten Tag

Ich möchte über Java die serielle Schnittstelle ansprechen.
Kann mir bitte jemand sagen, wie ich das am besten machen soll und hat jemand einen kleinen Beispielcode?

Gruss und danke


----------



## Wildcard (10. Jan 2007)

Erstmal brauchst  du die richtige lib:
http://www.rxtx.org/
oder die Java Comm API


----------



## Nathy (10. Jan 2007)

Welche ist besser?


----------



## Wildcard (10. Jan 2007)

Hab bisher weder das eine noch das andere verwendet, aber AFAIK wird die Comm API nicht mehr gepflegt, daher würde ich zu rxtx tendieren.


----------



## Nathy (10. Jan 2007)

Und gibt es dafür ein Beispielprogramm oder eine detalliere Anleitung?

Gruss und danke


----------



## thE_29 (10. Jan 2007)

Wie wärs wennst auf der Homepage selber suchst oder muss man euch alles nachwerfen?!


----------



## Nathy (10. Jan 2007)

Ich habe jetzt die Datei RXTXcomm.jar nach C:\Programme\Java\jre1.5.0_09\lib\ext
und die Datei rxtxSerial.dll nach C:\Programme\Java\jre1.5.0_09\bin kopiert.
Ist das so richtig?
Auf der Homepage sehe ich leider nur ganze Projekte. Gibt es auch irgendwo ein kleines Beispielprogramm?

Gruss und danke


----------



## thE_29 (10. Jan 2007)

....
Das waren jetzt 4 Klicks!

Zuerst hier her:
http://www.rxtx.org/
dann:
http://rxtx.qbang.org/wiki/index.php/Main_Page (dort gibts auch ne Installationsanleitung für Windows, aber das hast ja)
dann:
http://rxtx.qbang.org/wiki/index.php/Development
und finaly:
http://rxtx.qbang.org/wiki/index.php/Examples

Tadaaa


----------



## Nathy (10. Jan 2007)

Besten Dank für die Antwort.
Habe auch ein wenig getestet.

Wenn ich dieses Prog vesuche zu starten kommt folgender Fehler:

```
import javax.comm.CommPortIdentifier;

public class Main {

    public Main() {        
    }

    public static void main(String[] args) {
        System.out.println(CommPortIdentifier.getPortIdentifiers());
    }
}
```

Fehler: 
init:
deps-jar:
compile-single:
run-single:
javax.comm.CommPortEnumerator@1fae3c6
Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
Caught java.lang.UnsatisfiedLinkError: readRegistrySerial while loading driver com.sun.comm.SolarisDriver
Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
Caught java.lang.UnsatisfiedLinkError: readRegistrySerial while loading driver com.sun.comm.SolarisDriver
BUILD SUCCESSFUL (total time: 0 seconds)

Wenn ich 

```
import gnu.io.CommPortIdentifier;

public class Main {

    public Main() {        
    }

    public static void main(String[] args) {
        System.out.println(CommPortIdentifier.getPortIdentifiers());
    }
}
```

kommt der Fehler
run-single:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
        at java.lang.Runtime.loadLibrary0(Runtime.java:822)
        at java.lang.System.loadLibrary(System.java:993)
        at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
        at SerielleSchnittstelle.Main.main(Main.java:35)
Java Result: 1

Die selbe Exception kommt auch beim Beispielprogramm (ToWaySerialComm) von der Seite, die du mir gesendet hast.
Was stimmt da noch nicht?
Welche Import Anweisung muss ich überhaupt nehen?

Gruss und danke


----------



## thE_29 (10. Jan 2007)

Kopier die dll mal ins system32 Verzeichnis

Und verwendest du eine IDE?


----------

