Skip to content

Commit 1ac2149

Browse files
authored
Add Domyos TS100 treadmill support with fixed 15° inclination (#4234)
1 parent 2855869 commit 1ac2149

5 files changed

Lines changed: 34 additions & 2 deletions

File tree

src/devices/horizontreadmill/horizontreadmill.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1918,7 +1918,10 @@ void horizontreadmill::characteristicChanged(const QLowEnergyCharacteristic &cha
19181918
emit debug(QStringLiteral("Current Distance: ") + QString::number(Distance.value()));
19191919

19201920
if (Flags.inclination) {
1921-
if(!tunturi_t60_treadmill && !ICONCEPT_FTMS_treadmill && !T01)
1921+
if(domyos_treadmill_ts100) {
1922+
// Domyos TS100 has a fixed 15° inclination
1923+
Inclination = 15;
1924+
} else if(!tunturi_t60_treadmill && !ICONCEPT_FTMS_treadmill && !T01)
19221925
parseInclination(treadmillInclinationOverride((double)(
19231926
(int16_t)(
19241927
((int16_t)(int8_t)newValue.at(index + 1) << 8) |
@@ -1965,6 +1968,10 @@ void horizontreadmill::characteristicChanged(const QLowEnergyCharacteristic &cha
19651968
}
19661969
index += 4; // the ramo value is useless
19671970
emit debug(QStringLiteral("Current Inclination: ") + QString::number(Inclination.value()));
1971+
} else if(domyos_treadmill_ts100) {
1972+
// Domyos TS100 has a fixed 15° inclination (no inclination flag in 2ACD)
1973+
Inclination = 15;
1974+
emit debug(QStringLiteral("Current Inclination (TS100 fixed): ") + QString::number(Inclination.value()));
19681975
}
19691976

19701977
if (Flags.elevation) {
@@ -2656,6 +2663,10 @@ void horizontreadmill::deviceDiscovered(const QBluetoothDeviceInfo &device) {
26562663
} else if ((device.name().toUpper().startsWith("DOMYOS"))) {
26572664
qDebug() << QStringLiteral("DOMYOS found");
26582665
DOMYOS = true;
2666+
domyos_treadmill_ts100 = settings.value(QZSettings::domyos_treadmill_ts100, QZSettings::default_domyos_treadmill_ts100).toBool();
2667+
if(domyos_treadmill_ts100) {
2668+
qDebug() << QStringLiteral("Domyos TS100 mode ON - Fixed 15° inclination");
2669+
}
26592670
} else if ((device.name().toUpper().startsWith(QStringLiteral("BFX_T9_")))) {
26602671
qDebug() << QStringLiteral("BOWFLEX T9 found");
26612672
BOWFLEX_T9 = true;

src/devices/horizontreadmill/horizontreadmill.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class horizontreadmill : public treadmill {
106106
bool ICONCEPT_FTMS_treadmill = false;
107107
bool iconcept_ftms_treadmill_inclination_table = false;
108108
bool DOMYOS = false;
109+
bool domyos_treadmill_ts100 = false;
109110
bool SW_TREADMILL = false;
110111
bool BOWFLEX_T9 = false;
111112
bool YPOO_MINI_PRO = false;

src/qzsettings.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,7 @@ const QString QZSettings::domyos_treadmill_button_16kmh = QStringLiteral("domyos
769769
const QString QZSettings::domyos_treadmill_button_22kmh = QStringLiteral("domyos_treadmill_button_22kmh");
770770
const QString QZSettings::proform_treadmill_sport_8_5 = QStringLiteral("proform_treadmill_sport_8_5");
771771
const QString QZSettings::domyos_treadmill_t900a = QStringLiteral("domyos_treadmill_t900a");
772+
const QString QZSettings::domyos_treadmill_ts100 = QStringLiteral("domyos_treadmill_ts100");
772773
const QString QZSettings::domyos_treadmill_sync_start = QStringLiteral("domyos_treadmill_sync_start");
773774
const QString QZSettings::enerfit_SPX_9500 = QStringLiteral("enerfit_SPX_9500");
774775
const QString QZSettings::proform_treadmill_505_cst = QStringLiteral("proform_treadmill_505_cst");
@@ -1049,7 +1050,7 @@ const QString QZSettings::trainprogram_auto_lap_on_segment = QStringLiteral("tra
10491050
const QString QZSettings::kingsmith_r2_enable_hw_buttons = QStringLiteral("kingsmith_r2_enable_hw_buttons");
10501051

10511052

1052-
const uint32_t allSettingsCount = 855;
1053+
const uint32_t allSettingsCount = 856;
10531054

10541055
QVariant allSettings[allSettingsCount][2] = {
10551056
{QZSettings::cryptoKeySettingsProfiles, QZSettings::default_cryptoKeySettingsProfiles},
@@ -1688,6 +1689,7 @@ QVariant allSettings[allSettingsCount][2] = {
16881689
{QZSettings::domyos_treadmill_button_22kmh, QZSettings::default_domyos_treadmill_button_22kmh},
16891690
{QZSettings::proform_treadmill_sport_8_5, QZSettings::default_proform_treadmill_sport_8_5},
16901691
{QZSettings::domyos_treadmill_t900a, QZSettings::default_domyos_treadmill_t900a},
1692+
{QZSettings::domyos_treadmill_ts100, QZSettings::default_domyos_treadmill_ts100},
16911693
{QZSettings::domyos_treadmill_sync_start, QZSettings::default_domyos_treadmill_sync_start},
16921694
{QZSettings::enerfit_SPX_9500, QZSettings::default_enerfit_SPX_9500},
16931695
{QZSettings::proform_treadmill_505_cst, QZSettings::default_proform_treadmill_505_cst},

src/qzsettings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2122,6 +2122,9 @@ class QZSettings {
21222122
static const QString domyos_treadmill_t900a;
21232123
static constexpr bool default_domyos_treadmill_t900a = false;
21242124

2125+
static const QString domyos_treadmill_ts100;
2126+
static constexpr bool default_domyos_treadmill_ts100 = false;
2127+
21252128
static const QString domyos_treadmill_sync_start;
21262129
static constexpr bool default_domyos_treadmill_sync_start = false;
21272130

src/settings.qml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,6 +1272,7 @@ import Qt.labs.platform 1.1
12721272
property bool technogym_bike: false
12731273
property bool kingsmith_r2_enable_hw_buttons: false
12741274
property bool treadmill_direct_distance: false
1275+
property bool domyos_treadmill_ts100: false
12751276
}
12761277

12771278

@@ -9067,6 +9068,20 @@ import Qt.labs.platform 1.1
90679068
onClicked: settings.domyos_treadmill_t900a = checked
90689069
}
90699070

9071+
IndicatorOnlySwitch {
9072+
text: qsTr("TS100 (Fixed 15° Inclination)")
9073+
spacing: 0
9074+
bottomPadding: 0
9075+
topPadding: 0
9076+
rightPadding: 0
9077+
leftPadding: 0
9078+
clip: false
9079+
checked: settings.domyos_treadmill_ts100
9080+
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
9081+
Layout.fillWidth: true
9082+
onClicked: settings.domyos_treadmill_ts100 = checked
9083+
}
9084+
90709085
IndicatorOnlySwitch {
90719086
text: qsTr("Sync Start (Old Behavior)")
90729087
spacing: 0

0 commit comments

Comments
 (0)