Merge branch 'add_filter_settings' of https://github.com/mikeller/betaflight-configurator
commit
7f1848aeb5
|
@ -776,8 +776,11 @@
|
|||
"pidTuningUpgradeFirmwareToChangePidController": {
|
||||
"message": "<span style=\"color: red\">Changing PID controller disabled - you can change it via the CLI.</span> You have firmware with API version <span style=\"color: red\">$1</span>, but this functionality requires requires <span style=\"color: #ffbb00\">$2</span>."
|
||||
},
|
||||
"pidTuningName": {
|
||||
"message": "Name"
|
||||
"pidTuningSubTabPid": {
|
||||
"message": "PID Settings"
|
||||
},
|
||||
"pidTuningSubTabFilter": {
|
||||
"message": "Filter Settings"
|
||||
},
|
||||
"pidTuningShowAllPids": {
|
||||
"message": "Show all PIDs"
|
||||
|
@ -1623,17 +1626,53 @@
|
|||
"pidTuningLevelHelp": {
|
||||
"message": "The values below change the behaviour of the ANGLE and HORIZON flight modes. Different PID controllers handle the values differently. Please check the documentation."
|
||||
},
|
||||
"pidTuningLfpFilters": {
|
||||
"message": "LFP Filters"
|
||||
"pidTuningNonProfileFilterSettings": {
|
||||
"message": "Profile independent Filter Settings"
|
||||
},
|
||||
"pidTuningGyro": {
|
||||
"message": "Gyro Soft (Hz)"
|
||||
"pidTuningGyroLowpassFrequency": {
|
||||
"message": "Gyro Soft Lowpass Frequency (Hz)"
|
||||
},
|
||||
"pidTuningDTerm": {
|
||||
"message": "D Term (Hz)"
|
||||
"pidTuningGyroLowpassFrequencyHelp": {
|
||||
"message": "Gyro Soft Lowpass Frequency (Hz)"
|
||||
},
|
||||
"pidTuningYaw": {
|
||||
"message": "Yaw (Hz)"
|
||||
"pidTuningGyroNotchFrequency": {
|
||||
"message": "Gyro Notch Filter Frequency (Hz)"
|
||||
},
|
||||
"pidTuningGyroNotchFrequencyHelp": {
|
||||
"message": "Gyro Notch Filter Frequency (Hz)"
|
||||
},
|
||||
"pidTuningGyroNotchCutoff": {
|
||||
"message": "Gyro Notch Filter Cutoff Frequency (Hz)"
|
||||
},
|
||||
"pidTuningGyroNotchCutoffHelp": {
|
||||
"message": "Gyro Notch Filter Cutoff Frequency (Hz)"
|
||||
},
|
||||
"pidTuningFilterSettings": {
|
||||
"message": "Filter Settings"
|
||||
},
|
||||
"pidTuningDTermLowpassFrequency": {
|
||||
"message": "D Term Lowpass Frequency (Hz)"
|
||||
},
|
||||
"pidTuningDTermLowpassFrequencyHelp": {
|
||||
"message": "D Term Lowpass Frequency (Hz)"
|
||||
},
|
||||
"pidTuningDTermNotchFrequency": {
|
||||
"message": "D Term Notch Filter Frequency (Hz)"
|
||||
},
|
||||
"pidTuningDTermNotchFrequencyHelp": {
|
||||
"message": "D Term Notch Filter Frequency (Hz)"
|
||||
},
|
||||
"pidTuningDTermNotchCutoff": {
|
||||
"message": "D Term Notch Filter Cutoff (Hz)"
|
||||
},
|
||||
"pidTuningDTermNotchCutoffHelp": {
|
||||
"message": "D Term Notch Filter Cutoff (Hz)"
|
||||
},
|
||||
"pidTuningYawLowpassFrequency": {
|
||||
"message": "Yaw Lowpass Frequency (Hz)"
|
||||
},
|
||||
"pidTuningYawLowpassFrequencyHelp": {
|
||||
"message": "Yaw Lowpass Frequency (Hz)"
|
||||
},
|
||||
"pidTuningVbatPidCompensation": {
|
||||
"message": "Vbat PID Compensation"
|
||||
|
|
|
@ -242,7 +242,7 @@
|
|||
padding: 5px;
|
||||
text-align: left;
|
||||
border-right: 1px solid #ccc;
|
||||
width: calc(100% -1px);
|
||||
width: calc(100% - 1px);
|
||||
}
|
||||
|
||||
.tab-pid_tuning .pid_titlebar th:first-child {
|
||||
|
@ -305,6 +305,33 @@
|
|||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.tab-pid_tuning .tab_container {
|
||||
float: top;
|
||||
width: 300px;
|
||||
height: 20px;
|
||||
border-right-width: 0px;
|
||||
}
|
||||
|
||||
.tab-pid_tuning .tab_container td {
|
||||
background-color: #2e2e2e;
|
||||
}
|
||||
|
||||
.tab-pid_tuning .tab_container td a {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.tab-pid_tuning .tab_container td.active {
|
||||
background-color: #ffbb00;
|
||||
color: #000;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.tab-pid_tuning .tab_container td.active a {
|
||||
background-color: #ffbb00;
|
||||
color: #000;
|
||||
text-shadow: 0px 1px rgba(255, 255, 255, 0.45);
|
||||
}
|
||||
|
||||
.tab-pid_tuning .single-field {
|
||||
display: inline-block;
|
||||
margin-bottom: 10px;
|
||||
|
@ -374,7 +401,7 @@
|
|||
border-bottom: 1px solid #ccc;
|
||||
color: #828282;
|
||||
/* font-family: 'open_sans', Arial; */
|
||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .2) 80%, rgba(255, 255, 255, .2) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .2) 100%, transparent);
|
||||
background-image: linear-gradient(315deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .2) 80%, rgba(255, 255, 255, .2) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .2) 100%, transparent);
|
||||
}
|
||||
|
||||
.fancy.header th {
|
||||
|
@ -383,7 +410,6 @@
|
|||
padding-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
.pid_mode {
|
||||
width: calc(100% - 5px);
|
||||
height: 20px;
|
||||
|
@ -399,7 +425,7 @@
|
|||
border-bottom: 1px solid #ccc;
|
||||
color: #828282;
|
||||
font-family: 'open_sans', Arial;
|
||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%,
|
||||
background-image: linear-gradient(315deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%,
|
||||
rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%,
|
||||
rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%,
|
||||
rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%,
|
||||
|
|
|
@ -4,11 +4,6 @@
|
|||
<div class="cf_doc_version_bt">
|
||||
<a id="button-documentation" href="https://github.com/betaflight/betaflight/releases" target="_blank"></a>
|
||||
</div>
|
||||
<div class="note" style="margin-bottom: 25px;">
|
||||
<div class="note_spacer">
|
||||
<p i18n="tuningHelp"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cf_column">
|
||||
<div class="profile single-field">
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningProfileTip" style="margin-top: 5px;"></div>
|
||||
|
@ -50,10 +45,23 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab_container">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="pid active">
|
||||
<a href="#" i18n="pidTuningSubTabPid" />
|
||||
</td>
|
||||
<td class="filter">
|
||||
<a href="#" i18n="pidTuningSubTabFilter" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<form name="pid-tuning" id="pid-tuning">
|
||||
<div class="subtab-pid">
|
||||
<div class="clear-both"></div>
|
||||
<div class="cf_column twothird">
|
||||
<div class="gui_box grey">
|
||||
<div class="gui_box grey topspacer">
|
||||
<table class="pid_titlebar">
|
||||
<tr>
|
||||
<th class="name" i18n="pidTuningName"></th>
|
||||
|
@ -226,30 +234,6 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="pid_filter" class="gui_box grey topspacer pid_tuning">
|
||||
<table class="pid_titlebar">
|
||||
<tr>
|
||||
<th class="third" i18n="pidTuningGyro"></th>
|
||||
<th class="third" i18n="pidTuningDTerm"></th>
|
||||
<th class="third" i18n="pidTuningYaw"></th>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<div class="pid_mode">
|
||||
<div i18n="pidTuningLfpFilters" style="float: left;"> </div>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningFilterTip"></div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="third"><input type="number" name="gyro" step="1" min="0" max="255" /></td>
|
||||
<td class="third"><input type="number" name="dterm" step="1" min="0" max="500" /></td>
|
||||
<td class="third"><input type="number" name="yaw" step="1" min="0" max="500" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="gui_box grey topspacer">
|
||||
<table class="pid_titlebar new_rates">
|
||||
<tr>
|
||||
|
@ -300,7 +284,7 @@
|
|||
<table class="compensation">
|
||||
<tr class="delta">
|
||||
<td>
|
||||
<select name="delta-select">
|
||||
<select id="delta-select">
|
||||
<option value="0" i18n="pidTuningDeltaError"/>
|
||||
<option value="1" i18n="pidTuningDeltaMeasurement"/>
|
||||
</select>
|
||||
|
@ -338,7 +322,7 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td><input type="checkbox" name="vbatpidcompensation" class="toggle" /></td>
|
||||
<td><input type="checkbox" id="vbatpidcompensation" class="toggle" /></td>
|
||||
<td colspan=2>
|
||||
<div>
|
||||
<label for="vbatpidcompensation">
|
||||
|
@ -463,6 +447,126 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="subtab-filter" style="display: none;">
|
||||
<div class="clear-both"></div>
|
||||
<div class="note topspacer">
|
||||
<div class="note_spacer">
|
||||
<p i18n="tuningHelp"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cf_column twothird">
|
||||
<div class="gui_box grey topspacer pid_filter">
|
||||
<table class="pid_titlebar new_rates">
|
||||
<tr>
|
||||
<th i18n="pidTuningNonProfileFilterSettings"></th>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="number" class="nonProfile" name="gyroLowpassFrequency" step="1" min="0" max="255"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningGyroLowpassFrequency"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningGyroLowpassFrequencyHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="newFilter">
|
||||
<td>
|
||||
<input type="number" class="nonProfile" name="gyroNotchFrequency" step="1" min="0" max="500"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningGyroNotchFrequency"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchFrequencyHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="newFilter">
|
||||
<td>
|
||||
<input type="number" class="nonProfile" name="gyroNotchCutoff" step="1" min="0" max="500"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningGyroNotchCutoff"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchCutoffHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="gui_box grey topspacer pid_filter">
|
||||
<table class="pid_titlebar new_rates">
|
||||
<tr>
|
||||
<th i18n="pidTuningFilterSettings"></th>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="number" name="dtermLowpassFrequency" step="1" min="0" max="500"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningDtermLowpassFrequency"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningDtermLowpassFrequencyHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="newFilter">
|
||||
<td>
|
||||
<input type="number" name="dTermNotchFrequency" step="1" min="0" max="500"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningDTermNotchFrequency"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningDTermNotchFrequencyHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="newFilter">
|
||||
<td>
|
||||
<input type="number" name="dTermNotchCutoff" step="1" min="0" max="500"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningDTermNotchCutoff"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningDTermNotchCutoffHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="number" name="yawLowpassFrequency" step="1" min="0" max="500"/>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<label>
|
||||
<span i18n="pidTuningYawLowpassFrequency"></span>
|
||||
</label>
|
||||
<div class="helpicon cf_tip" i18n_title="pidTuningYawLowpassFrequencyHelp"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="clear-both"></div>
|
||||
</div>
|
||||
|
|
|
@ -59,7 +59,7 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
}
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.1")) {
|
||||
$('input[name="vbatpidcompensation"]').prop('checked', ADVANCED_TUNING.vbatPidCompensation !== 0);
|
||||
$('input[name="#vbatpidcompensation"]').prop('checked', ADVANCED_TUNING.vbatPidCompensation !== 0);
|
||||
}
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.2")) {
|
||||
|
@ -227,7 +227,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
$('.pid_tuning input[name="yaw_rate"]').val(RC_tuning.yaw_rate.toFixed(2));
|
||||
$('.pid_tuning input[name="rc_expo"]').val(RC_tuning.RC_EXPO.toFixed(2));
|
||||
$('.pid_tuning input[name="rc_yaw_expo"]').val(RC_tuning.RC_YAW_EXPO.toFixed(2));
|
||||
$('.pid_tuning input[name="rc_rate_yaw"]').val(RC_tuning.rcYawRate.toFixed(2));
|
||||
|
||||
$('.throttle input[name="mid"]').val(RC_tuning.throttle_MID.toFixed(2));
|
||||
$('.throttle input[name="expo"]').val(RC_tuning.throttle_EXPO.toFixed(2));
|
||||
|
@ -240,14 +239,25 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
$('.pid_tuning input[name="rc_expo"]').attr("rowspan", "3");
|
||||
}
|
||||
|
||||
$('.pid_tuning input[name="gyro"]').val(FILTER_CONFIG.gyro_soft_lpf_hz);
|
||||
$('.pid_tuning input[name="dterm"]').val(FILTER_CONFIG.dterm_lpf_hz);
|
||||
$('.pid_tuning input[name="yaw"]').val(FILTER_CONFIG.yaw_lpf_hz);
|
||||
|
||||
if (semver.lt(CONFIG.flightControllerVersion, "2.9.0")) {
|
||||
$('.pid_filter').hide();
|
||||
if (semver.gte(CONFIG.flightControllerVersion, '2.9.0')) {
|
||||
$('.pid_tuning input[name="rc_rate_yaw"]').val(RC_tuning.rcYawRate.toFixed(2));
|
||||
$('.pid_filter input[name="gyroLowpassFrequency"]').val(FILTER_CONFIG.gyro_soft_lpf_hz);
|
||||
$('.pid_filter input[name="dtermLowpassFrequency"]').val(FILTER_CONFIG.dterm_lpf_hz);
|
||||
$('.pid_filter input[name="yawLowpassFrequency"]').val(FILTER_CONFIG.yaw_lpf_hz);
|
||||
} else {
|
||||
$('.tab-pid_tuning .subtab-filter').hide();
|
||||
$('.tab-pid_tuning .tab_container').hide();
|
||||
$('.pid_tuning input[name="rc_rate_yaw"]').hide();
|
||||
}
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, '3.0.0')) {
|
||||
$('.pid_filter input[name="gyroNotchFrequency"]').val(FILTER_CONFIG.gyro_soft_notch_hz);
|
||||
$('.pid_filter input[name="gyroNotchCutoff"]').val(FILTER_CONFIG.gyro_soft_notch_cutoff);
|
||||
$('.pid_filter input[name="dTermNotchFrequency"]').val(FILTER_CONFIG.dterm_notch_hz);
|
||||
$('.pid_filter input[name="dTermNotchCutoff"]').val(FILTER_CONFIG.dterm_notch_cutoff);
|
||||
} else {
|
||||
$('.pid_filter .newFilter').hide();
|
||||
}
|
||||
}
|
||||
|
||||
function form_to_pid_and_rc() {
|
||||
|
@ -256,7 +266,7 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
}
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.1")) {
|
||||
ADVANCED_TUNING.vbatPidCompensation = $('input[name="vbatpidcompensation"]').is(':checked') ? 1 : 0;
|
||||
ADVANCED_TUNING.vbatPidCompensation = $('input[name="#vbatpidcompensation"]').is(':checked') ? 1 : 0;
|
||||
}
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.2")) {
|
||||
|
@ -346,9 +356,16 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
|
||||
RC_tuning.dynamic_THR_PID = parseFloat($('.tpa input[name="tpa"]').val());
|
||||
RC_tuning.dynamic_THR_breakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val());
|
||||
FILTER_CONFIG.gyro_soft_lpf_hz = parseInt($('.pid_tuning input[name="gyro"]').val());
|
||||
FILTER_CONFIG.dterm_lpf_hz = parseInt($('.pid_tuning input[name="dterm"]').val());
|
||||
FILTER_CONFIG.yaw_lpf_hz = parseInt($('.pid_tuning input[name="yaw"]').val());
|
||||
FILTER_CONFIG.gyro_soft_lpf_hz = parseInt($('.pid_filter input[name="gyroLowpassFrequency"]').val());
|
||||
FILTER_CONFIG.dterm_lpf_hz = parseInt($('.pid_filter input[name="dtermLowpassFrequency"]').val());
|
||||
FILTER_CONFIG.yaw_lpf_hz = parseInt($('.pid_filter input[name="yawLowpassFrequency"]').val());
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, '3.0.0')) {
|
||||
FILTER_CONFIG.gyro_soft_notch_hz = parseInt($('.pid_filter input[name="gyroNotchFrequency"]').val());
|
||||
FILTER_CONFIG.gyro_soft_notch_cutoff = parseInt($('.pid_filter input[name="gyroNotchCutoff"]').val());
|
||||
FILTER_CONFIG.dterm_notch_hz = parseInt($('.pid_filter input[name="dTermNotchFrequency"]').val());
|
||||
FILTER_CONFIG.dterm_notch_cutoff = parseInt($('.pid_filter input[name="dTermNotchCutoff"]').val());
|
||||
}
|
||||
}
|
||||
|
||||
function showAllPids() {
|
||||
|
@ -360,10 +377,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
|
||||
$('#pid_main').show();
|
||||
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "2.9.0")) {
|
||||
$('#pid_filter').show();
|
||||
}
|
||||
|
||||
if (have_sensor(CONFIG.activeSensors, 'acc')) {
|
||||
$('#pid_accel').show();
|
||||
$('#pid_level').show();
|
||||
|
@ -482,6 +495,22 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
self.currentRates.pitch_rate = RC_tuning.roll_pitch_rate;
|
||||
}
|
||||
|
||||
$('.tab-pid_tuning .tab_container .pid').on('click', function () {
|
||||
$('.tab-pid_tuning .subtab-pid').show();
|
||||
$('.tab-pid_tuning .subtab-filter').hide();
|
||||
|
||||
$('.tab-pid_tuning .tab_container td').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
});
|
||||
|
||||
$('.tab-pid_tuning .tab_container .filter').on('click', function () {
|
||||
$('.tab-pid_tuning .subtab-filter').show();
|
||||
$('.tab-pid_tuning .subtab-pid').hide();
|
||||
|
||||
$('.tab-pid_tuning .tab_container td').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
});
|
||||
|
||||
var showAllButton = $('#showAllPids');
|
||||
|
||||
function updatePidDisplay() {
|
||||
|
|
Loading…
Reference in New Issue