Phil Olynyk
1953a20cdd
Added Romanian translation file
2019-07-22 17:21:11 -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
Seeker4
b4a64fa8e6
Hide pie chart when taking screen capture. Refactor code in daily.cpp to make use clearer and save html for possible future use.
2019-07-18 22:39:08 -07:00
Seeker4
9d25359138
Version code and release notes for Oscar-1.1.0-testing-1
2019-07-18 22:37:53 -07:00
Seeker4
3f42053a1d
Yet another attempt to calculate the number of months for Statistics page monthly view
2019-07-18 22:36:07 -07:00
Phil Olynyk
6fcc4e9af1
Add number of years times 12 to lastmonth - then trim to 12 max
2019-07-18 21:16:05 -04:00
Phil Olynyk
4ad282768c
Merge branch 'master' into fix-png-profile
2019-07-15 16:55:19 -04:00
Phil Olynyk
335737259f
Use mogrify to clean up png color profile for logo files
2019-07-15 16:42:08 -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
39542ba7db
Move Pie Chart option from Preferences dialog to View menu.
2019-07-13 14:53:57 -07:00
sawinglogz
d45c9f1449
Fix tests broken by 67ef9f29
.
2019-07-13 09:59:57 -04:00
Seeker4
14611bd591
Change default order of graphs on Daily page.
2019-07-12 19:29:33 -07:00
Seeker4
8f5ed48ae8
Make sure tool buttons on Welcome page are repainted after a font change.
2019-07-12 19:28:57 -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
Phil Olynyk
b497b3ccbb
QT 5.7 doesn't like comparison of naked chars - construct a QLatin1Char instead
2019-07-12 15:26:05 -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
a382733d7c
Make Resmed card warning responsive to application font changes.
2019-07-09 07:14:00 -07:00
Seeker4
7dab22133b
Merge branch 'master' into fonts
2019-07-05 14:30:26 -07:00
Seeker4
dbabc4cd58
Suppress duration on tooltip and event list if duration is zero (which usually means unknown duration as CPAP machine did not report it)
2019-07-05 10:29:57 -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
a424a1903e
Add font validation and setting methods. Call at startup or after preference changes to force fonts to be acceptable to operating system and to set application font.
2019-07-04 18:21:16 -07:00
Seeker4
86d5c074a4
Set tool button fonts correctly if application font is changed.
2019-07-04 18:20:19 -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
94f71ad4c2
Make tool buttons in middle of screen respond to change in application font
2019-07-04 18:11:12 -07:00
Seeker4
e0c70bf082
Update date display on Overview page when font is changed in Preferences dialog
2019-07-02 08:25:47 -07:00
Seeker4
a464c5c2ca
Refresh various displays to reflect any font changes made in preference settings.
2019-07-02 08:04:43 -07:00
Seeker4
5b047af0e3
After preference setting, update font of timestamp at bottom of graphs
2019-07-02 08:01:20 -07:00
Seeker4
3e30850b75
Fix some incorrect HTML
2019-07-01 21:47:09 -07:00
Seeker4
358830d364
Remove HTML font settings so font is controlled by application settings and not a hard-coded font.
2019-07-01 21:45:01 -07:00
Seeker4
a9c3b363b9
Add some qDebug() statements for invalid start dates
2019-06-30 08:59:29 -07:00
Seeker4
6a7661f516
Fix crash in CPAP rebuild byt ignoring Day entry with first = 0.
2019-06-30 08:57:16 -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
43462f39d3
Correct typo in comment
2019-06-24 10:12:43 -07:00
Seeker4
a30aa74099
Improve qWarning message to show timestamps causing the warning.
2019-06-24 10:08:53 -07:00
Seeker4
eaa93a2ff9
Improve error message on Statistics page when no data is found.
2019-06-24 10:07:40 -07:00
Seeker4
775eefee71
Allow a Windows path with drive letter to be used as an argument for --datadir
2019-06-24 10:05:58 -07:00
Seeker4
641ebbde54
Merge branch 'master' into printing
2019-06-22 18:22:57 -07:00
Seeker4
461abde2e6
Better qDebug messages when rebuilding data
2019-06-21 22:09:19 -07:00
Seeker4
bee6364c5e
Write date and time OSCAR started to debug log
2019-06-21 22:08:44 -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
Seeker4
1b87dda460
Improve qdebug statement identifying printer font
2019-06-21 11:57:22 -07:00
Seeker4
6a4c947569
Merge branch 'master' into printing
2019-06-21 11:06:53 -07:00
sawinglogz
2e6cdd6de9
Fix conflict between private fonts and QFontComboBox.
...
This fixes an issue where the default application font on macOS
would get reset if a user saved their preferences.
2019-06-21 11:49:55 -04:00
Phil Olynyk
e210813156
Remove Q_WS_X11 from main.cpp and change it to Q_OS_LINUX in reports.cpp
2019-06-21 11:02:35 -04:00
Phil Olynyk
41efbcab38
Remove bash file that chanced PlaceholderText to Text
2019-06-21 09:23:39 -04:00
Phil Olynyk
cb68e48bda
Remove colorrole PlaceholderText from mainwindow.ui
2019-06-21 09:20:51 -04:00
Seeker4
7003afcc64
Force fonts for Statistics page and printing.
2019-06-20 16:13:04 -07: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
Seeker4
d7cad5471f
Minor tweaks to cell and row spacing to improve printed report. Negligible effect on screen view.
2019-06-16 15:30:39 -07: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
8b6d11f6f4
Merge branch 'master' into fix-cms50dplus
2019-06-15 19:11:06 -04:00
Seeker4
aabd97d537
Correct loss of previous changes.
2019-06-15 15:09:04 -07:00
Phil Olynyk
3f555177c4
Tweak the oximeter import ui for the CMS50D+
2019-06-15 15:59:11 -04:00
Phil Olynyk
73a225556a
Fix date and time handling for new CMS50Dplus model
2019-06-15 15:42:47 -04:00
Seeker4
41c7d43f7b
Print Statistics report with pagination, larger font on landscape orientation.
2019-06-15 11:58:02 -07:00
Seeker4
aa8e3bd9e5
Partial code for printing in blocks of html.
2019-06-14 21:17:43 -07: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
Phil Olynyk
cef3827658
Merge branch 'master' into fix-linux-stats
...
Get all of sawinglogz PRS changes.
2019-06-13 13:41:09 -04:00
Phil Olynyk
917890e077
Fix errors in linux conditional code
2019-06-12 23:27:46 -04:00
sawinglogz
36c4277556
Merge branch 'master' into prs1-fixes
2019-06-12 22:31:07 -04:00
Seeker4
c1d73636a2
Merge branch 'master' into printing
2019-06-12 18:38:54 -07:00
Seeker4
6dfb8fda6e
Change #ifdef Q_WS_X11 to Q_OS_LINUX.
2019-06-12 18:37:06 -07: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
Seeker4
575b9a5372
More refactoring and re-organizing.
2019-06-12 13:32:22 -07: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
a628e2a9ff
Move statistics printing code from mainwindow.cpp to statistics.cpp. Abandon printing of Help subsystem pages.
2019-06-11 16:43:13 -07:00
Seeker4
a4abb7d5d6
Break monolithic statistics page html into separable components.
2019-06-11 11:34:00 -07: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
Seeker4
610c935191
Correct error in calculating number of periods in monthly report.
2019-06-11 06:28:34 -07: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
Phil Olynyk
d3c10ca745
Add shell file to fix UI files for old QT versions - uses sed (Linux only)
2019-06-08 17:48:36 -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
c93932664c
Use decimal session IDs for chunk YAML file names, add original file path to YAML.
2019-06-07 21:12:55 -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
Seeker4
b92502ac63
Make pointer to data directory in System Information message box be clickable to open the directory.
2019-06-07 05:00:23 -07:00
sawinglogz
7a00009a56
Add result of parsing/importing to PRS1 chunk and session YAML.
2019-06-06 16:50:40 -04: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
26f6e15a75
Add YAML output for session slices.
2019-06-03 20:56:40 -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
8dd04397cc
Show hours/day that defines compliance on Statistics screen. Update Welcome message to show usage in red if hours less than profile setting (was less than 4).
2019-06-02 17:48:27 -07:00
Seeker4
269daffaac
Merge branch 'master' into titlebar
2019-06-02 10:31:21 -07:00
Seeker4
f4f1a4a002
Clearly separate build data from run-time data.
2019-06-02 10:24:17 -07:00
Norman Heino
af31b87889
Graph combo box: always adjust size to contents
...
Fixes 0000021
2019-06-02 07:51:11 +02: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
Seeker4
91bf0d097e
Write build and other identifying information to the beginning of the debug log.
2019-05-31 21:15:56 -07:00
sawinglogz
5fee567066
Fix PRS1 loader bug where chunks could be incorrectly skipped.
...
This doesn't fix the bigger bug where files are skipped based on
their filename rather than the actual chunk session IDs. That's
a trickier challenge for another day.
2019-05-31 21:47:28 -04:00
sawinglogz
264c41379b
Fix PRS1 compliance parsing based on 251P data, check for any unexpected values.
...
Also get rid of a premature parsing check in ScanFiles.
2019-05-31 21:00:35 -04:00
Seeker4
a2232d4b61
Merge branch 'master' into Legacy
2019-05-31 16:04:33 -07:00
Seeker4
98df2c9a46
Force use of Software graphics engine (aka LegacyGFX) if shift key held down during program start or --legacy command line parameter present.
2019-05-31 15:50:16 -07:00
sawinglogz
a327a7ed1c
Add logging of unexpected data to ParseCompliance, disable broken 200X compliance.
2019-05-31 16:58:58 -04:00
sawinglogz
bc3b93cf9c
Merge branch 'master' into prs1-split-parsing
2019-05-30 16:33:55 -04:00
sawinglogz
f62d99bb31
Add machines to tested PRS1 list, alert user if their machine is untested.
...
This introduces a very slight change UI behavior, where the user
will receive an alert if their machine has a supported family/version
but is a model number for which we don't have any test data.
Also, the user alert for an unsupported machine has been updated
to align with the actual underlying parsing limitations. It's
possible this will create some new warnings, but it doesn't seem
like any such machines would have worked anyway, in which case
an explanatory message is an improvement.
The "untested" alert will happen on import once per launch of OSCAR.
Ideally this would only happen the first time an untested machine is
imported, but that will require figuring out how to serialize an
additional value in the user's machine profile.
2019-05-30 16:32:57 -04:00
Seeker4
76e6f44991
Calculate compliance as number of compliant days / total number of days (instead of days used) so statistics matches overview calculation.
2019-05-29 19:35:19 -07:00
sawinglogz
135ac25c1e
Add YAML output for PRS1DataChunks.
...
Also move a data check from PRS1Import::ImportSummary to PRS1DataChunk::ParseSummary
to prevent crashing in regression tests.
2019-05-29 12:11:53 -04:00
sawinglogz
ea008273ab
Add PRS1DataChunk::ParseEvents for testing and future unification.
2019-05-29 11:20:20 -04:00
sawinglogz
d0150d18ef
Limit raw data in PRS1/Session YAML to 100 bytes per entry.
...
This changes the reference output, compared to prior versions, but
it runs much faster and doesn't affect user-observable behavior.
2019-05-28 21:09:17 -04:00
sawinglogz
1892ceda85
Clean PRS1ParsedEvents and reorder PRS1Import::Parse*Events for more consistency, no functional changes.
2019-05-28 18:25:08 -04:00
sawinglogz
7c949fc843
Convert PRS1ParsedEvent enums to static constants, update switch statements.
2019-05-28 16:05:23 -04:00
Seeker4
c438ef3872
Merge branch 'master' into Statistics
2019-05-27 11:24:18 -07:00
Seeker4
020678f2f1
Documentation additions.
2019-05-27 11:22:38 -07:00
sawinglogz
3b4a5b4dd6
Clean up PRS1Import::ParseF*Events functions in preparation for merging, no functional changes.
2019-05-27 12:38:55 -04:00
sawinglogz
685527b993
Remove unused ParseSummaryF* functions, move ParseSummary from PRS1Import to PRS1DataChunk.
2019-05-27 11:14:55 -04:00
sawinglogz
e47c4934ef
Merge PRS1Import::ParseSummaryF* functionality into PRS1Import::ImportSummary.
...
Only PRS1Import::ParseSummaryF0V23 has disappeared, being merged into
ImportSummary. The only change it needed to subsume the functionality of
all other variants was the addition of one extra setting.
The rest of the now-unused variants will be removed next.
2019-05-27 11:05:34 -04:00
sawinglogz
44e4b25471
Move PRS1Import::ParseSummaryF0V23 in preparation for merge; no changes.
2019-05-27 10:28:14 -04:00
sawinglogz
4d1b947e22
Split PRS1Import::ParseSummary into ImportSummar/ParseSummary.
2019-05-27 10:25:57 -04:00
sawinglogz
e3a4edaca2
Add PRS1ModelInfo to manage the set of supported and tested machines.
...
Also move an extra unsupported check out of PRSImport::ImportSummary
into CreateMachineFromProperties, where it should intervene before
reaching PRS1Import. Leave a warning debug message in its place.
2019-05-27 10:05:16 -04:00
Norman Heino
d2eccabbc7
Fix disabling dark mode on macOS Mojave
2019-05-27 05:51:44 +02:00
sawinglogz
739ba7d5d5
Clean up ParseSummaryF5V3 to align more closely with all other summary parsers.
2019-05-26 19:02:08 -04:00
sawinglogz
44558e4c06
Merge redundant code into single PRS1DataChunk::ParseHumidifierSetting function.
2019-05-26 18:46:26 -04:00
sawinglogz
d13b417d5b
Fix regression from eb758602
that was missed by the initial testing.
2019-05-26 17:43:10 -04:00
sawinglogz
923fb7bf86
Merge redundant code into single PRS1DataChunk::ParseFlexSetting function.
2019-05-26 17:36:12 -04:00
sawinglogz
53f1a881a3
Split parsing from importing for compliance (brick) data.
...
This isn't fully tested yet, since I don't currently have fileVersion 2 samples.
It has been tested with 200X devices and doesn't change behavior there,
but the slice parsing immediately bails, so it's not really being exercised.
It seems very weird that "slices", whatever they are, would only show
up on bricks, the least capable devices. This needs more investigation.
2019-05-26 14:17:58 -04:00
Norman Heino
6b7fe4c8f2
Fix use-after-free in Profile::UnloadMachineData
2019-05-26 17:18:42 +02:00
sawinglogz
eb75860221
Split parsing from importing for F0V2 and F0V3 summaries.
2019-05-25 21:57:29 -04:00
sawinglogz
7a153a6516
Split parsing from importing for F0V4 summaries.
2019-05-25 21:25:56 -04:00
sawinglogz
e49c947b6b
Split parsing from importing for F0V6 summaries.
2019-05-25 21:08:53 -04:00
sawinglogz
b6c35c7610
Split parsing from importing for F3 (probably V6) summaries.
...
This looks discouragingly redundant at first glance, but eventually
the import stage will probably be unified across all families, leaving
the parsers the only difference. That'll happen after all summary
importers have been split.
2019-05-25 19:43:35 -04:00
sawinglogz
6b1b7e225c
Split parsing from importing for remaining F5 summaries.
2019-05-25 19:21:46 -04:00
sawinglogz
1cd7ac7c14
Merge identical F5V0 and F5V1 and remove unused F5V2 summary parsers.
2019-05-25 18:01:09 -04:00
sawinglogz
0d8e37c94c
Split parsing from importing for F0 events.
2019-05-25 17:00:44 -04:00
sawinglogz
abac19bbf1
Split parsing from importing for F3V3 events.
2019-05-24 20:09:53 -04:00
sawinglogz
5a88887cc3
Split parsing from importing for F3V6 events.
2019-05-24 19:41:42 -04:00
sawinglogz
a4612a4f24
Split parsing from importing for F5V0, F5V1, F5V2 events.
2019-05-24 17:08:51 -04:00
Seeker4
704395dbda
Initial attempt at recalculation number of periods for annual statistics
2019-05-24 12:43:49 -07:00
Phil Olynyk
f05cc5fbc5
warn empty filename for QT < 5.12
2019-05-24 16:22:44 +00:00
Phil Olynyk
a4cf207bd1
replace QDir.isEmpty() with QDir.count() == 0 for QT < 5.9
2019-05-24 16:22:44 +00:00
Norman Heino
07372487ac
Save session info when unloading machine data
...
Fixes 0000046
2019-05-24 05:28:48 +02:00
sawinglogz
a5b4851583
Remove unused code from PRS1 event parsers.
...
Also temporarily disable the time-consuming chunk unit test, since
the current work is on conversion from chunk to sessions.
2019-05-23 12:17:21 -04:00
Norman Heino
a2ff7ef95e
Perform UI updates in bulk before/after screenshot
...
Fixes 0000074
2019-05-23 05:10:34 +00:00
Seeker4
498e15c56b
Remove some WebKit code (there's lots more to go).
2019-05-22 19:03:59 -07:00
sawinglogz
795e9414be
Split parsing from importing for F5V3 summaries.
...
This looks even uglier than the F5V3 event split for now,
since portions of the fileVersion 3 parsing are still stuck in
PRS1Import, and can't be reasonably moved until all the parsers
are split into PRS1DataChunk.
Also, PRS1ParsedSettingEvent may be the wrong abstraction. That's
a first attempt, so that it can inherit PRS1ParsedEvent's notion
of gain and unit, and because m_parsedData is currently a list
of PRS1ParsedEvent pointers. But it has no notion of time (start=0)
and requires yet another enum to specify which setting it
represents.
This should be revisited once all the parsers have been split
and the summary parsing can be examined in more detail.
2019-05-22 20:11:48 -04:00
sawinglogz
355a85a1fc
Tweak Session YAML output to print sane floats instead of full precision.
2019-05-22 19:59:10 -04:00
Seeker4
4697f84ea9
Revise Statistics page heading to use less space. Reformat and correct errors in HTML strings.
2019-05-22 13:49:28 -07:00
sawinglogz
5b959efc37
Split parsing from importing for F5V3 events.
...
This doesn't look much prettier yet, since it requires double the
switch statements, but the expectation is that once all event
parsers are split out from import, the import routines will be
identical among all machines, and can then be consolidated.
Regardless, it's important to drive a wedge between file parsing
and the internal database structure.
2019-05-22 11:00:45 -04:00
Seeker4
a433b29af1
Change heading from Prescription Settings to Machine Settings
2019-05-21 16:24:21 -07:00
Seeker4
e22f5b87ef
Merge branch 'master' into Database
2019-05-21 15:15:52 -07:00
Seeker4
7fc534f75b
Format cmH2O properly in machine settings on Daily page. Needed only for ResMed and because formatted data is saved in database at original import.
2019-05-21 15:12:42 -07:00
Seeker4
efc03004a6
Add more method documentation for Doxygen.
2019-05-21 15:11:53 -07:00
Seeker4
811ac9e3a9
Improve documentation about OSCAR for Doxygen use.
2019-05-20 01:27:50 -07:00
Seeker4
d7d1fd3095
Merge branch 'master' into SessionBar
2019-05-19 17:48:34 -07:00
Seeker4
ff2bdf3d01
Session bar now shows "no sessions present" if there are not sessions, instead of showing last days's sessions.
2019-05-19 17:44:10 -07:00
Seeker4
f5e9b2d3da
Remove comment about screen capture being broken on Mac.
2019-05-19 11:17:14 -07:00
sawinglogz
f8e4ff754b
Add OSCAR version number to PRS1 unit test logs.
2019-05-18 19:46:24 -04:00
sawinglogz
2bfae3531f
Merge branch 'master' into prs1-overhaul
2019-05-18 19:28:45 -04:00
sawinglogz
4511ee3677
PRS1 parsing regression test: generate YAML for each parsed chunk.
...
Each input file's chunks get emitted into a single output YAML file. As parsing
gets separated from conversion/import, this will allow for testing and
examination of the parsed input files before they are transformed into
sessions.
2019-05-18 19:20:36 -04:00
sawinglogz
21adfb7987
Fix header parsing for 1160P event files, fix misconceptions in ReadWaveformHeader.
...
Now that we check header checksums, it uncovered a problem parsing 1160P event
headers. It turns out that the 1160P uses a "waveform" header for its .002
events files. So we can't use the file extension to decide which header to
parse, but there's a flag in the standard header that seems to reliably indicate
a waveform header. The 1160P events are listed at fixed intervals, as are
waveforms, so the flag has been named "interval" rather than "waveform."
The 1160P event headers have more than 2 signals in the header and an interval
longer than 1sec. This clarified the meaning of multiple waveform header fields
that were previously being parsed incorrectly.
2019-05-18 19:17:55 -04:00
Norman Heino
d0f0aed29d
Improve screenshot feature
...
Limit screenshots to OSCAR's application window under macOS.
Use main window geometry as basis for screen capture rectangle, removing
the need for resizeing hacks.
Tested on:
* macOS 10.14
* Ubuntu 18.04
* Windows 10
2019-05-18 15:30:10 +02:00
Seeker4
c6c11fd4f9
Fix crash when taking screenshot before a profile is open.
2019-05-17 23:44:39 +00:00
Seeker4
e033a5a4ef
Tweaking the white rim in the lower right corner of 32x32 icon for taskbar etc.
2019-05-16 22:33:05 -07:00
Seeker4
e80c444475
Round 3 of logo and icon revisions with extensive pixel-level editing of smaller icons. Ruth may make further changes.
2019-05-15 18:01:06 -07:00
sawinglogz
ccafa1f16e
Calculate and check PRS1 CRC32 on V3 files, fix memory leak.
2019-05-15 17:41:37 -04:00
sawinglogz
1c564fb296
Calculate and check PRS1 CRC16 on V2 files.
2019-05-15 15:16:14 -04:00
sawinglogz
c8cd66992a
Split PRS1DataChunk::ReadHeader into ReadHeader/ReadNormalHeaderV2/ReadNormalHeaderV3.
2019-05-15 12:32:39 -04:00
Seeker4
3e5d3a901b
Set window icon to 32x32 rather than 24x24.
2019-05-15 16:13:57 +00:00
Seeker4
d7d1446bfc
Second pass at new icons with manual editing of smaller icons.
2019-05-15 16:13:57 +00:00
sawinglogz
d3c6d6445b
Split PRS1DataChunk::ReadHeader into ReadHeader/ReadWaveformHeader.
2019-05-15 10:26:31 -04:00
sawinglogz
e07c4ce63c
Split PRS1DataChunk::ReadHeader into ReadHeader/ReadData.
2019-05-15 08:36:31 -04:00
Norman Heino
a074cffa5b
Fix macOS application menu
2019-05-15 06:49:12 +02:00
Norman Heino
a5c1e8204c
Increase mask vent rate ranges
2019-05-15 06:48:18 +02:00
sawinglogz
451963de25
Move chunk parsing into PRS1DataChunk class.
...
The diff looks messy, but it's mostly chunk -> this search-and-replace.
2019-05-14 22:49:41 -04:00
sawinglogz
7103650023
Move PRS1Loader::ParseChunk variable declarations and V3 header unpacking to the appropriate scope.
2019-05-14 21:49:43 -04:00
sawinglogz
d7cd22c918
Separate checksum reading in PRS1Loader::ParseChunk instead of burying it with other data.
...
While slightly more verbose, this makes the code more clearly correct.
2019-05-14 20:47:00 -04:00
sawinglogz
d216e677e1
Simplify PRS1Loader::ParseChunk by using a chunk instead of local variables.
2019-05-14 19:57:01 -04:00
sawinglogz
74863e538a
Split PRS1Loader::ParseFile in to ParseFile/ParseChunk.
2019-05-14 18:57:04 -04:00
sawinglogz
76053b0469
Check for format change before coalescing PRS1 chunks, move data warnings out of parsing.
2019-05-14 16:20:32 -04:00
sawinglogz
6e12cfea61
Remove spurious warning about weird PRS1 session IDs
2019-05-14 16:17:23 -04:00
sawinglogz
9b3aaad4b0
Move PRS1 waveform chunk coalescing out of parsing and into importing.
2019-05-13 21:23:20 -04:00
sawinglogz
f19ad331c9
Add debugging output to all error handling in PRS1 loader.
2019-05-13 21:23:20 -04:00
sawinglogz
766f08420b
Comment out unused constant in CMS50 loader.
2019-05-13 12:15:06 -04:00
Seeker4
350678b48b
Remove external flow from 100, 200 sizes for program use. Update icon files.
2019-05-12 09:58:27 -07:00
Seeker4
b375cbbaad
New set of icons from Ruth, with outer glow effect. Put work files in new Building/Icons directory.
2019-05-11 23:29:19 -07:00
Seeker4
c427c550a4
Remove win_icon.rc from file list. win_icon.rc pointed to bob image.
2019-05-11 23:28:29 -07:00
Seeker4
b87e700119
Initial code to show ResMed EPR with a space between number and cmH2O
2019-05-10 17:53:09 -07:00
Seeker4
0967b2013e
Update language display dialog so it comes to the top of the Windows stack when started.
2019-05-10 01:29:48 +00:00
Phil Olynyk
d57116b1e4
Merge branch 'master' into Fix-oximeterimport
...
Pick up recent changes to master
2019-05-09 13:14:08 -04:00
Phil Olynyk
258b549967
Clean up oximeter import date/time handling
2019-05-09 13:05:53 -04:00
Phil Olynyk
240f6db3d5
Change UTC to LocalTime for session times
2019-05-09 11:08:59 -04:00
Phil Olynyk
2526b6691d
Revert "Change UTC to LocalTime for session times"
...
This reverts commit 332ea6f159
.
It should have been in a branch
2019-05-09 10:43:47 -04:00
Phil Olynyk
332ea6f159
Change UTC to LocalTime for session times
2019-05-09 10:34:34 -04:00
sawinglogz
fb29ce0222
Fix one more warning. setChecked() only takes a boolean, Qt::Checked/Unchecked are only used for tri-state checkboxes.
2019-05-08 17:18:00 -04:00
sawinglogz
e47660e15a
Disable broken "ignore" setting for PRS1. Fixes #73 .
2019-05-08 17:09:15 -04:00
sawinglogz
6e6bc81be8
Fix session averaging bug discovered when fixing warning. May fix #59 .
2019-05-08 17:08:12 -04:00
sawinglogz
e67aae78cf
Make warnings fail regression tests, fix warnings.
2019-05-08 17:06:17 -04:00
sawinglogz
609e02b2c5
Fix to update_gitinfo.bat from Guy for the case where no git_info.h exists yet.
2019-05-08 12:01:06 -04:00
sawinglogz
71c05c4625
Change the current working directory instead of using --work-dir.
...
It was previously working in a false-positive state, where it would behave as
expected if you ran "make" from within a subdirectory of the git repo. If you
ran make anywhere else, at least diff-index would break.
2019-05-07 16:50:58 -04:00
sawinglogz
a458fdfad6
Merge branch 'master' into gitinfo-tweaks
2019-05-07 15:58:01 -04:00
sawinglogz
c42e5d7ef0
update_gitinfo.bat fixes from Guy
2019-05-07 15:56:21 -04:00
sawinglogz
5923325917
Multiple update_gitinfo tweaks.
...
Change -C to --work-dir to work on earlier versions of git.
Add "+" to the revision number if there are uncommitted changes.
Only rewrite the git_info.h if there are changes, so that make doesn't think the file has changed.
2019-05-07 09:41:51 -04:00
Seeker4
124ac57166
Fix typo in qDebug() statement
2019-05-06 18:29:54 -07:00
Seeker4
c751182aa5
Comment-out obsolete code to create Welcome message.
2019-05-06 18:08:49 -07:00
sawinglogz
545d48afc4
Merge branch 'master' into prs1-refactor-for-testing
2019-05-06 12:25:29 -04:00
Seeker4
3ada6741d9
Preliminary release notes for OSCAR 1.0.2 and version id changes to beta-1.
2019-05-06 02:52:17 +00:00
Seeker4
90b6db3b3f
Make titlebar show active graphics engine (Open GL, ANGLE, or LegacyGFX).
2019-05-05 23:18:08 +00:00
sawinglogz
982e7dddaf
Merge branch 'master' into prs1-refactor-for-testing
2019-05-05 18:15:49 -04:00
sawinglogz
2a9af3de0a
Fix memory leak in PRS1 unit test. Test runs now produce reproducible output.
...
This fix also seems like it cleans up some of the weird session IDs. It appears
that session IDs were sticking around after each machine, adding those
IDs or sessions to subsequent machines in that run of the test. Since the
test was being run piecemeal while under development, this produced
different behavior when being run with different segments of the data.
2019-05-05 16:59:53 -04:00
sawinglogz
e4082fff22
Add compiler flags and debug messages in search of memory access errors.
2019-05-05 15:50:38 -04:00
sawinglogz
9da60239c8
Fix memory access error in certain summary files.
...
This currently doesn't make the parsing more complete, it just bails rather than running off the end of memory.
2019-05-05 15:45:50 -04:00
sawinglogz
a603f9e189
First PRS1 loader regression test: walk through a directory of SD cards and generate YAML for each session.
...
This has already exposed many limitations, and possibly some memory trampling. Before this will work as
a true regression test, we'll need to address both of those, so that this produces reliable, reproducible
output.
2019-05-04 21:53:02 -04:00
sawinglogz
d4b65d8e73
Make Event and Loader/PRS1Loader protected and private members public during unit testing.
2019-05-04 21:50:45 -04:00
sawinglogz
af375af090
Disable GUI widgets in Loader and PRS1Loader when unit testing.
2019-05-04 21:49:50 -04:00