Commit Graph

1531 Commits

Author SHA1 Message Date
Guy Scharf
41a1872068 Improve Graphs and Event Types combo boxes on Daily page
Done by adding a dummy first element to combo box and changing its text as needed
  Now shows total number of graphs or event types, and number active if not all are active.
2021-11-29 21:08:05 -07:00
Jeff Norman
11da0d2a07 Merge branch 'master' into update-macOS-icons 2021-11-29 10:35:04 -05:00
Guy Scharf
8a1a36fa67 Fix #endif typo in DV6 loader 2021-11-29 15:18:18 +00:00
sawinglogz
3a0fce1411 Add 261P to the list of tested machines.
Also update F0V4 warnings based on new test data.
2021-11-29 10:07:11 -05:00
Jeff Norman
0a937a8b9a Updated OSCAR.icns for macOS.
Added 2 missing icons.
Added hi-res Retina icons.
Updated README for icons with more Mac details.
2021-11-28 23:45:07 -05:00
Guy Scharf
21fc564578 Improve event flag positioning slightly.
The timestamp supplied by the DV6 CPAP machine doesn't match events to the flow graph very well.
This change helps a little. Event flags may be before or after the event in the flow graph.
And, once in a long while, it's exactly right!
2021-11-27 22:10:40 -07:00
Guy Scharf
a8a56dff02 Replace BRICK! with better message. Improve appearance of "no data" messages. 2021-11-27 13:20:48 -07:00
sawinglogz
09753cc50c Add 460PBT to the list of tested machines. 2021-11-11 15:40:20 -05:00
Guy Scharf
6e1ffaebde Add diagnostics for --datadir on Linux and Mac 2021-11-06 16:58:42 -07:00
sawinglogz
4ebde70550 Remove unused signal replaced by deviceIsUnsupported in 08f4e2a. 2021-11-05 14:29:12 -04:00
sawinglogz
bf3c760057 Clarify debug message when encountering DS2 without default keys. 2021-11-05 14:29:12 -04:00
sawinglogz
da6047d32d Refine support for DS2 settings. 2021-11-05 14:29:12 -04:00
sawinglogz
7a47c7c7e3 Add initial support for new DS2 settings. 2021-11-05 14:29:12 -04:00
sawinglogz
139e1e8a8d Recognize DS2 files with .B01, etc. file extension. 2021-11-05 14:29:12 -04:00
sawinglogz
b7e0263429 Update credits to reflect third-party libraries and their licenses.
Also move miniz to the thirdparty directory for clarity.
2021-11-05 14:29:12 -04:00
sawinglogz
48130243ed Fix minor PRS1 regression introduced in 8fd2840.
Complete failures were incorrectly being treated as fully up to date.
2021-11-05 14:29:12 -04:00
sawinglogz
1f3f33c45a Add DS2 icon and model number. 2021-11-05 14:29:12 -04:00
sawinglogz
9b6cc46942 Add initial support for decrypting DS2 files with default keys. 2021-11-05 14:29:11 -04:00
Guy Scharf
9acd685f73 --datadir option now allows fully qualified paths on Mac, Linux.
Before, fully qualified paths were supported only for Windows.
2021-11-04 21:01:18 -07:00
Guy Scharf
eaf88b0d23 Add 95% flow limitation to Therapy Efficacy section on Statistics page
Flow limitation index is already there, for machines that report an index.
This adds flow limitation statistics to report for ResMed machines.
2021-11-03 18:06:50 -07:00
Jeff Norman
59e1b2817b Updated copyright year to 2022 for OSCAR files 2021-11-02 16:34:12 -04:00
sawinglogz
a838e343ce Add support for new tubing type setting code on 700X110 v1.2. 2021-10-28 14:17:28 -04:00
sawinglogz
a445781167 Remove noisy debug message in PRS1 loader.
In theory it was useful to know why files were skipped, but in practice we
normally skip all but the most recent files, often thousands. If you had the
misfortune to have the debug pane open, you'd have to wait for an extra
minute or two for all those messages to scroll by.

If and when we can limit import scanning to files that are new or changed,
then the debug message will be useful again.
2021-10-28 14:17:27 -04:00
sawinglogz
8e2b8efd41 Create prettier dmg files for macOS.
Thanks to Jeff8356 for his scripting!
2021-10-28 14:17:27 -04:00
sawinglogz
838e5a8044 Preserve all oximeter channels except for the ones to be recalculated.
Previously only specific channels were preserved, leaving out channels
provided by newer oximeters.
2021-10-28 14:17:27 -04:00
sawinglogz
66d311afca Remove broken and misguided "compression" during oximetry cleanup.
You can't simply drop identical samples in a waveform with a fixed sample rate.
2021-10-28 14:17:27 -04:00
Phil Olynyk
69a515baf2 Look for AS11 Ident file first 2021-10-27 23:23:38 -04:00
Phil Olynyk
71f77d1336 Uncomment the skip of 10 seconds for pressures 2021-10-27 20:47:20 -04:00
Phil Olynyk
0ebf7b1a43 revise AS11 mode handling; translate to s9/AS10 values 2021-10-27 20:26:18 -04:00
sawinglogz
749c6a3358 Remove remaining Machine dependencies from PRS1 loader.
Now that properties are in the MachineInfo record, we don't need
to call PeekProperties a second time to fill out the machine
record.

Also remove some unused variables and methods from class definition.
2021-10-26 15:23:08 -04:00
sawinglogz
a4fdb03c49 Move Machine properties into MachineInfo.
This will help loaders be less tied to the Machine data structure.
Since Machine contains a MachineInfo, this changes no functionality.
2021-10-26 14:59:41 -04:00
sawinglogz
2281209a20 Fix gcc compile error introduced by a4296b5e.
Also make it easier to test OSCAR calculations performed after import.
2021-10-26 14:43:14 -04:00
sawinglogz
d631a77b5b Remove false positives from a noisy debug message.
It looks like only PRS1 uses MINOR_FLAG, and we don't care about
the CPAP_PressurePulse channel missing valuesummary.
2021-10-26 12:30:35 -04:00
sawinglogz
8fd2840e15 Fix the PRS1 loader to fully import DS1 data after it skips DS2 data.
This was a very specific edge case: when there was a single new DS1
session, the error resulting from encountering DS2 data would make
OSCAR think that it had imported zero sessions, even though it had
half-imported the DS1 session. (Those sessions would be lost after
quitting OSCAR.)
2021-10-26 12:24:31 -04:00
sawinglogz
947a27b78a Move database writing from PRS1Loader into ImportContext. 2021-10-26 10:28:30 -04:00
sawinglogz
18e97bb025 Reduce PRS1Loader dependency on Machine data structure. 2021-10-26 10:28:30 -04:00
sawinglogz
4bfe062ae9 Initialize ImportContext for non-CPAP devices.
Now the loaders imported via the Data menu have access to the
unsupported/untested/brick signals and CHECK_VALUE and UNEXPECTED_VALUE
macros.

Now only devices imported via the oximetry wizard are left out,
since we need to revisit that entire workflow.

Also removed the unused Profile::Import() method.
2021-10-26 10:28:29 -04:00
sawinglogz
08f4e2a5b7 Move ImportContext and ImportUI creation into main application.
Now all CPAP loaders have access to the unsupported/untested/brick signals
and CHECK_VALUE and UNEXPECTED_VALUE macros.

Also remove superfluous unsupported flag in MachineLoader.
2021-10-26 10:28:29 -04:00
sawinglogz
4c0677fca1 Move ImportContext and ImportUI signals out of PRS1Loader into MachineLoader.
This will allow any loader to make use of them.
2021-10-26 10:28:29 -04:00
sawinglogz
e8aa42db98 Move CHECK_VALUE and UNEXPECTED_VALUE macros into ImportContext header.
Any loader that uses ImportContext will be able to use them.
2021-10-26 10:28:29 -04:00
sawinglogz
b2b93c6a24 Move untested/unsupported/brick alerts into ImportUI. 2021-10-26 10:28:29 -04:00
sawinglogz
de40161e8c Add ImportContext to begin reducing loader dependencies on Profile.
For now only the PRS1Loader makes use of the ImportContext.
2021-10-26 10:28:29 -04:00
sawinglogz
332fc4294d Remove unintended leak calculation from PRS1 loader.
Now that the post-process calcLeaks properly handles discontinuous
data, don't make the loader pretend that the machine generated
CPAP_Leak data when it didn't.

The resulting data is nearly identical, except for around edge cases
where the "correct" result is isn't clear. For example, when a
pressure changes within a 2-minute reporting interval, the
post-process calcLeaks will use that pressure when calculating
the unintended leak for that interval. The previous PRS1 loader
calculations were inconsistent, but would often apply the pressure
in place at the beginning of the 2-minute interval instead.
Either interpretation could be reasonable, but consistency is
preferred.

These minor differences aren't worth pursuing further, since the
calculated unintended leak looks dubious regardless.

