The logic in the WKO+ ridefile parser tried to
re-use code blocks for working with alt, wind
and slope but as a result ended up overwriting
variables and losing data as a result.
It also mishandled negative values for those
data series.
It also falsely reported iBike files as Ergomo.
Fixes#164
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
The caf parser now checks what version the file is (100 or 110) and
handles data records accordingly. Files with version 100 have 10
bytes per data record, all of which are known. For version 110, the
first 10 bytes are the same as version 100, followed by 8 bytes per
data record.
The FIT parser will attempt to interpolate data when filling in for smart
recording or if a record is missed. A problem occurs if one of the lat/long
points is missing or 0,0.
This patch will record a 0,0 lat,long if the record is missing in the FIT
file and when interpolating, will set any interpolated data points to 0,0
if the start or end record is also 0,0.
A 0,0 record is not plotted on the MAP tab.
Fixes#111
The patch changes the behavior of the "fix gaps in rides" function. This
now fills stops in rides with the last recorded altitude rather than zeros
as was previous behavior.
fixes#158
Files kindly supplied by Alex Simmons have demonstrated a bug in the
parsing of WKO+ files that contain data downloaded from an SRM
Powercontrol VI. The files are parsed incorrectly and often lead
to crashes or absurdly high summary values.
This might be version specific, since the files were WKO v3 files, we
should watch for WKO+ v2.2 files that contain Powercontrol VI data and
potentially make this version specific if needed.
Improve fix of #132 so that it doesn't require you to enter
a bikescore or daniels point or distance if you do not want to.
Add hints to the appropriate values for the entries.
Fixes#132Fixes#146
in certain circumstances srmwin seems to (have?) written bad files: The
first/last data chunks referenced by a marker were swapped plus the "real"
start index was 0 - although chunks are counted from 1.
This patch checks for this defect and interprets the data in the same way
as recent srmwin versions do when reading files with this defect.
Though the way marker are stored in PCV makes me guess, the refernce the
bad chunk index 0 really means "last" chunk in the recording.
Adds error checking to Tweet Ride. Checks to make sure that oauth
credentials exist, that tweet is under 140 characters, and that
oauth_http_post received a reply indicating a successful post.
Move addition of hashtag to getTwitterMessage() to cleanup length
calculations.
Fixed warning on Bike score estimate label not being used.
Added validators to Bikescore and daniels points manual entry to allow
more than 3 digits.
Added dialog which enforced validator on distance, bikescore and
daniels points.
This fixes#132
Initial version of Tacx Caf file importer. TacxCafRideFile.cpp added to qmake file.
Fixed parsing of heart rate value, Heart rate and cadence should have used quint8
instead of qint8, because they're unsigned.
Fixed#143.
On mac systems, when copying data from excel and pasting into the ride
editor GC would complain about the data ranges not being the same size.
This is a result of the fact that excel mac terminates lines with a CR
(\r) rather than a NL (\n). This patch changes the behavior so that we
check for all three commonly occurring line endings CR, NL and CRNL.
fixes#135
Currently, GC interpolates time gaps in all TCX files as a result of smart
recording. However, this overlooks periods of inactivity (stopped at a light
for instance).
1. Provide a configuration option, that if enabled, will tell GC to interpolate
time gaps in TCX files as if they were a result of smart recording. If the
option is not enabled, then interpolation will not occur.
2. Provide a maximum "high water mark" (in seconds) for these time gaps. The
default HWM is 25 seconds, but is user configurable.
Any time gaps that exceed the high water mark can be fixed via the Fix Gaps
tool under the toolbar.
Fixes#74.
This patch adds an 'Export to KML' option to the ride
menu. It will create a .kml file including power, hr,
torque etc. These can be viewed alongside the map view
in Google Earth 5.2.
Please note this requires libkml. The features of libkml
that are required were introduced in revision 852 which
means that as of Aug 2010 you will need to checkout from
the SVN source repo and build;
svn checkout http://libkml.googlecode.com/svn/trunk/ libkml-read-only
and the ./configure mantra that worked successfully for
me on Mac OS X was;
./configure CC="gcc -arch i386" CXX="g++ -arch i386" --disable-swig
Building on WIN32 is currently fraught with issues, unless
you build via MSVC 2010. Linux is straight forward but you will
need to install / apt-get libcurl.
Fixes#133.
Support for Training peaks new .pwx file format. This
is an XML format (and is particularly verbose). Support
has been added to enable interoperability with WKO+ v3,
TrainingPeaks.com and Device Agent.
When a manual ride is selected whilst on allplot
it will refresh the plots, but computes invalid
offsets into the ride data. this patch fixes this
crash.
Fixes#128.
Gcc 4.5 considers explicit calls to object constructors to
be errors. This patch corrects these to enable building using
this current release of the GNU C++ compiler. This is required
to support building on Windows with the current Qt 4.6 sdk
since it includes gcc 4.5.
It is worth noting that this relese of the GNU compiler also
spots two or three uninitialised variables too, I will correct
these at a later date.
The recent data processor / ride editor patch added some
post-processing actions after a ride file is opened. The
functions are called without checking for an open ride
failure. This patch fixes that stupid error.
The recent patch for allPlot zooming does not display the full plot
properly when the user has selected imperial units and is displaying
by distance (not time). This minor fix corrects this.
Introduce a span-slider on the normal Ride Plot chart to enable
users to select a range to plot and scroll left and right. The
zoom to interval function now uses this slider rather than setting
a zoom range. Tooltips are now displayed on the normal and stacked
views to assist in reviewing specific data points.
Old style zooming still works as expected, but scrolling at a zoom
level is not yet implemented.
The qxt widget 'QxtSpanSlider' has been placed in the top
level directory (GoldenCheetah/qxt) alongside the qwt widgets to
avoid adding another dependency.
A number of optimizations have also been introduced to speed up
plotting in general. A new color setting for the thumbnail plot
has also been introduced. Refresh of the plot when data is changed
in the editor has been fixed. The zoom scale up/down widgets are
also disabled when in normal mode to avoid the bug highlighted by
Robert Carlsen.
Fixes#122.
A new tab 'Editor' for manually editing ride file data points and
associated menu options under 'Tools' for fixing spikes, gaps, GPS
errors and adjusting torque values. A revert to saved ride option
is also included to 'undo' all changes.
The ride editor supports undo/redo as well as cut and paste and
"paste special" (to append points or swap columns/overwrite
selected data series). The editor also supports search and will
automatically highlight anomalous data.
When a file is saved, the changes are recorded in a new metadata
special field called "Change History" which can be added as a
Textbox in the metadata config.
The data processors can be run manually or automatically when a
ride is opened - these are configured on the ride data tab in
the config pane.
Significant changes have been introduced in the codebase, the most
significant of which are; a RideFileCommand class for modifying
ride data has been introduced (as a member of RideFile) and the
RideItem class is now a QObject as well as QTreeWidgetItem to
enable signalling. The Ride Editor uses a RideFileTableModel that
can be re-used in other parts of the code. LTMoutliers class has been
introduced in support of anomaly detection in the editor (which
highlights anomalies with a wiggly red line).
Fixes#103.
Removed redundant assert in BestIntervalDialog.cpp. It is redundant
because it is executed prior to a logic check for the same condition.
The assert check has been shown to be unreliable due to inherent
inaccuracies in float arithmetic and comparisons for example, according
to the IEEE specs 1000.2 - 1000.0 will be stored as 0.200012. This
inherent problem with floats is particularly relevant in this
code since it is dealing with interval durations and recording intervals
which are expressed to a precision of 100th or even 1000th of a second.
Fixes#99.