101 Commits

Author SHA1 Message Date
Alejandro Martinez
6e9a1f9306 Update Expected PMC (TriScore) example chart
[skip ci]
Lets make it a User Chart.
2025-08-03 19:14:23 -03:00
Alejandro Martinez
97eab8bc35 Add Expected PMC (TriScore) sample chart
[skip ci]
This PMC chart is an example of #4652, it uses Expected
PMC curves so it looks like a regular PMC until today,
but it uses Planned activities for the future forecasting
training load according to them.
2025-07-23 19:14:48 -03:00
Alejandro Martinez
c0e7b91937 Add Expected PMC (TriScore) sample chart
[skip ci]
This PMC chart is an example of #4652, it uses Expected
PMC curves so it looks like a regular PMC until today,
but it uses Planned activities for the future forecasting
training load according to them.
2025-07-23 14:39:22 -03:00
Alejandro Martinez
ae6ebd9aaf FitRideFile - Avoid duplicated XData series names
Fixes #4646
[publish binaries]
2025-05-23 20:50:37 -03:00
Alejandro Martinez
5c32910af5 Avoid crash on WPrime computation
When the cubic spline used to smooth data is not valid.
An offending file contributed at the users forum is included.
2025-05-18 19:57:40 -03:00
Alejandro Martinez
e10ad628f9 FitRideFile - Fix regression with native TCORE
Name and scale too.
Fixes #4643
2025-05-12 18:12:30 -03:00
Ivor Hewitt
59e515417a Read and write xdata developer fields to FIT files (#4612)
* Support generic reading and writing FIT developer fields
* Move coretemp to generic DEVELOPER fields
* Add additional type info for fit dev fields
* Add example fit roundtrips
* Clean up CIQ format
* Switch to embedded json for ciq field
* Format json string and reduce tab width on extra tab text box
* Store type name as string rather than index
* Add scale, offset and message metadata to ciq developer fields
Fixes #2553
2025-03-27 13:56:24 -03:00
Ivor Hewitt
3af81eb27a Addition of CoreTemp sensor support (#4207)
This patch adds ANT+ support for CoreTemp body sensors.
If there is core temperature XData then it uses that for "tcore" data instead of using the estimated calculation.
2025-01-20 16:36:02 -03:00
Alejandro Martinez
04cb57bda3 Fix Lap Swims - Ignore lengths shorter than Min Rest
This adds a minimum rest parameter to Fix Lap Swims DP to
ignore lengths shorter than a configured minimum value,
the corresponding time is added to the next length where it
is assumed to belong.
Minimum rest length default value is 3 secs, but it can be
changed in DP config.
Test files contributed by Jean Div at the users forum.
Fixes #4571
2024-11-20 19:40:15 -03:00
Alejandro Martinez
5f1598c437 FIT - map fields to standard only for record msg
Fixes #4521
2024-09-28 13:17:46 -03:00
Alejandro Martinez
1230dc7c68 FIT parser - Lap messages can be first
in the new file structure, like in the companion
test file from a Sigma ROX 11.1
2024-09-21 15:29:02 -03:00
Alejandro Martinez
36207bf882 FIT import - don't use CIQ speed as standard speed
Since units not necessarily are the same.
Test file: test/rowing/RowingCIQspeed.fit
2024-07-12 17:58:15 -03:00
Alejandro Martinez
c693ed6b1c FitRideFile - Extra fields 136, 143 and 144
Decoded as Wrist HR, Body Battery and External HR.
Fixes #4480
2024-04-24 14:07:01 -03:00
luzpaz
67ac67c509 Fix various typos (#4383)
Found via `codespell -q 3 -S "*.pdf,*.slf,*.smf,*.ts,./deprecated,./contrib" -L ans,ded,nam,nd,parm,parms,serie `
2024-03-25 20:46:26 -03:00
Alejandro Martinez
edaac1486b Fix view in Calendar test chart
[skip ci]
From previous commit, lets default to Trends view
2023-12-15 20:39:22 -03:00
Alejandro Martinez
0116bb9e47 Add Calendar to test charts
[skip ci]
The old Calendar chart from Diary view,
it can be imported to v3.6 Analysis view.
2023-12-14 20:44:29 -03:00
Alejandro Martinez
1ecc6f9ec9 Python - Add compare support to activity series (#4349)
All activity functions working with data series,
both standard and xdata, now include an optional
compareindex=-1 parameter.
When compare mode is enabled compareindex parameter
is used as an index to get data for the corresponding
compare item, be an activity or an interval.
Sample chart contributed by Marcen at the users forum
Fixes #4346
2023-04-11 18:06:39 -03:00
Alejandro Martinez
68c795440c Add test FIT file from Garmin 945 swim with RR data
[skip ci]
2023-01-20 20:58:53 -03:00
Alejandro Martinez
6f4da994a2 Strava download - avoid crashes when lap swim file has 0 lenght lap
Includes sample file from users forum
2022-10-26 11:20:43 -03:00
Alejandro Martinez
774704c072 Avoid to mischaracterize OW swims as Pool swims
When GPS data was available before the first distance tick,
includes test file contributed at the forum.
Fixes #4251
Also reverts the TCX part of 1f094f5 since it is incomplete,
and not such a good idea anyway.
2022-07-25 14:28:13 -03:00
Alejandro Martinez
1f8bafb334 Text Cues on TrainBottom display pane (#3544)
Import Texts from Erg files in TrainerRoad format, Zwo files and
from Lap names in json files.
Display texts on TrainBottom for both, erg and slope mode, at the
corresponding time/distance for the specified duration.
Export Texts in erg, mrc and zwo formats.
Fixes #1118
Fixes #2967
Prerequisite for #2098
2020-07-16 12:55:41 -03:00
Ale Martinez
c1727623a8 Recognize Polar S625x srd files
Add 2 test files from S625X
Fixes #3489
2020-06-12 13:07:37 -03:00
Ale Martinez
521b507b18 Import Location and Equipment metadata from fitlog files
Fixed #3406
2020-04-22 11:34:10 -03:00
Ale Martinez
b3f35597d3 Import Notes from TCX files
Fixes #3385
2020-03-29 22:41:48 -03:00
Ale Martinez
22c2cdd5d7 TcxParser - initialize for each activity to support multisession files
Fixes #3362
2020-03-29 22:30:01 -03:00
Mark Liversedge
b4eb1191fd Add QChart to Python Chart (1 of 5)
Updating the python chart to render via a Qt Chart in addition
to the existing web page rendering.

Five aspects are planned:
1. Add QT chart option, basic rendering of Line+Scatter (this commit)
2. Add legend and axes, support for Pie and Bar charts
3. Add interactivity / hover etc
4. Add options for annotations and markers
5. Add more advanced charts and chart objects

There is an example in the tests folder, but at this point the
chart is very basic, but the main plumbing is in place.
2020-02-10 11:57:42 +00:00
Erik Botö
d1e2f38e07 Add support for VO2 measurements and VO2Master VM Pro
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.
2020-02-03 12:00:08 +00:00
Erik Botö
2c0eb835d4 Fix import of HRV from Fit files where single records occur (#3323)
* FitRideFile: handle single values in decodeHRV()
Currently only records of type ListValue are handled, but single
RR-intervals can also come as type SingleValue. Before such records
were silently ignored.
* FitRideFile: Unify indentation of decodeHRV()
The indentation before was a mix of tabs and spaces, which made the code
quite a challenge to read. This unifies to use 4 spaces at least
throughout the function.
* Added test file
Fixes #3297
2020-01-28 20:19:53 -03:00
Poncho
40d03c4402 Add New Device IDs for FIT files (#3315)
add Garmin Edge 830
add Stages Cycling
Add test file for Garmin Edge 830 with Stages Cycling power meter
2020-01-26 18:52:13 -03:00
Ale Martinez
5bd4404279 Avoid endless loop on FIT files unknown type and negative size
Includes a test file to reproduce the issue.
Fixes #3229
2019-12-03 14:45:47 -03:00
Ale Martinez
675cbcbe58 Add Tacx Neo Bike Trainer to ANT IDs
Contributed by Pavel Vasilyev
Fixes #3221
2019-11-24 09:21:38 -03:00
Ale Martinez
45e73f7d34 Added Navicoach O-Synce sample FIT files
These uses non-interleaved mode for session records, we need to do
regression tests on these files for solutions to #3211
2019-11-21 13:05:05 -03:00
Ale Martinez
5383430b19 FitRideFile - Handle resync when HRM is unbucled
Fixes #3059
2019-11-21 09:41:34 -03:00
Ale Martinez
5cb0ed5b35 Added sample fit file for #3059 2019-11-21 09:37:13 -03:00
Alejandro Martinez
0b0f99889e Enable import of XDATA series from CSV files (#3179)
* 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.
2019-10-10 23:16:22 -03:00
Ale Martinez
6f50bc74e3 Garmin Fenix 5/6 new firmware uses enhanced speed and altitud fields
This maps them to correspoding standard fields
Fixes #3161 and #3168
2019-09-20 17:16:55 -03:00
Ale Martinez
8facce909a Add Banister and Performance for Running Power
- Performances are computed independently for Rides and Runs in Estimator
- Running Performances are shown in LTM Charts When all selected activities
  are runs for a Performance curve
- Banister models uses Performances from activities were score > 0
  and for the same date with matching sport, so a Banister model based
  on BikeScore/BikeStress will include only rides while one based on
  GOVSS will include only runs
- Banister (Run) chart based on GOVSS metric added for testing
2019-04-23 18:22:36 -03:00
Ale Martinez
44d17a606b Added PowerInWatts extension to GPX Parser
Fixes #3084
2019-04-23 12:13:30 -03:00
Ale Martinez
f817692659 Pad missing altitude in FIT file records with previous value
Previous behavior is to pad with zeroes which inflates Elevation Gain
Fixes #3070
Fixes #3067
Includes test file
2019-04-05 20:48:13 -03:00
grauser
9bb0aebe46 Add test files for Firstbeat/Garmin session metrics Pull request #2986 2019-01-01 22:02:08 +01:00
Mark Liversedge
475288d427 aerolab tests rename directory 2018-10-03 22:03:10 +01:00
Mark Liversedge
5ce7b3b054 Aerolab Test Files
Contributed by:
  * Nate Lesniewski
  * Tom Anhalt
  * Juan Benjumea
2018-10-03 18:55:57 +01:00
Ale Martinez
bbe8056c45 Add Hrv4Training sample file with 12h time format
Also fix PM times
2018-07-25 11:10:00 -03:00
Alejandro Martinez
5733d821bf HRV Measures - Direct import from HRV4Training for Android
Android version generates date and time instead of a combined timestamp
of measurement, even worse date is not in ISO 8061 format in the contributed
files... Let's hope it does not change with locale.
2017-10-04 16:12:37 -03:00
Alejandro Martinez
7d9aab2e41 HRV Measures - Direct import from EliteHRV CSV files
Test file contributed by Martin Wifling
2017-10-02 22:16:34 -03:00
Alejandro Martinez
c5cf5e102e Add support for R-R txt files import (HRV)
Fixes #2613
Test files contributed by forum users Mike and Ron
2017-09-05 17:14:16 -03:00
Alejandro Martinez
8a29e8a350 HRV Measures example file and format doc 2017-07-28 11:02:16 -03:00
Alejandro Martinez
4bde63bca2 Added Open Water Garming 920xt test file
Contributed by JulianM forum user
2017-05-29 14:23:33 -03:00
Alejandro Martinez
2340b04196 Added test chart using vector formulas
Tanda marathon prediction and Acute/Chronic mileage ratio formulas
use the new syntax for date rantes [[Date_From:Date_To]]
2017-04-25 13:52:59 -03:00
Alejandro Martinez
2d00b69ff1 Adds Peak Pace Hr metrics
Useful to track Pace to Hr relationships for running, similar
to Peak Power Hr metrics, both used in a Sample chart based on
https://alancouzens.com/blog/VO2Scores.html
2017-04-10 08:48:45 -03:00