Add support for a generic set of VO2 measurements:
* Respiratory Frequency
* Respiratory Minute Volume aka Ventilation
* Volume O2 consumed
* Volume CO2 produced
* Tidal Volume
* FeO2 (Fraction of O2 expired)
* Respiratory Exchange Rate (calculated as VCO2/VO2)
Make the new metrics usable in TrainView, and store VO2 data as XDATA
using the same pattern as for HRV data.
Add support for VM Pro by VO2Masters
The VM Pro is a BLE device, so support is added in the BT40Device class.
Since the device requires some configuration in order to be usable, such
as the size of the "User Piece" a special configuration widget is added
and shown in a separate window when the device is connected.
This window is also used to set a number of useful settings in the
device, and to show calibration progress. There's also a detailed log of
the status messages shown, and this can also be saved to file.
Allow notifications from RealtimeControllers and devices in the
notification area of Train View. In order for devices to display
information in the notification field in TrainBottom the signals need
to added and propagated from from device level via RealtimeController
to TrainSidebar and finally TrainBottom.
Fix an issue with multiple BT40Device per actual device
Currently on MacOS there will be multiple BT40Device per actual device,
since the QBluetoothDeviceDiscoveryAgent::deviceDiscovered() signal is
emitted multiple times with e.g. updated RSSI values. Avoid this by
checking the previously created devices first.
MacOS doesn't disclose the address, so QBluetoothDeviceInfo::address()
can't be used there, instead deviceUuid() is used which is instead only
valid on MacOS.
* Enable import of XDATA series from CSV files
Since XDATA series are preserved across merges this allows to add
arbitrary XDATA series to any activity.
Sample WEATHER file is included for testing.
Sample swim file is also included, once imported set Sport=Swim and use
Fix Lap Swim with pool length=25 to rebuild standard series and laps
Fixes#2010 item 4.
* FixLapSwim - Alternative way to store pauses in XData
Some devices s.t. Moov Now generates a CSV with REST field
after each length. FixLapSwim now can use this alternative
way to express pauses and to mark end of laps.
This is intended to be used together with XDATA csv import.
A Moov Now csv file modified to comply with our format is
added as an example to test folder.
.. there was a memory leak in RideFile and FitRideFile
.. added a test file with weather data that can be used to
test XDATA processing (it has 10 weather points with
wind, humidity etc).
Simpler and more robust lap alignment
Fixed for empty lengths due to false starts and
pauses in some devices s.t. Garmin 910xt
Added 2 contributed test files
.. on import and export, using the "pwrright" element.
.. this is not part of the public PWX schema but has
been used by ipbike when writing PWX, and may or may
not be supported by TrainingPeaks.com
.. the resampling code caused issues (not 100% sure why) so
reimplemented using the resampling method from Txt file
processing (also for Computrainers).
.. we know that approach is accurate since it accumulates
work and resamples to 1s intervals precisely.
.. two regression impacts; we no longer import the virtual
altitude and sample rate is 1s not 250ms.
Samples of swimming type are used to update distance and speed
of periodic samples, cadence is computed counting Stroke events.
Includes test file contributed by Serban Mestecaneanu
It generates both record and length messages for
each length, we use length messages to recognize
lap swimming and filter out record messages.
Includes test file contributed by Jonathan Beverley
.. caused v3.2 to crash on interval discovery and
contains out of bound values for power, speed and
cadence.
.. good for testing code doesn't make assumptions about
data values.
.. thanks to Neil Jones for the test file and permission
to distribute for testing
Based on TCX/GPX support
Includes laps and no-gps support for indoor activities, but not lap swimming.
Test files were contributed by forum members Frederic and Servan
Fixes#1559
Smart recording interpolation fills the gaps in pwx files present
when the original .fit or .tcx files had them.
Test files for running: 1 activity in .fit, .tcx and .pwx formats
Lap swimming expands the sample-per-length and pause to 1-sec sampling.
Test files for lap swimming: 2 activities in .pwx format,
one from Garmin 910xt other from Finis SwimSense.
When Sport="Other", there is no GPS data but there is distance information
it is assumed the file cames from lap swimming.
They have one Trackpoint per length, which are expanded to one point per second
in similar way to Smart Recording and laps without Trackpoints to signal pauses
which are expanded to one point per second up to 10x Smart Recording HWM.
Added contributed Garmin FR910xt pool swim file to test/rides folder
.. add some sample files with calibration messages to the
test/rides directory
.. remove the calibration marker color config (we can add it
back if needed, but was in the wrong 'sequence' and is
probably just a little bit *too* fine grained).