Bluetooth Low Energy und Schnittstelle zur App

New feature requests for the GPS-Connector app.
Neue Funktionen bzw. Feature Anfragen zur GPS-Connector App.
Antworten
TNT2k
Beiträge: 4
Registriert: Di 22. Aug 2023, 01:05

Bluetooth Low Energy und Schnittstelle zur App

Beitrag von TNT2k »

Guten Tag,
wäre es möglich, BLE zu unterstützen?
Und gibt es für das "normale" Bluetooth irgendwo eine Dokumentation, wie man mit der App kommuniziert?
Ich frage das, da ich gerne ein eigenes Gerät aus einem ESP basteln möchte (nicht zum Verkauf), welches z.B. auch die Standortbestimmung im ICE mittels ICE Portal erlaubt.
Muss ich mich einfach nur mit dem Handy per Bluetooth verbinden, und es dann mit Daten nach dem NMEA Standard bewerfen? Oder wie bekomme ich Daten in die App?
Gibt es eventuell irgendwo den Quellcode, dann würde ich selbst nachschauen, und eventuell Änderungen für mich vornehmen.
Gruß
TNT2k
Mazuch
Administrator
Beiträge: 32
Registriert: Mi 11. Nov 2020, 17:54
Kontaktdaten:

Re: Bluetooth Low Energy und Schnittstelle zur App

Beitrag von Mazuch »

Hallo TNT2k,

wie auch schon per Mail mitgeteilt wird der nächste App Versions-Update BLE für bestimmte Geräte unterstützen.
Diese Option wird aber nur für Qstarz und RaceBox Geräte verfügbar sein und außerdem nur gegen eine Abo-Gebühr.

Der Hauptgrund dafür ist der fehlende Standard der Datenübermittlung bei BLE,
d.h. jeder Hersteller überträgt die Daten in seinem Wunschformat. (sehr oft binär)
Das wiederum macht den Auswerte-Algorithmus deutlich komplizierter.

Zum "eigenen" Bluetooth Classic (nicht BLE) Gerät ... ja - hier müssen einfach die Daten per SPP (serial-port-profile)
ausgegeben werden. Such einfach im Browser deiner Wahl nach "spp bt classic".

Gruß
Markus
There is no code so big, twisted, or complex that maintenance can't make it worse. (Gerald M. Weinberg)
TNT2k
Beiträge: 4
Registriert: Di 22. Aug 2023, 01:05

Re: Bluetooth Low Energy und Schnittstelle zur App

Beitrag von TNT2k »

Hallo Markus,
die Antwortmail ist scheinbar nicht durchgegangen. Daher ging ich davon aus, dass das Postfach nicht mehr überwacht wird.

Wäre es möglich, in der nächsten Version BLE für alle freizugeben, und nur die "komplexen" Geräte hinter ein Abo zu packen?
Gibt es schon ein ungefähres Release Datum für die neue Version?

Ich habe ja keines der genannten Geräte, sondern bastele an etwas eigenem, was aber von BLE profitieren würde.
Dafür wäre es problemlos ausreichend, die "normalen Nachrichten" per BLE zu übertragen, und intern dann einfach so zu verfahren, wie es aktuell mit Bluetooth Classic passiert.
Das sollte nicht so unfassbar viel Aufwand sein. Ansonsten baue ich das auch gerne selbst ein, wenn ich an den Code kommen könnte (die werbefreie Version habe ich sowieso, und da man die Datei teilweise dekompilieren kann, wäre es auch kein Problem, den Werbecheck einfach auszubauen; bloß BLE einzubauen wäre auf diesem Weg ein bisschen zu nervig)?

Ich werde es erstmal mit Bluetooth Classic versuchen, aber BLE wäre aber wesentlich von Vorteil
1. weil es für Rust keine normalen Implementierung gibt, BLE aber schon
2. weil es eben weniger Energie braucht, und damit für Microcontroller besser geeignet ist...

Gruß
TNT2k
Mazuch
Administrator
Beiträge: 32
Registriert: Mi 11. Nov 2020, 17:54
Kontaktdaten:

