mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Train - Improve L/R Balance Dial display
Includes proper treatement for NA, switched L/R and enables averaging. Fixes #4298
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "DialWindow.h"
|
||||
#include "Athlete.h"
|
||||
#include "Context.h"
|
||||
#include "RideFile.h"
|
||||
#include "HelpWhatsThis.h"
|
||||
|
||||
DialWindow::DialWindow(Context *context) :
|
||||
@@ -144,6 +145,7 @@ DialWindow::telemetryUpdate(const RealtimeData &rtData)
|
||||
if (series == RealtimeData::HeartRate ||
|
||||
series == RealtimeData::Watts ||
|
||||
series == RealtimeData::AltWatts ||
|
||||
(series == RealtimeData::LRBalance && value != RideFile::NA) ||
|
||||
series == RealtimeData::Cadence) {
|
||||
|
||||
sum += value;
|
||||
@@ -229,14 +231,14 @@ DialWindow::telemetryUpdate(const RealtimeData &rtData)
|
||||
case RealtimeData::LRBalance:
|
||||
{
|
||||
double left = 0; double right = 0;
|
||||
if (value == 0) { // no LR Balance provided - so use previous logic
|
||||
if (value == RideFile::NA) { // no LR Balance provided - so use previous logic
|
||||
double tot = rtData.getWatts() + rtData.getAltWatts();
|
||||
left = rtData.getWatts() / tot * 100.00f;
|
||||
right = 100.00 - left;
|
||||
if (tot < 0.1) left = right = 0;
|
||||
if (tot < 0.1 || left >= 100) left = right = 0; // No power or no AltWatts
|
||||
} else {
|
||||
left = 100.00 - value; // value in ANT message is the "right" pedal portion
|
||||
right = value;
|
||||
right = 100.00 - displayValue; // value in GC is the "left" pedal portion
|
||||
left = displayValue;
|
||||
}
|
||||
valueLabel->setText(QString("%1 / %2").arg(left, 0, 'f', 0).arg(right, 0, 'f', 0));
|
||||
}
|
||||
@@ -566,6 +568,7 @@ void DialWindow::seriesChanged()
|
||||
if (series == RealtimeData::HeartRate ||
|
||||
series == RealtimeData::Watts ||
|
||||
series == RealtimeData::AltWatts ||
|
||||
series == RealtimeData::LRBalance ||
|
||||
series == RealtimeData::Cadence) {
|
||||
averageLabel->show();
|
||||
averageEdit->show();
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
#include "RealtimeData.h"
|
||||
#include "RideFile.h"
|
||||
|
||||
#include <QtDebug>
|
||||
|
||||
@@ -28,7 +29,8 @@ RealtimeData::RealtimeData()
|
||||
cadence = distance = altDistance = virtualSpeed = wbal = 0.0;
|
||||
lap = msecs = lapMsecs = lapMsecsRemaining = ergMsecsRemaining = 0;
|
||||
thb = smo2 = o2hb = hhb = 0.0;
|
||||
lrbalance = rte = lte = lps = rps = 0.0;
|
||||
lrbalance = RideFile::NA;
|
||||
rte = lte = lps = rps = 0.0;
|
||||
latitude = longitude = altitude = 0.0;
|
||||
rf = rmv = vo2 = vco2 = tv = feo2 = 0.0;
|
||||
routeDistance = distanceRemaining = 0.0;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "DeviceConfiguration.h"
|
||||
#include "RideImportWizard.h"
|
||||
#include "HelpWhatsThis.h"
|
||||
#include "RideFile.h"
|
||||
#include <QApplication>
|
||||
#include <QtGui>
|
||||
#include <QRegExp>
|
||||
@@ -365,7 +366,8 @@ TrainSidebar::TrainSidebar(Context *context) : GcWindow(context), context(contex
|
||||
displayWorkoutDistance = displayDistance = displayPower = displayHeartRate =
|
||||
displaySpeed = displayCadence = slope = load = 0;
|
||||
displaySMO2 = displayTHB = displayO2HB = displayHHB = 0;
|
||||
displayLRBalance = displayLTE = displayRTE = displayLPS = displayRPS = 0;
|
||||
displayLRBalance = RideFile::NA;
|
||||
displayLTE = displayRTE = displayLPS = displayRPS = 0;
|
||||
displayLatitude = displayLongitude = displayAltitude = 0.0;
|
||||
|
||||
connect(gui_timer, SIGNAL(timeout()), this, SLOT(guiUpdate()));
|
||||
|
||||
Reference in New Issue
Block a user