mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-05 18:50:44 +00:00
Merge branch 'master' into translations
This commit is contained in:
commit
f2e53d059a
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
BIN
Building/MacOS/README.rtfd/Oscar-mac-7b-catalina-permissions.jpg
Normal file
BIN
Building/MacOS/README.rtfd/Oscar-mac-7b-catalina-permissions.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
Building/MacOS/README.rtfd/Oscar-mac-9-catalina-open-1.jpg
Normal file
BIN
Building/MacOS/README.rtfd/Oscar-mac-9-catalina-open-1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
@ -50,7 +50,13 @@ Hold down the "control" key on your keyboard and click on the new OSCAR icon in
|
||||
}¬}\cf2 \uc0\u8232 \
|
||||
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext B. }\expnd0\expndtw0\kerning0
|
||||
A window will appear advising you that "OSCAR is from an unidentified developer" and asking if you want to run it. Click "Open" to grant it permission: \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-7-open-confirm-with-cursor.jpg \width10640 \height6220 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 You will only need to do this the first time you run OSCAR after installing any new version.\cb1 \
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 On macOS Catalina, you may first get a window without an "Open" button, so you may need to attempt this twice. You will only need to do this the first time you run OSCAR after installing any new version.\uc0\u8232 \
|
||||
\pard\tx220\tx720\tx1440\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls2\ilvl0\cf2 \cb1 \kerning1\expnd0\expndtw0 {\listtext 3. }
|
||||
\b \cb3 \expnd0\expndtw0\kerning0
|
||||
On macOS Catalina
|
||||
\b0 , the first time you import CPAP data from an SD card you will see the following prompt:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-7b-catalina-permissions.jpg \width10640 \height5360 \noorient
|
||||
}¬}\uc0\u8232 \cf2 \cb3 Click "OK" to grant OSCAR permission to read your SD cards.\cb1 \
|
||||
\pard\pardeftab720\partightenfactor0
|
||||
|
||||
\b\fs33\fsmilli16800 \cf2 \cb3 \
|
||||
@ -59,11 +65,33 @@ Troubleshooting\
|
||||
\cf0 \cb1 \
|
||||
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
|
||||
\ls3\ilvl0
|
||||
\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }\expnd0\expndtw0\kerning0
|
||||
Help, I'm getting the following error! \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-8-open-error.jpg \width10640 \height6220 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cf6 \cb3 This can happen after installing a new version of OSCAR. Open the Applications folder as shown in step 1 above and then see step 2 above to grant OSCAR permission to run.\
|
||||
\pard\tx720\pardeftab720\partightenfactor0
|
||||
\cf2 \
|
||||
\
|
||||
\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm getting the following error!
|
||||
\b0 \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-8-open-error.jpg \width10640 \height6220 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cf6 \cb3 This can happen after installing a new version of OSCAR. Open the Applications folder as shown in step 1 above and then see step 2 above to grant OSCAR permission to run.\uc0\u8232 \
|
||||
\ls3\ilvl0\cf2 \kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm running macOS Catalina and I'm getting the following warning about malware when I try to open OSCAR!
|
||||
\b0 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-9-catalina-open-1.jpg \width10640 \height6180 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 This is simply an extra step in Catalina. Click "Cancel" and then try step 2 again to grant OSCAR permission to run.\uc0\u8232 \cb1 \
|
||||
\ls3\ilvl0\cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b \expnd0\expndtw0\kerning0
|
||||
Help, I'm running macOS Catalina and OSCAR won't import anything from my SD card!
|
||||
\b0 \cb1 \uc0\u8232 \u8232 \cb3 You may have accidentally clicked "Don't Allow" at the prompt shown in step 3 above. To fix this, open
|
||||
\b System Preferences
|
||||
\b0 , select
|
||||
\b Security & Privacy
|
||||
\b0 , and select the
|
||||
\b Privacy
|
||||
\b0 tab. Scroll down and select
|
||||
\b Files & Folders
|
||||
\b0 from the list on the left and then check the
|
||||
\b Removable Volumes
|
||||
\b0 box under OSCAR as shown: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-10-catalina-fix-permissions.jpg \width15600 \height13700 \noorient
|
||||
}¬}\cf2 \uc0\u8232 \u8232 \cb3 You may first need to click on the lock in the bottom-left corner and enter your password in order to make this change.\uc0\u8232 \
|
||||
\ls3\ilvl0\kerning1\expnd0\expndtw0 {\listtext \'95 }
|
||||
\b I still have questions!
|
||||
\b0 \uc0\u8232 \u8232 \expnd0\expndtw0\kerning0
|
||||
The most up-to-date version of these instructions can be found at {\field{\*\fldinst{HYPERLINK "http://www.apneaboard.com/wiki/index.php/OSCAR_Installation:_Apple_Mac"}}{\fldrslt http://www.apneaboard.com/wiki/index.php/OSCAR_Installation:_Apple_Mac}}.\
|
||||
}
|
||||
}
|
||||
|
@ -669,7 +669,7 @@ void gUsageChart::populate(Day *day, int idx)
|
||||
{
|
||||
QVector<SummaryChartSlice> & slices = cache[idx];
|
||||
|
||||
float hours = day->hours();
|
||||
float hours = day->hours(m_machtype);
|
||||
|
||||
QColor cpapcolor = day->summaryOnly() ? QColor(128,128,128) : calcitems[0].color;
|
||||
bool haveoxi = day->hasMachine(MT_OXIMETER);
|
||||
@ -1264,7 +1264,7 @@ void gAHIChart::populate(Day *day, int idx)
|
||||
{
|
||||
QVector<SummaryChartSlice> & slices = cache[idx];
|
||||
|
||||
float hours = day->hours();
|
||||
float hours = day->hours(m_machtype);
|
||||
|
||||
for (auto & calc : calcitems) {
|
||||
ChannelID code = calc.code;
|
||||
|
@ -809,19 +809,23 @@ ChannelID Day::getPressureChannelID() {
|
||||
// See the comment in getCPAPModeStr().
|
||||
// Determined the preferred pressure channel (CPAP_IPAP or CPAP_Pressure)
|
||||
CPAPMode cpapmode = (CPAPMode)(int)settings_max(CPAP_Mode);
|
||||
ChannelID preferredID = CPAP_Pressure;
|
||||
if (cpapmode == MODE_ASV || cpapmode == MODE_ASV_VARIABLE_EPAP || cpapmode == MODE_AVAPS)
|
||||
preferredID = CPAP_IPAP;
|
||||
|
||||
// If preferred channel has data, return it
|
||||
if (channelHasData(preferredID))
|
||||
return preferredID;
|
||||
// TODO: This is also an awful hack. Why would CPAP/APAP have IPAP channels but not Pressure channels?
|
||||
// And why would ASV or AVAPS have Pressure channels?
|
||||
QList<ChannelID> preferredIDs = { CPAP_Pressure, CPAP_PressureSet, CPAP_IPAP, CPAP_IPAPSet };
|
||||
if (cpapmode == MODE_ASV || cpapmode == MODE_ASV_VARIABLE_EPAP || cpapmode == MODE_AVAPS) {
|
||||
preferredIDs = { CPAP_IPAP, CPAP_IPAPSet, CPAP_Pressure, CPAP_PressureSet };
|
||||
}
|
||||
|
||||
// Otherwise return the other pressure channel
|
||||
if (preferredID == CPAP_IPAP)
|
||||
return CPAP_Pressure;
|
||||
else
|
||||
return CPAP_IPAP;
|
||||
for (auto & preferredID : preferredIDs) {
|
||||
// If preferred channel has data, return it
|
||||
if (channelHasData(preferredID)) {
|
||||
//qDebug() << QString("Found pressure channel 0x%1").arg(preferredID, 4, 16, QChar('0'));
|
||||
return preferredID;
|
||||
}
|
||||
}
|
||||
|
||||
return NoChannel;
|
||||
}
|
||||
|
||||
bool Day::hasEnabledSessions()
|
||||
|
@ -1,10 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<p>
|
||||
<b>OSCAR is based on SleepyHead v1.1.0-unstable-0</b>
|
||||
Which was written and copyright 2011-2018 © Mark Watkins
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Changes and fixes in OSCAR v1.1.0-BETA?</b>
|
||||
@ -24,9 +20,24 @@ Which was written and copyright 2011-2018 © Mark Watkins
|
||||
<ul>
|
||||
<li>Portions of OSCAR are © 2019-2020 by The OSCAR Team</li>
|
||||
<li>[new] Add preliminary support for Viatom/Wellue pulse oximeters</li>
|
||||
<li>[new] Add support for Dreem hypnograms</li>
|
||||
<li>[new] Extensive re-organization of the ResMed loader to facilitate understanding and future improvements</li>
|
||||
<li>[new] Additional Philips Respironics machines tested and fully supported:
|
||||
<ul>
|
||||
<li>DreamStation Auto CPAP (500X130)</li>
|
||||
</ul></li>
|
||||
<li>[new] Add a menu option to create a zip from an SD card</li>
|
||||
<li>[new] Ask where to save screenshots</li>
|
||||
<li>[new] Alert users when unexpected Philips Respironics data is encountered during import</li>
|
||||
<li>[fix] Add support for CPAP mode on DreamStation BiPAP S/T and AVAPS</li>
|
||||
<li>[fix] Pinch-to-zoom now works as expected</li>
|
||||
<li>[fix] The Philips Respironics loader now respects the "ignore old sessions" preference</li>
|
||||
<li>[fix] Improved handling of discontinuous Philips Respironics data</li>
|
||||
<li>[fix] Improved import of Philips Respironics flex and humidification settings</li>
|
||||
<li>[new]Extensive re-organization of the ResMed loader to facilitate understanding and future improvements</li>
|
||||
<li>[fix] Fix incorrect display of tube diameter on some Philips Respironics machines</li>
|
||||
<li>[fix] Fix missing "Bi-Flex" label for bi-level DreamStations</li>
|
||||
<li>[fix] Fix crashes in ZEO loader</li>
|
||||
<li>[fix] Fix several memory leaks</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
@ -251,7 +262,13 @@ Which was written and copyright 2011-2018 © Mark Watkins
|
||||
<li>Small fixes to build and debug problems</li>
|
||||
</ul>
|
||||
</p>
|
||||
<br />
|
||||
|
||||
<p>
|
||||
<b>SleepyHead v1.1.0-unstable-0</b>
|
||||
<ul>
|
||||
<li>Released under the GNU General Public License</li>
|
||||
<li>Copyright © 2011-2018 Mark Watkins<li>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -230,14 +230,28 @@ QString Welcome::GenerateCPAPHTML()
|
||||
ChannelID pressChanID = day->getPressureChannelID(); // Get channel id for pressure that we should report
|
||||
double perc= p_profile->general->prefCalcPercentile();
|
||||
|
||||
// When CPAP_PressureSet and CPAP_IPAPSet have data (used for percentiles, etc.)
|
||||
// CPAP_Pressure and CPAP_IPAP are their corresponding settings channels.
|
||||
ChannelID pressSettingChanID;
|
||||
if (pressChanID == CPAP_PressureSet) {
|
||||
pressSettingChanID = CPAP_Pressure;
|
||||
} else if (pressChanID == CPAP_IPAPSet) {
|
||||
pressSettingChanID = CPAP_IPAP;
|
||||
} else {
|
||||
pressSettingChanID = pressChanID;
|
||||
}
|
||||
|
||||
if (pressChanID == NoChannel) {
|
||||
qWarning() << "Unable to find pressure channel for welcome summary!";
|
||||
}
|
||||
if (cpapmode == MODE_CPAP) {
|
||||
EventDataType pressure = day->settings_max(pressChanID);
|
||||
EventDataType pressure = day->settings_max(pressSettingChanID);
|
||||
html += tr("Your CPAP machine used a constant %1 %2 of air").arg(pressure).arg(schema::channel[pressChanID].units());
|
||||
} else if (cpapmode == MODE_APAP) {
|
||||
EventDataType pressure = day->percentile(pressChanID, perc/100.0);
|
||||
html += tr("Your pressure was under %1 %2 for %3% of the time.").arg(pressure).arg(schema::channel[pressChanID].units()).arg(perc);
|
||||
} else if (cpapmode == MODE_BILEVEL_FIXED) {
|
||||
EventDataType ipap = day->settings_max(pressChanID);
|
||||
EventDataType ipap = day->settings_max(pressSettingChanID);
|
||||
EventDataType epap = day->settings_min(CPAP_EPAP);
|
||||
html += tr("Your machine used a constant %1-%2 %3 of air.").arg(epap).arg(ipap).arg(schema::channel[pressChanID].units());
|
||||
} else if (cpapmode == MODE_BILEVEL_AUTO_FIXED_PS) {
|
||||
|
Loading…
Reference in New Issue
Block a user