2015-11-25 20 views
11

Zgodnie z BLE patent rozmiar danych w pakiecie BLE wynosi 47 bajtów. Jednak Android udostępnia tylko 20 bajtów danych.Format pakietu BLE w systemie Android

  • Dlaczego tak jest? Co jest transmitowane w pozostałych 27 bajtach?
  • Jaki jest dokładny format pakietu Android BLE?
  • Czy można używać więcej niż 20 bajtów w pakietach Android BLE? Jednak nie w wielu pakietach, tak jak w How to send more than 20 bytes data over ble in android?.
+0

Witam, o których pakietach mówisz. czy jest to rekord skanowania, czy dane transmitowane przez charakterystyczny odczyt/zapis? – Neo

Odpowiedz

2

Zasadniczo pakiet BLE (dostarczany jako rekord skanowania do API Android) jest tak dalece, jak wiem, tylko standardowy BLE, tak jak w przypadku każdej innej platformy.

czyli składa się z elementów, a każdy element składa się z 3 elementów w następującej kolejności:

  1. 1 bajt wartości długości typ danych
  2. 1 bajt określony w: GATT profile
  3. danych długością jest zdefiniowany przez 1-bajtową wartość długości:

Z moimi testami na BLE rzeczywiście widzę, że rekord skanowania, który dostaję, jest faktycznie dłuższy niż mogę reklamować. Zakładam więc, że możesz zobaczyć beacony & BLE urządzenia reklamujące z ponad 31 bajtami nawet z urządzeniami z Androidem.

Jednak interfejs API BluetoothLeAdvertiser pozwala na zapisanie rekordu skanowania reklamy z urządzenia z Androidem tylko w postaci 31 bajtów.

Nie miałbym żadnego dobrego uzasadnienia, dlaczego limit wynosi 31 bajtów, po prostu przetestowałem, że jest wymuszony w ten sposób.

4

standardowy format pakietu w ble protokołem transmisji danych:

poleceń bajt (jeden bajt) + Id identyfikacji urządzenia (2 bajty) + danych (12-16 bajtów) + Kontrolna (jeden bajt)

sekcja Polecenie: będą wartości szesnastkowe, które należy określić w zależności od rodzaju polecenia (np Nazwa urządzenia, Informacje Factory, temperatury i wilgotności dane itp.)

Device Identification ID: To będzie składać się z UUID urządzenia odbiorczego (może to być 16-bitowe, jeśli jest to UUID wygenerowany przez SIG Group lub 128-bitowy, jeśli testujesz)

danych Sekcja: Ta część będzie zawierać wszystkie dane, które chcesz wysłać (może to być między 12 a 16 bajtów, choć zaleca się, aby ustalić długość pakietu danych)

Kontrolna: Dla korekcja błędów. Możesz użyć innego mechanizmu, ale wtedy będziesz musiał odpowiednio dostosować swoją część danych)

Musisz zdefiniować niestandardowy profil i serwer, jeśli planujesz zaimplementować coś, co nie ma jeszcze istniejącego profilu Witryna SIG Bluetooth.

P.S. Przeczytaj więcej na temat specyfikacji urządzenia zewnętrznego, a także sprawdź podstawowe specyfikacje na stronie internetowej bluetooth.Wszystko, co robisz, musi być zgodne z ich standardami.

W porządku, mam nadzieję, że to pomogło .. Pozdrawiam!

+0

p.p.s Specyfikacja rdzenia Bluetooth nie jest przeznaczona dla osób o słabym sercu! Jest to olbrzymi dokument, ale idzie w całkowitą szczegółowość ... – Jobs