diff --git a/src/js/TuningSliders.js b/src/js/TuningSliders.js index 2e2a2c2e..34fad1dc 100644 --- a/src/js/TuningSliders.js +++ b/src/js/TuningSliders.js @@ -409,8 +409,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 f21cf5c5..cf15ec56 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -596,6 +596,10 @@ TABS.pid_tuning.initialize = function (callback) { $('input[id="useIntegratedYaw"]').change(function() { const checked = $(this).is(':checked'); + // 4.3 firmware has RP mode. + if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) { + $('#pid_main .pid_data input').prop('disabled', !checked); + } $('#pidTuningIntegratedYawCaution').toggle(checked); }).change(); @@ -2125,9 +2129,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); }); @@ -2254,8 +2260,19 @@ 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 / Filter mode is changed if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { @@ -2270,6 +2287,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); });