sawinglogz
1098cab272
Add support for incomplete DS2 flow data with a zero tag.
2022-05-02 15:32:28 -04:00
sawinglogz
b96718afeb
Add optional crypto benchmark to unit tests.
2022-01-24 16:04:08 -05:00
sawinglogz
4b4a0edb0e
Refactor library-dependent crypto calls into separate file and add unit tests.
2022-01-24 16:04:07 -05:00
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