Commit Graph

1093 Commits

Author SHA1 Message Date
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
4f83c9b184 Re-order popup labels on Overview graph to match order of slices
Also change heading on AHI Overview to show same order
    Improve some variable names for ease of understanding code
2020-08-02 20:24:56 -07:00
Guy Scharf
32026446a5 Rename variables for clarity -- no effect on code 2020-08-02 13:01:31 -07:00
Guy Scharf
484ee9c40d Popup graph Phase III: Fix previous submission. 2020-08-01 18:48:23 -07:00
Guy Scharf
24969aedbb Popout graphs Phase III: make sure all graphs repaint when new graph added. 2020-08-01 18:33:48 -07:00
Guy Scharf
5dcec07b9e Popout graphs phase II: Fix height of popped-out graphs
Popped-out graphs no longer can have their height adjusted by pulling on dock or widget window.
    This is a work-around to a problem when popping-out multiple graphs, heights of early graphs
    were increased and heights of the latter graphs were too small.
2020-08-01 13:49:39 -07:00
Guy Scharf
2712fad0c6 Popout graphs Phase I: limit dock height to screen height; preserve original graph heights 2020-08-01 12:45:02 -07:00
sawinglogz
f25f991e9f Add feature to suppress zooming when holding down the shift key.
This allows users to measure a duration without zooming.
2020-07-27 12:57:16 -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
Guy Scharf
b0d4fcd628 Merge branch 'master' into updater 2020-07-21 13:51:43 -07:00
Guy Scharf
01c663b692 Check for invalid version strings in versions.xml; fix display problem; update release notes for Phil 2020-07-21 13:50:06 -07: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
5e9d391ccc Fix a rare race condition when shutting down the logger.
This resulted in an occasional use-after-free crash every once in a while.
2020-07-21 13:25:17 -04:00
sawinglogz
162e5695b1 Update the OSCAR data zip to use the live debug log instead of creating one.
Also fix the logger so that messages are logged immediately rather than once
per second.
2020-07-21 13:25:17 -04:00
sawinglogz
20dfb666b0 Write the debug log to a file within the OSCAR data folder.
Also immediately emit debug messages to console even before the UI is
initialized.

And present a useful error if the OSCAR data folder can't be created.
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
Guy Scharf
6bf3a9c7e3 Make versions.xml case insensitive, update release notes 2020-07-19 11:44:21 -07:00
sawinglogz
a339b4679d First pass at adding B&W support for daily report printing. 2020-07-18 14:56:00 -04:00
sawinglogz
5765da4096 Fix double printing of flow waveform when there's more oximetry than CPAP. 2020-07-18 13:17:53 -04: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
d88084a342 Disable oximeter download tests by default for now.
They're not yet stable enough to be enabled as regression tests in master.
2020-07-10 14:55:25 -04: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
a89c24a194 Fix maximum zoom in when clicking on graph with popup menu visible 2020-07-07 11:07:44 -07: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
ed1871215e Change language about "guessed settings" to clarify that they are missing and yesterday's shown. 2020-07-06 10:46:08 -07:00
Guy Scharf
07aa2ad883 Merge branch 'master' into guess 2020-07-05 17:59:27 -07:00
Guy Scharf
aad1535979 WIP: Guessed settings. Code is test only. 2020-07-05 11:19:19 -07:00
Guy Scharf
7e751a80f7 Fix problems with changing auto check interval 2020-07-05 10:58:25 -07:00
Guy Scharf
70262fa425 Fix reference to old include file in auto check updates 2020-07-05 00:39:55 -07:00
Guy Scharf
155bd0b530 Auto Check Updates for testing versions.xml settings
If you are running a test version of OSCAR, it will first try to read versions.xml from your OSCAR_Data directory.
    If that fails, it will go to www.sleepfiles.com/OSCAR/versions/versions.xml
    The purpose of this approach is to allow you to test different settings in versions.xml
    This debug feature will probably be removed, or changed, when a release version is built
