1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-26 09:45:23 +03:00

Basic PID Tab rework

This commit is contained in:
Pawel Spychalski (DzikuVx) 2019-11-21 22:20:44 +01:00
parent af5855be97
commit 51945769c7
7 changed files with 1745 additions and 1653 deletions

View file

@ -3168,7 +3168,10 @@
"message": "BIQUAD offers better noise attenuation for a price of higher delay. PT1 has lower attenuation but offers lower delay."
},
"tabFilteringAdvanced": {
"message": "Advanced filtering"
"message": "Other filters"
},
"mainFilters": {
"message": "Main filters"
},
"acc_lpf_type": {
"message": "Accelerometer LPF type"

View file

@ -106,6 +106,7 @@ sources.js = [
'./js/logicConditionsStatus.js',
'./js/vtx.js',
'./main.js',
'./js/tabs.js',
'./tabs/*.js',
'./js/eventFrequencyAnalyzer.js',
'./js/periodicStatusUpdater.js',

27
js/tabs.js Normal file
View file

@ -0,0 +1,27 @@
'use strict';
var helper = helper || {};
helper.tabs = (function () {
let self = {},
$container;
function onHeaderClick(event) {
let $cT = $(event.currentTarget),
attrFor = $cT.attr("for");
$container.find('.subtab__header_label').removeClass("subtab__header_label--current");
$cT.addClass("subtab__header_label--current");
$container.find(".subtab__content--current").removeClass("subtab__content--current");
$container.find("#" + attrFor).addClass("subtab__content--current");
};
self.init = function ($dom) {
$container = $dom;
$container.find(".subtab__header_label").click(onHeaderClick);
};
return self;
})();

View file

@ -2090,3 +2090,34 @@ select {
#modal-reconnect div {
text-align: center;
}
.subtab__header {
padding: 0;
height: auto;
}
.subtab__header_label {
display: inline-block;
padding: 0 1em;
background-color: #ccc;
min-width: 7em;
height: 1.5em;
line-height: 1.5em;
cursor: pointer;
}
.subtab__header_label--current {
font-weight: bold;
}
.subtab__header_label:hover {
background-color: #c5c5c5;
}
.subtab__content {
display: none;
}
.subtab__content--current {
display: block;
}

2292
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -2,10 +2,17 @@
<div id="content-watermark"></div>
<div class="tab-pid_tuning toolbar_fixed_bottom">
<div class="content_wrapper">
<div class="tab_title" data-i18n="tabPidTuning"></div>
<div class="tab_title subtab__header">
<span class="subtab__header_label subtab__header_label--current" for="subtab-pid">PID tuning</span>
<span class="subtab__header_label" for="subtab-rates">Rates</span>
<span class="subtab__header_label" for="subtab-filters">Filters</span>
<span class="subtab__header_label" for="subtab-mechanics">Fine details</span>
</div>
<div class="cf_doc_version_bt">
<a id="button-documentation" href="https://github.com/iNavFlight/inav/releases" target="_blank"></a>
</div>
<div id="subtab-pid" class="subtab__content subtab__content--current">
<div class="cf_column half">
<div class="cf_column right">
<div class="default_btn show">
@ -155,64 +162,76 @@
</table>
</div>
</div>
</form>
</div>
<div id="subtab-rates" class="subtab__content">
<div class="cf_column half">
<div class="spacer_left">
<table class="rate-tpa rate-tpa--inav">
<tbody>
<tr>
<th class="roll" data-i18n="pidTuningRollRate"></th>
<td class="roll">
<input type="number" name="roll" class="rate-tpa_input" step="10" min="60" max="1800" /> degrees per second
<input type="number" name="roll" class="rate-tpa_input" step="10" min="60" max="1800" />
degrees per second
</td>
</tr>
<tr>
<th class="pitch" data-i18n="pidTuningPitchRate"></th>
<td class="pitch">
<input type="number" name="pitch" class="rate-tpa_input" step="10" min="60" max="1800" /> degrees per second
<input type="number" name="pitch" class="rate-tpa_input" step="10" min="60"
max="1800" /> degrees per second
</td>
</tr>
<tr>
<th class="yaw" data-i18n="pidTuningYawRate"></th>
<td class="yaw">
<input type="number" name="yaw" class="rate-tpa_input" step="10" min="20" max="1800" /> degrees per second
<input type="number" name="yaw" class="rate-tpa_input" step="10" min="20" max="1800" />
degrees per second
</td>
</tr>
<tr>
<th data-i18n="pidTuningMaxRollAngle"></th>
<td>
<input data-setting="max_angle_inclination_rll" data-setting-multiplier="10" type="number" class="rate-tpa_input" /> degrees
<input data-setting="max_angle_inclination_rll" data-setting-multiplier="10"
type="number" class="rate-tpa_input" /> degrees
<div class="helpicon cf_tip" data-i18n_title="pidTuningMaxRollAngleHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="pidTuningMaxPitchAngle"></th>
<td>
<input data-setting="max_angle_inclination_pit" data-setting-multiplier="10" type="number" class="rate-tpa_input" /> degrees
<input data-setting="max_angle_inclination_pit" data-setting-multiplier="10"
type="number" class="rate-tpa_input" /> degrees
<div class="helpicon cf_tip" data-i18n_title="pidTuningMaxPitchAngleHelp"></div>
</td>
</tr>
<tr>
<th class="roll" data-i18n="pidTuningManualRollRate"></th>
<td class="roll">
<input type="number" name="manual_roll" class="rate-tpa_input" step="1" min="0" max="100" /> %
<input type="number" name="manual_roll" class="rate-tpa_input" step="1" min="0"
max="100" /> %
</td>
</tr>
<tr>
<th class="pitch" data-i18n="pidTuningManualPitchRate"></th>
<td class="pitch">
<input type="number" name="manual_pitch" class="rate-tpa_input" step="1" min="0" max="100" /> %
<input type="number" name="manual_pitch" class="rate-tpa_input" step="1" min="0"
max="100" /> %
</td>
</tr>
<tr>
<th class="yaw" data-i18n="pidTuningManualYawRate"></th>
<td class="yaw">
<input type="number" name="manual_yaw" class="rate-tpa_input" step="1" min="0" max="100" /> %
<input type="number" name="manual_yaw" class="rate-tpa_input" step="1" min="0"
max="100" /> %
</td>
</tr>
<tr>
<th data-i18n="magHoldYawRate"></th>
<td >
<input type="number" id="magHoldYawRate" class="rate-tpa_input" step="5" min="10" max="250" /> degrees per second
<td>
<input type="number" id="magHoldYawRate" class="rate-tpa_input" step="5" min="10"
max="250" /> degrees per second
<div class="helpicon cf_tip" data-i18n_title="pidTuningMagHoldYawRateHelp"></div>
</td>
</tr>
@ -220,8 +239,155 @@
</table>
</div>
</div>
</form>
<div id="subtab-filters" class="subtab__content">
<div class="tab_title" data-i18n="mainFilters" style="margin-top: 1em;"></div>
<div class="clear-both"></div>
<div class="cf_column half">
<table class="rate-tpa rate-tpa--filtering">
<tbody>
<tr class="requires-v2_2">
<th data-i18n="gyro_lpf_type"></th>
<td>
<select data-setting="gyro_lpf_type" />
<div class="helpicon cf_tip" data-i18n_title="gyro_lpf_type_help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroStage2LpfCutoffFrequency"></th>
<td>
<input type="number" id="gyroStage2LpfCutoffFrequency"
data-simple-bind="FILTER_CONFIG.gyroStage2LowpassHz" class="rate-tpa_input" step="1"
min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroStage2LpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroLpfCutoffFrequency"></th>
<td>
<input type="number" id="gyroSoftLpfHz" class="rate-tpa_input" step="1" min="0"
max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroLpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="dtermLpfCutoffFrequency"></th>
<td>
<input type="number" id="dtermLpfHz" class="rate-tpa_input" step="1" min="0"
max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="dtermLpfCutoffFrequencyHelp"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="clear-both"></div>
<div class="tab_title" data-i18n="tabFilteringAdvanced" style="margin-top: 1em;"></div>
<div class="cf_column half">
<table class="rate-tpa rate-tpa--filtering">
<tbody>
<tr>
<th data-i18n="accLpfCutoffFrequency"></th>
<td>
<input type="number" id="accSoftLpfHz" class="rate-tpa_input" step="1" min="0"
max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="accLpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="acc_lpf_type"></th>
<td>
<select data-setting="acc_lpf_type" />
<div class="helpicon cf_tip" data-i18n_title="acc_lpf_type_help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchHz1"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchHz1" id="gyroNotchHz1"
class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchHz1Help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchCutoff1"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchCutoff1"
id="gyroNotchCutoff1" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchCutoff1Help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchHz2"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchHz2" id="gyroNotchHz2"
class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchHz2Help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchCutoff2"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchCutoff2"
id="gyroNotchCutoff2" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchCutoff2Help"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="cf_column half">
<table class="spacer_left rate-tpa rate-tpa--filtering">
<tbody>
<tr>
<th data-i18n="yawLpfCutoffFrequency"></th>
<td>
<input type="number" id="yawLpfHz" class="rate-tpa_input" step="1" min="0" max="200" />
Hz
<div class="helpicon cf_tip" data-i18n_title="yawLpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="dtermNotchHz"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.dtermNotchHz" id="dtermNotchHz"
class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="dtermNotchHzHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="dtermNotchCutoff"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.dtermNotchCutoff"
id="dtermNotchCutoff" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="dtermNotchCutoffHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="accNotchHz"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.accNotchHz" id="accNotchHz"
class="rate-tpa_input" step="1" min="0" max="255" /> Hz
<div class="helpicon cf_tip" data-i18n_title="accNotchHzHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="accNotchCutoff"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.accNotchCutoff"
id="gyroNotchCutoff2" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="accNotchCutoffHelp"></div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="subtab-mechanics" class="subtab__content">
<div class="clear-both"></div>
<div class="tab_title" data-i18n="iTermMechanics" style="margin-top: 1em;"></div>
<div class="cf_column half">
@ -229,21 +395,21 @@
<tbody>
<tr class="requires-v2_2">
<th data-i18n="mc_airmode_type"></th>
<td >
<td>
<select data-setting="mc_airmode_type" />
<div class="helpicon cf_tip" data-i18n_title="mc_airmode_type_help"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="itermRelax"></th>
<td >
<td>
<select data-setting="mc_iterm_relax" />
<div class="helpicon cf_tip" data-i18n_title="itermRelaxHelp"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="itermRelaxCutoff"></th>
<td >
<td>
<input data-setting="mc_iterm_relax_cutoff" class="rate-tpa_input" />
<div class="helpicon cf_tip" data-i18n_title="itermRelaxCutoffHelp"></div>
</td>
@ -257,33 +423,33 @@
<tbody>
<tr class="requires-v2_2">
<th data-i18n="mc_airmode_threshold"></th>
<td >
<td>
<select data-setting="mc_airmode_threshold" />
<div class="helpicon cf_tip" data-i18n_title="mc_airmode_threshold_help"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="itermRelaxType"></th>
<td >
<td>
<select data-setting="mc_iterm_relax_type" />
<div class="helpicon cf_tip" data-i18n_title="itermRelaxTypeHelp"></div>
</td>
</tr>
<tr class="requires-v2_2_2">
<th data-i18n="antigravityGain"></th>
<td >
<td>
<input class="rate-tpa_input" data-setting="antigravity_gain" />
</td>
</tr>
<tr class="requires-v2_2_2">
<th data-i18n="antigravityAccelerator"></th>
<td >
<td>
<input class="rate-tpa_input" data-setting="antigravity_accelerator" />
</td>
</tr>
<tr class="requires-v2_2_2">
<th data-i18n="antigravityCutoff"></th>
<td >
<td>
<input class="rate-tpa_input" data-setting="antigravity_cutoff_lpf_hz" />
</td>
</tr>
@ -298,14 +464,14 @@
<tbody>
<tr>
<th data-i18n="dtermSetpointWeight"></th>
<td >
<input type="number" data-setting="dterm_setpoint_weight" class="rate-tpa_input"/>
<td>
<input type="number" data-setting="dterm_setpoint_weight" class="rate-tpa_input" />
<div class="helpicon cf_tip" data-i18n_title="dtermSetpointWeightHelp"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="d_boost_factor"></th>
<td >
<td>
<input data-setting="d_boost_factor" class="rate-tpa_input" />
<div class="helpicon cf_tip" data-i18n_title="d_boost_factor_help"></div>
</td>
@ -319,14 +485,14 @@
<tbody>
<tr class="requires-v2_2">
<th data-i18n="d_boost_max_at_acceleration"></th>
<td >
<td>
<input data-setting="d_boost_max_at_acceleration" class="rate-tpa_input" />
<div class="helpicon cf_tip" data-i18n_title="d_boost_max_at_acceleration_help"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="d_boost_gyro_delta_lpf_hz"></th>
<td >
<td>
<input data-setting="d_boost_gyro_delta_lpf_hz" class="rate-tpa_input" />
<div class="helpicon cf_tip" data-i18n_title="d_boost_gyro_delta_lpf_hz_help"></div>
</td>
@ -335,159 +501,21 @@
</table>
</div>
<div class="clear-both"></div>
<div class="tab_title" data-i18n="tabFiltering" style="margin-top: 1em;"></div>
<div class="cf_column half">
<table class="rate-tpa rate-tpa--filtering">
<tbody>
<tr class="requires-v2_2">
<th data-i18n="gyro_lpf_type"></th>
<td >
<select data-setting="gyro_lpf_type" />
<div class="helpicon cf_tip" data-i18n_title="gyro_lpf_type_help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroStage2LpfCutoffFrequency"></th>
<td>
<input type="number" id="gyroStage2LpfCutoffFrequency" data-simple-bind="FILTER_CONFIG.gyroStage2LowpassHz" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroStage2LpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr class="requires-v2_2">
<th data-i18n="acc_lpf_type"></th>
<td >
<select data-setting="acc_lpf_type" />
<div class="helpicon cf_tip" data-i18n_title="acc_lpf_type_help"></div>
</td>
</tr>
<tr>
<th data-i18n="yawLpfCutoffFrequency"></th>
<td>
<input type="number" id="yawLpfHz" class="rate-tpa_input" step="1" min="0" max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="yawLpfCutoffFrequencyHelp"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="cf_column half">
<table class="spacer_left rate-tpa rate-tpa--filtering">
<tbody>
<tr>
<th data-i18n="gyroLpfCutoffFrequency"></th>
<td>
<input type="number" id="gyroSoftLpfHz" class="rate-tpa_input" step="1" min="0" max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroLpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="dtermLpfCutoffFrequency"></th>
<td>
<input type="number" id="dtermLpfHz" class="rate-tpa_input" step="1" min="0" max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="dtermLpfCutoffFrequencyHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="accLpfCutoffFrequency"></th>
<td>
<input type="number" id="accSoftLpfHz" class="rate-tpa_input" step="1" min="0" max="200" /> Hz
<div class="helpicon cf_tip" data-i18n_title="accLpfCutoffFrequencyHelp"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="clear-both"></div>
<div class="tab_title" data-i18n="tabFilteringAdvanced" style="margin-top: 1em;"></div>
<div class="cf_column half">
<table class="rate-tpa rate-tpa--filtering">
<tbody>
<tr>
<th data-i18n="gyroNotchHz1"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchHz1" id="gyroNotchHz1" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchHz1Help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchCutoff1"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchCutoff1" id="gyroNotchCutoff1" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchCutoff1Help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchHz2"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchHz2" id="gyroNotchHz2" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchHz2Help"></div>
</td>
</tr>
<tr>
<th data-i18n="gyroNotchCutoff2"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.gyroNotchCutoff2" id="gyroNotchCutoff2" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="gyroNotchCutoff2Help"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="cf_column half">
<table class="spacer_left rate-tpa rate-tpa--filtering">
<tbody>
<tr>
<th data-i18n="dtermNotchHz"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.dtermNotchHz" id="dtermNotchHz" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="dtermNotchHzHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="dtermNotchCutoff"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.dtermNotchCutoff" id="dtermNotchCutoff" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="dtermNotchCutoffHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="accNotchHz"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.accNotchHz" id="accNotchHz" class="rate-tpa_input" step="1" min="0" max="255" /> Hz
<div class="helpicon cf_tip" data-i18n_title="accNotchHzHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="accNotchCutoff"></th>
<td>
<input type="number" data-simple-bind="FILTER_CONFIG.accNotchCutoff" id="gyroNotchCutoff2" class="rate-tpa_input" step="1" min="0" max="500" /> Hz
<div class="helpicon cf_tip" data-i18n_title="accNotchCutoffHelp"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="clear-both"></div>
<div class="tab_title" data-i18n="tabMisc" style="margin-top: 1em;"></div>
<div class="cf_column half">
<table class="rate-tpa rate-tpa--misc">
<tr>
<th data-i18n="yawJumpPreventionLimit"></th>
<td >
<input type="number" id="yawJumpPreventionLimit" class="rate-tpa_input" step="10" min="80" max="500" />
<td>
<input type="number" id="yawJumpPreventionLimit" class="rate-tpa_input" step="10" min="80"
max="500" />
<div class="helpicon cf_tip" data-i18n_title="yawJumpPreventionLimitHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="yawPLimit"></th>
<td >
<td>
<input type="number" id="yawPLimit" class="rate-tpa_input" step="10" min="100" max="500" />
<div class="helpicon cf_tip" data-i18n_title="yawPLimitHelp"></div>
</td>
@ -499,23 +527,25 @@
<tbody>
<tr>
<th data-i18n="axisAccelerationLimitRollPitch"></th>
<td >
<input type="number" id="axisAccelerationLimitRollPitch" class="rate-tpa_input" step="10" min="0" max="655350" />
<td>
<input type="number" id="axisAccelerationLimitRollPitch" class="rate-tpa_input" step="10"
min="0" max="655350" />
dps^2
<div class="helpicon cf_tip" data-i18n_title="axisAccelerationLimitRollPitchHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="axisAccelerationLimitYaw"></th>
<td >
<input type="number" id="axisAccelerationLimitYaw" class="rate-tpa_input" step="10" min="0" max="655350" />
<td>
<input type="number" id="axisAccelerationLimitYaw" class="rate-tpa_input" step="10" min="0"
max="655350" />
dps^2
<div class="helpicon cf_tip" data-i18n_title="axisAccelerationLimitYawHelp"></div>
</td>
</tr>
<tr>
<th data-i18n="pidTuningTPA"></th>
<td >
<td>
<input type="number" class="rate-tpa_input" id="tpa" step="1" min="0" max="100" />
%
<div class="helpicon cf_tip" data-i18n_title="pidTuningTPAHelp"></div>
@ -523,8 +553,9 @@
</tr>
<tr>
<th data-i18n="pidTuningTPABreakPoint"></th>
<td >
<input type="number" class="rate-tpa_input" id="tpa-breakpoint" step="10" min="1000" max="2000" />
<td>
<input type="number" class="rate-tpa_input" id="tpa-breakpoint" step="10" min="1000"
max="2000" />
<div class="helpicon cf_tip" data-i18n_title="pidTuningTPABreakPointHelp"></div>
</td>
</tr>
@ -532,6 +563,7 @@
</table>
</div>
</div>
</div>
<div class="clear-both"></div>
<div class="content_toolbar">
<div class="btn save_btn">

View file

@ -109,6 +109,8 @@ TABS.pid_tuning.initialize = function (callback) {
// translate to user-selected language
localize();
helper.tabs.init($('.tab-pid_tuning'));
hideUnusedPids(CONFIG.activeSensors);
$('#showAllPids').on('click', function(){