Forum » Programiranje » 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
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
- spremenil: hurlimannxt ()
Randomness ::
212 -> 0xd4
243 -> 0xf3
eksponent: 0xf -> -1
mantisa: 0x3d4 -> 980
vrednost: 980*10^-1 = 98.0
243 -> 0xf3
eksponent: 0xf -> -1
mantisa: 0x3d4 -> 980
vrednost: 980*10^-1 = 98.0
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Ideje kako racunati z vec decimalkami kot omogoca napravaOddelek: Programiranje | 3194 (2362) | blay44 |
» | Anketa [pametni telefoni][študent]Oddelek: Šola | 2275 (1901) | čuhalev |
» | Krvni tlak, srčni utrip...Oddelek: Loža | 11398 (9076) | Spajky |
» | Nov hladilnik (strani: 1 2 )Oddelek: Hlajenje in modifikacije | 6253 (4598) | ttommy |