From c1410814f1167fcdc97b91f2991dae3a61a7b6f6 Mon Sep 17 00:00:00 2001 From: Jaime Date: Sun, 27 Jan 2013 22:02:52 -0500 Subject: [PATCH] Fixes in CT support to ensure Gradient/Slope is being defaulted and updated properly between the CTConroller and TrainTool. Fix to preselect ERG mode in workoutTree. --- src/ComputrainerController.cpp | 7 +++++-- src/TrainTool.cpp | 8 +++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ComputrainerController.cpp b/src/ComputrainerController.cpp index f0cfa106f..5845961b7 100644 --- a/src/ComputrainerController.cpp +++ b/src/ComputrainerController.cpp @@ -76,7 +76,7 @@ ComputrainerController::getRealtimeData(RealtimeData &rtData) { int Buttons, Status; bool calibration; - double Power, HeartRate, Cadence, Speed, RRC, Load; + double Power, HeartRate, Cadence, Speed, RRC, Load, Gradient; uint8_t ss[24]; if(!myComputrainer->isRunning()) @@ -123,8 +123,10 @@ ComputrainerController::getRealtimeData(RealtimeData &rtData) // BUTTONS // - // ADJUST LOAD + // ADJUST LOAD & GRADIENT Load = myComputrainer->getLoad(); + Gradient = myComputrainer->getGradient(); + // the calls to the parent will determine which mode we are on (ERG/SPIN) and adjust load/slop appropiately if ((Buttons&CT_PLUS) && !(Buttons&CT_F3)) { parent->Higher(); } @@ -132,6 +134,7 @@ ComputrainerController::getRealtimeData(RealtimeData &rtData) parent->Lower(); } rtData.setLoad(Load); + rtData.setSlope(Gradient); #if 0 // F3 now toggles calibration // FFWD/REWIND diff --git a/src/TrainTool.cpp b/src/TrainTool.cpp index 9ccfba0cf..851dd977d 100644 --- a/src/TrainTool.cpp +++ b/src/TrainTool.cpp @@ -360,6 +360,8 @@ TrainTool::TrainTool(MainWindow *parent, const QDir &home) : GcWindow(parent), h recordFile = NULL; status = 0; status |= RT_MODE_ERGO; // ergo mode by default + mode = ERG; + displayWorkoutLap = displayLap = 0; pwrcount = 0; cadcount = 0; @@ -472,7 +474,9 @@ TrainTool::configChanged() if (Devices.count()) { deviceTree->setCurrentItem(allDevices->child(0)); } - + // And select default workout to Ergo + QModelIndex firstWorkout = sortModel->index(0, 0, QModelIndex()); + workoutTree->setCurrentIndex(firstWorkout); // Athlete FTP=285; // default to 285 if zones are not set int range = main->zones()->whichRange(QDate::currentDate()); @@ -1025,6 +1029,7 @@ void TrainTool::guiUpdate() // refreshes the telemetry if (Devices[dev].type == DEV_CT) { memcpy((uint8_t*)rtData.spinScan, (uint8_t*)local.spinScan, 24); rtData.setLoad(local.getLoad()); // and get load in case it was adjusted + rtData.setSlope(local.getSlope()); // and get slope in case it was adjusted // to within defined limits } @@ -1070,6 +1075,7 @@ void TrainTool::guiUpdate() // refreshes the telemetry displayHeartRate = rtData.getHr(); displaySpeed = rtData.getSpeed(); load = rtData.getLoad(); + slope = rtData.getSlope(); // virtual speed double crr = 0.004f; // typical for asphalt surfaces