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).
|
Parse 288-byte waveform packet (Subtype 21 for CMS8500).
|
||||||
|
|
||||||
Layout:
|
Layout:
|
||||||
|
[264-265] SpO2% (LE u16) — live oxygen saturation percentage
|
||||||
[266-267] PR (LE u16) — pulse rate
|
[266-267] PR (LE u16) — pulse rate
|
||||||
[268-269] SpO2% (LE u16) — live oxygen saturation percentage
|
|
||||||
"""
|
"""
|
||||||
if len(data) < 270:
|
if len(data) < 270:
|
||||||
return False
|
return False
|
||||||
@@ -374,8 +374,8 @@ def _parse_288_byte_packet(data: bytes, vitals_dict: dict) -> bool:
|
|||||||
|
|
||||||
found = False
|
found = False
|
||||||
|
|
||||||
# Offset 268: SpO2 percentage
|
# Offset 264: SpO2 percentage
|
||||||
spo2_val = read_u16_le(data, 268)
|
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:
|
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)
|
vitals_dict["spo2"] = float(spo2_val)
|
||||||
found = True
|
found = True
|
||||||
|
|||||||
Reference in New Issue
Block a user