Ursprungsmitteilung
Thema Installation bluecove-gpl-2.1.1-SNAPSHOT 
Autor O. Simon 
Eingangsdatum 2019-04-03 13:43:58.0 
Mitteilung Sehr geehrter Herr Dr. Plüss,

für Ihre hervorragend funktionierenden Beispiele zum Thema Bluetooth möchte ich mich zunächst einmal bedanken. Sowohl unter Windows als auch unter dem Raspberry Pi war ich dank dieser Vorlagen sehr schnell erfolgreich.

Leider klappt es nicht auf einem x64-PC unter Linux, was wohl an der Installation der Bluecove JNI-Bibliotheken liegt.
Unter www.aplu.ch/home/download/ konnte ich bluecove-gpl.2.1.1-SNAPSHOT.jar mit der darin enthaltenen dynamischen Bibliothek libbluecove_x64.so und bluecove-2.1.1.jar finden, herunterladen und installieren bzw. in das Projekt einbinden.

Beim Programmstart erhalte ich jedoch folgenden Fehlermeldung:

Exception in thread "main" java.lang.SecurityException: class "com.intel.bluetooth.BluetoothStackBlueZ"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intel.bluetooth.BlueCoveImpl.loadStackClass(BlueCoveImpl.java:351)
at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:447)
at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:69)
at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1044)
at java.security.AccessController.doPrivileged(Native Method)
at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1042)
at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1035)
at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
at Bluetooth.showDevices(Bluetooth.java:105)
at Bluetooth.main(Bluetooth.java:26)

Könne Sie mir zur Lösung dieser Thematik einen Tipp geben? Passen die beiden .jar Files nicht zusammen?

Vielen Dank

O. Simon 
 
      
Antworten
Thema BlueCove unter Linux 64 bit 
Autor Aegidius Pluess 
Eingangsdatum 2019-04-15 13:18:31.0 
Mitteilung Danke für die Forumanfrage. Ich möchte mich dafür entschuldigen, dass ich wegen eines längeren Auslandaufenthalts erst heute antworte. Es ist mir ein Anliegen, der Sache gründlich nachzugehen. Leider gibt es für dieBlueCove-Library schon lange keinen Support mehr, so dass sich Versionskonflikte mit neueren Linux-Version ergeben können.

Sie hören in den nächsten 2 Wochen in dieser Sache wieder von mir.

MfG 
 
Thema BlueCove unter Linux 64 bit 
Autor Aegidius Pluess 
Eingangsdatum 2019-05-03 08:54:38.0 
Mitteilung Es ist mir gelungen, auf meinem Linux-System mit Ubuntu 18.04.1 LTS (bionic) den Python-Bluetooth-Server zum Laufen zu bringen. Ich bin so vorgegangen:

Nachinstallation von Modulen:

sudo apt-get install bluez bluez-obexd
sudo apt-get install gnome-bluetooth
sudo apt-get install indicater-bluetooth
sudo apt-get install libbluetooth3:amd64
sudo apt-get install libgnome-bluetooth13:amd64
sudo apt-get install libbluetooth-dev

Neu gebootet; dann Bluetooth testen mit lsusb | grep Bluetooth und der Dongle muss angezeigt werden.

Unter den Applications gibt es eine Icone "BluetoothManager". Startet man diesen, so werden beispielsweise mit Search laufende Bluetooth-Geraete angezeigt (und man koennte damit Paaren, z.B. mit einem Lego EV3).

Dann noch editieren:

sudo nano /etc/systemd/system/dbus-org.bluez.service

und folgende Zeile

ExecStart=/usr/lib/bluetooth/bluetoothd

ergaenzen zu

ExecStart=/usr/lib/bluetooth/bluetoothd --compat

und schliesslich Rechte geben:

sudo chmod 777 /var/run/sdp

Neu booten und TigerJython starten. Test mit dem Programm:
from btcom import *

def onStateChanged(state, msg):
if state == "LISTENING":
print "Server is listening"
elif state == "CONNECTED":
print "Connection established to", msg
elif state == "TERMINATED":
print "Server terminated"
elif state == "MESSAGE":
print "Got message", msg
server.sendMessage(msg)

serviceName = "EchoServer"
server = BTServer(serviceName, stateChanged = onStateChanged, isVerbose = True)
msgDlg("Bluetooth Server running. Click 'OK' to stop")
server.terminate()


Screenshot





 
 
Thema Installation bluecove-gpl-2.1.1-SNAPSHOT  
Autor O. Simon 
Eingangsdatum 2019-05-10 10:33:33.0 
Mitteilung Sehr geehrter Herr Dr. Plüss,

vielen Dank für Ihre umfangreiche Antwort und Tests. Ich versuche dies alsbald möglich nachzuvollziehen.

Viele Grüße

O. Simon