2020-07-04 20:18:15 -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
Phil Olynyk
f81f500215 Revert "Changed VERSION from alpha to ChrmBk for testing"
This reverts commit f57110dd87.
2020-06-29 11:54:25 -04:00
Phil Olynyk
f57110dd87 Changed VERSION from alpha to ChrmBk for testing 2020-06-29 11:31:42 -04:00
Phil Olynyk
4324000787 Merge the storageInfo branch just merged into master 2020-06-27 09:52:02 -04:00
Phil Olynyk
bbb2f5a5a5 Delete the OS-specif scanning code 2020-06-26 23:17:27 -04:00
Phil Olynyk
c69e2bacee Merge branch 'master' into storageInfo 2020-06-26 22:58:24 -04:00
Phil Olynyk
cd40fc9a9e Test if lastpath exists before adding it to path scan 2020-06-26 22:57:08 -04:00
Phil Olynyk
463836f696 Merge branch 'master' into modify-card-scan 2020-06-26 21:22:59 -04: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
Phil Olynyk
8812f3c6ed Remove bypass of card Detect for Linux - not sure why it was there 2020-06-20 21:57:03 -04:00
Phil Olynyk
0b8112219f Merge branch 'master' into modify-card-scan 2020-06-20 20:03:37 -04:00
Guy Scharf
059437b40c Fix margins problem when printing statistics page on MacOS
Despite havine a 3.3 mm margin on Windows, Linux and MacOS use a 12 mm bottom margin for an HP printer
    Set margins to 10,10,10,12 unless printer reports a larger margin; then use larger margin
    Reduce debug messages
    Fix regression that trimmed last character from user information lines
    Continue use of Helvetica font for printing Statistics
    Adjust column sizes for Standard vs Monthly reports
2020-06-11 11:01:28 -07:00
Guy Scharf
b7223560bd Remove excess diagnostics from statistics.cpp 2020-06-10 14:46:55 -07:00
Guy Scharf
88289deec4 Clean up Statistics page HTML
Now passes HTML 4.01 Transitional validator with no errors
    Also fix table alignment regression introduced in last commit
    Adjust column widths differently for Monthly vs Standard tables
2020-06-10 14:34:18 -07:00
Phil Olynyk
475bfee924 Make debug output conditional 2020-06-10 16:56:06 -04:00
Phil Olynyk
795a3a5456 add missing close paren to #elif defined(... 2020-06-10 15:47:25 -04:00
Phil Olynyk
c2c61c6629 Correct Mac define value and drop tmpfs from qDebug output 2020-06-09 22:11:34 -04:00
Phil Olynyk
80a5642ee3 Use QStorageInfo to simplify getDriveList() 2020-06-09 17:10:25 -04:00
Guy Scharf
488425df80 Improve Statistics printing
Adjust font sizing and scaling algorithm to printe more uniform reports on different platforms
2020-06-09 12:07:55 -07:00
Guy Scharf
e635bd9a0f Tweak statistics page formatting and printer font sizing 2020-06-09 10:27:11 -07:00
Guy Scharf
010d3ca9e1 Fix possible startup problem with View/Show Personal Data 2020-06-06 12:34:34 -07:00
Guy Scharf
d02d01f3f2 Fix use case where View/Show Personal Data might not work 2020-06-05 09:25:42 -07: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
Guy Scharf
db952c9738 Change VERSION to 1.1.2-alpha-0 2020-06-03 10:01:47 -07:00
Guy Scharf
8579b1d63d Change "yesterday" to "1 day ago" in Welcome message
and fix date plural in oximetry Welcome message
2020-06-03 09:36:52 -07:00
Phil Olynyk
2d69049c77 Update VERSION to v1.1.1 2020-06-02 16:41:10 -04: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
11cefbd799 Rename Turkish language and add native language name to list of names. 2020-05-28 12:41:32 -07:00
Phil Olynyk
87369f6cf7 Update version to rc-4, and fix a typo 2020-05-28 13:25:09 -04:00
Guy Scharf
7a6284e72b Fix regression in e921e7de 2020-05-26 12:34:22 -07:00
Guy Scharf
d666feb362 Merge branch 'master' into duration 2020-05-26 10:15:00 -07:00
Guy Scharf
66523e15f4 Don't display event duration when zero on flow graph 2020-05-26 10:07:59 -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