Как установить конкретные биты в байте для передачи данных BLE? - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю над приложением BLE на ОС Android. Я должен записывать данные на оборудование BLE через мое приложение. Я запутался в типе передаваемых данных. Ниже приведено изображение, которое показывает байтовые данные, которые я должен отправить. Для каждого байта он имеет свою структуру. Transmission data structure

В Byte_2 я могу отправить 0-100 значений, т.е. все в порядке.

В Byte_3 первые 4 бита имеют одно значение, тогда как 4-й и 5-й биты имеют разное значение.

А в Byte_4 данные находятся в 2 равных частях.

Я не уверен, как я могу создать этот тип байтов и использовать его.

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2018
  • бит 0 имеет 2 значения: 0x00 (00000000) и 0x01 (00000001)
  • бит 1 имеет 2 значения: 0x00 (00000000) и 0x02 (00000010)
  • бит 2имеет 2 значения: 0x00 (00000000) и 0x04 (00000100)
  • бит 3 имеет 2 значения: 0x00 (00000000) и 0x08 (00001000)
  • бит 4 имеет 2 значения: 0x00 (00000000)и 0x10 (00010000)
  • бит 5 имеет 2 значения: 0x00 (00000000) и 0x20 (00100000)
  • бит 6 имеет 2 значения: 0x00 (00000000) и 0x40 (01000000)
  • бит 7 имеет 2 значения: 0x00 (00000000) и 0x80 (10000000)

После понимания этой структуры вы можете использовать побитовую операцию ИЛИ для объединения нескольких частей в 1 байт.

Пример с Byte_3:

  • Тип A = 1 (00100000 -> 0x20)
  • Тип B = 0 (00000000 -> 0x00)
  • Уровень B =3 (00000011 -> 0x03)

=> Byte_3 = 0x20 |0x00 |0x03 = 0x23

...