This affects all CPAP/APAP/BiPAP models in the 4xx-7xx range.
In contrast, most ventilators and ASV record unintended leak
data (only the oldest ones don't), and so aren't affected by
these changes.
2021-10-26 10:28:29 -04:00
sawinglogz
a4296b5e93 Reimplement calcLeaks to be correct for discontinuous data. 2021-10-26 10:28:28 -04:00
sawinglogz
b2f86a720c Further zMaskProfile cleanup, no change in functionality. 2021-10-26 10:28:28 -04:00
sawinglogz
5693dcf458 Remove unused code from zMaskProfile.
calcLeaks simply uses linear interpolation based on user settings.
2021-10-26 10:28:28 -04:00
sawinglogz
048515b131 Comment out unused MachineLoader methods. 2021-10-26 10:28:28 -04:00
Guy Scharf
e53b66882e Update copyright notices in code -- no other changes 2021-10-23 20:19:53 -07:00
Guy Scharf
1f1d60bcab Make link to other languages be itself translatable in Release Notes and Credits dialogs 2021-10-23 19:36:51 -07:00
kappa44
f1a9dbfae3 Merge branch 'master' into drift-fix2 2021-10-22 10:12:44 +11:00
Guy Scharf
3a12ae5c71 Some SleepStyle machines were incorrectly identified as Icon machines. 2021-10-21 10:40:58 -07:00
kappa44
5bebf90417 Merge branch 'master' into drift-fix2 2021-10-20 11:02:56 +11:00
kappa44
3cfbda2f69 Fix value display on and exact data points, and near session boundary with drift 2021-10-20 11:02:17 +11:00
kappa44
ac210e9068 Fix value display near session boundary with drift 2021-10-20 11:01:25 +11:00
Guy Scharf
dabfb26152 Update VERSION to 1.3.1-alpha.0. Update copyright notices in HTML files to 2022. 2021-10-19 10:12:05 -07:00
Guy Scharf
ee0520b28e Update Version to 1.3.0 2021-10-15 17:47:58 -07:00
Guy Scharf
7fc05209cf Update Release Notes and VERSION to 1.3.0-rc.1 2021-10-09 09:59:39 -07:00
Phil Olynyk
3c571e6b88 Fix weird Y2K feature of QTime - Thanks to Kappa 2021-10-09 11:47:45 -04:00
Phil Olynyk
5cb93b011c Fix mode names for BiLevel modes. Update release notes 2021-10-07 19:32:19 -04:00
Guy Scharf
4b1a039acb Fix minor error on Welcome page 2021-10-07 21:58:54 +00:00
Guy Scharf
7bffd78203 Code cleanup in SleepStyle loader
Minor improvement to mask pressure averaging used in unintentional leak calculations.
  Fix Y2K calculation in unused code in sleepstle_EDFInfo.cpp
  Update Release Notes
2021-10-05 20:18:19 -07:00
Guy Scharf
03238360c2 Update VERSION to 1.3.0-beta.3. Update Release Notes. 2021-09-26 10:44:44 -07:00
Guy Scharf
9f4cd79b3d SleepStyle loader now shows high resolution leak rate
Loader calculates leak rate from mask pressure and does usual linear interpolation for leak rate for the pressure
  Calculation of CPAP_Leak is now done in the loader rather than in calcs.cpp
2021-09-26 10:42:20 -07:00
sawinglogz
cc81c75ea0 Update Viatom warnings based on further experimentation.
Thanks for Ratchick for figuring out the mystery header value!
2021-09-26 12:25:49 -04:00
sawinglogz
3bae7f2102 Fix clang compilation regression in 054b633e. 2021-09-22 16:22:59 -04:00
Phil Olynyk
be2e105a14 Merge branch 'master' into beta3-resmed 2021-09-22 13:52:51 -04:00
Phil Olynyk
96f3b6c658 Clean up AVAPS pressure settings 2021-09-22 13:52:02 -04:00
sawinglogz
d95c77ee40 Add support for yet another Viatom/Wellue filename variation.
Apparently the Android app is now exporting files with timestamps of the form
"YYYY-MM-DD hh:mm:ss". It turns out that ":" is not a valid character on
macOS, so Mac users using version 2.72 of the Android app will need to rename
their files to end with "YYYYMMDDhhmmss" in order to select and import them.
Windows and Linux won't.

Fortunately the intersection of Android users and Mac users is relatively small.
And this may be reverted in a future version of the Android app.

Also clean up some competing release notes edits.
2021-09-22 11:58:13 -04:00
sawinglogz
9134093af6 Update Viatom warnings based on additional test samples. 2021-09-22 11:53:03 -04:00
sawinglogz
a9faa2eddc Add support for unreadable SpO2 samples on Viatom/Wellue oximeters.
These occur when SpO2 drops below 61% but pulse rate is still valid.
2021-09-22 11:53:03 -04:00
sawinglogz
cf1b12e029 Prefer a Viatom filename's timestamp to the header timestamp when valid.
No naturally occurring discrepancies have been observed in the wild,
but for some reason the timestamps generated by Viatom/Wellue devices
seem to be a bit off, even when their clocks have been synchronized
to atomic time.

This patch provides a fairly easy way for a user to adjust Viatom
timestamps to match their CPAP's.
2021-09-22 11:53:03 -04:00
sawinglogz
3d855066b2 Reinstate unexpected data warnings suppressed by 31bd10 until we find test data.
Also remove unnecessary comments now that the functional changes have been
reviewed and tested.
2021-09-22 11:53:03 -04:00
sawinglogz
79c5809b59 Add support for Viatom/Wellue files that have a SleepU_ etc. prefix. 2021-09-22 11:53:03 -04:00
Guy Scharf
bdce731495 Update Overview page when zombie or weight values are changed in Daily Notes tab. 2021-09-20 08:03:34 -07:00
Guy Scharf
5355713255 Check for Updates no longer shows unwanted early releases
Change option and messages for showing early releases.
Update Release Notes to correct an error re: zombie reports and include a section for beta 2+ fixes.
2021-09-19 04:12:21 +00:00
sawinglogz
0037eca57b Allow zipping to continue when errors are encountered.
Add the debug log to SD card zips if there were unexpected errors.

Also display the progress dialog while scanning SD cards for zipping.
2021-09-15 14:54:08 -04:00
Phil Olynyk
150bc3a3bc Test for Ident.json file first, complain if both .json and .tgt exisit 2021-09-12 13:45:24 -04:00
Arie Klerk Hotmail
f47a7395d5 Merge branch 'master' into translations 2021-09-12 13:57:31 +02:00
Arie Klerk Hotmail
2f04017169 Updated all languages with sometimes missing 'location' node, added new languages, also to translation.cpp 2021-09-12 13:54:40 +02:00
Phil Olynyk
43a3b155b7 Ignore new fields fro 28509 (Lumis 150) 2021-09-11 21:33:01 -04:00
Phil Olynyk
054b633ebe Fix issues with beta.2 2021-09-07 08:51:00 -04:00
sawinglogz
4abef160ff Always present the SD card selection dialog box when creating a zip.
The "Import without asking for confirmation" preference should only
apply to actual importing.
2021-09-02 15:49:34 -04:00
Phil Olynyk
65ddecf818 Update VERSION to beta.2 2021-08-27 10:51:27 -04:00
Guy Scharf
00b4651bc4 Change Beta-1 to beta.1 and minor change to Release Notes. 2021-08-26 12:11:26 -07:00
Phil Olynyk
5bc1d60a54 Update release notes and VERSION to 1.3.0-beta-1 2021-08-26 14:20:49 -04:00
Arie Klerk Hotmail
e8638334d1 Updated translation.cpp with new language names, plus Taiwanese and Swedish language files. 2021-08-25 20:12:33 +02:00
Phil Olynyk
e89a12e097 Change Pt. View to Patient View, and Comfort to Response in Settings 2021-08-24 19:56:59 -04:00
Guy Scharf
d8f218ff14 SleepStyle loader code cleanup
Use #define DEBUGSS to enable all loader debug messages, which are off by default
Change EPR definition to "Expiratory Relief" which is the term F&P uses instead of "Exhale Pressure Relief"
2021-08-24 00:21:18 +00:00
kappa44
47436ae517 Merge branch 'master' into somno-split 2021-08-23 09:29:53 +10:00
Phil Olynyk
ec1a7a6df7 Fix channel type test, attempt SmartStop display 2021-08-22 17:39:13 -04:00
Phil Olynyk
2326ed4fc8 Update VERSION and resmed data version; other miscellaneous fixes 2021-08-22 15:21:12 -04:00
kappa44
966a5de970 Merge branch 'master' into somno-split 2021-08-19 17:22:22 +10:00
kappa44
db2047b6d5 Split single CSV in to multiple sessions 2021-08-19 17:14:35 +10:00
Guy Scharf
36c2968701 Revise CPAP/APAP identification in SleepStyle loader
o While the Sleepstyle summary record has a data item that appears to identify the mode as CPAP or APAP, it is not reliable
  o Determine APAP or CPAP by comparing Max and 95 percentile pressures seen with the CPAP pressure setting
  o This could result in an incorrect identification if user sets CPAP pressure to APAP Max pressure.
  o Add DEBUGSS define to enable SleepStyle loader debugging.
2021-08-18 22:31:24 -07:00
Guy Scharf
3808943f65 calcs.cpp: Remove debug statements no longer needed 2021-08-18 22:30:43 -07:00
Phil Olynyk
81856e0866 Clean up code around reporting missing value summaries 2021-08-17 19:29:46 -04:00
Phil Olynyk
3ecce66397 Update release notes and VERSION for 1.3.0 2021-08-17 12:39:16 -04:00
Phil Olynyk
f7e3ccdc17 Merge branch 'master' into more-AS11-tweaks 2021-08-17 12:29:53 -04:00
Phil Olynyk
40b465f588 Add PtView for AS11 in place of Essentials 2021-08-17 11:32:39 -04:00
sawinglogz
c245eb5a0c Update unexpected data alert for PRS1 900X110 based on new sample data.
Also add support for auto-trial duration on 460P.
2021-08-16 10:44:13 -04:00
Guy Scharf
8bfc2195d1 Update version to 1.2.1-alpha.4 2021-08-15 22:57:33 -07:00
Guy Scharf
038035785d Fix loss of AHI graph in previous commit 2021-08-15 22:51:09 -07:00
Phil Olynyk
1d99b0c5d8 Added -Untested machine- code 2021-08-14 17:59:35 -04:00
Guy Scharf
6f3adfdcbe Fix Pressure Relief column on Statistics page for SleepStyle machines 2021-08-02 16:36:28 -07:00
Phil Olynyk
569f5794c7 Logical and of channel type with FLAG, to prevent extra messages 2021-07-31 23:30:24 -04:00
Phil Olynyk
6747324429 Subtract one from AS-11 settings values 2021-07-25 18:43:23 -04:00
Phil Olynyk
85512761ea Add test for FLAG to clean up debug in updatesummary 2021-07-25 16:38:24 -04:00
Guy Scharf
4cd2ce2743 Update version number to 1.2.1-alpha.2 2021-07-24 21:33:35 -07:00
Guy Scharf
9f5373ed91 Refactor functions that act on all AHI-contributing channels.
Add new AllAhiChannels ChannelID to refer to all channels that contribute to AHI.
List of AHI-contributing channels is in "ahiChannels" QVector.
2021-07-24 21:12:15 -07:00
Guy Scharf
86d498f563 SleepStyle loader now classifies apneas as either A or H, like InfoSmart does. 2021-07-24 21:11:06 -07:00
Guy Scharf
cf12737b9e Fix outstanding Sleepstyle Loader problems
Mostly improve settings and make them appear properly on daily page
Return to having four event flag channels (OA, UA, CA, H) instead of two (A, H)
for testing to see if channel identification is reliable.
F&P A = OA + CA; F&P H = H + UA
2021-07-17 16:26:21 -07:00
Guy Scharf
04d7945241 Use rolling average when computing TV from flow graph
Also, start with a guessed-at reasonable value to try to
minimized spike artifacts resulting from poor calculation
of initial breath volume.
2021-07-17 16:22:40 -07:00
Guy Scharf
0e3f669210 Adjust order of indices on Daily page so that no two indices have the same sort order. 2021-07-17 16:21:32 -07:00
Guy Scharf
55c382d449 Add Unclassified Apneas to statistics page. 2021-07-17 16:20:44 -07:00
Guy Scharf
de9c92d430 cosmetic changes and temporary debug - no effective change 2021-07-17 16:19:30 -07:00
Phil Olynyk
3b02abe63c Remove bogus limits on pressures in LoadPLD 2021-07-13 14:36:31 -04:00
Phil Olynyk
c1df93ff42 Merge branch 'master' into AS11-STR-changes 2021-07-11 20:40:55 -04:00
Phil Olynyk
f69e22f876 Merge branch 'master' into json-11 2021-07-11 20:34:23 -04:00
Phil Olynyk
8c18683274 Add Comfort to StoreSettings 2021-07-09 17:39:23 -04:00
Guy Scharf
bf62344e5d SleepStyle loader now reports only H and UA (no CA or OA)
While the event flags in SleepStyle data show four different types of apneas,
Fisher & Paykel software reports only two types: Hypopneas and Apnea. OCAR
how combines those four types to report the same way as F&P does.
We don't know why F&P consolidates these different event types -- perhaps
they are "dumbing-down" detail to make it easier for users, or perhaps
they know that the identifcation of CA, OA, UA, and H is not reliable.
We can easily restore more details to the event identification.
2021-07-08 22:20:59 -07:00
Phil Olynyk
b29d8ae3f8 Add AS11 STR strings to ProcessSTRfiles 2021-07-08 14:27:22 -04:00
Guy Scharf
41ea0389f6 Add SleepStyle loader
This is the first test version of the F&P SleepStyle loader
Additional refinements are yet to be made. Events and timestamps
need to be confirmed, but overall the loader appears to be working.
2021-07-08 10:43:02 -07:00
Guy Scharf
f9a2228b9c DV6 loader now overwrites files when creating backups 2021-07-08 10:38:16 -07:00
Guy Scharf
c1a99850c6 EDFParser - add option to handle EDF files with UTC timestamps
Needed for SleepStyle CPAP as dates in the data files are UTC and not local
2021-07-08 10:35:44 -07:00
Guy Scharf
f0c7cfc991 Add option to copypath() to overwrite existing files
copypath() only copies files that do not exist in the destination directory.
Added an optional parameter that forces copypath() to overwrite existing files.
This is needed for SleepStyle and DV6 loaders.
PRS loader should not be affected (it is the only other loader using copypath)
2021-07-08 10:32:50 -07:00
Guy Scharf
2ab4e7bbe2 Calcs.cpp - calculation of TV and MV now uses a rolling average
Only a few loaders are affected by this, notably SleepStyle but not ResMed
A rolling average calculation makes calculated values resemble CPAP values more closely
2021-07-08 10:28:53 -07:00
Guy Scharf
492254b580 Update version number to alpha.1 2021-07-08 10:27:42 -07:00
Guy Scharf
e7ce6f00f1 DeVilbiss BLUE (DV6x) loader
Backups complete and Build from Backup works
Low resolution graphs corrected
2021-06-18 13:31:56 -07:00
Phil Olynyk
83f80f44d2 Backup either tgt or json Ident file 2021-06-07 13:58:04 -04:00
Phil Olynyk
024c0daf49 Parse identification.json for AS11 2021-06-06 22:57:52 -04:00
Guy Scharf
7f6128fe24 Improve dialog title when asking for CPAP data directory
Previously, window title just said "Find Directory" and users
    could be confused about what directory they were supposed to be
    looking for.
    Now, window title says "Find your CPAP data card".
2021-06-06 18:00:33 -07:00
sawinglogz
ec403a0c75 Remove unused comments and code in PRS1 loader. 2021-05-31 21:35:31 -04:00
sawinglogz
c5175b20d2 Move PRS1 file parsing into separate parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 21:32:18 -04:00
sawinglogz
6fc41537e2 Move remaining PRS1 chunk parsing into separate parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 21:23:03 -04:00
sawinglogz
7864d509cc Move PRS1 F5 parsing into separate F5 parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 21:02:11 -04:00
sawinglogz
26ce41927b Move PRS1 F3V03 parsing into separate F3 parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:54:24 -04:00
sawinglogz
ded4ea4d8f Move PRS1 F3V6 parsing into separate F3 parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:52:43 -04:00
sawinglogz
e5e3700c71 Move PRS1 F0V23 parsing into separate F0 parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:41:44 -04:00
sawinglogz
7b0e732ae5 Move remaining PRS1 F0V4 parsing into separate F0 parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:39:44 -04:00
sawinglogz
f74c38d512 Move PRS1 F0V45 parsing into separate F0 parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:34:50 -04:00
sawinglogz
2a326c816f Move PRS1 F0V6 parsing into separate parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:24:09 -04:00
sawinglogz
daaed2de79 Move PRS1DataChunk into parser header and clean up dependencies.
Also move some previously static functions into their associated classes,
which lets us remove a few unnecessary wrapper functions used for testing.

No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 14:53:23 -04:00
sawinglogz
0a996cde73 Move PRS1 parser event definitions into new parser cpp/h files.
No change in functionality.

This is almost entirely copy/paste, with the main exception of moving the
contents() method definitions out of the class definitions and moving the
needed TYPE definitions out of the header file.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 13:18:39 -04:00
sawinglogz
dd9a087a86 Merge branch 'master' into prds2 2021-05-25 16:00:23 -04:00
sawinglogz
efeb9ed248 Fix some bugs in the DreamStation 2 wrapper and add some known values for testing. 2021-05-25 15:57:09 -04:00
sawinglogz
c64376033d Fix boundary condition bugs in RawDataDevice.
bytesAvailable gets automatically calculated by QIODevice, so it doesn't
need to be reimplemented.

QIODevice doesn't necessarily buffer after a seek, and the underlying
device is unaware of peek/ungetChar, so canReadLine needs to check both
QIODevice and the device.
2021-05-24 19:59:58 -04:00
sawinglogz
0737ad9b10 Performance improvements for PRS1 regression tests.
Most of the gains were from replacing endl with '\n', which avoids
unnecessary flushing. But there were a few hot functions whose
inefficiency ended up having a significan impact.
2021-05-23 21:26:17 -04:00
Phil Olynyk
caec63576d The i in Sızıntı has no dot ! 2021-05-23 18:00:19 -04:00
sawinglogz
7a852953be Move raw data signal tests into a separate class.
Otherwise QTest treats the signal handlers as separate tests.
2021-05-23 15:48:20 -04:00
sawinglogz
b2ca5f708e Improve debug and user-visible messages for unsupported PRS1 machines. 2021-05-23 15:36:09 -04:00
sawinglogz
793a621b4d Fix some crashes that result from an invalid PR properties file. 2021-05-23 15:02:01 -04:00
sawinglogz
f1e31282bb Add wrapper around DreamStation 2 files to read their header and provide an interface to their data. 2021-05-23 12:43:31 -04:00
sawinglogz
818eafcc7c Add RawDataDevice wrapper around QIODevice to allow for filtering of incoming data before loading.
Eventually this will also provide endian-aware integer reading functions,
so that individual loaders don't have to reinvent the wheel as often.
2021-05-23 12:25:35 -04:00
Phil Olynyk
f32d1da51a Add Turkish PLD, SAD signal names 2021-05-22 15:15:52 -04:00
Phil Olynyk
4a43aaabd4 Add Turkish STR signal names 2021-05-22 14:54:52 -04:00
kappa44
dbaafed73d Journal should always ignore 'do not import sessions' date 2021-05-21 10:42:38 +10:00
kappa44
fc5cfc2a9b Merge branch 'master' into import-date-fix 2021-05-18 20:45:27 +10:00
kappa44
a836871914 Ignore old sessions should not impact existing data 2021-05-18 20:45:04 +10:00
harre
5126c215f4 Remove not needed ignored warning as code got fixed already #25 2021-05-18 01:39:00 +02:00
harre
6c03da966a GCC 11 build fix on arch #34 2021-05-18 01:19:12 +02:00
kappa44
497cf8e5c4 Fix compile errors on Centos 7 2021-05-16 13:57:44 +10:00
sawinglogz
505264a200 Detect DreamStation 2 cards and alert the user. 2021-05-13 16:46:44 -04:00
sawinglogz
66e06af211 Add 700X130 to the list of tested machines. 2021-05-13 10:15:57 -04:00
kappa44
aec02b14aa Fix bookmark behavior with clock drift 2021-05-11 14:48:14 +10:00
Phil Olynyk
6b5443e6b8 Fix conflict by allowing comment 2021-05-02 08:16:32 -04:00
Phil Olynyk
edf3d95225 Comment out all the debugging stuff, and add a terminating event when
a PLD.edf signal value is out of range.
2021-05-02 08:05:49 -04:00
Phil Olynyk
6d4836c18a Use channel lables instead of hex ID 2021-04-26 20:51:48 -04:00
sawinglogz
9cbd0d7b24 Fix multiple regressions that broke compilation with clang.
e633a82: overloaded virtual method errors
0022510: inconsistent missing override error
e358d31: unused private fields
3591f11: unused private fields
2021-04-26 20:10:37 -04:00
kappa44
89edb3f077 Correct Total Time and AHI in CSV Export when non-CPAP devices are used 2021-04-26 10:02:30 +10:00
Phil Olynyk
e20518e84c Don't skip the first 40 seconds of ResMed low-rate pressure data. 2021-04-24 16:52:25 -04:00
kappa44
e633a82de4 Consistent multi-file import for non-CPAP loaders (Viatom, Somnopose, Zeo, Dreem) 2021-04-24 17:44:27 +10:00
LoudSnorer
3591f112a9 MinutesAtPressure (timeAtPressure) has been refactored.
TimeAtPressure Graph now has the same look and feel as the Pressure Graph.
Configuration chamges to the Pressure Graph now also impact the TimeAtPressureGraph.
Changes are identified in MinauteatPressure.cpp (first 100 lines)
2021-04-17 21:54:56 -04:00
LoudSnorer
940b247cb9 Adding "snapshot" menu item to Overview Range widget after "custom".
This item copies the current displayed Overview Range to the Custom Range and its calendar (start and end).
the then selects the "Custom" range.
This is a shortcut mechanism to modifing the start and end calendar widgets.
Note: The label "snapshot" is my best quess on the name of this item.
note: The label will need to be translated,
2021-04-17 14:09:40 -04:00
LoudSnorer
94e5cf2332 Merge branch 'master' into saveCustomRangeOverReload 2021-04-16 18:38:27 -04:00
Guy Scharf
5a64262ff6 Minor fix to #ifdefs in DV6 loader 2021-04-13 17:48:39 -06:00
Guy Scharf
037b13c73c Adjust labels on Daily and Overview pages to show 99.5% instead of Max when max is not used
Note that "Max" on the Statistics page really is the "max" and not 99.5%
2021-04-13 17:47:15 -06:00
Guy Scharf
4234cb34a4 Fix problem with truncated per-minute data in graphs. 2021-04-09 14:05:54 +10:00
Guy Scharf
889bc8842c Logger.cpp: Add #define to allow all debug messages to be seen
I have DEFINES+=HARDLOG set up in my QT Debug configurations so I can always see messages in the event of a crash.
2021-04-09 14:03:37 +10:00
kappa44
a02981f6d1 Extend purge current day to allow per-machine type purge 2021-04-05 12:23:43 +10:00
kappa44
94faff5297 Allow purge current day for all machine types 2021-04-05 12:05:05 +10:00
Guy Scharf
3114cf517d Improve file identification in Icon loader
Will no longer attempt to process SleepStyle data with Icon loader
   A new loader for SleepStyle machines is forthcoming.
2021-04-04 04:56:39 -07:00
Guy Scharf
e699ea182d Update version checking to allow QT 6 2021-04-02 17:17:50 -07:00
Phil Olynyk
a92646faae working on missing graph 2021-04-02 19:01:24 -04:00
Guy Scharf
e358d31f26 Add logic to read rolling files created by DeVilbiss BLUE CPAPs 2021-04-01 21:39:06 -07:00
kappa44
85b4013b2d Fix stage & position session toggle 2021-04-01 11:32:58 +11:00
kappa44
00225103fd Save notes immediately when focus leaves notes widget. 2021-03-28 14:22:57 +11:00
kappa44
a0b9488aa9 Save notes immediately when focus leaves notes widget. Fix saving of weight changes when using up/down arrows 2021-03-28 14:22:31 +11:00
kappa44
2331bbba26 Don't ResetBounds when setDay is called to avoid changing overview graphs to full date range on BMI/Weight change 2021-03-28 14:20:19 +11:00
kappa44
37483de62a Display Weight/BMI/Zombie graphs 2021-03-28 14:15:10 +11:00
kappa44
00ad97ff70 Update loader version change comment 2021-03-23 09:43:14 +11:00
kappa44
2d502f6a68 Revert viatom data version to avoid purge 2021-03-23 09:42:47 +11:00
LoudSnorer
9777ecd2ab This allows the Overview Custon range to be saved and resurvive a reloaded of OSCAR.
a New feature has been been added but can not be activated until a UI file is changed - another submission.
This new feature will utilize the current displayed range as the custom range.
Other wise the Overview custom range uses the values from the calendar.
This changes does not require and data or translations.
2021-03-21 16:21:48 -04:00
LoudSnorer
562cd9cc37 fix display issues for short span events 2021-03-21 14:15:47 -04:00
sawinglogz
be1d3d878b Add 1130X200 to the list of tested machines.
Also update warnings based on new test data and correctly
label the rise time lock setting on some 1030X sessions.
2021-03-04 17:34:05 -05:00
Phil Olynyk
c4d7ac7f05 Roll back PlaceholderText added to ui file 2021-02-22 17:26:33 -05:00
sgearhart
31bd10590f modified: oscar/SleepLib/loader_plugins/viatom_loader.cpp
modified:   oscar/SleepLib/loader_plugins/viatom_loader.h
	modified:   oscar/mainwindow.ui
2021-02-22 15:30:04 -05:00
Guy Scharf
eb4981d3be On Daily page, show right statistics column as 99.5% or Max, as appropriate. 2021-02-22 08:59:44 -07:00
Phil Olynyk
1b727eff76 Use 2010-1-1 as invalid date, and fix the test for it 2021-02-21 20:42:13 -05:00
kappa44
6b10cb665d Make somnopose csv more flexible - data fields are optional and include movement. Make data persistent 2021-02-22 09:33:43 +11:00
kappa44
a1e011da4d Support multi-file imports for Somnopose 2021-02-22 09:30:24 +11:00
kappa44
56cf4a452c Include rates in oximetry summary. Use correct machine type hours for non-CPAP event rates 2021-02-22 09:29:12 +11:00
kappa44
c13951b675 Consider CPAP drift when displaying current value 2021-02-22 09:20:34 +11:00
Guy Scharf
fbfc830015 Compensate for error message from linux compilers in DeVilbiss loader. 2021-01-26 12:37:27 -07:00
Guy Scharf
24e7d34aee DeVilbiss DV6x loader
Mostly complete
  Backup facility is incomplete
2021-01-25 19:56:59 -07:00
Phil Olynyk
d16c4f4aed Add Auto as option for Ramp-Enable 2021-01-22 11:36:17 -05:00
Guy Scharf
7bf8470d36 Mark exported journal backup file as UTF-8. 2021-01-18 21:55:14 -07:00
Guy Scharf
a06d37e10e Correct error dialog when data cannot be written to OSCAR_Data
Also minor update to Release Notes
2021-01-18 21:47:59 -07:00
Phil Olynyk
28ac40a6f9 Reset size of AHI banner in left panel 2021-01-15 21:05:04 -05:00
Phil Olynyk
f05320e725 Add font debugging, add setApplicationFont to Daily::Load(date) 2021-01-15 20:20:36 -05:00
Guy Scharf
142220c16c More diagnostics for font setting failure on startup on RPi
Dump entire font table if desired font is not found
2021-01-15 11:30:34 -07:00
Guy Scharf
b8415117c3 Improve font setting diagnostic message 2021-01-14 15:20:53 -07:00
Guy Scharf
b00434f1d9 Add diagnostics when setting application font
To help resolve font setting problem on RPi4
2021-01-14 20:43:38 +00:00
sawinglogz
09ba58669a Add support for Target Time humidifier setting on DreamStation Go. 2020-12-29 20:23:37 -05:00
sawinglogz
e336e85aac Add 500G120 and 500X140 to the list of tested machines.
Also update warnings based on new test data.
2020-12-29 17:38:00 -05:00
Guy Scharf
38d8b84266 Intellipap DV64 loader now imports the most recent day
Previous code had an off-by-one error and was not importing the last day in the file.
2020-12-14 00:20:29 +00:00
Guy Scharf
d357c37edd Update link to Contec drivers. 2020-12-05 17:59:45 -07:00
Phil Olynyk
1aa88fb19a Merge branch 'master' into local_SDcopy 2020-11-21 20:02:32 -05:00
Guy Scharf
77b64c87e8 Fix loss of notes and bookmarks when importing or purging data
OSCAR now calls Unload() for the current day when importing new data
or purging oximetry data.  This will cause any recently changes Notes
to be saved instead of silently discarded.

When purging the current day, OSCAR will now purge only session data
and not any other machine data it finds, which caused Bookmarks (and
probably Oximetry data) to be deleted as well.

Release Notes updated.
2020-11-21 11:45:43 -07:00
Guy Scharf
4276765bf2 ResMed loader no longer checks for maskoff dates beyond current time
Loader was checking that maskoff time was not greater than current time.  This
produced problems when CPAP machine was set to DST but computer was set to standard
time. This also could cause problems trying to import files created in a different
timezone.
Added a separate check for maskon and maskoff times were in legal range (0-24*60).
Updated release notes.
2020-11-19 13:51:01 -07:00
Phil Olynyk
a637bea0fe Check for existing lastpath file before Crostini warning 2020-11-15 23:38:12 -05:00
Guy Scharf
5fb837ccb9 Daily page enable/disable oximeter session now works correctly.
Prevoiusly, disabling an oximeter session could cause bookmarks to be
disabled and/or OSCAR to crash. OSCAR was looking up the session for
the oximeter session and not noticing it got a Journal session instead.
2020-11-04 21:12:05 -07:00
Guy Scharf
fac7803880 Improve error message when null pointer found in journal file 2020-11-04 10:23:14 -07:00
Guy Scharf
1af5d3ec40 Improve some qWarning messages.
resmed_loader: include all timestamps in "time in future" error messages
mainwindow: add qWarning message if first journal session is null pointer
2020-11-04 10:12:19 -07:00
Guy Scharf
5e75fe8836 Fix OSCAR crash when session not found in Journal file
While preparing bookmark HTML for right sidebar, OSCAR was trying to obtain
the first MT_JOURNAL session, but was finding a null pointer and then not checking
that the pointer was null. However, I don't know under what conditions this
situation could happen in the database.  At least now it won't crash OSCAR.
2020-11-03 14:50:04 -07:00
Guy Scharf
d4c2b74afb Allow non-ASCII (UTF-8) characters in user first and last name in user profile
We do this by forcing a UTF-8 byte order marker in the profile.xml file.
We also add processing instructions that specify UTF-8, although it seems the BOM is itself sufficient.
2020-10-31 18:06:38 -07:00
Guy Scharf
678e0f9241 Correct leak rate computations on Welcome page
Welcome page was calculating current and 7-day averages using the "normal average" method,
which averaged just the non-zero readings, giving excessively high numbers.
Now computes using "weighted average" resulting in more meaningful numbers.
2020-10-31 09:49:02 -07:00
Guy Scharf
055aec77d8 Name VERSION as 1.2.1-alpha.0
We don't know what the next release number will be but are setting it above 1.2.0
so that anyone who downloads the repository will know the HEAD is above 1.2.0.
2020-10-31 09:07:22 -07:00
Phil Olynyk
6d9f544af8 Update rc.2 to release status 2020-10-13 13:32:54 -04:00
Phil Olynyk
1faaf6251c Update to v1.2.0_rc.2 2020-10-06 20:09:17 -04:00
Guy Scharf
bf458fa1d5 Clairfy code for checking for str.edf or str.edf.gz depending on compression settings 2020-10-06 09:37:29 -07:00
Guy Scharf
6c8d9d6751 Fix two issues in ResMed loader:
1) If data compression option is set, loader will now try the str.edf.gz file first, with fallback to str.edf
2) Mixed Windows and Unix separators are now allowed in --datadir, which was previously causing data loss when rebuilding CPAP data.
2020-10-06 01:36:15 +00:00
Guy Scharf
34700fd9f9 Fix two issues in ResMed loader:
1) If data compression option is set, loader will now try the str.edf.gz file first, with fallback to str.edf
2) Mixed Windows and Unix separators are now allowed in --datadir, which was previously causing data loss when rebuilding CPAP data.
2020-10-06 01:36:15 +00:00
Phil Olynyk
e4b3b97c21 Change VERSION to v1.2.0-rc.1 - use dot as pre-release separator 2020-09-25 13:03:40 -04:00
Guy Scharf
9e899c1d15 Change apostrophes in Daily page statistics tooltips to HTML encoded apos; 2020-09-20 19:05:22 -07:00
Guy Scharf
dc5540d2a8 Don't show versions.xml read errors for automatic checks. 2020-09-18 10:40:05 -07:00
Guy Scharf
8d2578872a Add an error message to Check for Updates when unable to access the update on our server. 2020-09-16 13:05:45 -07:00
Phil Olynyk
956a405c80 change VERSION to v1.2.0-beta-3 2020-09-15 13:19:35 -04:00
sawinglogz
2563e5c4f0 Fix gcc compiler error introduced by d98a76a. 2020-09-14 14:58:11 -04:00
sawinglogz
d98a76aa22 Recognize low MV alarm on 1030X and update warnings based on test data. 2020-09-13 19:28:00 -04:00
sawinglogz
d1985c9dc2 Add support for all current Dorma 501V test data. 2020-09-13 19:27:59 -04:00
sawinglogz
c8b10e31a7 Add initial support for PRS1 Dorma 501V. 2020-09-13 19:27:59 -04:00
sawinglogz
53de4f0f49 Add older 450P to the list of tested machines.
Also update warnings based on test data.
2020-09-13 19:27:59 -04:00
harre
d54e8b2e11 Added default copy operators as implicit default is deprecated 2020-09-13 01:10:03 +02:00
Guy Scharf
036117d41d Correct reversion in beta-1 that lost date last imported. 2020-09-12 22:07:40 +00:00
Guy Scharf
ade32fa914 Change Profiles page and Daily Records box in right sidebar to show data for most recently used machine.
- Changed Profile::GetMachine() to find machine with latest lastImportDate when there were multiple machines in a profile.
- Previously, OSCAR would shown the "first" machine in its list, without clarity about how a machine was designated "first".
2020-09-12 22:07:40 +00:00
Guy Scharf
abf0747b50 Add data directory path to error message when unable to write test file.
- This is intended to make the error message and log entries more descriptive.
2020-09-12 22:07:40 +00:00
Guy Scharf
3ea13f736f Increase minimum width of Preferences dialog don't import before date field.
- Intent is to prevent clipping of year number for months with long names (September).
- This helps with default font size on my system but may not help on others.
2020-09-12 22:07:40 +00:00
Phil Olynyk
249144a4a4 Update version to v1.2.0-beta-2 2020-09-10 19:20:30 -04:00
Guy Scharf
e39adbd41e Avoid data loss when destroying a profile that's just an empty directory; Release notes for v1.2.0-beta-2
- If trying to delete a profile folder with no contents, now displays an error message and doesn't delete it.
- Folders with no contents are no longer listed on the Profiles page.
- Release Notes updated with the fixes for beta-2.
2020-09-09 22:03:32 -07:00
Guy Scharf
b49e483fa4 Remove SleepyHead modules ProfileSelect.h, .cpp, .ui. OSCAR uses ProfileSelector.* modules 2020-09-09 20:55:23 -07:00