2015-11-25 10 views
11

In base allo BLE patent, la dimensione dei dati in un pacchetto BLE è 47 byte. Tuttavia, Android espone solo 20 byte di dati.Formato pacchetto BLE in Android

  • Perché è quello? Cosa viene trasmesso nei restanti 27 byte?
  • Qual è il formato esatto del pacchetto Android BLE?
  • È possibile utilizzare più di 20 byte nei pacchetti Android BLE? Tuttavia, non in più pacchetti, come in How to send more than 20 bytes data over ble in android?.
+0

ciao di quali pacchetti stai parlando. si tratta della registrazione di scansione o dei dati trasmessi tramite lettura/scrittura caratteristica? – Neo

risposta

2

Fondamentalmente il pacchetto BLE (fornito come record di scansione su API Android) è per quanto ne so solo standard BLE, proprio come con qualsiasi altra piattaforma.

cioè costituita da elementi, e ogni elemento consiste di 3 elementi in seguente ordine:

  1. 1 byte valore lunghezza dati tipo
  2. 1 byte definiti: GATT profile
  3. dati, la lunghezza è definito dal valore di lunghezza 1 byte

Con i miei test su BLE vedo effettivamente che il record di scansione che ottengo è effettivamente più lungo di quanto possa fare pubblicità. Quindi suppongo che tu possa vedere i beacon & dispositivi BLE che pubblicizzano con più di 31 byte anche con dispositivi Android.

Ma l'API BluetoothLeAdvertiser consente di avere solo 31 byte nel record di scansione pubblicitaria che stai pubblicizzando dal dispositivo Android.

Non avrei ragionamenti sufficienti sul perché il limite è di 31 byte, ho appena verificato che sia applicato in quel modo.

4

Il formato standard per il pacchetto BLE nel protocollo di trasmissione dati è:

byte di comando (1 byte) + ID di identificazione del dispositivo (2 byte) + dati (12-16 bytes) + CheckSum (1 byte)

sezione di comando: questi saranno i valori esadecimali che si devono specificare in base al tipo di comando (ad esempio, nome del dispositivo, Informazione fabbrica, temperatura e dati di umidità, ecc.)

Device Identification ID: Questo sarà costituito da l'UUID del dispositivo ricevente (può essere 16 bit se è un UUID generato dal gruppo SIG o 128 bit se si sta testando)

Sezione

dati: Questa parte conterrà tutti i dati che si desidera inviare (può essere compreso tra 12 e 16 byte, anche se si consiglia di fissare la lunghezza del pacchetto di dati)

CheckSum: Per Correzione dell'errore. È possibile utilizzare un meccanismo diverso, ma sarà necessario regolare di conseguenza la parte dati)

È necessario definire un profilo e un server gatt personalizzati se si intende implementare qualcosa che non ha già un profilo esistente sul Sito SIG Bluetooth.

P.S. Leggi di più sulle specifiche del dispositivo del tuo dispositivo esterno e controlla anche le specifiche principali sul sito web bluetooth.Tutto ciò che fai deve essere conforme ai loro standard

OK, spero che questo abbia aiutato .. Cheers!

+0

p.p.s La specifica Bluetooth Core non è per i deboli di cuore! È un documento enorme, ma entra nei dettagli ... – Jobs

Problemi correlati