mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-25 01:05:12 +03:00
Merge pull request #166 from iNavFlight/pid-names
some rationalization in PID table generation and PID names no longer …
This commit is contained in:
commit
5e214f6fab
4 changed files with 88 additions and 104 deletions
|
@ -11539,6 +11539,25 @@ var FC = {
|
|||
"Attitude",
|
||||
"Cruise"
|
||||
]
|
||||
},
|
||||
getPidNames: function () {
|
||||
|
||||
if (semver.lt(CONFIG.flightControllerVersion, "1.6.0")) {
|
||||
return PID_names;
|
||||
} else {
|
||||
return [
|
||||
'Roll',
|
||||
'Pitch',
|
||||
'Yaw',
|
||||
'Position Z',
|
||||
'Position XY',
|
||||
'Velocity XY',
|
||||
'Surface',
|
||||
'Level',
|
||||
'Heading',
|
||||
'Velocity Z'
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -20133,38 +20152,21 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
$('#content').load("./tabs/pid_tuning.html", process_html);
|
||||
}
|
||||
|
||||
var sectionClasses = [
|
||||
'ROLL', // 0
|
||||
'PITCH', // 1
|
||||
'YAW', // 2
|
||||
'ALT', // 3
|
||||
'Pos', // 4
|
||||
'PosR', // 5
|
||||
'NavR', // 6
|
||||
'LEVEL', // 7
|
||||
'MAG', // 8
|
||||
'Vario' // 9
|
||||
];
|
||||
|
||||
function pid_and_rc_to_form() {
|
||||
|
||||
// Fill in the data from PIDs array
|
||||
var i;
|
||||
/*
|
||||
* Iterate over registered sections/PID controllers
|
||||
*/
|
||||
for (var sectionId = 0; sectionId < sectionClasses.length; sectionId++) {
|
||||
var pidNames = FC.getPidNames();
|
||||
|
||||
i = 0;
|
||||
/*
|
||||
* Now, iterate over inputs inside PID constroller section
|
||||
*/
|
||||
$('.pid_tuning .' + sectionClasses[sectionId] + ' input').each(function () {
|
||||
$(this).val(PIDs[sectionId][i]);
|
||||
i++;
|
||||
$('[data-pid-bank-position]').each(function () {
|
||||
var $this = $(this),
|
||||
bankPosition = $this.data('pid-bank-position');
|
||||
|
||||
$this.find('td:first').text(pidNames[bankPosition]);
|
||||
|
||||
$this.find('input').each(function (index) {
|
||||
$(this).val(PIDs[bankPosition][index]);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Fill in data from RC_tuning object
|
||||
$('.rate-tpa input[name="roll-pitch"]').val(RC_tuning.roll_pitch_rate.toFixed(2));
|
||||
|
@ -20185,14 +20187,14 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
|
||||
function form_to_pid_and_rc() {
|
||||
|
||||
var i;
|
||||
for (var sectionId = 0; sectionId < sectionClasses.length; sectionId++) {
|
||||
i = 0;
|
||||
$('table.pid_tuning tr.' + sectionClasses[sectionId] + ' input').each(function () {
|
||||
PIDs[sectionId][i] = parseFloat($(this).val());
|
||||
i++;
|
||||
$('[data-pid-bank-position]').each(function () {
|
||||
var $this = $(this),
|
||||
bankPosition = $this.data('pid-bank-position');
|
||||
|
||||
$this.find('input').each(function (index) {
|
||||
PIDs[bankPosition][index] = parseFloat($(this).val());
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// catch RC_tuning changes
|
||||
RC_tuning.roll_pitch_rate = parseFloat($('.rate-tpa input[name="roll-pitch"]').val());
|
||||
|
@ -20243,16 +20245,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
updateActivatedTab();
|
||||
});
|
||||
|
||||
var i;
|
||||
|
||||
$('.pid_tuning tr').each(function(){
|
||||
for(i = 0; i < PID_names.length; i++) {
|
||||
if($(this).hasClass(PID_names[i])) {
|
||||
$(this).find('td:first').text(PID_names[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
pid_and_rc_to_form();
|
||||
|
||||
if (FC.isRatesInDps()) {
|
||||
|
@ -20281,11 +20273,11 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
$gyroSoftLpfHz.val(FILTER_CONFIG.gyroSoftLpfHz);
|
||||
$accSoftLpfHz.val(INAV_PID_CONFIG.accSoftLpfHz);
|
||||
$dtermLpfHz.val(FILTER_CONFIG.dtermLpfHz);
|
||||
$yawLpfHz.val(FILTER_CONFIG.yawLpfHz),
|
||||
$yawLpfHz.val(FILTER_CONFIG.yawLpfHz);
|
||||
$rollPitchItermIgnoreRate.val(PID_ADVANCED.rollPitchItermIgnoreRate);
|
||||
$yawItermIgnoreRate.val(PID_ADVANCED.yawItermIgnoreRate);
|
||||
$axisAccelerationLimitRollPitch.val(PID_ADVANCED.axisAccelerationLimitRollPitch * 10);
|
||||
$axisAccelerationLimitYaw.val(PID_ADVANCED.axisAccelerationLimitYaw * 10)
|
||||
$axisAccelerationLimitYaw.val(PID_ADVANCED.axisAccelerationLimitYaw * 10);
|
||||
|
||||
$magHoldYawRate.change(function () {
|
||||
INAV_PID_CONFIG.magHoldRateLimit = parseInt($magHoldYawRate.val(), 10);
|
||||
|
|
19
js/fc.js
19
js/fc.js
|
@ -742,5 +742,24 @@ var FC = {
|
|||
"Attitude",
|
||||
"Cruise"
|
||||
]
|
||||
},
|
||||
getPidNames: function () {
|
||||
|
||||
if (semver.lt(CONFIG.flightControllerVersion, "1.6.0")) {
|
||||
return PID_names;
|
||||
} else {
|
||||
return [
|
||||
'Roll',
|
||||
'Pitch',
|
||||
'Yaw',
|
||||
'Position Z',
|
||||
'Position XY',
|
||||
'Velocity XY',
|
||||
'Surface',
|
||||
'Level',
|
||||
'Heading',
|
||||
'Velocity Z'
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -34,21 +34,21 @@
|
|||
<div class="pid_mode" data-i18n="pidTuningBasic"></div>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="ROLL">
|
||||
<tr class="ROLL" data-pid-bank-position="0">
|
||||
<!-- 0 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||
</tr>
|
||||
<tr class="PITCH">
|
||||
<tr class="PITCH" data-pid-bank-position="1">
|
||||
<!-- 1 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||
</tr>
|
||||
<tr class="YAW">
|
||||
<tr class="YAW" data-pid-bank-position="2">
|
||||
<!-- 2 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
|
@ -62,14 +62,14 @@
|
|||
<div class="pid_mode" data-i18n="pidTuningAltitude"></div>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="ALT">
|
||||
<tr class="ALT" data-pid-bank-position="3">
|
||||
<!-- 3 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||
</tr>
|
||||
<tr class="Vario">
|
||||
<tr class="Vario" data-pid-bank-position="9">
|
||||
<!-- 9 -->
|
||||
<td>VEL</td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
|
@ -83,7 +83,7 @@
|
|||
<div class="pid_mode" data-i18n="pidTuningMag"></div>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="MAG">
|
||||
<tr class="MAG" data-pid-bank-position="8">
|
||||
<!-- 8 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
|
@ -97,21 +97,21 @@
|
|||
<div class="pid_mode" data-i18n="pidTuningGps"></div>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="Pos">
|
||||
<tr class="Pos" data-pid-bank-position="4">
|
||||
<!-- 4 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="PosR">
|
||||
<tr class="PosR" data-pid-bank-position="5">
|
||||
<!-- 5 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||
</tr>
|
||||
<tr class="NavR">
|
||||
<tr class="NavR" data-pid-bank-position="6">
|
||||
<!-- 6 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
|
@ -135,7 +135,7 @@
|
|||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="LEVEL">
|
||||
<tr class="LEVEL" data-pid-bank-position="7">
|
||||
<!-- 7 -->
|
||||
<td></td>
|
||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||
|
|
|
@ -29,38 +29,21 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
$('#content').load("./tabs/pid_tuning.html", process_html);
|
||||
}
|
||||
|
||||
var sectionClasses = [
|
||||
'ROLL', // 0
|
||||
'PITCH', // 1
|
||||
'YAW', // 2
|
||||
'ALT', // 3
|
||||
'Pos', // 4
|
||||
'PosR', // 5
|
||||
'NavR', // 6
|
||||
'LEVEL', // 7
|
||||
'MAG', // 8
|
||||
'Vario' // 9
|
||||
];
|
||||
|
||||
function pid_and_rc_to_form() {
|
||||
|
||||
// Fill in the data from PIDs array
|
||||
var i;
|
||||
/*
|
||||
* Iterate over registered sections/PID controllers
|
||||
*/
|
||||
for (var sectionId = 0; sectionId < sectionClasses.length; sectionId++) {
|
||||
var pidNames = FC.getPidNames();
|
||||
|
||||
i = 0;
|
||||
/*
|
||||
* Now, iterate over inputs inside PID constroller section
|
||||
*/
|
||||
$('.pid_tuning .' + sectionClasses[sectionId] + ' input').each(function () {
|
||||
$(this).val(PIDs[sectionId][i]);
|
||||
i++;
|
||||
$('[data-pid-bank-position]').each(function () {
|
||||
var $this = $(this),
|
||||
bankPosition = $this.data('pid-bank-position');
|
||||
|
||||
$this.find('td:first').text(pidNames[bankPosition]);
|
||||
|
||||
$this.find('input').each(function (index) {
|
||||
$(this).val(PIDs[bankPosition][index]);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Fill in data from RC_tuning object
|
||||
$('.rate-tpa input[name="roll-pitch"]').val(RC_tuning.roll_pitch_rate.toFixed(2));
|
||||
|
@ -81,14 +64,14 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
|
||||
function form_to_pid_and_rc() {
|
||||
|
||||
var i;
|
||||
for (var sectionId = 0; sectionId < sectionClasses.length; sectionId++) {
|
||||
i = 0;
|
||||
$('table.pid_tuning tr.' + sectionClasses[sectionId] + ' input').each(function () {
|
||||
PIDs[sectionId][i] = parseFloat($(this).val());
|
||||
i++;
|
||||
$('[data-pid-bank-position]').each(function () {
|
||||
var $this = $(this),
|
||||
bankPosition = $this.data('pid-bank-position');
|
||||
|
||||
$this.find('input').each(function (index) {
|
||||
PIDs[bankPosition][index] = parseFloat($(this).val());
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// catch RC_tuning changes
|
||||
RC_tuning.roll_pitch_rate = parseFloat($('.rate-tpa input[name="roll-pitch"]').val());
|
||||
|
@ -139,16 +122,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
updateActivatedTab();
|
||||
});
|
||||
|
||||
var i;
|
||||
|
||||
$('.pid_tuning tr').each(function(){
|
||||
for(i = 0; i < PID_names.length; i++) {
|
||||
if($(this).hasClass(PID_names[i])) {
|
||||
$(this).find('td:first').text(PID_names[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
pid_and_rc_to_form();
|
||||
|
||||
if (FC.isRatesInDps()) {
|
||||
|
@ -177,11 +150,11 @@ TABS.pid_tuning.initialize = function (callback) {
|
|||
$gyroSoftLpfHz.val(FILTER_CONFIG.gyroSoftLpfHz);
|
||||
$accSoftLpfHz.val(INAV_PID_CONFIG.accSoftLpfHz);
|
||||
$dtermLpfHz.val(FILTER_CONFIG.dtermLpfHz);
|
||||
$yawLpfHz.val(FILTER_CONFIG.yawLpfHz),
|
||||
$yawLpfHz.val(FILTER_CONFIG.yawLpfHz);
|
||||
$rollPitchItermIgnoreRate.val(PID_ADVANCED.rollPitchItermIgnoreRate);
|
||||
$yawItermIgnoreRate.val(PID_ADVANCED.yawItermIgnoreRate);
|
||||
$axisAccelerationLimitRollPitch.val(PID_ADVANCED.axisAccelerationLimitRollPitch * 10);
|
||||
$axisAccelerationLimitYaw.val(PID_ADVANCED.axisAccelerationLimitYaw * 10)
|
||||
$axisAccelerationLimitYaw.val(PID_ADVANCED.axisAccelerationLimitYaw * 10);
|
||||
|
||||
$magHoldYawRate.change(function () {
|
||||
INAV_PID_CONFIG.magHoldRateLimit = parseInt($magHoldYawRate.val(), 10);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue