Commit Graph

45 Commits

Author SHA1 Message Date
Gareth Coco
03509108b6 assert cleanup
Based on commit# a2a962120c
2013-09-24 04:37:30 -04:00
Mark Liversedge
3cae674b6a Clean up measures.xml
.. remove it as part of the upgrade.
.. use built-in version for db schema
.. don't re-read it when doing getAllMeasuresFor()
2013-05-22 21:18:57 +01:00
Mark Liversedge
1aadc19f36 Fix RideFileCache threaded db access
The call to RideFile::getWeight() in RideFileCache
computation ends up with a call the read the measures
table in the DB. This is BAD since it is called from
a thread.

We now call getWeight() in the metric aggregator before
launching the ridefilecache computation -- this will cache
the weight and avoid db access.

I've also removed the duplicate code in the w/kg metric code
too and it should be marginally faster at computing metrics
now.

BIG THANKS TO ILJA BOOIJ FOR HIGHLIGHTING THIS, DESPITE MY
INITIAL SCEPTICISM. I OWE HIM A PINT (OR TWO) :)

Fixes #604
2013-05-19 19:06:28 +01:00
Mark Liversedge
56eedf224e BasiRideMetric handle no speed/distance gracefully 2013-05-13 20:05:32 +01:00
Mark Liversedge
63b1ff0b33 Add version details to Crash report
By refactoring out the version stuff from the about dialog
and making it part of the crash report (and reused).
2013-05-12 13:27:08 +01:00
Mark Liversedge
a8fdada555 Add Fatigue Profiling Peak Power Durations
.. added for 2,3,8 and 90m peak power

.. user defined intervals for peak power/vam/np et al
   are still planned for v3.1

Fixes #595
2013-05-09 20:10:54 +01:00
Mark Liversedge
1ef7194542 DBSchema increment to 44
.. was missed in April, no biggie but need to make sure
   it matches the metric definitions and comment in DBAccess.cpp
2013-05-06 18:24:04 +01:00
Mark Liversedge
10ed9af555 Metric Histogram Plot
Update to the histogram plot to now plot long term metrics.
It enables you to plot distribution of say, Intensity Factor
for a season or cycle.

You can select the y-axis metric too, so rather than just
plotting duration you could plot say, TSS accumulated for
different ride intensities.

Fixes #560
2013-04-20 10:35:44 +01:00
Mark Liversedge
d6181bca94 Code Cleanup: DBAccess
.. invalid comments about texts which are bwing stored.
2013-02-10 21:14:35 +00:00
Mark Liversedge
a5bb6947a7 TRIMP fallback to workout time if time riding 0 2013-01-24 21:42:23 +00:00
Andy Bryson
5a345477fb Remove Boost
Replace boost checksum stuff.
Remove boost from versions
Remove Boost from src.pro
Remove Boost from gcconfig.pri.in
2012-12-29 22:59:28 +00:00
Andy Bryson
53391f76fc Remove Boost Dependency - The Easy Bits
Replace boost stuff with QT or C++ equivalents
2012-12-27 17:04:36 +00:00
Mark Liversedge
2a2ef7ba08 W/KG fixup distribution/histogram
The w/kg ridefile cache was not quite right
for distribution charting.
2012-12-03 14:56:43 +00:00
Mark Liversedge
9bf3e69beb User configure Field to set colors from
The user can now select a metadata text field to use when
setting colors from keywords.

Fixes #32.
2012-11-23 22:01:41 +00:00
Damien
335b991e04 Add myzeo data download Add ZQ and sleep time metrics 2012-11-18 16:13:15 +00:00
Damien
21824457eb About dialog
About dialog now shows versions and contributors.

Fixes #563.
2012-10-28 22:10:11 +00:00
Mark Liversedge
944b772184 Change Search Strategy
1. Use the whitespace analyzer so its easier to search for
tokens that are a mix of letters and numbers e.g. workout
codes and TT route names.

2. Search as you type. Since we have very small collections
to search across (typically no more than a couple of thousand)
there is no major overhead in searching as you type.

3. Search all texts by default not just the Notes field. This is
a more appropriate default and is less likely to confuse new
users. In addition, it is most likely what most users want to
do anyway.
2012-10-27 08:46:36 +01:00
Mark Liversedge
d33c337b8f Search/Filter using Lucene
Searching and filtering the ride list using a search box.
This is implemented using a new optional dependency on
CLucene.

Fixes #627.
2012-10-21 15:28:26 +01:00
Mark Liversedge
e68705c4dd Increment DB version
Last commit added a new metric but didn't increment the DBAccess
DB schema version, causing DB functions to break. This patch just
increments the version to ensure the DB is rebuilt to include
the new metric.
2012-08-19 20:48:10 +01:00
Mark Liversedge
2e248c3e26 Manual entries compute metrics
A few months ago I commented out the calculation of metrics
for manual ride files. This was a hack to avoid fixing the code
to handle metric calculations from overrides where there are no
data points.

