![]() |
Firemonkey IOS Bluetooth Verbindung
Hallo,
ich bin jetzt schon eine ganze Weile auf der Suche nach einer Möglichkeit eine Bluetooth Verbindung über ein IOS Gerät herzustellen. Das ganze soll mit Firemonkey gemacht werden, da ich mit XCode nicht wirklich gut klar komme. Die Verbindung soll zu einem Bluetooth RS232 Modul hergestellt werden. Hat sich schonmal jemand damit auseinander gesetzt und kann mir weiterhelfen ob es überhaupt eine Möglichkeit gibt? |
AW: Firemonkey IOS Bluetooth Verbindung
Offiziell wird Bluetooth ab XE7 unterstützt, vorher war dies nur per JNI möglich
![]() ![]() ![]() |
AW: Firemonkey IOS Bluetooth Verbindung
Keine Chance bei SPP/seriell....
Ausnahme: Apple MFi Programm ($$$$$$) |
AW: Firemonkey IOS Bluetooth Verbindung
Danke, genau die Antwort habe ich erwartet :)
|
AW: Firemonkey IOS Bluetooth Verbindung
Das ist halt von Apple "verboten" :-)
Können wir auch nicht ändern.... Sorry |
AW: Firemonkey IOS Bluetooth Verbindung
Ich werde schon eine Lösung finden :)
Es geht nämlich darum, dass ich einen Multicopter mit einem Multiwii Board Über mein iPad konfigurieren möchte. |
AW: Firemonkey IOS Bluetooth Verbindung
Zitat:
|
AW: Firemonkey IOS Bluetooth Verbindung
Siehe Googles:
Die verbieten seit Android 4.4.2 das direkte Schreiben auf die SD Karte.... ;-) |
AW: Firemonkey IOS Bluetooth Verbindung
Ab BT4 LowEnergy hat Apple alle Services freigegeben.
Vorher gingen nur BT-EDR Geräte mit Apple Chip, mit BT4-LE können beliebige serielle Gegenstellen mit XE5..XE7 programmiert werden, sofern diese auch BT4-LowEnergy oder BT4-SmartReady kompatibel sind. Die Apple Sperre gilt also nur (noch) für die alten BT Standards. |
AW: Firemonkey IOS Bluetooth Verbindung
Sorry, für das rauskramen eines so alten Threads. Aber meine Suche hat bisher nichts brauchbares geliefert.
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. Beim Scannen wird mir das Modul in der App aufgelistet. Aber wie geht man hier weiter voran? Wie kann ich Daten senden oder empfangen? Ich stehe hier auf dem Schlauch. |
AW: Firemonkey IOS Bluetooth Verbindung
..."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 |
AW: Firemonkey IOS Bluetooth Verbindung
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? |
AW: Firemonkey IOS Bluetooth Verbindung
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 ![]() 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 |
AW: Firemonkey IOS Bluetooth Verbindung
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? |
AW: Firemonkey IOS Bluetooth Verbindung
Man macht das über
![]() Du registrierst dich bei einen Notifier und der schickt dir dann einen ![]() 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 |
AW: Firemonkey IOS Bluetooth Verbindung
Zitat:
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. |
AW: Firemonkey IOS Bluetooth Verbindung
Vielen Dank für die Hilfe.
Ich habe es inzwischen geschafft Strings zu senden und zu empfangen. |
AW: Firemonkey IOS Bluetooth Verbindung
Zitat:
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 :stupid: 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz