Commit Graph

714 Commits

Author SHA1 Message Date
axt
208fa7cbb4 Enhance prisma loader to support some prismaline modes 2022-09-20 13:49:19 +02:00
axt
b4914c0970 Improve prisma smart loader 2022-09-18 12:12:28 +02:00
axt
befa225434 Use VSnore channel instead of Snore 2022-09-13 21:15:33 +02:00
axt
cd82571dc6 Preliminary support for PrismaLine devices 2022-09-13 21:15:33 +02:00
axt
422e2cc38f Mark Prisma Soft as tested 2022-09-13 21:15:33 +02:00
axt
f2b811e442 Add initial version of Lövenstein Prisma loader 2022-09-13 21:15:31 +02:00
axt
0001681146 Change edf-parser to be more inheritation-friendly 2022-09-13 21:12:07 +02:00
sawinglogz
b2630bd974 Add 420X150C to the list of tested machines.
Also add missing items to previous the beta-1 release notes.
2022-05-16 14:42:27 -04:00
sawinglogz
f3273b2045 Fix incorrect Viatom warning when a CheckMe O2 Max recorded an odd number of samples. 2022-05-09 10:51:17 -04:00
sawinglogz
501af3acf7 Add 521X140C to the list of tested machines. 2022-05-09 10:40:49 -04:00
Phil Olynyk
0ca116f236 Merge branch 'master' into testedAS11models 2022-05-08 20:31:54 -04:00
Phil Olynyk
0bb31ed416 Isolate options to modes 2022-05-08 17:41:53 -04:00
Phil Olynyk
5304b778f3 Merge branch 'master' into vAuto-Settings 2022-05-05 23:19:18 -04:00
Phil Olynyk
be81c5f398 Restrict vAuto options to correct modes 2022-05-05 23:18:51 -04:00
sawinglogz
ff2450919f Bump the PRS1 loader version to force a rebuild.
There are enough changes at this point that we want to ensure
that people have complete imports.
2022-05-02 16:53:12 -04:00
sawinglogz
08abe0d258 Add 552P to the list of tested machines. 2022-05-02 16:52:19 -04:00
sawinglogz
2b939a4305 Update DS2 warnings based on new test data. 2022-05-02 16:24:48 -04:00
sawinglogz
1098cab272 Add support for incomplete DS2 flow data with a zero tag. 2022-05-02 15:32:28 -04:00
sawinglogz
0c586f92b6 Add 520X130C to the list of tested machines. 2022-05-02 11:31:45 -04:00
sawinglogz
d4afed11fc Fix PRS1 pressure settings scaling on F5V2.
Ramp pressure and events/waveforms were already scaled properly.
2022-05-02 11:31:45 -04:00
Phil Olynyk
81d21a878d Added vAuto options to channel defs 2022-05-01 15:56:44 -04:00
Phil Olynyk
a5f3caa125 Merge branch 'master' into vAuto-Settings 2022-04-29 20:20:24 -04:00
sawinglogz
2b0845a32c Add 410X150C to the list of tested machines.
There's one new setting that we don't yet support since we don't
know what it is.
2022-04-24 17:29:19 -04:00
sawinglogz
184fe0d2ff Add 961TCA to the list of tested machines.
In doing so, add PP, CA, and VS support to F5V2 generally,
which so far is just the 960T. We still haven't encountered
LL on an F5V2.
2022-04-24 17:02:25 -04:00
Phil Olynyk
24f0cae8fb Add settings fields for vAuto 2022-04-22 12:33:32 -04:00
Phil Olynyk
b800555df4 Merge branch 'master' into vAuto-Settings 2022-04-15 16:34:04 -04:00
Phil Olynyk
20ea508eb6 Remove smoothing from 2 sec pressure graphs 2022-04-06 12:23:43 -04:00
Phil Olynyk
c23feedf7c Added 39421 and 39485 to tested models 2022-04-03 11:24:22 -04:00
Phil Olynyk
4283373823 Add channels for vAuto settings 2022-03-09 16:42:39 -05:00
Phil Olynyk
3418e9e9b4 Merge branch 'master' into vAuto-Settings 2022-03-06 16:08:27 -05:00
ArieKlerk
a7d5bafc9a Third cleanup series: the loader_plugins. 2022-02-27 17:50:10 +01:00
sawinglogz
3e069fa4de Add 761P to the list of tested machines.
Also update F0V4 warnings based on new test data.
2022-02-20 14:37:05 -05:00
Phil Olynyk
acf04f4b45 Move duplicate declarations of EDFType to edfparser and combine them 2022-02-18 14:39:38 -05:00
Phil Olynyk
51e0a7b06d Always create CSR event list 2022-02-17 20:59:16 -05:00
sawinglogz
df17e279f4 Update F0V6 warnings based on new DS2 test data. 2022-02-16 20:50:47 -05:00
sawinglogz
182bbfcb1e Add 521X120C to the list of tested machines. 2022-02-16 19:04:17 -05:00
sawinglogz
a9e9cb118c Fix a null pointer crash when reading PRS1 compliance files with multiple chunks.
This doesn't happen normally, but OSCAR shouldn't crash, even when
encountering cards with corrupted directories.
2022-02-16 16:45:26 -05:00
sawinglogz
fd17699692 Add 520X150C to the list of tested machines. 2022-01-26 11:11:24 -05:00
sawinglogz
41b2c27d60 Add support for HT12 heated tube new to DreamStation 2. 2022-01-24 16:04:08 -05:00
sawinglogz
00974d4f49 Skip empty DS2 files.
Also update comments based on further testing.
2022-01-24 16:04:08 -05:00
sawinglogz
eac13160b9 Cache DS2 keys during import for a 3x speedup.
Crypto overhead now makes import take only twice as long, instead of
of 22x before optimization.
2022-01-24 16:04:08 -05:00
sawinglogz
4b4a0edb0e Refactor library-dependent crypto calls into separate file and add unit tests. 2022-01-24 16:04:07 -05:00
sawinglogz
1cf4b2b6eb Add support for decrypting DS2 files with non-default keys. 2022-01-24 16:04:07 -05:00
sawinglogz
ec52b8b436 Add GUID from DreamStation 2 files to machine properties. 2022-01-24 16:04:07 -05:00
sawinglogz
df43925d02 Add support for CheckMe O2 Max.
Technically it was already supported, but it generated a lot of warnings
because of data we had never seen or tested. Now that we have test data,
those warnings can go away.
2022-01-10 20:14:04 -05:00
Phil Olynyk
b8eb0e113f Move mis-placed QTime decls into EFFICIENY ifdef 2022-01-10 18:02:25 -05:00
Phil Olynyk
42cc67e8d9 Use ToTimeDelta instead of AddWaveform in LoadPLD 2022-01-09 17:35:32 -05:00
Phil Olynyk
321a94379f Skip 20 secs of TiVol, RR, and MinVent; update release notes 2022-01-09 13:49:53 -05:00
Phil Olynyk
d6a925e456 Add check for min pressure equals zero to STR processing. 2022-01-07 19:25:56 -05:00
Phil Olynyk
2f975ea7e9 Add Canadain model number 39423 to tested list 2022-01-07 13:00:19 -05:00
Phil Olynyk
8c997a68e8 Clean up unnecessary debug output 2022-01-05 15:35:35 -05:00
Phil Olynyk
f7b7590207 Fix pressures for A4Her, revise mode code 2022-01-03 16:23:11 -05:00
Phil Olynyk
707a76b089 Set TidalVolume units to mL, add debug for min_pressure 2022-01-01 20:49:40 -05:00
sawinglogz
ecc6bad213 Remove an unexpected data alert based on new PRS1 sample data.
In this specific instance, replace it with a warning in the debug log.
2021-12-14 17:14:47 -05:00
sawinglogz
704d6d7c9e Add 401X150 to the list of tested machines.
Also update F0V6 warnings based on new test data.
2021-12-10 13:43:03 -05:00
sawinglogz
12aecc521c Update 900X warnings based on new test data. 2021-12-03 12:45:29 -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
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
sawinglogz
09753cc50c Add 460PBT to the list of tested machines. 2021-11-11 15:40:20 -05: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
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
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
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
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
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
Guy Scharf
e53b66882e Update copyright notices in code -- no other changes 2021-10-23 20:19:53 -07:00
Guy Scharf
3a12ae5c71 Some SleepStyle machines were incorrectly identified as Icon machines. 2021-10-21 10:40:58 -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
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
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