Re: Bluetooth Low Energy und Schnittstelle zur App

Beitrag von Mazuch »

Wäre es möglich, in der nächsten Version BLE für alle freizugeben, und nur die "komplexen" Geräte hinter ein Abo zu packen?
Die BLE Daten-Auswertung läuft völlig anders als die für Bluetooth Classic.
Bei BT Classic ist das im Grunde einfach ein simpler Datenstrom (Socket) des verbundenen Geräts,
während bei BLE die Kommunikation via GATT Interface und Characteristic Notifikationen abläuft ... kurz: Komplett ANDERS!
Die Daten selbst sind dann - wie gesagt - meistens auch noch Vendor spezifisch kodiert, während es bei BT Classic einfaches NMEA ASCII ist.
Übrigens übertragen manche Hersteller auch via BT Classic eigene Binärdaten ... die werden nur meist nicht ausgewertet.
Daher nein - das BLE Feature werde ich nicht "for free" anbieten.
Gibt es schon ein ungefähres Release Datum für die neue Version?
Wird demnächst soweit sein - spätestens Ende September.

Natürlich kannst du die App dekompilieren ... kein grosses Problem!
Die Funktionalität (Auswertung der Daten und alles NMEA Zeuch) läuft aber in meiner internen C++ Library ab.
Da wird's dann nicht mehr ganz so einfach mit dekompilieren. 8-)

Gruß
Markus
There is no code so big, twisted, or complex that maintenance can't make it worse. (Gerald M. Weinberg)
TNT2k
Beiträge: 4
Registriert: Di 22. Aug 2023, 01:05

Re: Bluetooth Low Energy und Schnittstelle zur App

Beitrag von TNT2k »

Ich glaube, wir haben uns missverstanden.
Ich möchte keinen kostenlosen Zugriff auf den Konnektor für professionelle Geräte, sondern kostenlosen Zugriff (oder den Source Code, dann baue ich das selbst) auf einen Konnektor, der einfach nur einfaches NMEA ASCII über BLE frisst.

Dass das Anpassen der BLE Schnittstelle für die verschiedenen Hersteller viel Arbeit ist, steht außer Frage.
Daher will ich ja die Daten, die sonst per BL Classic übertragen wurden, einfach per BLE übertragen.


Das heißt:
- Es gibt in der Abo Version, wie geplant, die Konnektoren über BLE für die verschiedenen Vendors. Die brauche ich nicht, damit kann ich absolut nix anfangen. Ich habe schließlich keinerlei Gerät, was das unterstützen würde.

- Ich hätte gerne eine eigene "BLE Schnittstelle", die einfach nur NMEA ASCII annimmt ("simpler Datenstrom"), und das genauso behandelt, wie die Daten, die sonst über BL Classic reinkommen (es sind ja auch die gleichen Daten, nur eben anders übertragen, aber nicht "komisch konvertiert" oder so). https://github.com/kai-morich/SimpleBluetoothLeTerminal hier ist ein Beispiel, was ich meine. Ich brauche also keine "besonderen Formate" nur eine andere Übertragungsart für das Format, was BL Classic nutzt.


Analogie: Ob ich Wasser (hier die Daten) per Eimer zum Schwimmbecken trage (BLE), oder ob ich den Gartenschlauch nehme (BL Classic), is egal.
Am Ende kommt das gleiche Wasser an, nur auf unterschiedlichem Wege.
Es ist aber nicht einmal rot und einmal blau.
Es ist nur einmal in einen Eimer gefüllt (Pakete) und einmal eben nicht.

Oder aus der Netzwerktechnik:
Ob ich ein IP Paket in ein Ethernetpaket (BL Classic) oder in ein Wireguardpaket (BLE) packe, spielt keine Rolle.
Der Empfänger muss nur mit Ethernet- oder Wireguardpaketen umgehen können.
Nach dem Auspacken habe ich in beiden Fällen wieder das gleiche IP Paket.
Die transportieren Daten (das IP Paket) wird nicht verändert (wenn wir mal von splitting absehen).

Ich würde mir das Dekompilieren gerne sparen (auch beim C++ ginge das) weil es wesentlich mehr Aufwand ist, als die Daten, ohne Veränderung des Datenprotokolls, über BLE zu empfangen.

Gruß
TNT2k
Mazuch
Administrator
Beiträge: 32
Registriert: Mi 11. Nov 2020, 17:54
Kontaktdaten:

Re: Bluetooth Low Energy und Schnittstelle zur App

Beitrag von Mazuch »

Ich möchte keinen kostenlosen Zugriff auf den Konnektor für professionelle Geräte, sondern kostenlosen Zugriff (oder den Source Code, dann baue ich das selbst)
Sorry - mein Code ist nicht Open-Source!

Aber soweit ich das verstehe brauchst du "nur" eine BLE Android Library.
Da gibt es mehrere als Open-Source Lib - einfach kurz googlen!
Das hier ist z.B. so eine App: https://www.kai-morich.de/android/

Aktuell plane ich nicht einen reinen ASCII NMEA Datenstrom per BLE in der App anzubinden.
Momentan konzentriere ich mich in der Tat auf einige wenige Hersteller mit Binärprotokoll.

Gruß,
Markus
There is no code so big, twisted, or complex that maintenance can't make it worse. (Gerald M. Weinberg)
TNT2k
Beiträge: 4
Registriert: Di 22. Aug 2023, 01:05

Re: Bluetooth Low Energy und Schnittstelle zur App

Beitrag von TNT2k »

Es tut mir leid, dass wir uns schon wieder missverstanden haben.
Sorry - mein Code ist nicht Open-Source!
Bei der Antwort fehlt leider ein Teil meines Textes, es heißt
Ich möchte keinen kostenlosen Zugriff auf den Konnektor für professionelle Geräte, sondern kostenlosen Zugriff (oder den Source Code, dann baue ich das selbst) auf einen Konnektor, der einfach nur einfaches NMEA ASCII über BLE frisst.
Das ist eine ganz andere Aussage als
Ich möchte keinen kostenlosen Zugriff auf den Konnektor für professionelle Geräte, sondern kostenlosen Zugriff (oder den Source Code, dann baue ich das selbst)
Das "oder" in der Klammer und der Rest des Satzes waren da mit gutem Grund.
Aber soweit ich das verstehe brauchst du "nur" eine BLE Android Library.
Da gibt es mehrere als Open-Source Lib - einfach kurz googlen!
Das hier ist z.B. so eine App: https://www.kai-morich.de/android/
Es ist schön, dass Sie mir die App schicken, die ich vorher Ihnen geschickt habe, mit der Bitte, ob Sie diese einfach einbauen können:
- Ich hätte gerne eine eigene "BLE Schnittstelle", die einfach nur NMEA ASCII annimmt ("simpler Datenstrom"), und das genauso behandelt, wie die Daten, die sonst über BL Classic reinkommen (es sind ja auch die gleichen Daten, nur eben anders übertragen, aber nicht "komisch konvertiert" oder so). https://github.com/kai-morich/SimpleBluetoothLeTerminal hier ist ein Beispiel, was ich meine. Ich brauche also keine "besonderen Formate" nur eine andere Übertragungsart für das Format, was BL Classic nutzt.
Leider bringt mir die verlinkte ohne den Source Code Ihrer App nicht viel, da die zwei nicht miteinander kommunizieren können. Oder ich muss die App decompilen. Dann baue ich das selbst ein, und veröffentliche die App danach vielleicht einfach selbst.

Nochmal: Ich will keinen kostenlosen Zugriff auf irgendwelche komplizierten kostenpflichtigen Versionen.
Ich würde die App nur gerne mit einem selbstgebauten Gerät nutzen, welches kein Bluetooth Classic hat.
Dieses Gerät wird vielleicht irgendwann Open Hardware, damit andere es nachbauen können. Mit Verbindung zu der App logischerweise. Aber dann baue ich die App eben selbst um, und packe sie als Download dazu oder so.

Gruß
TNT2k
Antworten