Bluetooth SPP unter Android (Bluetoothchat Google Example aus SDK) - Datenpakete fragmentiert

  • Antworten:4
Ingo K.
  • Forum-Beiträge: 3

28.10.2012, 18:44:17 via Website

Moin Leute,
ich habe mir mal das BluetoothChat Example aus dem Android SDK angeschaut und die UUID so geändert,
dass die Kommunikation mit meinem Gerät (Atmega/BTM222/SPP) theoretisch funktioniert.
Allerdings werden die Pakete (55 Bytes) beim Empfang auf dem Phone fragmentiert.
Mal kommt es in 1Byte,4Byte,50Byte Paketen, dann wieder komplett als 1x 55Bytes.
Versuche ich mein App von einem anderen Phone mit der "GetBlue Demo"-App anzusprechen und ihr 133bytes
zu senden, so sehe ich das gleiche Phänomen.
Dies ändert sich allerdings,sobald ich mein App als Client in GetBlue anspreche, dann werden die Pakete immer
komplett empfangen.

Hat da jemand erfahrung und weiss wie ich dieses Verhalten in meinem App umgehen kann ?
Danke im vorraus.

Antworten
G R
  • Forum-Beiträge: 3

29.12.2013, 22:24:40 via Website

Hallo,
hast Du das Problem inzwischen gelöst? Warum ich frage: Ich bin an demselben Punkt und sehe, dass im Buffer von ConnectedThread (BlueChatService.java)-> run alles ankommt. In mHandler.obtainMessage wird dann ja auch alles verschickt, es kommt aber bei schnell aufeinanderfolgenen Fragmenten nur das zweite in der MainActivity an.
Dadurch habe ich Datenverlust.

Antworten
G R
  • Forum-Beiträge: 3

29.12.2013, 22:42:20 via Website

Hab es inzwischen gefunden. Siehe
stackoverflow.com/questions/3063295/bluetoothchat-doesnt-work

Antworten
Ingo K.
  • Forum-Beiträge: 3

30.12.2013, 13:04:28 via Website

Intressant,ich habs mit einem RingBuffer gelöst und später dann ein anderes
BluetoothModul (STMicroelectronics SPBT2632C1A.AT2 anstatt BTM222) benutzt.
Nun habe ich auch keine Fragmente mehr.
Aber den Code werde ich mir auch mal anschauen.
Danke !

Antworten
G R
  • Forum-Beiträge: 3

30.12.2013, 14:52:30 via Website

Bei dieser Lösung kommen nach wie vor Fragmente, ist ja auch ein Stream. Ich setze sie säter wieder zusammen und habe keinen Datenverlust mehr.

Antworten