Skip to content

Commit

Permalink
Don't adjust speed by inclination when using PID (Issue #3254)
Browse files Browse the repository at this point in the history
  • Loading branch information
cagnulein committed Feb 28, 2025
1 parent 1a58636 commit 4b6611a
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/homeform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5443,7 +5443,8 @@ void homeform::update() {
delta = trainProgram->currentRow().loopTimeHR;
}

if (bluetoothManager->device()->deviceType() == bluetoothdevice::TREADMILL &&
if (bluetoothManager->device()->deviceType() == bluetoothdevice::TREADMILL &&
!settings.value(QZSettings::trainprogram_pid_ignore_inclination, QZSettings::default_trainprogram_pid_ignore_inclination).toBool() &&
bluetoothManager->device()->currentInclination().value() != lastInclination && lastWattage != 0) {
last_seconds_pid_heart_zone = seconds;

Expand Down
4 changes: 3 additions & 1 deletion src/qzsettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -890,8 +890,9 @@ const QString QZSettings::proform_xbike = QStringLiteral("proform_xbike");
const QString QZSettings::peloton_current_user_id = QStringLiteral("peloton_current_user_id");
const QString QZSettings::default_peloton_current_user_id = QStringLiteral("");
const QString QZSettings::proform_225_csx_PFEX32925_INT_0 = QStringLiteral("proform_225_csx_PFEX32925_INT_0");
const QString QZSettings::trainprogram_pid_ignore_inclination = QStringLiteral("trainprogram_pid_ignore_inclination");

const uint32_t allSettingsCount = 735;
const uint32_t allSettingsCount = 736;

QVariant allSettings[allSettingsCount][2] = {
{QZSettings::cryptoKeySettingsProfiles, QZSettings::default_cryptoKeySettingsProfiles},
Expand Down Expand Up @@ -1641,6 +1642,7 @@ QVariant allSettings[allSettingsCount][2] = {
{QZSettings::proform_xbike, QZSettings::default_proform_xbike},
{QZSettings::peloton_current_user_id, QZSettings::default_peloton_current_user_id},
{QZSettings::proform_225_csx_PFEX32925_INT_0, QZSettings::proform_225_csx_PFEX32925_INT_0},
{QZSettings::trainprogram_pid_ignore_inclination, QZSettings::default_trainprogram_pid_ignore_inclination},
};

void QZSettings::qDebugAllSettings(bool showDefaults) {
Expand Down
2 changes: 2 additions & 0 deletions src/qzsettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -2403,6 +2403,8 @@ class QZSettings {
static const QString default_peloton_current_user_id;
static const QString proform_225_csx_PFEX32925_INT_0;
static constexpr bool default_proform_225_csx_PFEX32925_INT_0 = false;
static const QString trainprogram_pid_ignore_inclination;
static constexpr bool default_trainprogram_pid_ignore_inclination = false;

/**
* @brief Write the QSettings values using the constants from this namespace.
Expand Down
30 changes: 30 additions & 0 deletions src/settings.qml
Original file line number Diff line number Diff line change
Expand Up @@ -1114,6 +1114,9 @@ import Qt.labs.platform 1.1
property bool proform_xbike: false
property bool proform_225_csx_PFEX32925_INT_0: false
property string peloton_current_user_id: ""

// 2.18.22
property bool trainprogram_pid_ignore_inclination: false
}

function paddingZeros(text, limit) {
Expand Down Expand Up @@ -5567,6 +5570,33 @@ import Qt.labs.platform 1.1
color: Material.color(Material.Lime)
}

IndicatorOnlySwitch {
text: qsTr("PID Ignore Inclination")
spacing: 0
bottomPadding: 0
topPadding: 0
rightPadding: 0
leftPadding: 0
clip: false
checked: settings.trainprogram_pid_ignore_inclination
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
Layout.fillWidth: true
onClicked: settings.trainprogram_pid_ignore_inclination = checked
}

Label {
text: qsTr("Enabling this the PID will ignore the inclination changes. Default: Disabled.")
font.bold: true
font.italic: true
font.pixelSize: Qt.application.font.pixelSize - 2
textFormat: Text.PlainText
wrapMode: Text.WordWrap
verticalAlignment: Text.AlignVCenter
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
Layout.fillWidth: true
color: Material.color(Material.Lime)
}

RowLayout {
spacing: 10
Label {
Expand Down

0 comments on commit 4b6611a

Please sign in to comment.