Commit Graph

92 Commits

Author SHA1 Message Date
sawinglogz
139e1e8a8d Recognize DS2 files with .B01, etc. file extension. 2021-11-05 14:29:12 -04:00
Jeff Norman
59e1b2817b Updated copyright year to 2022 for OSCAR files 2021-11-02 16:34:12 -04:00
sawinglogz
749c6a3358 Remove remaining Machine dependencies from PRS1 loader.
Now that properties are in the MachineInfo record, we don't need
to call PeekProperties a second time to fill out the machine
record.

Also remove some unused variables and methods from class definition.
2021-10-26 15:23:08 -04:00
sawinglogz
2281209a20 Fix gcc compile error introduced by a4296b5e.
Also make it easier to test OSCAR calculations performed after import.
2021-10-26 14:43:14 -04:00
sawinglogz
18e97bb025 Reduce PRS1Loader dependency on Machine data structure. 2021-10-26 10:28:30 -04:00
sawinglogz
de40161e8c Add ImportContext to begin reducing loader dependencies on Profile.
For now only the PRS1Loader makes use of the ImportContext.
2021-10-26 10:28:29 -04:00
Guy Scharf
9f5373ed91 Refactor functions that act on all AHI-contributing channels.
Add new AllAhiChannels ChannelID to refer to all channels that contribute to AHI.
List of AHI-contributing channels is in "ahiChannels" QVector.
2021-07-24 21:12:15 -07:00
sawinglogz
2a326c816f Move PRS1 F0V6 parsing into separate parser file.
No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 20:24:09 -04:00
sawinglogz
daaed2de79 Move PRS1DataChunk into parser header and clean up dependencies.
Also move some previously static functions into their associated classes,
which lets us remove a few unnecessary wrapper functions used for testing.

No change in functionality.

Use git blame dd9a087 to follow the history before this refactoring.
2021-05-31 14:53:23 -04:00
sawinglogz
c64376033d Fix boundary condition bugs in RawDataDevice.
bytesAvailable gets automatically calculated by QIODevice, so it doesn't
need to be reimplemented.

QIODevice doesn't necessarily buffer after a seek, and the underlying
device is unaware of peek/ungetChar, so canReadLine needs to check both
QIODevice and the device.
2021-05-24 19:59:58 -04:00
sawinglogz
0737ad9b10 Performance improvements for PRS1 regression tests.
Most of the gains were from replacing endl with '\n', which avoids
unnecessary flushing. But there were a few hot functions whose
inefficiency ended up having a significan impact.
2021-05-23 21:26:17 -04:00
sawinglogz
7a852953be Move raw data signal tests into a separate class.
Otherwise QTest treats the signal handlers as separate tests.
2021-05-23 15:48:20 -04:00
sawinglogz
818eafcc7c Add RawDataDevice wrapper around QIODevice to allow for filtering of incoming data before loading.
Eventually this will also provide endian-aware integer reading functions,
so that individual loaders don't have to reinvent the wheel as often.
2021-05-23 12:25:35 -04:00
sawinglogz
9cbd0d7b24 Fix multiple regressions that broke compilation with clang.
e633a82: overloaded virtual method errors
0022510: inconsistent missing override error
e358d31: unused private fields
3591f11: unused private fields
2021-04-26 20:10:37 -04:00
sawinglogz
09ba58669a Add support for Target Time humidifier setting on DreamStation Go. 2020-12-29 20:23:37 -05: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
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
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
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
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
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
sawinglogz
40553fcf5e Add PRS1-specific "peak flow" channel used by pre-DreamStation ventilators. 2020-04-22 17:14:59 -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
191e0f89a8 Update Resmed regression tests to follow symlinks. 2020-04-19 14:25:32 -04:00
sawinglogz
1e82500685 Minor update to PRS1 regression tests so that they can follow symlinks.
Also added comment about 900X clamping mask pressure at 15.875 cmH2O.
No functional changes.
2020-03-27 12:33:23 -04:00
sawinglogz
a96a665987 Rename PRS1_0E mystery channel to Variable Breathing based on forum discussion, disable it by default.
Also make TB an on-demand channel.
2020-03-26 09:01:28 -04:00
sawinglogz
6a3c8c1a26 Add PRS1-specific mode channel, allowing correct display of S, S/T, and PC modes.
Also fix pressure settings for F3V3, and display of rise time and backup breath settings.
2020-03-24 17:15:29 -04:00
sawinglogz
d77ee5025a Comment out BrokenSummary and BrokenWaveform channels, as they are no longer used.
No functional change.
2020-03-24 13:50:30 -04:00
sawinglogz
389ddd1631 Import remaining parsed PRS1 settings: backup breath settings, tidal volume, rise time, EZ-Start, and Auto-Trial.
DreamStation ramp time and mask resistance "off" settings are now also imported.

