GENERIC SUPPORT FOR PARSING INTO XDATA
.. Generically parse FIT file messages into XDATA. The current
implementation does this for session, lap and totals messages
but could very easily be extended to any other message type
.. Generic parsing uses metadata rather than hard coding the
message and field types and so on
.. The FIT metadata (FITmetadata.json) has been expanded to
include definitions of message types and all the standard
fields within the message types
.. The existing hard-coded parsing remains to extract data
and apply directly to ridefile samples and metadata. The
generic parser simply adds additional tabs on the data
view as XDATA so users can access it.
CODE REFACTORING, COMMENTS AND BUG FIXES
.. At some point the code needs to be refactored as it is
janky and needs to align with the rest of the codebase
.. Includes a mild refactor renaming some of the classes/structs
and variables to reflect what they actually are, for example:
FitFileReadState -> FitFileParser
FitDefinition -> FitMessage
.. Added lots of code comments and re-organised the code
into clear sections to help navigate what is a very
cumbersome source file, this breaks git blame history
but is worth the loss (you can checkout an earlier commit
to do a full blame)
.. Changed debugging levels to be more helpful
.. Generally I did not change any code, but there were a
couple of serious bugs that needed to be corrected:
Field definitions gets the type wrong in a couple of
places since the type is stored in the low 4 bits:
type = value & 0x1F
The decodeDeveloperFieldDescription function did not
check for NA_VALUEs for scale, offset, native field
.. For less serious bugs I added FIXME comments throughout the code
Fixes#4416
Summary of changes from v3.6 release:
ec0653f81 ErgFilePlot - realtime curves honor FFWD/RWND and lap F/B
43368addf Mapview: Added interactivity to the Smallplot (#4408)
72de6bbee Fix lap data auto-reset in slope workouts
c2f440c1c Fix broken workout directory check for the first start (#4410)
b095b403b Fix shortcuts not available due to translations
e6ff1a157 Python Chart Editor Cosmetics
00e182c41 Better user experience when drawing segments on the map
(#4403)
f746f7361 GPX parser - support ns3 TrackPointExtension name
9ae7521e5 Upgrade Travis-ci macOS version to macOS 11.6
e8132b1a5 Upgrade Travis-ci Linux version to Ubuntu 20.04
8f2ba0e11 Special case Start Date and Time in the cache
110652bf4 Update German translation
fabc344aa Add Wahoo PowrLink
f78381466 Train library - add path to the list of possible errors
48d91d02d Fix issues after perspective switch (#786)
59a8ca231 Implemented compare mode for RideMapWindow (#786)
733db9cb1 Ignore dot folders on athlete open/backup/delete
951e5f360 Fix crash on invalid perspective filter
[publish binaries]
* Added a tooltip showing data about the current position (Altitude, Power,
HR, Time)
* Added a marker to the map corresponding to the current mouse position
(both Google and OSM)
* Changed scaling of the smallplot: Chart is now between lowest point and
highest point instead of sea level and highest point
+ Lap Distance was wrong until the first lap due to currentLap
not checking the lap lower bound.
+ Lap Time was not reset due to workoutLap being also modified in
guiUpdate, so the newLap signal was never generated.
+ Additionally newLap slot remove duplicate functions called on newLap signal
and moved counters reset to the signal handling slot.
Fixes#4411
Fix1:
appsettings->value default fallback "0" if no fallback value was given.
So a new GoldenCheetah installation will always use path "0" until a
workout directory was set in the settings.
We now use an empty string as fallback to get the condition working
again
Fix2:
Instead of using the athlete->home parent folder, the old code returned
the parent's parent folder. Until a workout directory was set in the
settings, the user had to navigate to the (hidden) athletes folder
everytime by hand.
.. when working with a light background the syntax highlighting
renders the text almost impossible to read because it uses
very light colors
.. additionally, when the colors/theme are changed the python
editor does not reflect the change until a restart
.. we should likely apply the same changes to the datafilter
editor in the user chart
* Increased the area in which points are searched when clicking / hovering a
track, easing the process of starting segment creation and giving more
precision while drawing
* Hovering the track when drawing segments is not blocked any more by highlighted
segments / parts of the current segment (i.e. segments can be shrinked during
creation)
Fixes#4394
To test v3.6 building on currently supported OS versions:
* Windows 10 (no change here)
* macOS 10.14 changed to macOS 11.6
* Ubuntu 18.04 changed to Ubuntu 20.04
Additionally it contains a fix to possible crashes with invalid
perspective filters, some cosmetic fixes and a new feature:
- Compare mode is now available for the Map chart
Please stay with the release version unless you are willing to
collaborate with testing.
[publish binaries]
* Upgraded leaflet to 1.9.4
* Fixed the condition when chart must be set to blank
* Fixed the zoom-level for OSM when switching perspective for the first time
Update errors member from DataFiltererrors on constructor
and use it in evaluate functions, since they can be used when
DataFiltererrors no longer corresponds to this expression.
Fixes#4384
When computing virutalspeed based on slope, altitude, etc, total weight is relevant, specially in up and down hills
It was using 10kg plus the athlete weight. Now, it considers configured bicycle weigth. Not very relevant, but consistent with the data GH has for training
.. we cannot pass wide strings to the 'printd' debug macro
since it uses printf not wprintf. Not a major problem
in this case since it is just a debug statement.
introduced in previous commit that fixed crashes
when embedding python v3.11 or higher