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.
.. reads .rr file when processing csv and adds the XDATA
series "HRV".
NOTE: the HRV processing data added by Leif Warland will
process the data and calculate SDANN/SDNN and friends
since we use the same convention as for Polar HRV.
.. curve data is embedded using quote delimeters but our
parser was lazy and just split on commas.
.. updated to handle quote delimeted data, but only for RP3
format files (don't want to break anything else!)
.. very simple hack to import any file that is
downloaded from a webpage.
.. when working with e.g. TodaysPlan if you click
on Download Original it will download and
import it into GC.
.. nice way of getting data from web sites that
offer a manual download but no sync api
.. added to JSON file format, set when importing from RP3 and FIT files
.. primarily used by FIT developer fields that contain unit data
.. but we add units for file formats where we know them (as an english
language string)
.. in part 2 we will add units to the datafilter expressions and the
dialogs in the ride editor to let users edit unit names along with
value names.
In CSV-files recorded by a BSX-Insight 2 sensor the running speed measured using a footpod is denoted as *speed*. Running speed is recorded in m/s. Conversion to km/h is implemented. The metric is converted to mph if GC is configured to use non metric units.
please review
Introducing a directory structure to make it a bit less
daunting for new developers and perhaps even old hands.
The main folders all start with an upper character, so src
files are now located in;
* Core - Core data structures
* Gui - Main GUI elements
* Metrics - Models and Metrics
* FileIO - Device and File I/O
* Charts - All the chart types
* Cloud - Working with Web Resources
* Train - Anything Train View specific
* ANT - Our ANT+ Stack
* Resources - Images, Translations, Web etc
Apologies to anyone who needs to merge across this update.