From 70f513e9638ca02d4907a387bfb60cb17d1ca58a Mon Sep 17 00:00:00 2001 From: Alejandro Rivero Perez Date: Sat, 6 May 2023 10:49:06 +0200 Subject: [PATCH] Support for loading Hoffrichter Point 3 machine sdcard data The data of this machine can be read by iMatrix software from Resvent iBreeze serie. Probably this code also support Resvent iBreeze serie. But was only tested with data from the machine in the title. Events loaded: CPAP_Obstructive, CPAP_Apnea, CPAP_Hypopnea, CPAP_FlowLimit, CPAP_RERA, CPAP_PB, CPAP_Snore Waveforms loaded: CPAP_MaskPressure, CPAP_FlowRate Other Events loaded: CPAP_Pressure, CPAP_IPAP, CPAP_EPAP, CPAP_Leak, CPAP_TidalVolume, CPAP_MinuteVent, CPAP_RespRate, CPAP_Ti, CPAP_IE --- oscar/Resources.qrc | 1 + .../loader_plugins/resvent_loader.cpp | 636 ++++++++++++++++++ .../SleepLib/loader_plugins/resvent_loader.h | 76 +++ oscar/icons/resvent.png | Bin 0 -> 120761 bytes oscar/main.cpp | 2 + oscar/oscar.pro | 2 + 6 files changed, 717 insertions(+) create mode 100644 oscar/SleepLib/loader_plugins/resvent_loader.cpp create mode 100644 oscar/SleepLib/loader_plugins/resvent_loader.h create mode 100644 oscar/icons/resvent.png diff --git a/oscar/Resources.qrc b/oscar/Resources.qrc index e2807622..07a1980a 100644 --- a/oscar/Resources.qrc +++ b/oscar/Resources.qrc @@ -68,5 +68,6 @@ icons/question_mark.png icons/checkmark.png icons/empty_box.png + icons/resvent.png diff --git a/oscar/SleepLib/loader_plugins/resvent_loader.cpp b/oscar/SleepLib/loader_plugins/resvent_loader.cpp new file mode 100644 index 00000000..364e814a --- /dev/null +++ b/oscar/SleepLib/loader_plugins/resvent_loader.cpp @@ -0,0 +1,636 @@ +/* SleepLib Resvent Loader Implementation + * + * Copyright (c) 2019-2023 The OSCAR Team + * Copyright (c) 2011-2018 Mark Watkins + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of the source code + * for more details. */ + +//******************************************************************************************** +// Please only INCREMENT the resvent_data_version in resvent_loader.h when making changes +// that change loader behaviour or modify channels in a manner that fixes old data imports. +// Note that changing the data version will require a reimport of existing data for which OSCAR +// does not keep a backup - so it should be avoided if possible. +// i.e. there is no need to change the version when adding support for new devices +//******************************************************************************************** + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "resvent_loader.h" + +#ifdef DEBUG_EFFICIENCY +#include // only available in 4.8 +#endif + +// Files WXX_XX contain flow rate and pressure and PXX_XX contain Pressure, IPAP, EPAP, Leak, Vt, MV, RR, Ti, IE, Spo2, PR +// Both files contain a little header of size 0x24 bytes. In offset 0x12 contain the total number of different records in +// the different files of the same type. And later contain the previous describe quantity of description header of size 0x20 +// containing the details for every type of record (e.g. sample chunk size). + +ResventLoader::ResventLoader() +{ + const QString RESVENT_ICON = ":/icons/resvent.png"; + + QString s = newInfo().series; + m_pixmap_paths[s] = RESVENT_ICON; + m_pixmaps[s] = QPixmap(RESVENT_ICON); + + m_type = MT_CPAP; +} +ResventLoader::~ResventLoader() +{ +} + +const QString kResventTherapyFolder = "THERAPY"; +const QString kResventConfigFolder = "CONFIG"; +const QString kResventRecordFolder = "RECORD"; +const QString kResventSysConfigFilename = "SYSCFG"; +constexpr qint64 kDateTimeOffset = 7 * 60 * 60 * 1000; +constexpr int kMainHeaderSize = 0x24; +constexpr int kDescriptionHeaderSize = 0x20; +constexpr int kChunkDurationInSecOffset = 0x10; +constexpr int kDescriptionCountOffset = 0x12; +constexpr int kDescriptionSamplesByChunk = 0x1e; + +bool ResventLoader::Detect(const QString & givenpath) +{ + QDir dir(givenpath); + + if (!dir.exists()) { + return false; + } + + if (!dir.exists(kResventTherapyFolder)) { + return false; + } + + dir.cd(kResventTherapyFolder); + if (!dir.exists(kResventConfigFolder)) { + return false; + } + + if (!dir.exists(kResventRecordFolder)) { + return false; + } + + return true; +} + + +MachineInfo ResventLoader::PeekInfo(const QString & path) +{ + if (!Detect(path)) { + return MachineInfo(); + } + + MachineInfo info = newInfo(); + + const auto sys_config_path = path + QDir::separator() + kResventTherapyFolder + QDir::separator() + kResventConfigFolder + QDir::separator() + kResventSysConfigFilename; + if (!QFile::exists(sys_config_path)) { + qDebug() << "Resvent Data card has no" << kResventSysConfigFilename << "file in " << sys_config_path; + return MachineInfo(); + } + QFile f(sys_config_path); + f.open(QIODevice::ReadOnly | QIODevice::Text); + f.seek(4); + while (!f.atEnd()) { + QString line = f.readLine().trimmed(); + + const auto elems = line.split("="); + assert(elems.size() == 2); + + if (elems[0] == "models") { + info.model = elems[1]; + } + else if (elems[0] == "sn") { + info.serial = elems[1]; + } + else if (elems[0] == "num") { + info.version = elems[1].toInt(); + } + else if (elems[0] == "num") { + info.type = MachineType::MT_CPAP; + } + } + + if (info.model.contains("Point", Qt::CaseInsensitive)) { + info.brand = "Hoffrichter"; + } else { + info.brand = "Resvent"; + } + + return info; +} + +std::vector GetSessionsDate(const QString& dirpath) { + std::vector sessions_date; + + const auto records_path = dirpath + QDir::separator() + kResventTherapyFolder + QDir::separator() + kResventRecordFolder; + QDir records_folder(records_path); + const auto year_month_folders = records_folder.entryList(QStringList(), QDir::Dirs|QDir::NoDotAndDotDot, QDir::Name); + std::for_each(year_month_folders.cbegin(), year_month_folders.cend(), [&](const QString& year_month_folder_name){ + if (year_month_folder_name.length() != 6) { + return; + } + + const int year = std::stoi(year_month_folder_name.left(4).toStdString()); + const int month = std::stoi(year_month_folder_name.right(2).toStdString()); + + const auto year_month_folder_path = records_path + QDir::separator() + year_month_folder_name; + QDir year_month_folder(year_month_folder_path); + const auto session_folders = year_month_folder.entryList(QStringList(), QDir::Dirs|QDir::NoDotAndDotDot, QDir::Name); + std::for_each(session_folders.cbegin(), session_folders.cend(), [&](const QString& day_folder){ + const auto day = std::stoi(day_folder.toStdString()); + + sessions_date.push_back(QDate(year, month, day)); + }); + }); + return sessions_date; +} + +enum class EventType { + UsageSec= 1, + UnixStart = 2, + ObstructiveApnea = 17, + CentralApnea = 18, + Hypopnea = 19, + FlowLimitation = 20, + RERA = 21, + PeriodicBreathing = 22, + Snore = 23 +}; + +struct EventData { + EventType type; + QDateTime date_time; + int duration; +}; + +struct UsageData { + QString number{}; + QDateTime start_time{}; + QDateTime end_time{}; + qint32 countAHI = 0; + qint32 countOAI = 0; + qint32 countCAI = 0; + qint32 countAI = 0; + qint32 countHI = 0; + qint32 countRERA = 0; + qint32 countSNI = 0; + qint32 countBreath = 0; +}; + +void UpdateEvents(EventType event_type, const std::unordered_map>& events, Session* session) { + static std::unordered_map mapping {{EventType::ObstructiveApnea, CPAP_Obstructive}, + {EventType::CentralApnea, CPAP_Apnea}, + {EventType::Hypopnea, CPAP_Hypopnea}, + {EventType::FlowLimitation, CPAP_FlowLimit}, + {EventType::RERA, CPAP_RERA}, + {EventType::PeriodicBreathing, CPAP_PB}, + {EventType::Snore, CPAP_Snore}}; + const auto it_events = events.find(event_type); + const auto it_mapping = mapping.find(event_type); + if (it_events == events.cend() || it_mapping == mapping.cend()) { + return; + } + + EventList* event_list = session->AddEventList(it_mapping->second, EVL_Event); + std::for_each(it_events->second.cbegin(), it_events->second.cend(), [&](const EventData& event_data){ + event_list->AddEvent(event_data.date_time.toMSecsSinceEpoch() + kDateTimeOffset, event_data.duration); + }); +} + +QString GetSessionFolder(const QString& dirpath, const QDate& session_date) { + const auto year_month_folder = QString::number(session_date.year()) + (session_date.month() > 10 ? "" : "0") + QString::number(session_date.month()); + const auto day_folder = (session_date.day() > 10 ? "" : "0") + QString::number(session_date.day()); + const auto session_folder_path = dirpath + QDir::separator() + kResventTherapyFolder + QDir::separator() + kResventRecordFolder + QDir::separator() + year_month_folder + QDir::separator() + day_folder; + return session_folder_path; +} + +void LoadEvents(const QString& session_folder_path, Session* session, const UsageData& usage) { + const auto event_file_path = session_folder_path + QDir::separator() + "EV" + usage.number; + + std::unordered_map> events; + QFile f(event_file_path); + f.open(QIODevice::ReadOnly | QIODevice::Text); + f.seek(4); + while (!f.atEnd()) { + QString line = f.readLine().trimmed(); + + const auto elems = line.split(",", Qt::SkipEmptyParts); + if (elems.size() != 4) { + continue; + } + + const auto event_type_elems = elems.at(0).split("="); + const auto date_time_elems = elems.at(1).split("="); + const auto duration_elems = elems.at(2).split("="); + + assert(event_type_elems.size() == 2); + assert(date_time_elems.size() == 2); + const auto event_type = static_cast(std::stoi(event_type_elems[1].toStdString())); + const auto date_time = QDateTime::fromTime_t(std::stoi(date_time_elems[1].toStdString())); + const auto duration = std::stoi(duration_elems[1].toStdString()); + + events[event_type].push_back(EventData{event_type, date_time, duration}); + } + + static std::vector mapping {EventType::ObstructiveApnea, + EventType::CentralApnea, + EventType::Hypopnea, + EventType::FlowLimitation, + EventType::RERA, + EventType::PeriodicBreathing, + EventType::Snore}; + + std::for_each(mapping.cbegin(), mapping.cend(), [&](EventType event_type){ + UpdateEvents(event_type, events, session); + }); +} + +template +T read_from_file(QFile& f) { + T data{}; + f.read(reinterpret_cast(&data), sizeof(T)); + return data; +} + +struct WaveFileData { + unsigned int wave_event_id; + QString file_base_name; + unsigned int sample_rate_offset; + unsigned int start_offset; +}; + +EventList* GetEventList(const QString& name, Session* session, float sample_rate = 0.0) { + if (name == "Press") { + return session->AddEventList(CPAP_Pressure, EVL_Event); + } + else if (name == "IPAP") { + return session->AddEventList(CPAP_IPAP, EVL_Event); + } + else if (name == "EPAP") { + return session->AddEventList(CPAP_EPAP, EVL_Event); + } + else if (name == "Leak") { + return session->AddEventList(CPAP_Leak, EVL_Event); + } + else if (name == "Vt") { + return session->AddEventList(CPAP_TidalVolume, EVL_Event); + } + else if (name == "MV") { + return session->AddEventList(CPAP_MinuteVent, EVL_Event); + } + else if (name == "RR") { + return session->AddEventList(CPAP_RespRate, EVL_Event); + } + else if (name == "Ti") { + return session->AddEventList(CPAP_Ti, EVL_Event); + } + else if (name == "I:E") { + return session->AddEventList(CPAP_IE, EVL_Event); + } + else if (name == "SpO2" || name == "PR") { + // Not present + return nullptr; + } + else if (name == "Pressure") { + return session->AddEventList(CPAP_MaskPressure, EVL_Waveform, 0.01, 0.0, 0.0, 0.0, 1000.0 / sample_rate); + } + else if (name == "Flow") { + return session->AddEventList(CPAP_FlowRate, EVL_Waveform, 0.01, 0.0, 0.0, 0.0, 1000.0 / sample_rate); + } + else { + // Not supported + assert(false); + return nullptr; + } +} + +struct ChunkData { + EventList* event_list; + uint16_t samples_by_chunk; + qint64 start_time; + int total_samples_by_chunk; + float sample_rate; +}; + +QString ReadDescriptionName(QFile& f) { + constexpr int kNameSize = 9; + std::array name; + const auto readed = f.read(name.data(), kNameSize - 1); + assert(readed == kNameSize - 1); + + return QString(name.data()); +} + +void ReadWaveFormsHeaders(QFile& f, std::vector& wave_forms, Session* session, const UsageData& usage) { + f.seek(kChunkDurationInSecOffset); + const auto chunk_duration_in_sec = read_from_file(f); + f.seek(kDescriptionCountOffset); + const auto description_count = read_from_file(f); + wave_forms.resize(description_count); + + for (unsigned int i = 0; i < description_count; i++) { + const auto description_header_offset = kMainHeaderSize + i * kDescriptionHeaderSize; + f.seek(description_header_offset); + const auto name = ReadDescriptionName(f); + f.seek(description_header_offset + kDescriptionSamplesByChunk); + const auto samples_by_chunk = read_from_file(f); + + wave_forms[i].sample_rate = 1.0 * samples_by_chunk / chunk_duration_in_sec; + wave_forms[i].event_list = GetEventList(name, session, wave_forms[i].sample_rate); + wave_forms[i].samples_by_chunk = samples_by_chunk; + wave_forms[i].start_time = usage.start_time.toMSecsSinceEpoch(); + } +} + +void LoadOtherWaveForms(const QString& session_folder_path, Session* session, const UsageData& usage) { + QDir session_folder(session_folder_path); + + const auto wave_files = session_folder.entryList(QStringList() << "P" + usage.number + "_*", QDir::Files, QDir::Name); + + std::vector wave_forms; + bool initialized = false; + std::for_each(wave_files.cbegin(), wave_files.cend(), [&](const QString& wave_file){ + // W01_ file + QFile f(session_folder_path + QDir::separator() + wave_file); + f.open(QIODevice::ReadOnly); + + if (!initialized) { + ReadWaveFormsHeaders(f, wave_forms, session, usage); + initialized = true; + } + f.seek(kMainHeaderSize + wave_forms.size() * kDescriptionHeaderSize); + + std::vector chunk(std::max_element(wave_forms.cbegin(), wave_forms.cend(), [](const ChunkData& lhs, const ChunkData& rhs){ + return lhs.samples_by_chunk < rhs.samples_by_chunk; + })->samples_by_chunk); + while (!f.atEnd()) { + for (unsigned int i = 0; i < wave_forms.size(); i++) { + const auto& wave_form = wave_forms[i].event_list; + const auto samples_by_chunk_actual = wave_forms[i].samples_by_chunk; + auto& start_time_current = wave_forms[i].start_time; + auto& total_samples_by_chunk = wave_forms[i].total_samples_by_chunk; + const auto sample_rate = wave_forms[i].sample_rate; + + const auto readed = f.read(reinterpret_cast(chunk.data()), chunk.size() * sizeof(qint16)); + if (wave_form) { + const auto readed_elements = readed / sizeof(qint16); + if (readed_elements != samples_by_chunk_actual) { + std::fill(std::begin(chunk) + readed_elements, std::end(chunk), 0); + } + + int offset = 0; + std::for_each(chunk.cbegin(), chunk.cend(), [&](const qint16& value){ + wave_form->AddEvent(start_time_current + offset + kDateTimeOffset, value); + offset += 1000.0 / sample_rate; + }); + } + + start_time_current += samples_by_chunk_actual * 1000.0 / sample_rate; + total_samples_by_chunk += samples_by_chunk_actual; + } + } + }); + + std::vector chunk; + for (unsigned int i = 0; i < wave_forms.size(); i++) { + const auto& wave_form = wave_forms[i]; + const auto expected_samples = usage.start_time.msecsTo(usage.end_time) / 1000.0 * wave_form.sample_rate; + if (wave_form.total_samples_by_chunk < expected_samples) { + chunk.resize(expected_samples - wave_form.total_samples_by_chunk); + if (wave_form.event_list) { + int offset = 0; + std::for_each(chunk.cbegin(), chunk.cend(), [&](const qint16& value){ + wave_form.event_list->AddEvent(wave_form.start_time + offset + kDateTimeOffset, value); + offset += 1000.0 / wave_form.sample_rate; + }); + } + } + } +} + +void LoadWaveForms(const QString& session_folder_path, Session* session, const UsageData& usage) { + QDir session_folder(session_folder_path); + + const auto wave_files = session_folder.entryList(QStringList() << "W" + usage.number + "_*", QDir::Files, QDir::Name); + + std::vector wave_forms; + bool initialized = false; + + std::for_each(wave_files.cbegin(), wave_files.cend(), [&](const QString& wave_file){ + // W01_ file + QFile f(session_folder_path + QDir::separator() + wave_file); + f.open(QIODevice::ReadOnly); + + if (!initialized) { + ReadWaveFormsHeaders(f, wave_forms, session, usage); + initialized = true; + } + f.seek(kMainHeaderSize + wave_forms.size() * kDescriptionHeaderSize); + + std::vector chunk(std::max_element(wave_forms.cbegin(), wave_forms.cend(), [](const ChunkData& lhs, const ChunkData& rhs){ + return lhs.samples_by_chunk < rhs.samples_by_chunk; + })->samples_by_chunk); + while (!f.atEnd()) { + for (unsigned int i = 0; i < wave_forms.size(); i++) { + const auto& wave_form = wave_forms[i].event_list; + const auto samples_by_chunk_actual = wave_forms[i].samples_by_chunk; + auto& start_time_current = wave_forms[i].start_time; + auto& total_samples_by_chunk = wave_forms[i].total_samples_by_chunk; + const auto sample_rate = wave_forms[i].sample_rate; + + const auto duration = samples_by_chunk_actual * 1000.0 / sample_rate; + const auto readed = f.read(reinterpret_cast(chunk.data()), chunk.size() * sizeof(qint16)); + if (wave_form) { + const auto readed_elements = readed / sizeof(qint16); + if (readed_elements != samples_by_chunk_actual) { + std::fill(std::begin(chunk) + readed_elements, std::end(chunk), 0); + } + wave_form->AddWaveform(start_time_current + kDateTimeOffset, chunk.data(), samples_by_chunk_actual, duration); + } + + start_time_current += duration; + total_samples_by_chunk += samples_by_chunk_actual; + } + } + }); + + std::vector chunk; + for (unsigned int i = 0; i < wave_forms.size(); i++) { + const auto& wave_form = wave_forms[i]; + const auto expected_samples = usage.start_time.msecsTo(usage.end_time) / 1000.0 * wave_form.sample_rate; + if (wave_form.total_samples_by_chunk < expected_samples) { + chunk.resize(expected_samples - wave_form.total_samples_by_chunk); + if (wave_form.event_list) { + const auto duration = chunk.size() * 1000.0 / wave_form.sample_rate; + wave_form.event_list->AddWaveform(wave_form.start_time + kDateTimeOffset, chunk.data(), chunk.size(), duration); + } + } + } +} + +void LoadStats(const UsageData& /*usage_data*/, Session* session) { + // session->settings[CPAP_AHI] = usage_data.countAHI; + // session->setCount(CPAP_AI, usage_data.countAI); + // session->setCount(CPAP_CAI, usage_data.countCAI); + // session->setCount(CPAP_HI, usage_data.countHI); + // session->setCount(CPAP_Obstructive, usage_data.countOAI); + // session->settings[CPAP_RERA] = usage_data.countRERA; + // session->settings[CPAP_Snore] = usage_data.countSNI; + session->settings[CPAP_Mode] = MODE_APAP; +} + +UsageData ReadUsage(const QString& session_folder_path, const QString& usage_number) { + UsageData usage_data; + usage_data.number = usage_number; + + const auto session_stat_path = session_folder_path + QDir::separator() + "STAT" + usage_number; + if (!QFile::exists(session_stat_path)) { + qDebug() << "Resvent Data card has no " << session_stat_path; + return usage_data; + } + QFile f(session_stat_path); + f.open(QIODevice::ReadOnly | QIODevice::Text); + f.seek(4); + while (!f.atEnd()) { + QString line = f.readLine().trimmed(); + + const auto elems = line.split("="); + assert(elems.size() == 2); + + if (elems[0] == "secStart") { + usage_data.start_time = QDateTime::fromTime_t(std::stoi(elems[1].toStdString())); + } + else if (elems[0] == "secUsed") { + usage_data.end_time = QDateTime::fromTime_t(usage_data.start_time.toTime_t() + std::stoi(elems[1].toStdString())); + } + else if (elems[0] == "cntAHI") { + usage_data.countAHI = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntOAI") { + usage_data.countOAI = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntCAI") { + usage_data.countCAI = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntAI") { + usage_data.countAI = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntHI") { + usage_data.countHI = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntRERA") { + usage_data.countRERA = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntSNI") { + usage_data.countSNI = std::stoi(elems[1].toStdString()); + } + else if (elems[0] == "cntBreath") { + usage_data.countBreath = std::stoi(elems[1].toStdString()); + } + } + + return usage_data; +} + +std::vector GetDifferentUsage(const QString& session_folder_path) { + QDir session_folder(session_folder_path); + + const auto stat_files = session_folder.entryList(QStringList() << "STAT*", QDir::Files, QDir::Name); + std::vector usage_data; + std::for_each(stat_files.cbegin(), stat_files.cend(), [&](const QString& stat_file){ + if (stat_file.size() != 6) { + return; + } + + auto usageData = ReadUsage(session_folder_path, stat_file.right(2)); + + usage_data.push_back(usageData); + }); + return usage_data; +} + +int LoadSession(const QString& dirpath, const QDate& session_date, Machine* machine) { + const auto session_folder_path = GetSessionFolder(dirpath, session_date); + + const auto different_usage = GetDifferentUsage(session_folder_path); + + return std::accumulate(different_usage.cbegin(), different_usage.cend(), 0, [&](int base, const UsageData& usage){ + if (machine->SessionExists(usage.start_time.toMSecsSinceEpoch() + kDateTimeOffset)) { + return base; + } + Session* session = new Session(machine, usage.start_time.toMSecsSinceEpoch() + kDateTimeOffset); + session->SetChanged(true); + session->really_set_first(usage.start_time.toMSecsSinceEpoch() + kDateTimeOffset); + session->really_set_last(usage.end_time.toMSecsSinceEpoch() + kDateTimeOffset); + + LoadStats(usage, session); + LoadWaveForms(session_folder_path, session, usage); + LoadOtherWaveForms(session_folder_path, session, usage); + LoadEvents(session_folder_path, session, usage); + + session->UpdateSummaries(); + session->Store(machine->getDataPath()); + machine->AddSession(session); + return base + 1; + }); +} + + +/////////////////////////////////////////////////////////////////////////////////////////// +// Sorted EDF files that need processing into date records according to ResMed noon split +/////////////////////////////////////////////////////////////////////////////////////////// +int ResventLoader::Open(const QString & dirpath) +{ + const auto machine_info = PeekInfo(dirpath); + + // Abort if no serial number + if (machine_info.serial.isEmpty()) { + qDebug() << "Resvent Data card has no valid serial number in " << kResventSysConfigFilename; + return -1; + } + + const auto sessions_date = GetSessionsDate(dirpath); + + Machine *machine = p_profile->CreateMachine(machine_info); + + int new_sessions = 0; + std::for_each(sessions_date.cbegin(), sessions_date.cend(), [&](const QDate& session_date){ + new_sessions += LoadSession(dirpath, session_date, machine); + }); + + machine->Save(); + + return new_sessions; +} + +void ResventLoader::initChannels() +{ +} + +ChannelID ResventLoader::PresReliefMode() { return 0; } +ChannelID ResventLoader::PresReliefLevel() { return 0; } +ChannelID ResventLoader::CPAPModeChannel() { return 0; } + +bool resvent_initialized = false; +void ResventLoader::Register() +{ + if (resvent_initialized) { return; } + + qDebug() << "Registering ResventLoader"; + RegisterLoader(new ResventLoader()); + + resvent_initialized = true; +} diff --git a/oscar/SleepLib/loader_plugins/resvent_loader.h b/oscar/SleepLib/loader_plugins/resvent_loader.h new file mode 100644 index 00000000..0ccfc73f --- /dev/null +++ b/oscar/SleepLib/loader_plugins/resvent_loader.h @@ -0,0 +1,76 @@ +/* SleepLib Resvent Loader Implementation + * + * Copyright (c) 2019-2023 The OSCAR Team + * Copyright (C) 2011-2018 Mark Watkins + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of the source code + * for more details. */ + +#ifndef RESVENT_LOADER_H +#define RESVENT_LOADER_H + +#include +#include "SleepLib/machine.h" // Base class: MachineLoader +#include "SleepLib/machine_loader.h" +#include "SleepLib/profiles.h" + +//******************************************************************************************** +/// IMPORTANT!!! +//******************************************************************************************** +// Please INCREMENT the following value when making changes to this loaders implementation. +// +const int resvent_data_version = 1; +// +//******************************************************************************************** + +const QString resvent_class_name = "Resvent/Hoffrichter"; + +/*! \class ResventLoader + \brief Importer for Resvent iBreezer and Hoffrichter Point 3 + */ +class ResventLoader : public CPAPLoader +{ + Q_OBJECT +public: + ResventLoader(); + virtual ~ResventLoader(); + + //! \brief Detect if the given path contains a valid Folder structure + virtual bool Detect(const QString & path); + + //! \brief Look up machine model information of ResMed file structure stored at path + virtual MachineInfo PeekInfo(const QString & path); + + //! \brief Scans for ResMed SD folder structure signature, and loads any new data if found + virtual int Open(const QString &); + + //! \brief Returns the version number of this Resvent loader + virtual int Version() { return resvent_data_version; } + + //! \brief Returns the Machine class name of this loader. ("Resvent") + virtual const QString &loaderName() { return resvent_class_name; } + + //! \brief Register the ResmedLoader with the list of other machine loaders + static void Register(); + + virtual MachineInfo newInfo() { + return MachineInfo(MT_CPAP, 0, resvent_class_name, QObject::tr("Resvent/Hoffrichter"), QString(), QString(), QString(), QObject::tr("iBreeze/Point3"), QDateTime::currentDateTime(), resvent_data_version); + } + + virtual void initChannels(); + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Now for some CPAPLoader overrides + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + virtual QString PresReliefLabel() { return QObject::tr("EPR: "); } + + virtual ChannelID PresReliefMode(); + virtual ChannelID PresReliefLevel(); + virtual ChannelID CPAPModeChannel(); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// +}; + +#endif // RESVENT_LOADER_H diff --git a/oscar/icons/resvent.png b/oscar/icons/resvent.png new file mode 100644 index 0000000000000000000000000000000000000000..7e859d560086699435f94b3ce5042770a39dd5bd GIT binary patch literal 120761 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 LG$GaU7D4|5HHGve literal 0 HcmV?d00001 diff --git a/oscar/main.cpp b/oscar/main.cpp index ba2bc454..805b0858 100644 --- a/oscar/main.cpp +++ b/oscar/main.cpp @@ -47,6 +47,7 @@ #include "SleepLib/loader_plugins/weinmann_loader.h" #include "SleepLib/loader_plugins/viatom_loader.h" #include "SleepLib/loader_plugins/prisma_loader.h" +#include "SleepLib/loader_plugins/resvent_loader.h" MainWindow *mainwin = nullptr; @@ -693,6 +694,7 @@ int main(int argc, char *argv[]) { MD300W1Loader::Register(); ViatomLoader::Register(); PrismaLoader::Register(); + ResventLoader::Register(); // Begin logging device connection activity. QString connectionsLogDir = GetLogDir() + "/connections"; diff --git a/oscar/oscar.pro b/oscar/oscar.pro index 7ddf0687..a8aa8eae 100644 --- a/oscar/oscar.pro +++ b/oscar/oscar.pro @@ -320,6 +320,7 @@ SOURCES += \ SleepLib/loader_plugins/somnopose_loader.cpp \ SleepLib/loader_plugins/viatom_loader.cpp \ SleepLib/loader_plugins/zeo_loader.cpp \ + SleepLib/loader_plugins/resvent_loader.cpp \ zip.cpp \ SleepLib/thirdparty/miniz.c \ csv.cpp \ @@ -426,6 +427,7 @@ HEADERS += \ SleepLib/loader_plugins/somnopose_loader.h \ SleepLib/loader_plugins/viatom_loader.h \ SleepLib/loader_plugins/zeo_loader.h \ + SleepLib/loader_plugins/resvent_loader.h \ SleepLib/thirdparty/botan_all.h \ SleepLib/thirdparty/botan_windows.h \ SleepLib/thirdparty/botan_linux.h \