Fix CMS8500 SpO2 offset in 288-byte packet

This commit is contained in:
2026-07-13 15:52:48 +05:30
parent 72c6e12015
commit f7483d615d
+3 -3
View File
@@ -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