Ventilator alarms are not yet parsed reliably enough to import at this time.
2020-03-23 21:09:55 -04:00
sawinglogz
77a34518bc Rename PRS1 mask resistance lock and setting channels for clarity. 2020-03-23 13:07:08 -04:00
sawinglogz
3eb2ad4a7b Import all remaining parsed PRS1 settings seen on bricks: flex lock, tubing type lock, mask resist lock, show AHI, and ramp type.
Also remove superfluous mask resist status.
2020-03-23 12:59:06 -04:00
sawinglogz
c8520c8449 Move PRS1 test card scanning into PRS1Loader.
Also reverse the chronological order of tests to provide the most complete output.

The loader itself doesn't yet use the new machine scanner.
2020-03-09 10:28:34 -04:00
sawinglogz
53525a7949 Refactor PRS1 test card scanning in preparation for unifying with loader.
This splits out scanning the directories from processing them, which
also allows for sorting.
2020-03-08 20:58:36 -04:00
sawinglogz
0ee827b294 Add Resmed-specific settings channels to YAML. 2020-02-10 23:48:23 -05:00
sawinglogz
bd68525246 Turn off backups in Resmed regression tests. 2020-02-10 20:58:49 -05:00
sawinglogz
7701694b14 Add support for YAML output by Resmed loader for regression testing. 2020-02-10 16:04:03 -05:00
sawinglogz
cdeba58c5d Fix minor cleanup bugs in the Resmed regression tests that were causing crashes. 2020-02-03 11:43:13 -05:00
sawinglogz
32ffcc4f94 First pass at Dreem CSV loader.
Something's not quite right about the hypnogram timestamps, since
there are more than would fit within the start/stop times.
2020-01-29 20:00:33 -05:00
sawinglogz
f33dd654f8 Add generic CSV reader class and switch ZEO loader to it.
No change in functionality for ZEO files.

Resolves crashing (assertion failure) on non-ZEO CSV files.
2020-01-29 17:05:03 -05:00
sawinglogz
8ef068af7e Fix ZEO loader to handle MyZeo 0.3.1 date formatting.
Also make the UI more informative and fix up the regression test output.
2020-01-29 16:21:42 -05:00
sawinglogz
448bfa048c Refactor ZEO loader to allow for testing, add regression tests. 2020-01-29 15:47:11 -05:00
sawinglogz
cb576437ab Clean up noise and memory leaks in unit tests. 2020-01-29 09:10:29 -05:00
sawinglogz
e11bdf2633 Update Viatom tests to process folders of test data. 2020-01-26 20:05:14 -05:00
sawinglogz
4ebc7d3681 Rename POS_Motion channel to POS_Movement to match Viatom report terminology.
Also move database updates to Open() rather than at each file imported.
2020-01-26 19:50:18 -05:00
sawinglogz
b6f7ebac6f Move Viatom filename pattern matching into loader. 2020-01-26 17:51:56 -05:00
sawinglogz
9cb7de950b Add regression tests for Viatom loader.
Also enable the native file dialog box for importing Viatom files.
2020-01-23 19:11:05 -05:00
sawinglogz
d7fade5f4c Add Version class for Semantic Versioning 2.0.0 parsing and comparison.
Also add unit tests for the new class.
2020-01-15 17:00:21 -05:00