summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Schlaeger <chris@linux.com>2016-01-18 02:14:22 +0100
committerChris Schlaeger <chris@linux.com>2016-01-18 02:14:22 +0100
commita938fda631bbc517cdc1c378de7f05421b4478f7 (patch)
treea9102ee1a05f00b6a06955b872ff35f66398273a
parentfefca0e2a692cb8f296a105ac363ec5675b5d8f7 (diff)
downloadpostrunner-a938fda631bbc517cdc1c378de7f05421b4478f7.zip
NEW: Improved handling of cycling activities
Don't show running specific metrics for cycling activities. Show cadence in RPM instead. These patches are based on patches by Brice Lopez.
-rw-r--r--lib/postrunner/ActivitySummary.rb31
-rw-r--r--lib/postrunner/ChartView.rb54
2 files changed, 50 insertions, 35 deletions
diff --git a/lib/postrunner/ActivitySummary.rb b/lib/postrunner/ActivitySummary.rb
index d7aa8dd..dd4abdf 100644
--- a/lib/postrunner/ActivitySummary.rb
+++ b/lib/postrunner/ActivitySummary.rb
@@ -81,18 +81,25 @@ module PostRunner
"#{session.avg_heart_rate} bpm" : '-' ])
t.row([ 'Max. HR:', session.max_heart_rate ?
"#{session.max_heart_rate} bpm" : '-' ])
- t.row([ 'Avg. Run Cadence:',
- session.avg_running_cadence ?
- "#{(2 * session.avg_running_cadence).round} spm" : '-' ])
- t.row([ 'Avg. Vertical Oscillation:',
- local_value(session, 'avg_vertical_oscillation', '%.1f %s',
- { :metric => 'cm', :statute => 'in' }) ])
- t.row([ 'Avg. Ground Contact Time:',
- session.avg_stance_time ?
- "#{session.avg_stance_time.round} ms" : '-' ])
- t.row([ 'Avg. Stride Length:',
- local_value(session, 'avg_stride_length', '%.2f %s',
- { :metric => 'm', :statute => 'ft' }) ])
+ if @activity.sport == 'running' || @activity.sport == 'multisport'
+ t.row([ 'Avg. Run Cadence:',
+ session.avg_running_cadence ?
+ "#{(2 * session.avg_running_cadence).round} spm" : '-' ])
+ t.row([ 'Avg. Vertical Oscillation:',
+ local_value(session, 'avg_vertical_oscillation', '%.1f %s',
+ { :metric => 'cm', :statute => 'in' }) ])
+ t.row([ 'Avg. Ground Contact Time:',
+ session.avg_stance_time ?
+ "#{session.avg_stance_time.round} ms" : '-' ])
+ t.row([ 'Avg. Stride Length:',
+ local_value(session, 'avg_stride_length', '%.2f %s',
+ { :metric => 'm', :statute => 'ft' }) ])
+ end
+ if @activity.sport == 'cycling'
+ t.row([ 'Avg. Cadence:',
+ session.avg_candence ?
+ "#{(2 * session.avg_candence).round} rpm" : '-' ])
+ end
t.row([ 'Training Effect:', session.total_training_effect ?
session.total_training_effect : '-' ])
diff --git a/lib/postrunner/ChartView.rb b/lib/postrunner/ChartView.rb
index 8009954..58f35bb 100644
--- a/lib/postrunner/ChartView.rb
+++ b/lib/postrunner/ChartView.rb
@@ -49,10 +49,12 @@ module PostRunner
chart_div(doc, 'hrv', 'R-R Intervals/Heart Rate Variability (ms)')
#chart_div(doc, 'hrv_score', 'HRV Score (30s Window)')
end
- chart_div(doc, 'run_cadence', 'Run Cadence (spm)')
- chart_div(doc, 'vertical_oscillation',
- "Vertical Oscillation (#{select_unit('cm')})")
- chart_div(doc, 'stance_time', 'Ground Contact Time (ms)')
+ if @sport == 'running' || @sport == 'multisport'
+ chart_div(doc, 'run_cadence', 'Run Cadence (spm)')
+ chart_div(doc, 'vertical_oscillation',
+ "Vertical Oscillation (#{select_unit('cm')})")
+ chart_div(doc, 'stance_time', 'Ground Contact Time (ms)')
+ end
chart_div(doc, 'temperature', 'Temperature (°C)')
end
@@ -64,7 +66,8 @@ module PostRunner
metric_unit
when :statute
{ 'min/km' => 'min/mi', 'm' => 'ft', 'cm' => 'in', 'km/h' => 'mph',
- 'bpm' => 'bpm', 'spm' => 'spm', 'ms' => 'ms' }[metric_unit]
+ 'bpm' => 'bpm', 'rpm' => 'rpm', 'spm' => 'spm',
+ 'ms' => 'ms' }[metric_unit]
else
Log.fatal "Unknown unit system #{@unit_system}"
end
@@ -116,24 +119,29 @@ EOT
s << line_graph('hrv', 's', '', '#900000')
#s << line_graph('hrv_score', 'HRV Score', '', '#900000')
end
- s << point_graph('run_cadence', 'Run Cadence', 'spm',
- [ [ '#EE3F2D', 151 ],
- [ '#F79666', 163 ],
- [ '#A0D488', 174 ],
- [ '#96D7DE', 185 ],
- [ '#A88BBB', nil ] ])
- s << point_graph('vertical_oscillation', 'Vertical Oscillation', 'cm',
- [ [ '#A88BBB', 67 ],
- [ '#96D7DE', 84 ],
- [ '#A0D488', 101 ],
- [ '#F79666', 118 ],
- [ '#EE3F2D', nil ] ])
- s << point_graph('stance_time', 'Ground Contact Time', 'ms',
- [ [ '#A88BBB', 208 ],
- [ '#96D7DE', 241 ],
- [ '#A0D488', 273 ],
- [ '#F79666', 305 ],
- [ '#EE3F2D', nil ] ])
+ if @sport == 'running' || @sport == 'multisport'
+ s << point_graph('run_cadence', 'Run Cadence', 'spm',
+ [ [ '#EE3F2D', 151 ],
+ [ '#F79666', 163 ],
+ [ '#A0D488', 174 ],
+ [ '#96D7DE', 185 ],
+ [ '#A88BBB', nil ] ])
+ s << point_graph('vertical_oscillation', 'Vertical Oscillation', 'cm',
+ [ [ '#A88BBB', 67 ],
+ [ '#96D7DE', 84 ],
+ [ '#A0D488', 101 ],
+ [ '#F79666', 118 ],
+ [ '#EE3F2D', nil ] ])
+ s << point_graph('stance_time', 'Ground Contact Time', 'ms',
+ [ [ '#A88BBB', 208 ],
+ [ '#96D7DE', 241 ],
+ [ '#A0D488', 273 ],
+ [ '#F79666', 305 ],
+ [ '#EE3F2D', nil ] ])
+ end
+ if @sport == 'cycling'
+ s << line_graph('cadence', 'Cadence', 'rpm', '#A88BBB')
+ end
s << line_graph('temperature', 'Temperature', 'C', '#444444')
s << "\n});\n"