This annoyingly meant that the 'rides' metric was zero for manual
ride files, and any derived metrics similarly were zero.

This patch fixes that.
2012-07-08 16:22:40 +01:00
Rainer Clasen
281026cc86 added non-zero average power metric
This might be meaningless for actual analysis, but helps to match numbers
of devices, that exclude time with zero power from the average
calculation.

While it's controversal to be usefull, this leaves the choice to the user.
2012-05-01 22:28:06 +02:00
Mark Liversedge
abb0ff0166 Add Minute Mile Pace metric
Runners tend to measure speed in minute mile pace and
this is common even if they use metric units.
2012-02-18 17:48:36 +00:00
Jamie Kimberley
356356f66b fix unit conversion error in max cadence calc
There was a unit conversion from km->miles being applied to cadence. I have
removed the offending line.

I've also changed the precision so the we report cadence as an integer.

Fixes #601.
2012-02-13 06:48:49 +00:00
Mark Liversedge
58e670e2c3 Add Temperature to Ride Summary
More complex than I had hoped for, to add
Temperature I needed to;

* introduce two new metrics Avg/Max temperature
* adjust metric conversion to include a conversionSum
  for the C to F conversion
* handle temperature as a metadata field as well as a
  ride data series
* handle the RideFile::noTemp value rather than just
  averaging or calculating max.

Fixes #603.
2012-01-15 16:27:09 +00:00
Damien
ddd5528294 Add ResponseIndex and EfficiencyFactor
modified:   src/BikeScore.cpp
	modified:   src/Coggan.cpp
	modified:   src/DBAccess.cpp
2011-12-17 17:54:20 +00:00
Damien Grauser
a4ed17a50a Add temperature icon to GCBubble 2011-12-08 22:38:58 +00:00
Mark Liversedge
4f5e047780 Add a Watts per kilogram metric
All the existing wpk metrics concentrate
on the wpk for a fixed period, which is great
but we should also support it for an interval
(where it is arguably most interesting).

This patch fixes that.

Fixes #467.
2011-11-22 20:28:18 +00:00
Mark Liversedge
3fd133ebd3 Version 3 to use metricDBv3
Some users often switch between v2 and v3 of GC. Either
because they are testing or they are transitioning from
v2 stable to v3 development builds.

But at launch the metricDB is refreshed each time, since
the v2 and v3 metrics are so different.

To avoid this, from version 3 the metricDB file will be
called metricDBv3 to avoid conflicting with the original
metricDB file.

Fixes #376.
2011-11-21 07:59:49 +00:00
Mark Liversedge
9a6e14e399 Activity Popup Bubble
A popup bubble when hovering over the activity
history or an entry on the calendar.

It is a pre-cursor for the activity bar for
selecting rides and is available for any
widget to call (it is a member of mainwindow).

To support the data series indicator icons a
new metadata field 'Data' has been added to
store a string to represent the data series
that are present.

In addition, the Sport code is used to decide
if a bike/run/swim icon should be shown instead
of a string (but needs translation support when
we get round to that).

Lastly, it has been coded for horizontal alignment
but will need to be updated for the activity bar
to support vertical alignment.

This is an experimental feature and will develop
over time, specifically;

* you cannot define which metrics are show in the
  bubble -- they are hardcoded at present

* the coloring is hardcoded, as is the font size

* Only the activity list and diary use it.
2011-09-10 22:36:13 +01:00
Mark Liversedge
a07c75f567 Reinstate Colors on Calendar
The background color on the calendar now reflects
the color configration.

The color for each ride is precomputed and stored
in the metricDB (so we don't have to scan the ride
everytime we need to determine its color).

As a happy by-product the ride navigator no longer
scans the text to determine the row color and is an
order of magnitude faster when repainting (although
most users are unlikely to notice in practice).

Fixes #448.
2011-09-05 10:54:40 +01:00
Damien
1d3193375f Add a Maximums column in the ride summary
Add maximums to the ride summary, which also required adding
max_speed and max_cadence to the basic ride metrics.

Fixes #440.
2011-09-01 19:08:53 +01:00
Mark Liversedge
2975b15f9a Increment MetricDB version for PeakPwrHr update. 2011-08-24 06:43:29 +01:00
Damien
083569af5c Modify TRIMP formula to use time_riding instead of workout time
Fixes #355.
2011-08-06 12:33:23 +01:00
Damien Grauser
2131ade99a Add PeakPowerHr metric (average HR during peak power)
[c6a376 folded manually into release_3.0.0dev from master]
2011-07-30 13:11:34 +01:00
Mark Liversedge
cf504e108c More Metric Refresh Performance Improvements
The DBAccess functions instantiate a local SpecialFields object in
almost every method. Profiling by Fredrik Lingvall has shown this
is rather expensive (and also unneccessary since they do not
change at runtime).

