Commit Graph

615 Commits

Author SHA1 Message Date
Guy Scharf
5e5af1b541 Cleaen up some debug messages 2020-08-19 17:12:41 -07:00
Guy Scharf
2e8ee43267 Avoid scaling null pixmap to avoid warning message 2020-08-19 17:10:34 -07:00
Guy Scharf
134a30624f Improve file open diagnostic messages 2020-08-19 10:14:38 -07:00
Guy Scharf
4e0d8d33fd Changes to ResMed loader:
- Fix possible problem with rebuilding CPAP data
- Change re-import to look just at last day (full re-import will be re-added later)
- Improve detection of when a day needs to be rebuilt on re-import
- Improve some diagnostic messages
2020-08-19 10:14:02 -07:00
sawinglogz
13e8a1947d Add 452P and 650P to the list of tested machines.
Also improve support for rare F0V23 events and update other warnings based
on new test data.
2020-08-16 21:19:11 -04:00
Guy Scharf
bf6dd5c615 Improvements to ResMed loader for re-importing days
o Now compares all days, not just starting from last day imported
o Compares number of non-identical MaskOn/Off events with session count
o Hid most qDebug messages behind #define STR_EDF
o Added qWarning to open() and close() calls for improved diagnostics
o Fixed some copy() calls that were not working
2020-08-13 16:32:34 -07:00
Guy Scharf
8f3971cb09 Fix maskon/off vs session count comparison for deciding when to re-import a day 2020-08-12 17:26:14 -07:00
Guy Scharf
7c350068e0 Minor improvements to some file open and copy error messages 2020-08-12 17:25:15 -07:00
Phil Olynyk
d68afd69c4 Merge branch 'master' into fix-backup 2020-08-09 17:20:11 -04:00
Phil Olynyk
d46dd3d144 Remove existing backups before second import; also change double to qint64 in LoadEVE and LoadCSL 2020-08-09 17:17:21 -04:00
Guy Scharf
1aba6e4e51 File error checking Phase I: check all file.open() operations are successful.
file.open() checked everywhere except in loaders.
    qWarning() message written to debug log, with error number and text.
    We may want to exit OSCAR with a message in many situations, but that is not implemented yet.
    Set number of debug logs to be kept for Release version to 4.
2020-08-09 10:33:04 -07:00
Guy Scharf
4885abf76a Overview graphs right edge now on correct date in GMT+ timezones
Changed a lot of Qt::UTC to Qt::LocalTime.  Some risk of having changed ones that should not have been changed.
2020-08-09 10:25:45 -07:00
Phil Olynyk
a89b5f8cdd Merge branch 'master' into test-dataflow 2020-08-08 14:22:16 -04:00
Phil Olynyk
b35cd921c1 Compare maskevents to session count to all re-import on same day - added debug trace 2020-08-08 14:17:54 -04:00
sawinglogz
f73ef02380 Update 1030X and 1130X warnings based on new test data. 2020-08-08 11:04:34 -04:00
sawinglogz
0960384b20 Add support for compliance records from PRS1 60 Series bricks.
Add 261CA to the list of tested machines.
2020-08-04 20:59:51 -04:00
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