For Date Ranges and Intervals, only when activities are homogeneous
to select the correct Pace Zones
Also enabled Time in Power Zones only when activities are homogeneouse
to select the correct Power Zones
.. logic error if/else for plotting rides vs dateranges
along with assumption that zones will not be NULL (esp
for running) lead to a repeated crash when running power zones
are not defined.
.. additionally, when summarising for a date range the table was
displayed for running vs cylcing based upon the current ride item.
This has been changed to use cycling power zones always.
.. the proper fix would be to summarize power time in zone for running
and cycling separately.
.. the compare logic appears to be unaware of power time in zone for
running and so does not have the same SEGV but will also need to
be updated to list time in zone for running and power separately.
Update of all metrics to work with a RideItem
not directly with a RideFile.
When iterating over the activity samples we now
use a Specification and RideFileIterator to bound
the set of samples used. This means that we can
compute metrics for intervals without having to
create a temporary ridefile.
RideItem now has first class members for zoneRange,
hrZoneRange and paceZoneRange to avoid calculating
for every metric which are stored in RideDB.json.
Compare pane continues to construct a ride file
when working with intervals since it is used lots
of charts, this is unlikely to ever change.
A SEGV in compare intervals has been fixed where
interval items were repointed to temporary compare
pane objects that are deleted - see RideItem::setFrom.
THIS COMMIT CONTAINS 3 REGRESSIONS:
1. TcxRideFile no longer computes metrics
2. FitlogRideFile no longer computes metrics
3. WorkoutWizard no longer computes metrics
-- The workout wizard will be replaced with a new
Workout editor, whilst the RideFile metrics
may be deprecated (but considering options)
.. fixes a SEGV in ride summary window where only 8
HR Zones are supported, but historically the number that
can be configured in preferences was changed to 10.
.. the 10 limit was probably a cut and paste error but it
is out there now, so we need to support 10 zones.
.. all the other zone configurations are set to a max
of 10 zones anyway.
.. select which kind of intervals we want
.. makes it faster and also reduces the size of
the rideDB.json file quite dramatically which
may be useful for some users.
.. New derived data series representing an estimate of core temperature
on the basis of HR changes.
* shown on AllPlot and RideSummary
* 2 new metrics; max and avg core temperature
.. This has been based upon "Estimation of human core temperature from
sequential heart rate observations" Mark J Buller, William J Tharion,
Samuel N Cheuvront, Scott J Montain, Robert W Kenefick, John
Castellani, William A Latzka, Warren S Roberts, Mark Richter,
Odest Chadwicke Jenkins and Reed W Hoyt. (2013). Physiological
Measurement. IOP Publishing 34 (2013) 781–798.
.. add W'bal Zoned to Histogram
- for a ride
- for a date range
- *NOT* for a compared ride
- for a compared date range
This makes the last of the updates for W'bal
in zone, but highlights the issues related to
W'bal being held in a different structure to
the rest of the ride data.
Need to think on how that might work better
for intervals.
For single ride use sport specific base metric
For date range use sport specific base metric if filtered activity
list is homogeneous or combined otherwise.
In this part we have updated all the charts to reference
the RideItem::intervals() members instead of the TreeWidget
and RideFile::intervals().
The code to create/change/delete intervals is not included
so selecting and editing on charts/sidebar is disabled til
part 3 of the update, but hover should work properly.
Still left todo in future updates;
* Updates to the interval sidebar to list intervals
in a tree (by interval type) with a color selector
* Code to create, edit, delete etc the intervals via
the rideitem/intervalitem and see them reflected in
the ridefile
* Update to search for all the different types of
IntervalItems including routes and sustained intervals
.. tile mode highlights on mouse over for a more
fluid feel, and better feedback
.. can customise the trend view charts background
.. fixed a SEGV on apply preset in chart setup
.. this is part of a set of updates to update the
standard setup to be more complete so the user
can pretty much run off a standard config.
.. use a simple free text search against the ridecache now we
have all the texts available and in memory
.. no need to maintain an index, no dependency on a horrid lib
with nasty dependencies and its faster too
.. the free text search is very simple, will need to bolster it
over time e.g. it matches text not words
.. but to avoid being too 'opinionated' about the users
training we limit to the really obvious things and
don't offer any opinion on middling values.
.. LTS > 80 is green > 100 is blue
.. SB < 40 is red -- overtraining
.. RR < -4 or > 8 is red -- detraining or overextending
.. it borders on bollocks given each athlete is different
and training is about managing the overreaching and recovery
to push at those boundaries
.. might end up removing this altogether .. but might flag
stuff up for newbies
Especially for Vectors new metrics
- Left and Righ Platform Center Offset - eg: -8mm and -11mm
- Left and Right Top dead Center - eg: 10° and 11°
- Left and Right Bottom dead Center - eg: 203° and 210°
- Left and Right Peak Power Phase Start - eg: 83° and 76°
- Left and Right Peak Power Phase End - eg: 115° and 125°
.. when downloading withings data the cache is refreshed
.. when the cache refreshes it notifies the *current* ride
changes if it is refreshed
.. ridesummary has been updated to process rideChanged() signals.
.. it is too slow. Need to think about how to implement
this with good performance.
.. if you really want it then add
DEFINES += GC_HAVE_RANKING
to gcconfig.pri
.. introduce concept of configChanged(what) to
pass details of what config has been changed
.. fixed zones changes to re-read after write
to correct the save twice to get changes to
zones bug.
.. next parts need to spot changes (part 2) and
then action appropriately (part 3)