» »

Parsanje Bluetooth vrednosti

Parsanje Bluetooth vrednosti

hurlimannxt ::

Pozdravljeni,

Trenutnom delam s Flutter frameworkom in uporabljam bluetooth. Imam napravo Nonin 3230 oximeter, ki izmeri "procent zraka v krvi" in srčni utrip.
Vrednosti za izmerjen zrak so od 96 do 99 % in srčni utrip na minuto.

Berem karakteristiko: 00002a5e-0000-1000-8000-00805f9b34fb

Vrednosti, ki jih dobim nazaj so: [31, 212, 243, 66, 0, 224, 7, 6, 19, 21, 24, 32, 0, 1, 0, 0, 0, 132, 230]

Tukaj je dokumentacija za karakteristiko iz katere želim razbrati kako se vrednosti preračunajo v dejanske vrednosti.
Dokumentacija

Iz dokumentacije sem razbral, da je prva vrednost v zgornjem arrayu Flag, ki pove kateri podatki so na voljo v arrayu.

Torej sem 31 pretvoril v binarno obliko: 11111 in kar pomeni, da so vsi podatki na voljo.

Potem pa sem hotel razbrati zrak oz. SpO2PR-Spot-Check - SpO2 field iz dokumenta. Ta je tipa SFLOAT. Če se prav razumel, bi moral vrednost 212 in 243 uporabit, za pretvorbo.

Ker je to standard IEEE-11073 bi moral vrednosti pridobit naslednje podatke za izračun prave vrednosti. -> mantissa * vrednost^exponent , nevem od kje se izračuna mantissa, vrednost in exponent.
Tukaj sem izgubljen kako razbrati in pridobiti vrednosti.
Zato bi prosil, če bi lahko tukaj kdo zadevo razložil.

Iz stackoverflow-a sem našel nekaj podobnega, a žal ni dovolj podoben primer mojemu.
Stackoverflow

Randomness ::

212 -> 0xd4
243 -> 0xf3

eksponent: 0xf -> -1
mantisa: 0x3d4 -> 980
vrednost: 980*10^-1 = 98.0

hurlimannxt ::

Hvala, zadeva deluje. Lp

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Ideje kako racunati z vec decimalkami kot omogoca naprava

Oddelek: Programiranje
193258 (2426) blay44
»

Anketa [pametni telefoni][študent]

Oddelek: Šola
142320 (1946) čuhalev
»

Krvni tlak, srčni utrip...

Oddelek: Loža
3711463 (9141) Spajky
»

Nov hladilnik (strani: 1 2 )

Oddelek: Hlajenje in modifikacije
566285 (4630) ttommy

Več podobnih tem