Я пытаюсь найти и рассчитать значения глюкозы с помощью прибора BLE для определения уровня глюкозы в крови. Значение концентрации глюкозы представляет собой 16-битный SFLOAT , что означает, что 4 бита - это показатель , а 12-битные - mantissa (порядок байтов с прямым порядком байтов).
(Устройство My Glucose имеет по крайней мере одно значение глюкозы (6,2 ммоль / л) и значение кетозы (0,4 ммоль / л)
Я запросил все записи [0x01, 0x01]
из RACP и получение 15 байтов из Измерение глюкозы :
[3, 0, 0, 228, 7, 3, 14, 23, 23, 0, 0, 0, 112, 176, 17]
[3, 1, 0, 228, 7, 3, 14, 23, 23, 0, 0, 0, 255, 255, 17]
[3, 2, 0, 228, 7, 3, 10, 13, 49, 0, 0, 0, 13, 176, 17]
[3, 3, 0, 228, 7, 3, 10, 13, 49, 0, 0, 0, 255, 255, 17]
Я использовал приложение nRFConnect, которое отображает значение измерения глюкозы в виде:
0x03 03 00 E4 07 03 0A OD 31 00 00 00 FF FF 11
Я предполагаю, что данные Flags равны 3, следовательно, 11000000 в двоичном обратном порядке, поэтому:
True : Смещение по времени
True : Концентрация глюкозы, тип и местоположение образца присутствуют
кг / л: Единицы концентрации глюкозы
Неверно : Присутствует оповещение о состоянии датчика
Неверно: Против Текстовая информация следует
(последние три бита зарезервированы для будущего использования)
см. Гатт: https://www.bluetooth.com/xml-viewer/?src=https: // www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.glucose_measurement.xml
Концентрация глюкозы может быть на уровне [12]
и [13]
, но я не уверен, как это подтвердить. Преобразование этих значений с floatValueFromData
приводит к следующему:
28848.0
65535.0
3504.0
65535.0
В двоичном виде это:
0111000010110000
1111111111111111
0000110110110000
1111111111111111
Итак, для вышеуказанных четырех двоичных строк:
Показатели: 0111, 1111, 0000, 1111
Мантиссы: 000010110000, 111111111111, 110110110000, 111111111111
Я застрял, пытаясь расшифровать это.
По крайней мере, один из них должен иметь мой показатель глюкозы, который составляет 6,2 ммоль / л (такой же, как 111,6 мг / дл или 0,001116 кг / л. )