sawinglogz
cfca48e505
Reconcile differences in PRS1 compliance vs. summary for F0V23 and F0V6.
...
Propagated a bug-fix in some variations that avoiding crashing on
zero-length data.
2020-08-04 17:12:14 -04:00
sawinglogz
93a056b252
Add 462P and 400X120 to the list of tested machines.
...
Also update F0V4 warning based on new test data.
2020-08-03 14:18:25 -04:00
Phil Olynyk
961fdb13db
Clean up formatting, add debug and warnings, fix STR length test to allow multiple daily imports.
2020-08-03 14:01:04 -04:00
Guy Scharf
5cefc90a16
Fix CPAP hours and AHI calculations
...
Daily page: total hours was elapsed time of all machines, including large blocks that are not CPAP. Now just MT_CPAP time.
Welcome page: Same problem with total hours reporting, and AHI was calculated as events/total hours instead of events/CPAP hours.
Statistics page: Same problems as on Welcome page -- total hours and index calculations. Changed to using total CPAP hours.
2020-07-24 11:29:19 -07:00
sawinglogz
eaf4ab69cf
Update 700X warning based on new test data.
2020-07-24 12:51:22 -04:00
sawinglogz
cfabdbe742
Improve gcc fix from d2fc5ac
.
...
Evidently gcc doesn't recognize inline forward declaration, but clang does.
I wonder who is right?
This was previously addressed by adding an #include. Instead, this patch
adds a standalone forward declaration of the QXmlStreamReader/Writer classes.
This has been tested and verified to compile with gcc and clang.
2020-07-21 13:51:20 -04:00
sawinglogz
7316ac676c
Add a menu item to create a zip of all diagnostic logs.
...
Also fix a buffering issue in XmlRecorder that left devices.xml empty
in the zip.
2020-07-21 13:25:17 -04:00
sawinglogz
6a658b3be0
Enable serial device recording in the main application.
...
This is transparent to the user and is recorded into a log directory within
the OSCAR_Data directory.
Also add log rotation so that these logs don't grow forever.
2020-07-21 13:25:16 -04:00
Guy Scharf
d8a7cf2133
Remove unused code -- no effect on compilation
2020-07-19 16:42:28 -07:00
sawinglogz
65b4440428
Add preference for B&W printing.
2020-07-18 12:50:34 -04:00
harre
d2fc5ac5d4
Add missing include to fix compile error
2020-07-11 01:41:31 +02:00
sawinglogz
eb5bef5fba
Move DeviceConnectionManager's global static variable into a local static.
...
This fixes the same issue that was just fixed in XmlReplayEvent, though
this one hadn't yet caused a crash.
2020-07-10 12:50:34 -04:00
sawinglogz
c7db24877c
Split XML recording/replay into its own files.
...
The only code change was to move XmlReplayEvent::s_factories into
a local static variable accessed by XmlReplayEvent::factories() to
ensure that it will be initialized before it is used.
Otherwise there is no guarantee in C++11 that global variables
in different source files (translation units) will be initialized
in any particular order.
2020-07-10 12:44:15 -04:00
sawinglogz
610f6b8188
Reorder function declarations within XmlReplay and XmlReplayEvent for easier reference.
...
No functional change.
2020-07-10 11:51:54 -04:00
sawinglogz
c9ebc0d175
Move function definitions out of XmlReplayEvent and XmlReplayLock class declarations.
2020-07-10 11:51:54 -04:00
sawinglogz
d5cb629069
Minor device connection manager clean-up.
...
Also fix a minor bug where the wrong error code was reported in
a rare edge case.
2020-07-10 11:51:53 -04:00
sawinglogz
bdda964bf2
Add documentation and comments to device connection manager.
...
No change to code.
2020-07-10 11:51:53 -04:00
sawinglogz
e47610cf5c
Minor cutting/pasting in device connection manager.
...
No functional change.
2020-07-10 11:51:53 -04:00
sawinglogz
09a96b893e
Split connection XML recording/replay into separate files.
...
This is significant now because it will allow accurate recording of
multiple simultaneous connections.
This is important for the future because it establishes the
necessary infrastructure for recording downloaded sessions into their
own files so that they can be saved as backups.
2020-07-10 11:51:53 -04:00
sawinglogz
2d2e44fd36
Generalize XML record/replay base classes.
2020-07-10 11:51:53 -04:00
sawinglogz
a651e1405d
Add record/replay test of downloading all sessions from oximeter.
...
Also fix a crash when the recording is truncated.
2020-07-10 11:51:53 -04:00
sawinglogz
e6258d321e
Allow limited reordering of serial port replay.
...
Now a replayed read() will return the response that follows the
matching write().
When calls are made in the same order as they were during recording,
this will have no effect, and the original ordering will be replayed.
However, minor changes to the code should still result in sensible
replay until a new recording can be made.
2020-07-10 11:51:53 -04:00
sawinglogz
918f4af2c1
Add support for signals and serial port reading to XML replay.
...
Replay now passes its initial regression test when the oximeter is unplugged.
2020-07-10 11:51:52 -04:00
sawinglogz
5947751291
Add playback of most serial port operations.
...
read() isn't yet tested because it requires the readyRead signal.
2020-07-10 11:51:52 -04:00
sawinglogz
92d0af220d
Make XML recording thread-safe.
2020-07-10 11:51:52 -04:00
sawinglogz
8fbf665b89
Simplify XmlReplayEvent retrieval and add support for matching id.
2020-07-10 11:51:52 -04:00
sawinglogz
d350e47382
Track connections by name only, not by type as well.
...
Also rename getAvailableSerialPorts for clarity.
2020-07-10 11:51:52 -04:00
sawinglogz
553cf59a95
Move connection creation to DeviceConnectionManager.
...
Calling openConnection will return an open connection or nullptr.
Deleting the connection will close it.
SerialPort now uses this under the hood, while still presenting
the QSerialPort-compatible interface.
2020-07-10 11:51:52 -04:00
sawinglogz
7c98af3f86
Refactor class hierarchy for serial port XML recording.
2020-07-10 11:51:51 -04:00
sawinglogz
1630051dd1
Generate XML tags for every serial port connection event.
2020-07-10 11:51:51 -04:00
sawinglogz
3210ecd1ba
Add plumbing for intercepting and logging serial port activity.
2020-07-10 11:51:51 -04:00
sawinglogz
3afa8c87c1
Minor tidying and documentation, no functional change.
2020-07-10 11:51:51 -04:00
sawinglogz
ac1281c1d9
Add playback of serial port scan, along with supporting infrastructure.
2020-07-10 11:51:51 -04:00
sawinglogz
efbb967b5c
Add DeviceConnectionManager class to record serial port scan.
2020-07-10 11:51:51 -04:00
sawinglogz
cd29593280
Add XML serialization/deserialization to SerialPortInfo.
2020-07-10 11:51:51 -04:00
Guy Scharf
47c8ece333
Exclude Journal in calculating last day of Overview graph
...
This deals with notes that may be entered for future dates
and which should not affect the Overview graphs.
2020-07-06 11:51:09 -07:00
Guy Scharf
44b7261edd
Merge branch 'master' into updater
2020-07-04 18:21:33 -07:00
Guy Scharf
619ce66b9e
Auto check for updates
...
Checks for updates to OSCAR at startup and profile close.
Also allows user to check with Help/Check for updates.
Updates controlled by versions.xml in www.sleepfiles.com/oscar/versions
2020-07-04 18:17:25 -07:00
sawinglogz
11dfa09c7b
Add preliminary support for rare time-adjustment event observed on PRS1 550P.
...
Also add 900X150 to the list of tested machines, and update other warnings
based on new test data.
2020-06-26 12:53:52 -04:00
Guy Scharf
6e1727eb2c
New privacy tool View/Show Personal Data shows and hides personal identification from statistics window and reports
...
This option applies to the application and not just the current profile.
2020-06-04 21:25:23 -07:00
sawinglogz
7a85f9784c
Add initial device connection classes to eventually support recording/playback.
...
This initial commit is designed to change as little existing code as possible.
Once regression tests are in place that can play back previously recorded
data, we can move on to more significant changes.
2020-06-04 14:32:03 -04:00
sawinglogz
160b6124a3
Fix typo.
2020-06-04 10:01:40 -04:00
sawinglogz
cdec75b94b
Update 500G warnings based on new test data.
2020-06-04 10:01:26 -04:00
Guy Scharf
5c88770bfe
Improve language in error message windows
2020-06-03 10:02:20 -07:00
sawinglogz
d01c183ae3
Add 400X130 to the list of tested machines.
2020-05-29 12:38:39 -04:00
sawinglogz
4507f8d7a8
Fix crash when trying to import Weinmann SOMNObalance e.
...
This patch only addresses the crash, it doesn't add support for the machine.
2020-05-28 22:11:28 -04:00
Guy Scharf
7a6284e72b
Fix regression in e921e7de
2020-05-26 12:34:22 -07:00
Phil Olynyk
e921e7dee5
Add QT version check at journal.cpp:262
2020-05-26 11:48:34 -04:00
sawinglogz
4fa353a263
Fix regression in da60a5a
and underlying bug.
...
Note that operator[] on a non-const QHash inserts a default-constructed
item in the hash if the key doesn't already exist.
2020-05-23 21:51:43 -04:00
sawinglogz
47ea2bbf91
Tweak copy constructors to fix build errors in CentOS.
...
Thanks to johanfh.
Fixes #19 .
2020-05-23 11:22:59 -04:00
Guy Scharf
da60a5aa99
Correct determination of CPAP Mode
2020-05-23 05:20:33 -07:00
Guy Scharf
1659b3e6bf
New Backup Journal code using QXmlStreamWriter class
2020-05-21 20:33:43 -07:00
Phil Olynyk
2ad6a5c980
Fix debug output text
2020-05-19 14:47:54 -04:00
Phil Olynyk
ee3a79af7e
Copy new STR.edf to Backup after Backup_STR scan
2020-05-18 17:42:37 -04:00
Phil Olynyk
2d4598d5e7
Fix type in procedure name
2020-05-18 13:59:10 -04:00
Phil Olynyk
b9cccdc746
Clean up, and copy Backup/STR.edf to Backup?STR_Backup/STR_yyyymmdd.edf
...
before copying import/STR.edf to Backup/STR.edf.
2020-05-17 19:24:31 -04:00
Phil Olynyk
cf32639b06
Clean up comments and trim file paths
2020-05-16 17:31:18 -04:00
Phil Olynyk
53d0c0fbe4
Merge branch 'master' into error-message-cleanup
2020-05-16 16:18:27 -04:00
Phil Olynyk
16cd85ab02
More tidying up
2020-05-16 16:16:10 -04:00
sawinglogz
922515b3c9
Update PRS1 900X and 500G warnings based on new test data.
2020-05-16 10:09:00 -04:00
Phil Olynyk
209998fe34
Re-arrange code to backup STR.edf before other files
2020-05-15 21:27:08 -04:00
Phil Olynyk
ebd518a9f5
Make sure STR.edf is copied to Backup folder during import
2020-05-15 19:58:11 -04:00
Phil Olynyk
5b87ad6640
Comment out extra debug statements
2020-05-15 12:44:29 -04:00
Phil Olynyk
71e156dfed
Change setMin/Max to updateMin/Max in LoadEDF procedures
2020-05-14 21:10:03 -04:00
sawinglogz
759ae84f65
Update PRS1 900X and oximetry warnings based on new test data.
2020-05-13 13:40:54 -04:00
sawinglogz
2a92569393
Add 461CA and 700X120 to the list of tested machines, and refine
...
unexpected data warnings.
2020-05-12 14:08:24 -04:00
sawinglogz
5270fcd09b
Update PRS1 400X-700X warnings based on new test data.
2020-05-12 13:26:45 -04:00
sawinglogz
346208140e
Revise VS2 index to match official reports.
...
The VS2 channel is unique in that it only appears (as a flag)
when there are nonzero snores during a 2-minute period. However, the
VS index isn't the number of events (nonzero intervals) per hour,
but rather the number of snores per hour.
2020-05-07 17:36:31 -04:00
Phil Olynyk
c43479672a
Pick up some PRS changes
2020-05-07 16:45:17 -04:00
Phil Olynyk
2da3a9cd86
Track down zero time that led to future sessions
2020-05-07 16:43:52 -04:00
sawinglogz
f2fd29bc52
Update PRS1 900X warnings based on new test data.
2020-05-07 14:49:07 -04:00
sawinglogz
d9386a993b
Partial fix for database upgrade loop.
...
Resmed loader still needs to return -1 on error.
Also fixed a crasher in MainWindow::finishCPAPImport.
2020-05-06 13:40:59 -04:00
sawinglogz
ad15655ffb
Improve Viatom file selection on Windows.
...
Also remove a warning about unexpected data.
2020-05-06 11:42:03 -04:00
Phil Olynyk
1b453e2fa5
Always creaste Backup/DATALOG folder before ScanFiles
2020-05-04 19:59:59 -04:00
sawinglogz
cfe69ea7a0
Update PRS1 200X-700X warnings based on new test data.
2020-05-04 14:21:17 -04:00
Phil Olynyk
23d177b31c
Add error checks to edf header values
2020-04-30 15:27:37 -04:00
Phil Olynyk
823266f627
Check result of EDFInfo::Parse()
2020-04-30 12:42:05 -04:00
Phil Olynyk
c1f986921d
Clean up memory leak I created
2020-04-29 19:51:32 -04:00
Phil Olynyk
cf316e83e9
Revert "Clean up memory leak I created"
...
This reverts commit 832d905d04
.
2020-04-29 19:49:27 -04:00
Phil Olynyk
832d905d04
Clean up memory leak I created
2020-04-29 19:42:26 -04:00
Phil Olynyk
5b64566c59
Increment resmed data version to force rebuilds
2020-04-29 14:11:39 -04:00
Phil Olynyk
4323577412
Merge branch 'master' into add-backup-STR-file
2020-04-29 13:58:35 -04:00
Phil Olynyk
33e5561ad3
Rename STR files to use 8 digit date
2020-04-29 13:57:10 -04:00
sawinglogz
01c7f7cdc0
Exclude additional invalid samples in PRS1 oximetry.
...
Also clean up some function names and remove unnecessary code.
2020-04-29 10:41:08 -04:00
sawinglogz
5f0960aa4d
Add support for PRS1 sessions with oximetry data split between files.
2020-04-29 10:22:12 -04:00
sawinglogz
6261752022
Fix zero AHI in CSV session export when there are multiple slices.
...
This only affected PRS1, and it seems like the other places where
the broken Session::hours() result was used were:
- GT_SESSIONS, which seems to be unused
- settings_wavg, where it had no effect
The other uses of Settings::hours() were where there was only
a single slice, in which case it returned the right result:
- gSessionTimesChar::paint (the one still in use)
- Icon loader
- Resmed loader
2020-04-28 13:00:58 -04:00
Phil Olynyk
16c2784915
Always read STR.edf file from BACKUP folder.
...
Use real date for STR files in STR_Backup folder, and
only keep the longest file if the dates are the same.
2020-04-26 20:59:23 -04:00
sawinglogz
75bfdf2142
Fix Viatom loader glitch that prevented saving older sessions in a folder.
2020-04-26 14:06:48 -04:00
sawinglogz
2b6cdccb16
Update unexpected data alerts for PRS1 500X110 based on new sample data.
2020-04-24 16:58:44 -04:00
sawinglogz
5f921a0fd1
Fix inverted logic on untested data message.
2020-04-24 16:58:44 -04:00
sawinglogz
0fa066db47
Fix (mask) pressure waveform scaling for PRS1 960T.
2020-04-22 17:14:59 -04:00
sawinglogz
40553fcf5e
Add PRS1-specific "peak flow" channel used by pre-DreamStation ventilators.
2020-04-22 17:14:59 -04:00
sawinglogz
d41622443d
Remove ramp time and pressure when PRS1 ramp is off for pre-DreamStation machines.
2020-04-22 17:14:59 -04:00
sawinglogz
59e4a3af68
Add icon for older C-Series PRS1 ventilators.
2020-04-22 17:14:58 -04:00
sawinglogz
f189b2f0e2
Clean up consistency checks during import of F3V0 and F3V3.
...
Import was working, but the consistency checks made a few assumptions
that turned out not to be universally applicable, so they were
making a lot of unnecessary noise.
2020-04-22 17:14:58 -04:00
sawinglogz
141988b6bf
Add support for PRS1 F3V0.
...
Parsing is complete, import still needs review.
The only other functional change is parsing the Bi-Flex lock
setting that also applies F3V3.
2020-04-22 17:14:58 -04:00
sawinglogz
63c58ab3af
Update unexpected data alerts for PRS1 F0V2 based on new sample 550P data.
2020-04-22 17:14:58 -04:00
sawinglogz
d09005352a
Add support for rise time on DreamStation BiPAP machines (600X-700X).
...
Also add 600X150 and 700X150 to the list of tested machines, and
refine unexpected data warnings.
2020-04-22 17:14:58 -04:00
sawinglogz
41fdcd0bd3
Fix pressure relief display in statistics page.
...
Also revert 691aafd
as that change is no longer necessary with this fix.
2020-04-11 15:52:32 -04:00
Phil Olynyk
0d25d31049
Add ifdef around -Adding STR.edf information...-
2020-04-11 11:26:03 -04:00