A specialFields member has been added to the MainWindow class
and is instantiated at startup and referenced in the DBAccess
methods instead.

Rough tests suggest a 10% speed improvement in metric refreshes.
2011-05-13 21:15:15 +01:00
Mark Liversedge
1fdf45d26d Improved Calendar Support
Fixes previous CalDAV support, as MobileMe based calendars
now work ok. Additionally, a new 'id' field has been created
to provide a persistent and immutable identifier for a ride
file (regardless of changes to date/filename).

The URL provided in the Calendar config pane can now include
'@' symbols (they are translated to %40).

The CalDAV URL should be provided for a calendar collection and
not for a principal. Examples being (trailing slash is significant):

Google  : https://www.google.com/calendar/dav/xxxx@gmail.com/events/
MobileMe: https://cal.me.com:8443/calendars/users/x.xxxxxxxxxx/home/
2011-01-22 18:54:05 +00:00
Mark Liversedge
3aba7dd788 Inital V3 Branch 2010-12-30 17:35:23 +00:00
Damien GRAUSER
830e4efd3d HR Zones and TRIMP Metrics
This patch introduces new functionality for working with
Heartrate based data.

* HR Zones can be defined, from Resting, Maximum and Lactate HR
* TRIMP metrics are calculated; TRIMP, TRIMP100 and Zonal TRIMP
* TRIMP metrics can be used to drive the PMC
* Time In Zone metrics for HR have been added
* Histogram window will now work with Power/HR zones
* User Settings have been added to record gender, weight and others
* RideFile has a new tag "Athlete" which is set to the athlete name

Fixes #140
2010-10-31 18:08:48 +00:00
Mark Liversedge
c4f82e19b6 Better Zones Configuration Page
The zone ranges configuration page caused a SEGV when deleting the
last zone. On inspection the zone configuration needed to be
revised since the UI was confusing and didn't allow fine grained
user editing (relying upon manual editing of the power.zones file).

The UI has been redesigned and fine grained editing of ranges, zones
and default zones is now supported.

The Zones class has been slightly modified to support the new UI and
existing members are better commented. In addition, the read/write
functions have been updated to always include the DEFAULTS section and
to set defaults according to manual zone setups when it is not present
(legacy support).

There are now 10 TimeInZone metrics to match the maximum of 10 zones
the user can define.

Fixes #78.

Fixes #34.
2010-06-06 18:36:50 -07:00
Mark Liversedge
778d651f00 User Configurable Metadata
User configurable data entry for recording information about
each workout.

FEATURES:
* Config UI for defining tabs and fields to maintain
* Config UI for defining keywords and colors
* Data maintenance UI on RideSummaryWindow
* "Special" Metadata fields are related to current variables
* Read/Write new fields/metric overrides via GcRideFile
* Metadata extraction in WKO files
* Calendar uses keyword and color config
* Numeric metadata is plottable on the Metric charts
*Metric refresh has been optimised
2010-04-01 10:29:13 -04:00
Mark Liversedge
7bb9cf5462 Long Term Metrics
A user configurable chart for showing ride metrics and
other calculated values over time.

* Uses SQLITE database to store metrics
* Supports any metric available from the metric factory
* Adds new MaxHr, VI, Peak Power and Time In Zone metric
* Also includes LTS/STS/SB for PM charting
* Aggregates in days, weeks, months or years
* Reads and Updates seasons.xml
* Adds cycles and adhoc date ranges in seasons.xml
* Date ranges can be selected on the plot with shift-left click
* Allows users to customise preferences for color, symbols et al
* Allows user to customise metric names and unit names
* Supports smooth curves and topN highlighting
* Has a linear regress trend line function
* Allows users to save charts to charts.xml
* A default charts.xml is built-in
* A chart manager to import/export/rename/delete charts etc
* Provides a tooltip to provide basic datapoint information
* Performance Manager adjusted to use the MetricDB
* User configurable setting for SB calculation (today/tomorrow)
2010-02-25 08:01:43 -08:00
Damien Grauser
333fe46196 add tr() for some QString and add french translation 2009-12-13 15:04:51 -05:00
Justin Knotzke
c630d281d3 Added Season support via xml file.
Using seasons.xml, support now for a season name, start date and end date.

Fixed some memory leaks.
2009-10-22 21:45:03 -07:00
Justin F. Knotzke
7209df0764 Small fix to LTM. Still in comments 2009-04-07 22:09:52 +00:00
Justin F. Knotzke
4978209289 This is the new Metrics SQL Database support. 2009-04-06 01:24:48 +00:00