Java – serielle Schnittstelle – Bluetooth Problem

Wer schon einmal versucht hat in Java mit der seriellen Schnittstelle in Verbindung mit Bluetooth über RXTX zu arbeiten, hat sicher schon einmal festgestellt, dass dies nicht immer funktioniert. Ich möchte euch heute einen Weg zeigen wie ihr dieses Problem löst.

Java – serielle Schnittstelle

Mit Java ist es nicht einfach möglich auf die serielle Schnittstelle zu zu greifen, da Java plattformunabhängig ist. Die serielle Schnittstelle ist aber eine plattformabhängige Komponente. Um das Problem zu lösen, müssen wir auf die JNI (Java Native Interface) API zurückgreifen, welche plattformabhängige Systemaufrufe erlaubt. Danach ist die Java Anwendung aber nicht mehr plattformunabhängig! Für Linux gibt es die Java Communications 3.0 API (javax.comm) Implementierung. Für Windows und Mac wird üblich die beliebte RXTX Bibliothek eingesetzt. RXTX basiert auf die Spezifikation der Java Communications API.

RXTX Bluetooth Problem

Genau hier steckt das Problem in Verbindung mit Bluetooth SPP ( Serial Port Profile), welches das RFCOMM Protokoll nutzt. Die RXTX Bibliothek kommt damit nicht klar.

Lösung – Java Communicatios 2.0

Um das Problem unter Windows  zu lösen, empfehle ich  die sehr alte Java Communications 2.0 Version von 1998, welche für Windows verfügbar ist. Die Java Communications 2.0 Bibliothek hat keine Probleme mit dem Bluetooth-SPP und RFCOMM Protokoll und auch sonst unterstützt es alles was man so braucht.

Installation

Möglichkeit 1:

  1. win32com.dll in das <JDK>\bin Verzeichnis kopieren
  2. comm.jar in das <JDK>\lib Verzeichnis kopieren
  3. javax.comn.properties in das <JDK>\lib Verzeichnis kopieren

Problem hier bei ist, dass man es auf jeden Rechner installieren muss, wo später die Software laufen soll.

Möglichkeit 2:

Die Library in eueren Projektverzeichnis kopieren und über -Djava.library.path=lib (z.b. Unterordner lib) einbinden. Ist eigentlich analog zur RXTX Library.

Beispiel

Beispiele sind im Download enthalten. Daher gehe ich darauf nicht weiter ein.

Download

Da die Java Communications 2.0 Library nicht mehr so leicht zu finden ist, biete ich sie hier zum Download an. Enthalten ist die Lib, Samples, Javadocs, Readme

Ich hoffe, damit gehört euer Bluetooth Problem der Vergangenheit an und der Artikel euch gefallen hat. Bei Fragen oder Anregungen stehe ich euch gern zur Seite.

Schlagwörter: ,

2 Kommentare bisher »

  1. Kucky sagt

    am 22. Dezember 2013 @ 15:27

    Hallo,
    ich habe heute Deine Seite gefunden, und die Hoffnung nach Tagen
    endlich den Richtigen gefunden zu haben, mir mein Problem zu lösen.
    Ich hoffe ich habe alles richtig gemacht.

    Referenced Libraries
    controlP5.jar
    core.jar
    RXTXcomm.jar
    seria.jar
    comm.jar
    dll
    rxtxSerial.dll
    win32com.dll
    lib
    comm.jar
    controlP5.jar
    core.jar
    export.txt
    java.comm.properties
    RXTXcomm.jar
    serial.jar

    Bei TXTXcomm.jar habe ich den Pfad „Native Library“ auf …/dll gelegt
    Das gleiche für comm.jar.

    Also alles im Projektordner hinterlegt. Leider funktioniert es bei mir immer noch nicht. Du bist meine letzte Hoffnung.
    Schöne Feiertage
    Willi

  2. Kucky sagt

    am 22. Dezember 2013 @ 15:30

    Nachtrag. Ich benutze Eclipse Kepler

Komentar RSS · TrackBack URI

Hinterlasse einen Kommentar

Name: (erforderlich)

eMail: (erforderlich)

Website:

Kommentar: