AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS Firemonkey IOS Bluetooth Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey IOS Bluetooth Verbindung

Ein Thema von XXcD · begonnen am 16. Okt 2014 · letzter Beitrag vom 5. Dez 2017
Antwort Antwort
Seite 2 von 2     12   
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#11

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 4. Dez 2017, 23:01
..."Ich würde gerne über BLE genau den seriellen Service nutzen und simplen Text zwischen einem Bluetooth-Modul und einer IOS App hin und her schicken mit 9600 Baud."...

Schlechte Nachricht:
Seriell über BLE int NICHT STANDARDISIERT!

Gute Nachricht:
IOS und BLE funktionieren super

=> soll heißen ohne eine passende Doku des BLE "(Private)Services" und der zugehörigen "Charateristics" hast du keine Möglichkeit irgendein fremdes dir unbekanntes BLE Device zur Übertragung simpler serieller Daten zu nutzen
=> BLE ist physich "Blockbasiert".. mehr wie 20Bytes on Block gehen da nicht direkt, Der BLE Standard sieht "MultiBlock" Kommunikation vor, aber dies wird praktisch kaum verwendet
=> MicroChip RN4020 oder RN4871 können ein von Microchip entwickeltes propitäres Verfahren für simples "serial over BLE", Nordic und einige andere bieten ähnliches.. aber nichts ist untereinander kompatibel!
=> nutze "google" um den Hersteller deines BLE Moduls zu kontaktieren und den zur Herausgabe des Services und der benötigten Characteristics sowie des log. Blockprotokolls zu bewegen, nur so kannst du deine "seriellen Daten" BlockByBlock irgendwie per BLE übertragen
  Mit Zitat antworten Zitat
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#12

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 4. Dez 2017, 23:26
Ok, zu meinem Modul (SH-HC-08) habe ich in der Doku folgendes gefunden:

Services UUIDs: FFE0

UUID: FFE0
Characteristic 1
Properties: Read, Write Without Response, Notify
UUID: FFE1

Ich kann mit der App LightBlue auf dieser Characteristic 1 Daten (in HEX Form) schicken und es kommt am BLE Empfänger an.
Wenn ich "Start Listening" mache, dann sehe ich sogar die Antworten in der App.

Reichen diese Parameter aus um auch selber so eine simple App mit der TBluetoothLE Komponente zu erstellen, oder denke ich mir das jetzt zu einfach?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#13

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 5. Dez 2017, 08:47
Die Daten die vom Modul zur App kommen kannst du normalerweise einfach aneinanderhängen.
Das ist zwar kein 9600 Baud, aber man braucht das ja auch normalerweise nicht in einem festen Timing.

Ich nehme Alles was per Notify geschickt wird erstmal in einem RingBuffer auf und analysiere das dann entsprechend später.

Wenn man Daten an das Modul schickt geht das ähnlich, allerdings hängt es dann vom Modul ab was es damit macht.
Wenn es z.B. alle Eingänge die per WriteNoResponse bekommt in gleicher Weise wie oben puffert und nach draussen als 9600 Baud streamt dann wäre das wohl was du Erreichen wolltest.
Aber wie schon gesagt, die BLE Kommunikation is blockbasiert, und festes Timing wie RS232 gibt es da normalerweise auch nicht.

Es gibt auch günstige BLE-Sniffer mit denen man die Kommunikation etwas "belauschen" kann, um vielleicht mehr aus einem unbekannten Protokoll rauszuhören.

Wenn der Hersteller des Dongles einen geheimen Code oder Verschlüsselung eigebaut hat wirst du wohl Pech haben, dann funktioniert es nur zwischen gleichen Protokollen.

Rollo
  Mit Zitat antworten Zitat
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#14

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 5. Dez 2017, 10:32
Das klingt doch super. Damit kann ich leben. Auf Timing bin ich nicht angewiesen. Will nur einige Kommandos an das Modul schicken können und die Antworten empfangen.
Dafür sollte das also völlig ausreichen.

Wird die Kommunikation zwischen iPhone und Bluetooth LE Modul standardmäßig irgendwie verschlüsselt auf Protokoll-Ebene? Oder muss man selber irgendwie für Sicherheit sorgen, wenn man sensible Daten übertragen will?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#15

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 5. Dez 2017, 12:02
Man macht das über Characteristics, in deinem Fall vielleicht als String.
Du registrierst dich bei einen Notifier und der schickt dir dann einen Event wenn was Neues ankommt.
Wenn du senden willst schickst du ein WriteCharacteristic raus, am Besten schaust du dir die Beispiele dazu an.
Der ganze Ablauf zu einer Verbindung ist leider nicht immer so Problemlos, aber wenn die Verbindung steht funktioniert es bei mir zumindest immer so wie es soll.
Das ganze Handling zwischendurch macht eigentlich das Module mit Apple aus,
ich hatte noch nie Probleme mit verlorenen Paketen oder ähnliches.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 5. Dez 2017, 13:37
Schlechte Nachricht:
Seriell über BLE int NICHT STANDARDISIERT!
BLE ist halt für "Kurzzeitverbindungen" ausgelegt, also kurze/kleine Befehle und dann gleich wieder aus.
Seriell und Streaming allgemein ist dagegen per se eine Langzeitdauerverbingung.

kurze Texte / kleine Befehle kann man aber mit anderen Protokollen/Profilen im BLE auch sehr gut verschicken.
$2B or not $2B

Geändert von himitsu ( 5. Dez 2017 um 13:40 Uhr)
  Mit Zitat antworten Zitat
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#17

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 5. Dez 2017, 14:44
Vielen Dank für die Hilfe.
Ich habe es inzwischen geschafft Strings zu senden und zu empfangen.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#18

AW: Firemonkey IOS Bluetooth Verbindung

  Alt 5. Dez 2017, 18:35
Zitat:
BLE ist halt für "Kurzzeitverbindungen"
Also die Verbindung bleibt dauerhaft bestehen, solange man nicht disconnected oder
sonstwas passiert.
Womöglich legen sich die BLE Beteiligten schlafen wenn nichts weiter gesendet wird,
aber das Ganze Handling regeln die Module und das Phone unter sich aus.
BLE ist auf jeden Fall auch bei Abbruch für ein schnelles Wiederverbinden ausgelegt,
wenn es schonmal verbunden war.

Wir haben hier Systeme die um die 1mA brauchen, auch wenn dauernd etwas gesendet wird, aber es geht dabei in die Richtung 4800-9600 Baud, also das sind keine Videostreams natürlich
Wenn disconnected brauchen die nur ein paar uA.
Genau da gibt es ziemliche Unterschiede wenn die Module aktiv sind.

Natürlich ist dies Art streaming im BLE nicht der Standard, für die standarisierten gibt es GATT Profile, aber da gibt es eben nur ein paar "Heartrate-Sensor", etc. die bei uns natürlich nicht passen.
Da werden die Daten als Byte, Integer übertragen, aber da müssen die Beteiligten Module dann auch GATT richtig verstehen.
Bei unseren System ist das String-Senden die bessere Alternative als sich irgendein GATT Protokoll umzubiegen (am ehesten würde noch so ein TI-SensorTag passen).

Das GATT wird wohl dann Wichtig wenn man kompatibel auch mit anderen 3rd Party-Systemen sein möchte/muss, wir brauchen aber nur unsere Systeme mit unserer Software zu betreiben.
Dan müssen alle Beteiligten exakt GATTisch reden damit die Kommunikation problemlos läuft.

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
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