如何将脉搏血氧计输出解码为可读

How to decode pulse oximeter output into readable

我正在尝试使用 nrf Connect 应用程序解码来自脉搏血氧仪设备的数据。

来自脉搏血氧仪 (0X1822)。 PLX 抽查测量服务我得到以下回复:

现场测量:

(0x) 17-61-00-60-00-E1-07-01-01-01-22-13-20-00-20-00-00

连续测量: (0x) 0c-62-00-4E-00-20-00-00-00-00

PROFILE 显示其 SFLOAT 值,但我坚持将其转换为可读值。

预期值:来自上述响应的 Spo2 和心率

我也查看了蓝牙页面中的脉搏血氧仪配置文件,但看起来很混乱

简介

NRF 连接应用程序屏幕截图:

脉搏血氧仪详情:http://www.choicemmed.eu/product_center/253

请帮我获取可读数据

这个页面对我帮助很大:https://thejeshgn.com/2020/08/05/reverse-engineering-a-bluetooth-low-energy-oximeter/

来自这个抽查值:17-61-00-60-00-E1-07-01-01-01-22-13-20-00-20-00-00

字节[1]指血氧饱和度

字节[3]指脉率

int spo2 = packet[1]; 
int pulseRate = packet[3] | ((packet[2] & 64) << 1);

System.out.println(spo2);
System.out.println(pulseRate);

Spo2:97 脉冲 rate:98

此场景与连续校验值相同:(0x) 0c-62-00-4E-00-20-00 -00-00-00

在dart中将十六进制码值转换成int

int val=0X62;
print(val);