Merge pull request #2651 from Asizon/integrated_yaw_fix

Nice, works all as expected.
Enabled editing: sets YPR to PR.
Setting back to YPR disables integrated yaw.
resets works as expected.
10.8-maintenance
Ivan Efimov 2021-12-09 23:50:57 -06:00 committed by GitHub
commit 79e081f0f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 5 deletions

View File

@ -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) {

View File

@ -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);
});