mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-16 21:05:30 +03:00
Added Dynamic Lpf Dterm Curve Expo to UI
This commit is contained in:
parent
a52efd7ec8
commit
dcdc15c5e3
5 changed files with 42 additions and 0 deletions
|
@ -3587,6 +3587,9 @@
|
||||||
"pidTuningDTermLowpassDynType": {
|
"pidTuningDTermLowpassDynType": {
|
||||||
"message": "D Term Lowpass 1 Dynamic Filter Type"
|
"message": "D Term Lowpass 1 Dynamic Filter Type"
|
||||||
},
|
},
|
||||||
|
"pidTuningDTermLowpassDynExpo": {
|
||||||
|
"message": "D Term Lowpass 1 Dynamic Curve Expo"
|
||||||
|
},
|
||||||
"pidTuningDTermNotchFiltersGroup": {
|
"pidTuningDTermNotchFiltersGroup": {
|
||||||
"message": "D Term Notch Filters"
|
"message": "D Term Notch Filters"
|
||||||
},
|
},
|
||||||
|
|
|
@ -405,6 +405,7 @@ var FC = {
|
||||||
dterm_lowpass_type: 0,
|
dterm_lowpass_type: 0,
|
||||||
dterm_lowpass2_hz: 0,
|
dterm_lowpass2_hz: 0,
|
||||||
dterm_lowpass2_type: 0,
|
dterm_lowpass2_type: 0,
|
||||||
|
dyn_lpf_curve_expo: 0,
|
||||||
dterm_notch_hz: 0,
|
dterm_notch_hz: 0,
|
||||||
dterm_notch_cutoff: 0,
|
dterm_notch_cutoff: 0,
|
||||||
yaw_lowpass_hz: 0,
|
yaw_lowpass_hz: 0,
|
||||||
|
@ -568,6 +569,7 @@ var FC = {
|
||||||
dterm_lowpass_hz: 100,
|
dterm_lowpass_hz: 100,
|
||||||
dterm_lowpass_dyn_min_hz: 150,
|
dterm_lowpass_dyn_min_hz: 150,
|
||||||
dterm_lowpass_dyn_max_hz: 250,
|
dterm_lowpass_dyn_max_hz: 250,
|
||||||
|
dyn_lpf_curve_expo: 5,
|
||||||
dterm_lowpass_type: FC.FILTER_TYPE_FLAGS.PT1,
|
dterm_lowpass_type: FC.FILTER_TYPE_FLAGS.PT1,
|
||||||
dterm_lowpass2_hz: 150,
|
dterm_lowpass2_hz: 150,
|
||||||
dterm_lowpass2_type: FC.FILTER_TYPE_FLAGS.BIQUAD,
|
dterm_lowpass2_type: FC.FILTER_TYPE_FLAGS.BIQUAD,
|
||||||
|
|
|
@ -1083,6 +1083,9 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
||||||
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_43)) {
|
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_43)) {
|
||||||
FILTER_CONFIG.dyn_notch_max_hz = data.readU16();
|
FILTER_CONFIG.dyn_notch_max_hz = data.readU16();
|
||||||
}
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_44)) {
|
||||||
|
FILTER_CONFIG.dyn_lpf_curve_expo = data.readU8();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2017,6 +2020,9 @@ MspHelper.prototype.crunch = function(code) {
|
||||||
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_43)) {
|
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_43)) {
|
||||||
buffer.push16(FILTER_CONFIG.dyn_notch_max_hz);
|
buffer.push16(FILTER_CONFIG.dyn_notch_max_hz);
|
||||||
}
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_44)) {
|
||||||
|
buffer.push8(FILTER_CONFIG.dyn_lpf_curve_expo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MSPCodes.MSP_SET_PID_ADVANCED:
|
case MSPCodes.MSP_SET_PID_ADVANCED:
|
||||||
|
|
|
@ -330,6 +330,9 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
$('.pid_filter input[name="dtermLowpassDynMinFrequency"]').val(FILTER_CONFIG.dterm_lowpass_dyn_min_hz);
|
$('.pid_filter input[name="dtermLowpassDynMinFrequency"]').val(FILTER_CONFIG.dterm_lowpass_dyn_min_hz);
|
||||||
$('.pid_filter input[name="dtermLowpassDynMaxFrequency"]').val(FILTER_CONFIG.dterm_lowpass_dyn_max_hz);
|
$('.pid_filter input[name="dtermLowpassDynMaxFrequency"]').val(FILTER_CONFIG.dterm_lowpass_dyn_max_hz);
|
||||||
$('.pid_filter select[name="dtermLowpassDynType"]').val(FILTER_CONFIG.dterm_lowpass_type);
|
$('.pid_filter select[name="dtermLowpassDynType"]').val(FILTER_CONFIG.dterm_lowpass_type);
|
||||||
|
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_44)) {
|
||||||
|
$('.pid_filter input[name="dtermLowpassDynExpo"]').val(FILTER_CONFIG.dyn_lpf_curve_expo);
|
||||||
|
}
|
||||||
|
|
||||||
$('.pid_tuning input[name="dMinRoll"]').val(ADVANCED_TUNING.dMinRoll);
|
$('.pid_tuning input[name="dMinRoll"]').val(ADVANCED_TUNING.dMinRoll);
|
||||||
$('.pid_tuning input[name="dMinPitch"]').val(ADVANCED_TUNING.dMinPitch);
|
$('.pid_tuning input[name="dMinPitch"]').val(ADVANCED_TUNING.dMinPitch);
|
||||||
|
@ -613,10 +616,18 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
$('input[id="dtermLowpassEnabled"]').prop('checked', false).change();
|
$('input[id="dtermLowpassEnabled"]').prop('checked', false).change();
|
||||||
} else if (FILTER_CONFIG.dterm_lowpass_hz > 0 && !$('input[id="dtermLowpassEnabled"]').is(':checked')) {
|
} else if (FILTER_CONFIG.dterm_lowpass_hz > 0 && !$('input[id="dtermLowpassEnabled"]').is(':checked')) {
|
||||||
$('input[id="dtermLowpassEnabled"]').prop('checked', true).change();
|
$('input[id="dtermLowpassEnabled"]').prop('checked', true).change();
|
||||||
|
$('.pid_filter input[id="dtermLowpassDynExpoEnabled"]').prop('checked', false).change();
|
||||||
}
|
}
|
||||||
self.updateFilterWarning();
|
self.updateFilterWarning();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('input[id="dtermLowpassDynExpoEnabled"]').change(function() {
|
||||||
|
var checked = $(this).is(':checked');
|
||||||
|
var curveExpo = FILTER_CONFIG.dyn_lpf_curve_expo > 0 ? FILTER_CONFIG.dyn_lpf_curve_expo : FILTER_DEFAULT.dyn_lpf_curve_expo;
|
||||||
|
|
||||||
|
$('.pid_filter input[name="dtermLowpassDynExpo"]').val(checked ? curveExpo : 0).attr('disabled', !checked);
|
||||||
|
});
|
||||||
|
|
||||||
$('input[id="dtermLowpass2Enabled"]').change(function() {
|
$('input[id="dtermLowpass2Enabled"]').change(function() {
|
||||||
var checked = $(this).is(':checked');
|
var checked = $(this).is(':checked');
|
||||||
var cutoff = FILTER_CONFIG.dterm_lowpass2_hz > 0 ? FILTER_CONFIG.dterm_lowpass2_hz : FILTER_DEFAULT.dterm_lowpass2_hz;
|
var cutoff = FILTER_CONFIG.dterm_lowpass2_hz > 0 ? FILTER_CONFIG.dterm_lowpass2_hz : FILTER_DEFAULT.dterm_lowpass2_hz;
|
||||||
|
@ -664,6 +675,7 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
$('input[id="dtermNotchEnabled"]').prop('checked', FILTER_CONFIG.dterm_notch_hz != 0).change();
|
$('input[id="dtermNotchEnabled"]').prop('checked', FILTER_CONFIG.dterm_notch_hz != 0).change();
|
||||||
$('input[id="gyroLowpassEnabled"]').prop('checked', FILTER_CONFIG.gyro_lowpass_hz != 0).change();
|
$('input[id="gyroLowpassEnabled"]').prop('checked', FILTER_CONFIG.gyro_lowpass_hz != 0).change();
|
||||||
$('input[id="gyroLowpassDynEnabled"]').prop('checked', FILTER_CONFIG.gyro_lowpass_dyn_min_hz != 0 && FILTER_CONFIG.gyro_lowpass_dyn_min_hz < FILTER_CONFIG.gyro_lowpass_dyn_max_hz).change();
|
$('input[id="gyroLowpassDynEnabled"]').prop('checked', FILTER_CONFIG.gyro_lowpass_dyn_min_hz != 0 && FILTER_CONFIG.gyro_lowpass_dyn_min_hz < FILTER_CONFIG.gyro_lowpass_dyn_max_hz).change();
|
||||||
|
$('input[id="dtermLowpassDynExpoEnabled"]').prop('checked', FILTER_CONFIG.dyn_lpf_curve_expo != 0).change();
|
||||||
$('input[id="gyroLowpass2Enabled"]').prop('checked', FILTER_CONFIG.gyro_lowpass2_hz != 0).change();
|
$('input[id="gyroLowpass2Enabled"]').prop('checked', FILTER_CONFIG.gyro_lowpass2_hz != 0).change();
|
||||||
$('input[id="dtermLowpassEnabled"]').prop('checked', FILTER_CONFIG.dterm_lowpass_hz != 0).change();
|
$('input[id="dtermLowpassEnabled"]').prop('checked', FILTER_CONFIG.dterm_lowpass_hz != 0).change();
|
||||||
$('input[id="dtermLowpassDynEnabled"]').prop('checked', FILTER_CONFIG.dterm_lowpass_dyn_min_hz != 0 && FILTER_CONFIG.dterm_lowpass_dyn_min_hz < FILTER_CONFIG.dterm_lowpass_dyn_max_hz).change();
|
$('input[id="dtermLowpassDynEnabled"]').prop('checked', FILTER_CONFIG.dterm_lowpass_dyn_min_hz != 0 && FILTER_CONFIG.dterm_lowpass_dyn_min_hz < FILTER_CONFIG.dterm_lowpass_dyn_max_hz).change();
|
||||||
|
@ -885,6 +897,9 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
|
|
||||||
RC_tuning.rates_type = selectedRatesType;
|
RC_tuning.rates_type = selectedRatesType;
|
||||||
}
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, API_VERSION_1_44)) {
|
||||||
|
FILTER_CONFIG.dyn_lpf_curve_expo = parseInt($('.pid_filter input[name="dtermLowpassDynExpo"]').val());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showAllPids() {
|
function showAllPids() {
|
||||||
|
|
|
@ -1345,6 +1345,22 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr class="dtermLowpassDyn">
|
||||||
|
<td>
|
||||||
|
<span class="groupSwitchValue">
|
||||||
|
<span class="inputSwitch"><input type="checkbox" id="dtermLowpassDynExpoEnabled" class="toggle" /></span>
|
||||||
|
<span class="inputValue"><input type="number" name="dtermLowpassDynExpo" step="1" min="1" max="10"/></span>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningDTermLowpassDynExpo"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span class="groupSwitchValue">
|
<span class="groupSwitchValue">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue