From 5a134398971e923c878bf012f6072e29dd27fa68 Mon Sep 17 00:00:00 2001 From: Asizon <43983086+Asizon@users.noreply.github.com> Date: Sun, 7 Nov 2021 10:22:17 +0100 Subject: [PATCH 1/2] fix integrated yaw usage move code to pidtuning.js fix tuningsliders --- src/js/tabs/pid_tuning.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 89ae49eb..26ae6880 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -547,6 +547,10 @@ TABS.pid_tuning.initialize = function (callback) { $('input[id="useIntegratedYaw"]').change(function() { const checked = $(this).is(':checked'); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { + this.sliderPidsMode = 0; + } + $('#pid_main .pid_data input').prop('disabled', !checked); $('#pidTuningIntegratedYawCaution').toggle(checked); }).change(); From 476ba71e63bdb539b986a057b3dceda196e65a6b Mon Sep 17 00:00:00 2001 From: Asizon <43983086+Asizon@users.noreply.github.com> Date: Wed, 8 Dec 2021 09:34:33 +0100 Subject: [PATCH 2/2] disable only if rpy --- src/js/TuningSliders.js | 6 ++++-- src/js/tabs/pid_tuning.js | 32 +++++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/js/TuningSliders.js b/src/js/TuningSliders.js index d71d24c9..965e336e 100644 --- a/src/js/TuningSliders.js +++ b/src/js/TuningSliders.js @@ -405,8 +405,10 @@ TuningSliders.updatePidSlidersDisplay = function() { }); }); - if ($('input[id="useIntegratedYaw"]').is(':checked')) { - this.pidSlidersUnavailable = true; + if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) { + if ($('input[id="useIntegratedYaw"]').is(':checked')) { + this.pidSlidersUnavailable = true; + } } if (!this.pidSlidersUnavailable) { diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 26ae6880..d501a6dd 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -547,10 +547,10 @@ TABS.pid_tuning.initialize = function (callback) { $('input[id="useIntegratedYaw"]').change(function() { const checked = $(this).is(':checked'); - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - this.sliderPidsMode = 0; + // 4.3 firmware has RP mode. + if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) { + $('#pid_main .pid_data input').prop('disabled', !checked); } - $('#pid_main .pid_data input').prop('disabled', !checked); $('#pidTuningIntegratedYawCaution').toggle(checked); }).change(); @@ -1806,9 +1806,11 @@ TABS.pid_tuning.initialize = function (callback) { }); }); + // exclude integratedYaw from setDirty for 4.3 as it uses RP mode. $('#pid-tuning').find('input').each(function (k, item) { if ($(item).attr('class') !== "feature toggle" - && $(item).attr('class') !== "nonProfile") { + && $(item).attr('class') !== "nonProfile" + && (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44) && $(item).attr('id'))) { $(item).change(function () { self.setDirty(true); }); @@ -1931,12 +1933,23 @@ TABS.pid_tuning.initialize = function (callback) { }); } - // disable slides if Integrated Yaw is enabled or Slider PID mode is set to OFF - $('input[id="useIntegratedYaw"]').change(() => TuningSliders.updatePidSlidersDisplay()); + const useIntegratedYaw = $('input[id="useIntegratedYaw"]'); + + useIntegratedYaw.on('change', () => { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { + // set slider to RP mode if Integrated Yaw is enabled and sliders are enabled + if (useIntegratedYaw.is(':checked') && TuningSliders.sliderPidsMode) { + sliderPidsModeSelect.val(1).trigger('change'); + } + } else { + // disable sliders if Integrated Yaw is enabled or Slider PID mode is set to OFF + TuningSliders.updatePidSlidersDisplay(); + } + }); // trigger Slider Display update when PID mode is changed if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - $('select[id="sliderPidsModeSelect"]').on('change', function () { + sliderPidsModeSelect.on('change', function () { const setMode = parseInt($(this).val()); TuningSliders.sliderPidsMode = setMode; @@ -1947,6 +1960,11 @@ TABS.pid_tuning.initialize = function (callback) { const disableRP = !!setMode; const disableY = setMode > 1; + // disable Integrated Yaw when going into RPY mode + if (setMode === 2) { + useIntegratedYaw.prop('checked', false).trigger('change'); + } + $('#pid_main .ROLL .pid_data input, #pid_main .PITCH .pid_data input').each(function() { $(this).prop('disabled', disableRP); });