BeaconParser экземпляр выпуска Android библиотека маяка - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь собрать температуру и влажность от маяков, которые отправляют эти необработанные данные:

020106 020AFC 0A16 ABFE 70BF01 00DB00DB

где:

0x02 – length (2 bytes)
0x01 – type (flags)
0x06 – value (BIN=00000110)

0x02 -length (2 bytes)
0x0A type («Tx Power Level»)
0xFC – value (DEC =-4)

0x0A – length (10 bytes)
0x16 - type («Service Data - 16-bit UUID»
0xABFE - UUID = FEAB
0x70 – frame type (temperature and humidity)
0xBF – TX@1m
0x01 – TX power

0x00DB – temperature (DEC=219 = 21.9 C)
0x00DB – humidity (DEC – 219= 21.9C)

Я пытаюсь создать экземпляр, но это похоже, что это не правильно, WAIDW?

m:9-10=feab, i:11-14, p:6-6, d:14-17

Спасибо за помощь

1 Ответ

0 голосов
/ 04 февраля 2020

Попробуйте это:

"s:0-1=feab,m:2-2=70,i:3-8,p:3-3,d:5-6,d:7-8"

Это выражение будет:

  • совпадать с 16-битным сервисом UUID 0xFEAB (который вы показываете)
  • убедитесь, что первый байт после UUID службы равен 0x70 (который вы показываете). Это обеспечит, что это кадр температуры и влажности.
  • поместит полные байты кадра в первое поле идентификатора, доступное для beacon.getId1() (это не очень полезно, но вы должны иметь хотя бы один идентификатор поле для вашего анализатора маяка)
  • поместите необработанное значение температуры в первое поле данных, доступное для beacon.beacon.getDataFields().get(0)
  • , поместите необработанное значение влажности во второе поле данных, доступное для beacon.beacon.getDataFields().get(1)
...