Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX (https://www.delphipraxis.net/197273-bluetooth-verbindung-fmx-mit-leica-disto-x3-x4-lasermesser-fmx.html)

AuronTLG 25. Jul 2018 16:47

Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
Hallo,

vermutlich ist das eine zu spezielle Angelegenheit, aber ich habe erhebliche Probleme dabei,
den Leika Disto X3 Lasermesser auf FMX zum Laufen zu bringen, da das Teil mit einer neuen SDK versehen wurde und anscheinend nicht mehr so funktioniert wie die älteren Modelle dies taten.

Ältere Laser konnte man praktisch genau so einbinden, wie Embarcadero es sich gedacht hat, d.h. mit TBluetoothLE, Servicen, SubScribeToCharacteristic etc.
Auf diesem Weg bekomme ich es aber beim besten Willen nicht zum laufen.

Es besteht für mich natürlich die Möglichkeit, die zugehörige Java-Library einzubinden und das Ganze damit umzusetzen, doch das würde ich wenn möglich umgehend, da es extremst umständlich wäre.

Die Chancen sind wohl gering, aber vielleicht hat ja jemand hier auch mit dem Teil zu tun gehabt. Wäre super.

Rollo62 26. Jul 2018 09:29

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
Kann es sein das die BLE-Encryption benutzen ?

Zum Glück habe ich damit noch nichts zu tun gehabt, es bahnt sich aber mehr und mehr an.

Rollo

knaeuel 26. Jul 2018 11:05

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
das wäre auch meine Befürchtung gewesen. Ich kenne das in recht harmloser For vom Mi Band 2. Dort werden bei Verbindungsaufnahme 16 Bytes vom Band zum handy übertragen, die es dann AES-verschlüsselt zurückbekommen möchte. Passt die Antwort, kann die "normale" unverschlüsselte Kommunikation beginnen (Dienste einlesen, Abos eintragen, etc.)

AuronTLG 26. Jul 2018 11:43

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
So, habe mir eine kleine Mini-App gebaut, mit der ich experimentieren konnte...

Die Sache sieht im Prinzip so aus.

Ich kriege den Laser mithilfe von TBluetoothLE angesteuert, ich kann mir die Services anzeigen lassen, und zu den Services die Characteristics mit entsprechenden UUIDs.
Ich kann sogar wie gehabt SubscribeToCharacteristic mit Erfolg ausführen.

Für die Characteristics habe ich dann zwar die UUIDs, aber keinerlei Beschreibungen oder Namen, die sind nämlich leer.

Und hier liegt das Problem. Bei den vorherigen Leica-Modellen gab es eine bestimmte UUID, mit der man das Distanzmessungs-Characteristic ansteuern und subscriben konnte.
Diese UUID gibt es aber im X3 nicht mehr, und es sind keinerlei Informationen zu finden, welche UUID nun die Distanzmessung ansteuert oder ob es überhaupt noch so funktioniert.

Ich habe mithilfe der MiniApp sämtliche angezeigten Characteristic-UUIDS durchprobiert, ohne Erfolg. Sobald der Laser versucht, etwas zu senden, zeigt er den Fehler für fehlende Bluetoothverbindung an, obwohl er selbst vorher signalisiert hat, dass eine Verbindung hergestellt wurde.

knaeuel 26. Jul 2018 12:21

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
hast du schonmal die Bluetooth-Daten mitschreiben lassen? Das kann eigentlich fast jedes Android-Handy. Es sollte in den Entwckleroptionen zu finden sein und in etwa "Bluetooth HCI Überwachungsprotokoll" oder so heißen. Einfach mal aktivieren und dann die Hersteller-App laufen lassen.

Dann kannst du hinterher die Datei (bei mir heißt die in etwa so "btsnoop_hci.log") einfach auf einen Windows-PC kopieren und dort mit Wireshark öffnen. Ich warne dich schonmal vor: es ist ein riesengewimmel in dem log, aber mit etwas geduld findest du bestimmt einiges heraus.

Rollo62 26. Jul 2018 20:04

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
Versuch einfach mal die Notifications nacheinander zu Subscribe, und sehen auf welchem Kanal was passiert.
Für den Erstkontakt nehme ich meist BLE Tools, habe im Moment die Liste aber nicht hier. So was wie lightblue für iOS.

Edit:
Der BleScanner ist z.B. ganz übersichtlich.
Damit kan man Notifications subscriben, und die werden dann als HEX gezeigt.

Es geht aber auch sehr gut mit dem BleScanner Projekt in den Delphi Demos, das ist aber
leider eher ein Proof-of-concept.

Rollo

AuronTLG 3. Aug 2018 13:54

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
So, ich habs gelöst, nach jeder Menge Herumwühlen in den BluetoothLogs (danke für den Tipp) und im Code der Leica-Beispiel-App, von daher ist das hier nur ein kleiner Nachtrag für etwaige Leute, die auf dasselbe Problem stoßen und hier danach suchen könnten:

Die Leica-Generation, zu der der X3 gehört, verwendet im Prinzip einfach nur andere Characteristics. Der Service ist derselbe, nämlich immer noch der mit der UUID '{3AB10100-F831-4395-B29D-570977D5BF94}'.

Der Trick besteht darin, dass man sich anscheinend mit sämtlichen Characteristics, die dieser Service zur Verfügung stellt, verbindet (SubscribeToCharacteristic), was mit allen außer ~ 2 möglich ist.

Hat man das getan, so empfängt man, sobald man mit dem Laser misst, über die "BASIC_MEASUREMENT"-Characteristic mit der UUID '{3AB1010D-F831-4395-B29D-570977D5BF94}' ein Byte-Array, welches den Messwert enthält, den man sich auslesen kann, indem man die ersten 4 Werte des Arrays in umgekehrter Reihenfolge (Little Endian) in eine Float umwandelt.

Rollo62 3. Aug 2018 19:01

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
Dankesehr für die Info.

Ich habe jetzt mit Leica nicht besonders ausprobiert, nur mal mit einen BleTool reigeschaut.
Ich weiss aber das die ein SDK für ihre Produkte anbieten.
Hast du dir das vielleicht schonmal besorgt ?

Womöglich stehen da noch weitere Geheimnisse drin, in die Richtung was man sonst noch so mit dem Teil machen kann, soweit Leica das im SDK bekannt gemacht hat.

Rollo

AuronTLG 6. Aug 2018 08:57

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
Ja, für Android (Java) und IOS. Die habe ich, und eben genau beim Durchsuchen der API habe ich ja auch rausgefunden, dass die Messwerte über eben genau jene UUID empfangen werden.

Es ist aber z.B. auch möglich, dem Laser Befehle zu übermitteln, indem man der Characteristic mit der UUID '{3AB10120-F831-4395-B29D-570977D5BF94}' per WriteCharacteristic bestimmte Werte übermittelt.
Z.B. Messungen über das Handy zu starten, bestimmte Informationen abrufen, etc.

Das einzige Problem, was ich jetzt noch habe, ist, dass das Laser, zumindest mit den Smartphones, die ich hier habe, nach einer kurzen Weile einfach die Verbindung abbricht. Das Problem scheinen die offiziellen Apps aber auch zu haben, weswegen ich davon ausgehe, dass es an den Smartphones oder am Laser liegt.

Rollo62 6. Aug 2018 12:44

AW: Bluetooth-Verbindung in FMX mit Leica Disto X3/X4 Lasermesser in FMX
 
Normalerweise haben diese Geräte ein AutoShut-Off, um Batteriepower zu sparen.
Entweder gibt es dafür einen Befehl, oder du könntest versuchen regelmäßig etwas abzurufen, z.B. Modus, etc.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz