1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-16 12:55:14 +03:00

Merge pull request #2103 from Asizon/add_vbatSagCompensation_to_ui

Added Vbat Sag Compensation to UI
This commit is contained in:
Michael Keller 2020-07-05 15:40:38 +12:00 committed by GitHub
commit 2b8b0a2417
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 41 additions and 3 deletions

View file

@ -3644,6 +3644,15 @@
"pidTuningVbatPidCompensationHelp": {
"message": "Increases the PID values to compensate when Vbat gets lower. This will give more constant flight characteristics throughout the flight. The amount of compensation that is applied is calculated from the $t(powerBatteryMaximum.message) set in the $t(tabPower.message) page, so make sure that is set to something appropriate."
},
"pidTuningVbatSagCompensation": {
"message": "Vbat Sag Compensation"
},
"pidTuningVbatSagCompensationHelp": {
"message": "Gives consistent throttle and PID performance over the usable battery voltage range by compensating for battery sag. The amount of compensation can be varied between 0 and 100%. Full compensation (100%) is recommended.<br><br>Visit <a href=\"https://github.com/betaflight/betaflight/wiki/4.2-Tuning-Notes#dynamic-battery-sag-compensation\"target=\"_blank\" rel=\"noopener noreferrer\">this wiki entry</a> for more info."
},
"pidTuningVbatSagValue": {
"message": "%"
},
"pidTuningItermRotation": {
"message": "I Term Rotation"
},

View file

@ -462,6 +462,7 @@ var FC = {
ff_interpolate_sp: 0,
ff_smooth_factor: 0,
ff_boost: 0,
vbat_sag_compensation: 0,
};
ADVANCED_TUNING_ACTIVE = { ...ADVANCED_TUNING };

View file

@ -1157,6 +1157,7 @@ MspHelper.prototype.process_data = function(dataHandler) {
ADVANCED_TUNING.ff_interpolate_sp = data.readU8();
ADVANCED_TUNING.ff_smooth_factor = data.readU8();
ADVANCED_TUNING.ff_boost = data.readU8();
ADVANCED_TUNING.vbat_sag_compensation = data.readU8();
}
}
}
@ -2098,7 +2099,8 @@ MspHelper.prototype.crunch = function(code) {
if(semver.gte(CONFIG.apiVersion, API_VERSION_1_44)) {
buffer.push8(ADVANCED_TUNING.ff_interpolate_sp)
.push8(ADVANCED_TUNING.ff_smooth_factor)
.push8(ADVANCED_TUNING.ff_boost);
.push8(ADVANCED_TUNING.ff_boost)
.push8(ADVANCED_TUNING.vbat_sag_compensation);
}
}
}

View file

@ -448,11 +448,21 @@ TABS.pid_tuning.initialize = function (callback) {
ffInterpolateCheck.change(function() {
const checked = $(this).is(':checked');
$('.ffInterpolateSp .suboption').toggle(checked);
});
ffInterpolateCheck.change();
}).change();
// Vbat Sag Compensation
const vbatSagCompensationCheck = $('input[id="vbatSagCompensation"]');
vbatSagCompensationCheck.prop('checked', ADVANCED_TUNING.vbat_sag_compensation !== 0);
$('input[name="vbatSagValue"]').val(ADVANCED_TUNING.vbat_sag_compensation > 0 ? ADVANCED_TUNING.vbat_sag_compensation : 100);
vbatSagCompensationCheck.change(function() {
const checked = $(this).is(':checked');
$('.vbatSagCompensation .suboption').toggle(checked);
}).change();
} else {
$('.ffInterpolateSp').hide();
$('.vbatSagCompensation').hide();
}
$('input[id="useIntegratedYaw"]').change(function() {
@ -921,6 +931,7 @@ TABS.pid_tuning.initialize = function (callback) {
ADVANCED_TUNING.ff_smooth_factor = parseInt($('input[name="ffSmoothFactor"]').val());
ADVANCED_TUNING.ff_boost = parseInt($('input[name="ffBoost"]').val());
FILTER_CONFIG.dyn_lpf_curve_expo = parseInt($('.pid_filter input[name="dtermLowpassDynExpo"]').val());
ADVANCED_TUNING.vbat_sag_compensation = $('input[id="vbatSagCompensation"]').is(':checked') ? parseInt($('input[name="vbatSagValue"]').val()) : 0;
}
}

View file

@ -596,6 +596,21 @@
</td>
</tr>
<tr class="vbatSagCompensation">
<td><input type="checkbox" id="vbatSagCompensation" class="toggle" /></td>
<td colspan="2">
<span i18n="pidTuningVbatSagCompensation"></span>
<div class="helpicon cf_tip" i18n_title="pidTuningVbatSagCompensationHelp"></div>
<span class="vbatSagValue suboption">
<input type="number" name="vbatSagValue" step="1" min="1" max="150" />
<label for="vbatSagValue">
<span i18n="pidTuningVbatSagValue"></span>
</label>
</span>
</td>
</tr>
<tr class="smartfeedforward">
<td><input type="checkbox" id="smartfeedforward" class="toggle" /></td>
<td colspan="2">