@@ -170,6 +170,10 @@ void cscbike::update() {
170170 QSettings settings;
171171 QString heartRateBeltName =
172172 settings.value (QZSettings::heart_rate_belt_name, QZSettings::default_heart_rate_belt_name).toString ();
173+ bool externalPowerSensorEnabled =
174+ !settings.value (QZSettings::power_sensor_name, QZSettings::default_power_sensor_name)
175+ .toString ()
176+ .startsWith (QStringLiteral (" Disabled" ));
173177
174178 if (!noVirtualDevice) {
175179#ifdef Q_OS_ANDROID
@@ -183,21 +187,24 @@ void cscbike::update() {
183187 }
184188 }
185189
186- bool rogue_echo_bike = settings.value (QZSettings::rogue_echo_bike, QZSettings::default_rogue_echo_bike).toBool ();
187-
188- if (manualResistancePowerAdjustmentActive && jorotoBike) {
189- m_watt = manualResistanceAdjustedWatts ();
190- } else if (manualResistancePowerAdjustmentActive && useCustomResistancePowerTable ()) {
191- m_watt = customResistanceAdjustedWatts (currentCadence ().value (), manualResistanceTarget);
192- } else if (rogue_echo_bike) {
193- double rpm = currentCadence ().value ();
194- m_watt = 0.000602337 * pow (rpm, 3.11762 ) + 32.6404 ;
195- } else {
196- // When cadence is zero, watts should be zero regardless of HR
197- if (currentCadence ().value () == 0 ) {
198- m_watt = 0 ;
190+ if (!externalPowerSensorEnabled) {
191+ bool rogue_echo_bike =
192+ settings.value (QZSettings::rogue_echo_bike, QZSettings::default_rogue_echo_bike).toBool ();
193+
194+ if (manualResistancePowerAdjustmentActive && jorotoBike) {
195+ m_watt = manualResistanceAdjustedWatts ();
196+ } else if (manualResistancePowerAdjustmentActive && useCustomResistancePowerTable ()) {
197+ m_watt = customResistanceAdjustedWatts (currentCadence ().value (), manualResistanceTarget);
198+ } else if (rogue_echo_bike) {
199+ double rpm = currentCadence ().value ();
200+ m_watt = 0.000602337 * pow (rpm, 3.11762 ) + 32.6404 ;
199201 } else {
200- m_watt = wattFromHR (false );
202+ // When cadence is zero, watts should be zero regardless of HR
203+ if (currentCadence ().value () == 0 ) {
204+ m_watt = 0 ;
205+ } else {
206+ m_watt = wattFromHR (false );
207+ }
201208 }
202209 }
203210 emit debug (QStringLiteral (" Current Watt: " ) + QString::number (m_watt.value ()));
@@ -272,6 +279,15 @@ void cscbike::characteristicChanged(const QLowEnergyCharacteristic &characterist
272279 qDebug () << " characteristicChanged << " << characteristic.uuid () << newValue.toHex (' ' ) << newValue.length ();
273280 Q_UNUSED (characteristic);
274281 QSettings settings;
282+ bool externalCadenceSensorEnabled =
283+ !settings.value (QZSettings::cadence_sensor_name, QZSettings::default_cadence_sensor_name)
284+ .toString ()
285+ .startsWith (QStringLiteral (" Disabled" ));
286+ bool externalPowerSensorEnabled =
287+ !settings.value (QZSettings::power_sensor_name, QZSettings::default_power_sensor_name)
288+ .toString ()
289+ .startsWith (QStringLiteral (" Disabled" ));
290+ bool useMachineCadence = !externalCadenceSensorEnabled && !externalPowerSensorEnabled;
275291 // QString heartRateBeltName = //unused QString
276292 // settings.value(QZSettings::heart_rate_belt_name, QZSettings::default_heart_rate_belt_name).toString();
277293
@@ -356,7 +372,7 @@ void cscbike::characteristicChanged(const QLowEnergyCharacteristic &characterist
356372 deltaT = LastCrankEventTime + 65535 - oldLastCrankEventTime;
357373 }
358374
359- if (CrankRevs != oldCrankRevs && deltaT) {
375+ if (useMachineCadence && CrankRevs != oldCrankRevs && deltaT) {
360376 double cadence = ((CrankRevs - oldCrankRevs) / deltaT) * 1024 * 60 ;
361377
362378 // Cadence Validation Logic
@@ -377,7 +393,7 @@ void cscbike::characteristicChanged(const QLowEnergyCharacteristic &characterist
377393 if ((cadence >= 0 && (cadence < 256 || _CrankRevs == 0 ) && CrankPresent) || (!CrankPresent && WheelPresent))
378394 Cadence = cadence;
379395 lastGoodCadence = now;
380- } else if (lastGoodCadence.msecsTo (now) > 2000 ) {
396+ } else if (useMachineCadence && lastGoodCadence.msecsTo (now) > 2000 ) {
381397 Cadence = 0 ;
382398 }
383399 emit cadenceChanged (Cadence.value ());
0 commit comments