Bluetooth-Implementierung - Datendurchsatz

  • Antworten:3
Joerch M.
  • Forum-Beiträge: 2

21.11.2014, 12:31:00 via Website

Hallo Leute,

Im Rahmen eines Projektes habe ich vor den Datendurchsatz unter Android via Bluetooth zu testen.

Da ich vorher noch nicht mit Bluetooth gearbeitet habe, habe ich mich an dem BluetoothChat-Beispiel gehalten und diesen implementiert (Ich darf leider noch keine Links posten).

Meine App sieht momentan so aus:
- StartActivity: Hier wird der aktuelle Status der BT-Verbindung angezeigt (Connected, Not Connected etc.)
Ebenso gibt es hier ein EditText sowie einen Button um Nachrichten via Bluetooth zu versenden
Zusätzlich gibt es einen Button, welcher zu einer weiteren Activity führt (DiscoverActivity).
- DiscoverActivity: Diese Activity beinhaltet einen ListView welcher die 'gefundenen' Bluetooth-Geräte anzeigt.
'Klickt' man einen dieser Einträge an wird eine Verbindung zu diesem Gerät hergestellt und StartActivity wird wieder angezeigt.
Diese App habe ich auf zwei Android-Geräten installiert und der BluetoothChat (eingehende Nachrichten werden per Toast angezeigt) funktioniert soweit.

Da wie bereits erwähnt für mich der Datendurchsatz in der Bluetooth-Kommunikation relevant ist, habe ich mir folgendes gedacht:

  • Gerät A sendet 10 sekunden lang permanent Daten (17 byte)
  • Gerät B empfängt diese Nachrichten á 17 byte und zählt die gesamt empfangen Bytes zusammen.

Bei meinen Testgeräten handelt es sich um ein Samsung Galaxy S3 sowie ein Samsung Galaxy S5 - in diesem Testversuch empfange ich in 10 sekunden ~484432 bytes. Dies würde 48443,2 bytes/s entsprechen und dies wiederrum 47,3078125
kbyte/s (Rechenfehler können gerne angemerkt werden :D).

Laut Herstellerangaben unterstützen beide Geräte Bluetooth 4.0 - welches laut Wikipedia bis zu 1Mbit/s erreichen kann.

Wie man hier allerdings sieht komme ich nicht annährernd an diese Datenrate.

Hat jemand evtl. einen Tipp oder eine Idee wie ich einen höhreren Datendurchsatz via Bluetooth erzielen kann?

Vielen Dank im voraus!

Antworten
Fabian
  • Forum-Beiträge: 144

21.11.2014, 18:29:39 via App

Hey Joerch,

was genau meinst du damit, dass Gerät A Nachrichten mit 17 Bytes schickt? Wieso schickst du nicht größere Mengen an Daten?

Grüße Fabian!

Antworten
Joerch M.
  • Forum-Beiträge: 2

24.11.2014, 09:40:00 via Website

Hallo Fabian,

Im Rahmen dieses Projektes sollen unterschiedliche Mengen an Nachrichten, welche unterschiedliche Lang sind, versendet und empfangen werden.

Die kleinste Nachricht beträgt hierbei sogar nur 47 Bit, die größte hingegen 131 Bit.

Ich habe das ganze bereits ausgetestet - dabei komme ich zu dem Schluss der Datendurchsatz bei erhöhter Nachrichtengröße gar kein Problem darstellt - die kleinen Nachrichten bereiten mir allerdings große Probleme!

Ich habe mir bereits überlegt, ob es nicht möglich ist, die kleinen Nachrichten auf der Sender-Seite zu Puffern und diese erst bei einer größeren Anzahl von Nachrichten zu versenden. Allerdings weiß ich (noch) nicht, ob dieses in dem eigentlichen Projekt gewünscht bzw. machbar ist.

Zurück zur Ursprünglichen Frage :
Kann man den Datendurchsatz via Bluetooth unter Android auf irgendeine andere Art beeinflussen?

Vielen Dank im voraus!

Antworten
Sven R.
  • Forum-Beiträge: 1.904

24.11.2014, 13:14:40 via App

Joerch M.

Zurück zur Ursprünglichen Frage :
Kann man den Datendurchsatz via Bluetooth unter Android auf irgendeine andere Art beeinflussen?

Es wäre unlogisch, wenn Android nicht von Haus aus die volle Bandbreite zur Verfügung stellt. Darum denke ich, dass schon mit dem Maximum gesendet wird. Jedenfalls innerhalb einer Nachricht. Deinen Berichten zufolge, scheint vor oder nach einer Nachricht einen Cooldown oder einfach eine Zeit gewartet werden.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten