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:
- win32com.dll in das <JDK>\bin Verzeichnis kopieren
- comm.jar in das <JDK>\lib Verzeichnis kopieren
- 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
- Download Java Communications 2.0 (Lib, Samples, Javadocs) – Win32
(funktioniert auch unter Win64)
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: Bluetooth, Java
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
Kucky sagt
am 22. Dezember 2013 @ 15:30
Nachtrag. Ich benutze Eclipse Kepler