sawinglogz
84f1389d51
Support more F0V6 events based on all sessions from a single 400X machine.
2019-08-05 15:22:22 -05:00
sawinglogz
4e863ba484
Add first confirmed F0V6 events from sample data.
2019-08-04 21:09:42 -05:00
Phil Olynyk
b8b4acb804
Added Annotation dump program and fixed edfparser to make it work
2019-08-04 21:49:17 -04:00
sawinglogz
e0d4872f6b
Create placeholder event parser for PRS1 F0V6, separate from other F0 machines.
2019-08-04 19:36:40 -05:00
Phil Olynyk
b80ae70525
Changed class EDFParser to EDFInfo, and changed member names to show usage.
...
Added an Annotaions list member to avoid reparsing.
Skipping directories before ignore-before date.
Added a new app to dump STR.edf files.
Still not complete.
2019-08-03 10:59:08 -04:00
Phil Olynyk
f7227b7316
Don't create (summary) sessions when maskon == maskoff
2019-08-01 13:30:11 -04:00
Phil Olynyk
37c9e615e4
Don't create (summary) session with maskon == maskoff
2019-08-01 12:34:06 -04:00
Phil Olynyk
531edc6ad2
Interim commit - resmed_loader still needs work
2019-07-31 14:36:40 -04:00
sawinglogz
9a1bccff57
Merge branch 'master' into prs1-improvements
2019-07-27 15:05:33 -04:00
sawinglogz
8ef4766efd
Fix F3V6 imported channels to match reports.
2019-07-27 15:04:20 -04:00
sawinglogz
46a077cb43
Clean up remaining F3V6 import messages.
2019-07-26 22:53:15 -04:00
sawinglogz
5835e6de9c
Remove commented-out F3V6 event code.
2019-07-26 22:29:23 -04:00
sawinglogz
56684de3bc
Add support for more F3V6 events based on more sample sessions.
2019-07-26 22:13:26 -04:00
sawinglogz
eedd41efdf
First pass at parsing F3V6 events, largely based on F5V3 and revised based on a sample session.
2019-07-25 21:44:36 -04:00
Seeker4
751df7652a
Diagnostic changes for a future feature
2019-07-25 06:25:03 -07:00
sawinglogz
a2bcbf1b00
Fix pressure gain for F3V6 events and waveforms.
...
Also change fileVersion == 3 tests to appropriate familyVersion for ASV and ventilators, respectively.
2019-07-24 22:42:00 -04:00
Phil Olynyk
93b363465f
Merge branch 'master' into tidy-edf-parser
2019-07-24 17:18:03 -04:00
sawinglogz
d33e7585bf
Remove broken original F3V6 summary parser.
2019-07-24 16:51:50 -04:00
sawinglogz
9e54b98cf6
First pass at actual F3V6 (1030X, 1130X) summary and settings support based on sample data. Events are still broken.
2019-07-24 16:50:51 -04:00
Seeker4
376d04803a
Show commit id in title bar for all except Release versions.
2019-07-24 01:47:15 -07:00
sawinglogz
872fe74008
Add stub F3V3 summary parser so that events and waveforms will still get loaded.
2019-07-23 20:54:39 -04:00
sawinglogz
83b80cb252
Restrict the current PRS1 F3 summary parser to F3V6, which is all it could (badly) handle anyway.
2019-07-23 20:54:25 -04:00
sawinglogz
1f56927695
Recognize additional PRS1 900X settings.
2019-07-23 12:52:41 -04:00
Phil Olynyk
ed6464e924
an Interim commit...
2019-07-22 17:01:47 -04:00
Seeker4
2568f79a99
Default right sidebar off, calendar off, pie chart off with new OSCAR folder.
2019-07-19 06:43:53 -07:00
Phil Olynyk
8c11751b2b
Re-arrange edf-parser code - and fix it
2019-07-18 19:36:35 -04:00
Seeker4
f6941843e8
Merge branch 'master' into defaults
2019-07-14 20:28:06 -07:00
Seeker4
11f2fb5d3f
Change GraphSnapshots to ShowPieChart in code, UI, and preferences. Convert any existing GraphSnapshots preferences to ShowPieChart.
2019-07-14 20:25:49 -07:00
Seeker4
48b4d754b3
Add utility to rename a preference setting
2019-07-14 20:23:23 -07:00
Seeker4
e2f5899fb8
Comment out a qDebug statement that is not normally needed and very voluminous when used.
2019-07-12 19:28:02 -07:00
Phil Olynyk
67ef9f291e
Clean up by deleting unused threading code and re-grouping declarations
2019-07-12 15:58:14 -04:00
Seeker4
5bf71e2a55
Fix problem with null font name. Forced default font for Mac will be Helvetica.
2019-07-10 21:35:14 -07:00
Seeker4
01f98d1583
Merge branch 'master' into fonts
2019-07-10 15:15:14 -07:00
Seeker4
be9ce5085b
Do not allow private font to be used for other than Application on MacOS
2019-07-10 15:13:27 -07:00
sawinglogz
74de65778e
Fix memory bug in ResMed loader.
2019-07-10 12:37:40 -04:00
sawinglogz
c1aa016a46
Add trivial unit tests for ResMed loader.
2019-07-10 12:33:00 -04:00
Seeker4
7dab22133b
Merge branch 'master' into fonts
2019-07-05 14:30:26 -07:00
Seeker4
0d0a5550d0
Do not add 10 to Hypopnea duration as was done in SleepyHead. ResMed does not report Hypopnea duration so we should not invent it.
2019-07-05 10:28:15 -07:00
Seeker4
087b18545f
Centralize all font validation and setting into new functions in common.cpp. Add registry key to System Info (call it App Key for cross-platform compatibility).
2019-07-04 18:14:41 -07:00
Seeker4
a9c3b363b9
Add some qDebug() statements for invalid start dates
2019-06-30 08:59:29 -07:00
Seeker4
85efcace3e
Add a qDebug() statement if start date for an EDF file is zero.
2019-06-28 19:53:46 -07:00
Seeker4
21c9730888
Cosmetic changes to qDebug() statements.
2019-06-28 19:52:25 -07:00
Seeker4
828a8705ab
Improve qWarning to have more data when discarding a session with first=0
2019-06-28 19:51:14 -07:00
Seeker4
b943356619
Add some qDebut statements for version mismatch.
2019-06-28 19:50:23 -07:00
Seeker4
d58bdc9452
Discard sessions with first timestamp of 0 to fix phantom date problem.
2019-06-25 06:23:04 -07:00
Seeker4
a30aa74099
Improve qWarning message to show timestamps causing the warning.
2019-06-24 10:08:53 -07:00
sawinglogz
43ec3ab4af
Fix a few PRS1 unused variable warnings that only gcc catches.
2019-06-21 21:04:16 -04:00
sawinglogz
581515e595
Merge branch 'master' into prs1-fixes-2
2019-06-21 15:26:57 -04:00
sawinglogz
ea638cdbbb
Update PRS1 series detection to use model name.
...
Also fix an issue with initializing the model names, since QObject::tr
won't work at global initialization time. And series detection needs
the untranslated names anyway.
2019-06-20 00:09:28 -04:00
sawinglogz
5a71e96ed6
Remove unused PRS1 code, add series to model names where missing.
2019-06-19 23:23:15 -04:00
sawinglogz
628ddda472
Fill out remaining PRS1 names as shown on official reports.
...
Also clean up brick detection.
The official names don't yet appear anywhere, since there's a question
of how to juggle manufacturer, series, and model name in the various
places they're (inconsistently) displayed.
Series is also used to pick the machine icon.
2019-06-19 22:19:16 -04:00
sawinglogz
423bfccc5a
Add a few comments for future 900X improvements.
2019-06-19 17:50:41 -04:00
sawinglogz
ec73958b4a
Add leak to 900X, clean up summary stats and old implementation.
2019-06-19 17:28:42 -04:00
sawinglogz
d9152436de
Add missing 900X events based on sample data.
...
They're not all fully understood, such as a pressure adjustment
variant and several different hypopnea variants, one of which
has an extra data field.
2019-06-19 16:23:28 -04:00
sawinglogz
264ff2f2fa
Add comments to 900X parsing based on sample review and discussions.
2019-06-17 17:33:39 -04:00
sawinglogz
a7f249218f
Fix start time for 900X TB, PB, and LL.
...
It turns out OSCAR silently treats span events' timestamps as
and end time when drawing.
2019-06-15 21:45:58 -04:00
sawinglogz
4e5174343e
First pass at 900X event parsing and clean up F5V3 pressure gain throughout.
...
This fixes the mask pressure graph as well as many of the events.
There are still some issues with presentation: some of the events are
being drawn at the wrong time, and certain events and statistics
don't really behave the way they're displayed.
Also several events have yet to be encountered in sample data.
2019-06-15 21:04:09 -04:00
Phil Olynyk
73a225556a
Fix date and time handling for new CMS50Dplus model
2019-06-15 15:42:47 -04:00
sawinglogz
fcd7f8d463
Finish cleaning up 900X summary parsing.
...
There are still unknown values, but they'll need to be tracked down
after events are cleaned up. They no longer emit warnings.
2019-06-13 22:20:34 -04:00
sawinglogz
b1d76becab
Fill in some 900X summary statistics values.
2019-06-13 21:29:43 -04:00
sawinglogz
2634aa0d16
Initial support for 900X summary.
...
Pressure settings are now properly being found and decoded, but there are lots
of unknown fields to figure out.
It turns out it uses the same humidifier setting encoding as F0V6, and the first
several slices seem to be the same. But pressure encodings are different, with
a gain of 0.125 instead of 0.1, presumably to allow for a maximum pressure of
30 cmH2O.
2019-06-13 20:31:21 -04:00
Phil Olynyk
589eec69ec
Merge branch 'master' into fix-cms50dplus
2019-06-13 14:09:51 -04:00
sawinglogz
52fd3a46d3
Merge branch 'master' into prs1-fixes
2019-06-12 20:37:26 -04:00
sawinglogz
4527a7091d
Clean up remaining DreamStation parsing warnings.
2019-06-12 20:37:04 -04:00
sawinglogz
d0903ce3bd
Add initial support for DreamStation Auto-Trial and CPAP-Check modes.
...
This resolves many of the unexpected value warnings in the sample
data, but there are still a bunch to tackle.
2019-06-11 21:26:40 -04:00
Seeker4
24258ea4e3
Correctly identify Climate setting as Auto or Manual in Machine Settings on Daily page.
2019-06-11 10:20:03 -07:00
Phil Olynyk
b6427de247
Add moule name to debug, force tab enable after import
2019-06-11 10:30:51 -04:00
sawinglogz
99cbe89f3e
Merge branch 'master' into prs1-fixes
2019-06-10 20:59:25 -04:00
sawinglogz
2383c11be2
Minor clean up of F0V6 summary parsing, fix GUI build bug.
2019-06-10 20:57:05 -04:00
sawinglogz
96815cb068
Add support for 700X summary data.
2019-06-10 20:30:05 -04:00
sawinglogz
4e8a6514ef
Add support for 600X summary data.
2019-06-10 15:30:22 -04:00
sawinglogz
92f029a5f4
Add support for 502G summary data.
...
Not many changes, just some new unknown settings, and warning
when there's a 0-length slice.
2019-06-10 15:07:20 -04:00
sawinglogz
a66dd145b8
Add support for 500X summary data.
...
This one's slice 8 is shorter than anything else we've seen before!
Also add support for a new slice type and noted possible values
for other data, including a possible lead on the CPAP mode.
2019-06-10 14:30:50 -04:00
sawinglogz
2120289792
Add support for 400G summary data.
...
Interestingly, it looks like settings and other slices can be of
varying length, even on the same machine. Stranger still, sometimes
the list of possible slices can change on the same machine.
2019-06-08 21:36:51 -04:00
sawinglogz
08ad973a6a
Wrap up of 400X summary for now.
...
Mostly this is commenting out warnings about values that are different
for every session. They can be sorted out later.
Humidifier status and tube temperature are cleaned up as well.
2019-06-08 14:45:57 -04:00
sawinglogz
2a82ee09d6
Refinement of 400X summary data.
...
Fixed a bug in the ramp pressure setting, identified the mask resistance
setting, and found the summary equivalent of the humidifier setting change
slice.
2019-06-08 14:21:54 -04:00
sawinglogz
e41515891b
First pass at fixing 400X summary data.
...
This is mostly a cut-and-paste of the ParseComplianceF0V6,
but the some of the slice codes and sizes are different.
Also start adding machine names for tested models.
2019-06-07 22:05:52 -04:00
sawinglogz
2ace7d3a6d
First pass at PRS1 200X humidifier settings.
...
Some of the values still aren't known, and OSCAR doesn't yet define
a channel for heated tube temperature.
2019-06-07 16:40:26 -04:00
sawinglogz
250566f3f2
Refinement of 200X compliance data.
...
The new slice type appears when humidifier settings have changed during
the session, and includes a timestamp. The session time now matches
reports.
Otherwise just comments to indicate other values seen in the sample data,
including a lead on humidifier encoding.
2019-06-07 16:03:20 -04:00
sawinglogz
ff4ec4fdab
Create slices for 200X compliance data, along with first confirmed settings.
...
There's a new slice type to be examined and additional settings remain
that vary within the sample data.
2019-06-07 14:32:53 -04:00
sawinglogz
ca23791414
First pass at 200X compliance data.
...
Lots of debug messages and unknown values, but the structure seems right.
This is largely based on a combination of the mainblock parsing for fileVersion 3
as found in ParseSummary() and the switch statements of ParseSummaryF0V6,
based on our understanding of slices from F0V23. The slice types here
come from sample 200X files.
2019-06-07 14:32:00 -04:00
Seeker4
c684eebca7
Change method of identifying the graphics engine currently in use.
2019-06-07 05:14:07 -07:00
sawinglogz
330bdb6fb3
Split ParseCompliance into F0V23 and F0V6.
...
Also add some debug messages to FV3 parsing. It's clear the current
approach is wrong. This looks a lot like the slices seen earlier,
since hbdata values appear more than once in a given file.
Also turn off summary YAML since the next bit of work will focus on
parsing.
2019-06-06 16:08:40 -04:00
sawinglogz
ce38fbcdde
Restore session end time to previous behavior, with better logging and documentation.
...
It turns out the session end time was intentionally not being set in ParseSummary,
probably due to its unreliability. This may be revisited once things are more
stable, but for now the old behavior is retained.
2019-06-05 17:08:45 -04:00
sawinglogz
fd6f3c3f0a
Resolve new PRS1 warning messages, add the missing session end time in ParseSummary.
2019-06-05 11:12:08 -04:00
sawinglogz
092d46be33
Add debug messages for exceptional events in PRS1Import::ParseSession.
...
Lots of new warnings that were being silently eaten!
2019-06-05 10:24:32 -04:00
sawinglogz
8fa5df5f89
Fix PRS1 typo, resolve use of multiple event lists and refine warning.
2019-06-05 10:00:11 -04:00
sawinglogz
44d134dee5
Fix a sign error and don't consider 1-second gaps to be BND events in PRS1.
...
Presumably due to clock drift, there are occasionally 1-second discontinuities
in waveform data, in either direction. These will need to be addressed.
2019-06-05 08:34:36 -04:00
sawinglogz
c2b8699ee9
Chase down all unusual values in F0V23 summary sample data.
...
Chunk parsing is now a lot quieter, and PS for non-auto bilevel has been fixed.
2019-06-04 23:19:35 -04:00
sawinglogz
d80426af5e
Add slices to PRS1 F0V23 summaries.
...
This doesn't have much observable effect, other than reducing a
day's total usage time if there are periods with no breathing
detected. Most of the shortcomings were obscured by information
gleaned from the events and waveform files.
2019-06-04 20:26:43 -04:00
sawinglogz
5ac6745eef
Fix PRS1 F0V23 PB parsing bug that triggered unordered data warnings.
...
A PB event obviously can't start so late that its duration ends in the future!
The fix hasn't been applied to F0V4 or F0V6 yet, since those haven't been
tested yet.
Also fix a sign bug in EventList::AddEvent when there *is* unordered data.
2019-06-04 20:11:50 -04:00
sawinglogz
2021e91426
Fix parsing PRS1 F0V2 settings and add value checks based on a few sample sessions.
2019-06-04 12:18:20 -04:00
sawinglogz
27c169e61e
Report parsing failure when PRS1 sanity checks fail.
...
Remarkably, this resulted in nearly no changes to the test output.
Only one session with 0 duration had its start/end times reset to 0,
since it will no longer get imported.
2019-06-03 22:01:02 -04:00
sawinglogz
1a0a4bbf52
Convert compliance "slices" to events with a starting delta.
...
Also fix the related enums and add more value checks.
Also add YAML output of the cumulative mask-on slice time.
2019-06-03 20:12:17 -04:00
sawinglogz
a6455b6b05
Add sanity check for presumed humidifier setting in compliance.
...
Also suppress "untested" user alerts for a known bogus model number.
2019-06-03 14:21:06 -04:00
sawinglogz
66585d939e
Chase down all unusual values in 251P compliance sample data.
...
The big discovery is that slices aren't slices with durations,
they're events with a starting delta.
2019-06-02 21:50:45 -04:00
Seeker4
f4f1a4a002
Clearly separate build data from run-time data.
2019-06-02 10:24:17 -07:00
Seeker4
59270e00c6
Add Help/System Information to display full build information, active graphics engine, and data directory.
2019-06-01 19:51:18 -07:00
Seeker4
9561e56ad9
Make xxxBuildInfo functions to create and return build information.
2019-06-01 15:12:38 -07:00
Seeker4
86d0c11ddd
Remove GIT revision and graphics engine from titlebar (info remains in debug log). Retain [Branch] and [LegacyGFX] for a BrokenGL build.
2019-06-01 07:57:28 -07:00