1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-22 07:45:19 +03:00

Revise filter sliders

This commit is contained in:
Mark Haslinghuis 2021-09-27 04:29:41 +02:00
parent 1dbe298abd
commit 2e0334c114
No known key found for this signature in database
GPG key ID: 198B0F616296A584
2 changed files with 32 additions and 17 deletions

View file

@ -500,6 +500,7 @@ TABS.pid_tuning.initialize = function (callback) {
$('.pid_tuning .YAW input[name="d"]').attr("max", "200"); $('.pid_tuning .YAW input[name="d"]').attr("max", "200");
$('.pid_tuning .YAW input[name="dMinPitch"]').attr("max", "1000"); $('.pid_tuning .YAW input[name="dMinPitch"]').attr("max", "1000");
$('#sliderDTermFilterMultiplier').attr({ "min": "0.5", "max": "1.5", "step": "0.025" }); $('#sliderDTermFilterMultiplier').attr({ "min": "0.5", "max": "1.5", "step": "0.025" });
$('#sliderGyroFilterMultipier').attr({ "min": "0.5", "max": "1.5", "step": "0.025" });
} }
// Feedforward // Feedforward
@ -2146,14 +2147,7 @@ TABS.pid_tuning.initialize = function (callback) {
allFilterTuningSliders.on('input mouseup', function() { allFilterTuningSliders.on('input mouseup', function() {
const slider = $(this); const slider = $(this);
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
if (slider.is('#sliderGyroFilterMultiplier')) {
slider.attr('step', SLIDER_STEP_UPPER * 2);
} else {
slider.attr('step', SLIDER_STEP_UPPER);
}
} else {
// adjust step for more smoothness above 1x
if (slider.val() >= 1) { if (slider.val() >= 1) {
slider.attr('step', SLIDER_STEP_LOWER); slider.attr('step', SLIDER_STEP_LOWER);
} else { } else {
@ -2161,20 +2155,41 @@ TABS.pid_tuning.initialize = function (callback) {
} }
} }
if (!TuningSliders.expertMode) { if (!TuningSliders.expertMode) {
if (slider.val() > NON_EXPERT_SLIDER_MAX) { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
slider.val(NON_EXPERT_SLIDER_MAX); const NON_EXPERT_SLIDER_MIN_GYRO = 0.4;
} else if (slider.val() < NON_EXPERT_SLIDER_MIN) { const NON_EXPERT_SLIDER_MAX_GYRO = 1.5;
slider.val(NON_EXPERT_SLIDER_MIN); const NON_EXPERT_SLIDER_MIN_DTERM = 0.8;
const NON_EXPERT_SLIDER_MAX_DTERM = 1.2;
if (slider.is('#sliderGyroFilterMultiplier')) {
if (slider.val() > NON_EXPERT_SLIDER_MAX_GYRO) {
slider.val(NON_EXPERT_SLIDER_MAX_GYRO);
} else if (slider.val() < NON_EXPERT_SLIDER_MIN_GYRO) {
slider.val(NON_EXPERT_SLIDER_MIN_GYRO);
}
} else if (slider.is('#sliderDTermFilterMultiplier')) {
if (slider.val() > NON_EXPERT_SLIDER_MAX_DTERM) {
slider.val(NON_EXPERT_SLIDER_MAX_DTERM);
} else if (slider.val() < NON_EXPERT_SLIDER_MIN_DTERM) {
slider.val(NON_EXPERT_SLIDER_MIN_DTERM);
}
}
} else {
if (slider.val() > NON_EXPERT_SLIDER_MAX) {
slider.val(NON_EXPERT_SLIDER_MAX);
} else if (slider.val() < NON_EXPERT_SLIDER_MIN) {
slider.val(NON_EXPERT_SLIDER_MIN);
}
} }
} }
const sliderValue = isInt(slider.val()) ? parseInt(slider.val()) : parseFloat(slider.val()); const sliderValue = isInt(slider.val()) ? parseInt(slider.val()) : parseFloat(slider.val());
const scaledValue = TuningSliders.scaleSliderValue(sliderValue); const newValue = semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44) ? sliderValue : TuningSliders.scaleSliderValue(sliderValue);
if (slider.is('#sliderGyroFilterMultiplier')) { if (slider.is('#sliderGyroFilterMultiplier')) {
TuningSliders.sliderGyroFilterMultiplier = scaledValue; TuningSliders.sliderGyroFilterMultiplier = newValue;
TuningSliders.calculateNewGyroFilters(); TuningSliders.calculateNewGyroFilters();
self.analyticsChanges['GyroFilterTuningSlider'] = "On"; self.analyticsChanges['GyroFilterTuningSlider'] = "On";
} else if (slider.is('#sliderDTermFilterMultiplier')) { } else if (slider.is('#sliderDTermFilterMultiplier')) {
TuningSliders.sliderDTermFilterMultiplier = sliderValue; TuningSliders.sliderDTermFilterMultiplier = newValue;
TuningSliders.calculateNewDTermFilters(); TuningSliders.calculateNewDTermFilters();
self.analyticsChanges['DTermFilterTuningSlider'] = "On"; self.analyticsChanges['DTermFilterTuningSlider'] = "On";
} }

View file

@ -1145,7 +1145,7 @@
<output type="number" name="sliderGyroFilterMultiplier-number"></output> <output type="number" name="sliderGyroFilterMultiplier-number"></output>
</td> </td>
<td colspan="3"> <td colspan="3">
<input type="range" min="0.5" max="1.5" step="0.025" class="tuningSlider" id="sliderGyroFilterMultiplier" /> <input type="range" min="0.0" max="2.0" step="0.05" class="tuningSlider" id="sliderGyroFilterMultiplier" />
</td> </td>
<td> <td>
<div class="helpicon cf_tip" i18n_title="pidTuningGyroFilterSliderHelp"></div> <div class="helpicon cf_tip" i18n_title="pidTuningGyroFilterSliderHelp"></div>
@ -1164,7 +1164,7 @@
<output type="number" name="sliderDTermFilterMultiplier-number"></output> <output type="number" name="sliderDTermFilterMultiplier-number"></output>
</td> </td>
<td colspan="3"> <td colspan="3">
<input type="range" min="0.8" max="1.2" step="0.05" class="tuningSlider" id="sliderDTermFilterMultiplier" /> <input type="range" min="0.0" max="2.0" step="0.05" class="tuningSlider" id="sliderDTermFilterMultiplier" />
</td> </td>
<td> <td>
<div class="helpicon cf_tip" i18n_title="pidTuningDTermFilterSliderHelp"></div> <div class="helpicon cf_tip" i18n_title="pidTuningDTermFilterSliderHelp"></div>