@@ -88,7 +88,8 @@ void fitplusbike::writeCharacteristic(uint8_t *data, uint8_t data_len, const QSt
8888
8989void fitplusbike::forceResistance (resistance_t requestResistance) {
9090 QSettings settings;
91- bool virtufit_etappe = settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
91+ bool virtufit_etappe = virtufitEtappe ||
92+ settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
9293 bool sportstech_sx600 = settings.value (QZSettings::sportstech_sx600, QZSettings::default_sportstech_sx600).toBool ();
9394 requestResistanceCompleted = false ;
9495 if (virtufit_etappe || merach_MRK || H9110_OSAKA ) {
@@ -304,8 +305,8 @@ void fitplusbike::update() {
304305 gattNotify1Characteristic.isValid () && initDone) {
305306 QSettings settings;
306307 update_metrics (false , watts ());
307- bool virtufit_etappe =
308- settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
308+ bool virtufit_etappe = virtufitEtappe ||
309+ settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
309310 bool sportstech_sx600 =
310311 settings.value (QZSettings::sportstech_sx600, QZSettings::default_sportstech_sx600).toBool ();
311312
@@ -413,7 +414,8 @@ void fitplusbike::characteristicChanged(const QLowEnergyCharacteristic &characte
413414
414415 lastPacket = newValue;
415416
416- bool virtufit_etappe = settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
417+ bool virtufit_etappe = virtufitEtappe ||
418+ settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
417419 bool sportstech_sx600 = settings.value (QZSettings::sportstech_sx600, QZSettings::default_sportstech_sx600).toBool ();
418420
419421 if (sportstech_sx600 && characteristic.uuid () == QBluetoothUuid ((quint16)0x2AD2 )) {
@@ -752,7 +754,8 @@ double fitplusbike::bikeResistanceToPeloton(double resistance) {
752754void fitplusbike::btinit () {
753755
754756 QSettings settings;
755- bool virtufit_etappe = settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
757+ bool virtufit_etappe = virtufitEtappe ||
758+ settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
756759 bool sportstech_sx600 = settings.value (QZSettings::sportstech_sx600, QZSettings::default_sportstech_sx600).toBool ();
757760
758761 if (merach_MRK) {
@@ -1014,6 +1017,9 @@ void fitplusbike::deviceDiscovered(const QBluetoothDeviceInfo &device) {
10141017 if (device.name ().startsWith (QStringLiteral (" MRK-" ))) {
10151018 qDebug () << QStringLiteral (" merach_MRK workaround enabled!" );
10161019 merach_MRK = true ;
1020+ } else if (device.name ().startsWith (QStringLiteral (" X100-" ))) {
1021+ qDebug () << QStringLiteral (" VirtuFit Etappe 2.0i workaround enabled!" );
1022+ virtufitEtappe = true ;
10171023 } else if (device.name ().toUpper ().startsWith (" H9110 OSAKA" )) {
10181024 qDebug () << QStringLiteral (" H9110 OSAKA workaround enabled!" );
10191025 max_resistance = 32 ;
@@ -1080,7 +1086,8 @@ void fitplusbike::controllerStateChanged(QLowEnergyController::ControllerState s
10801086
10811087uint16_t fitplusbike::wattsFromResistance (double resistance) {
10821088 QSettings settings;
1083- bool virtufit_etappe = settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
1089+ bool virtufit_etappe = virtufitEtappe ||
1090+ settings.value (QZSettings::virtufit_etappe, QZSettings::default_virtufit_etappe).toBool ();
10841091
10851092 // https://github.com/cagnulein/qdomyos-zwift/issues/62#issuecomment-736913564
10861093 /* if(currentCadence().value() < 90)
0 commit comments