Fix CMS8500 SpO2 offset in 288-byte packet
This commit is contained in:
@@ -360,8 +360,8 @@ def _parse_288_byte_packet(data: bytes, vitals_dict: dict) -> bool:
|
||||
Parse 288-byte waveform packet (Subtype 21 for CMS8500).
|
||||
|
||||
Layout:
|
||||
[264-265] SpO2% (LE u16) — live oxygen saturation percentage
|
||||
[266-267] PR (LE u16) — pulse rate
|
||||
[268-269] SpO2% (LE u16) — live oxygen saturation percentage
|
||||
"""
|
||||
if len(data) < 270:
|
||||
return False
|
||||
@@ -374,8 +374,8 @@ def _parse_288_byte_packet(data: bytes, vitals_dict: dict) -> bool:
|
||||
|
||||
found = False
|
||||
|
||||
# Offset 268: SpO2 percentage
|
||||
spo2_val = read_u16_le(data, 268)
|
||||
# Offset 264: SpO2 percentage
|
||||
spo2_val = read_u16_le(data, 264)
|
||||
if spo2_val is not None and spo2_val != 65535 and spo2_val != 255 and 50 <= spo2_val <= 100:
|
||||
vitals_dict["spo2"] = float(spo2_val)
|
||||
found = True
|
||||
|
||||
Reference in New Issue
Block a user