From bb9cce787c5e30ce9747986849d78950894441b6 Mon Sep 17 00:00:00 2001 From: sawinglogz <3787776-sawinglogz@users.noreply.gitlab.com> Date: Mon, 23 Sep 2019 14:10:23 -0400 Subject: [PATCH] Parse backup breathing settings for DreamStation 900X machines. No change to imported data. --- oscar/SleepLib/loader_plugins/prs1_loader.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/oscar/SleepLib/loader_plugins/prs1_loader.cpp b/oscar/SleepLib/loader_plugins/prs1_loader.cpp index 1cb6b94e..3a6e120b 100644 --- a/oscar/SleepLib/loader_plugins/prs1_loader.cpp +++ b/oscar/SleepLib/loader_plugins/prs1_loader.cpp @@ -5483,9 +5483,22 @@ bool PRS1DataChunk::ParseSettingsF5V3(const unsigned char* data, int size) case 0x14: // ASV backup rate CHECK_VALUE(len, 3); CHECK_VALUE(cpapmode, PRS1_MODE_ASV); - CHECK_VALUES(data[pos], 1, 2); // 1 = auto, 2 = fixed BPM - //CHECK_VALUE(data[pos+1], 0); // 0 for auto, BPM for mode 2 - //CHECK_VALUE(data[pos+2], 0); // 0 for auto, timed inspiration for mode 2 (gain 0.1) + switch (data[pos]) { + //case 0: // Breath Rate Off in F3V6 setting 0x1e + case 1: // Breath Rate Auto + this->AddEvent(new PRS1ParsedSettingEvent(PRS1_SETTING_BACKUP_BREATH_MODE, PRS1Backup_Auto)); + CHECK_VALUE(data[pos+1], 0); // 0 for auto + CHECK_VALUE(data[pos+2], 0); // 0 for auto + break; + case 2: // Breath Rate (fixed BPM) + this->AddEvent(new PRS1ParsedSettingEvent(PRS1_SETTING_BACKUP_BREATH_MODE, PRS1Backup_Fixed)); + this->AddEvent(new PRS1ParsedSettingEvent(PRS1_SETTING_BACKUP_BREATH_RATE, data[pos+1])); // BPM + this->AddEvent(new PRS1ScaledSettingEvent(PRS1_SETTING_BACKUP_TIMED_INSPIRATION, data[pos+2], 0.1)); + break; + default: + CHECK_VALUES(data[pos], 1, 2); // 1 = auto, 2 = fixed BPM (0 = off in F3V6 setting 0x1e) + break; + } break; /* case 0x2a: // EZ-Start