1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-25 17:25:14 +03:00

possibility to delete mixer rules

This commit is contained in:
Pawel Spychalski (DzikuVx) 2018-03-31 16:03:38 +02:00
parent a7b387a2dc
commit 14a74e76dc
2 changed files with 46 additions and 18 deletions

View file

@ -555,7 +555,15 @@ helper.mixer = (function (mixerList) {
for (const i in mixer.servoMixer) { for (const i in mixer.servoMixer) {
if (mixer.servoMixer.hasOwnProperty(i)) { if (mixer.servoMixer.hasOwnProperty(i)) {
SERVO_RULES.put(mixer.servoMixer[i]); const r = mixer.servoMixer[i];
SERVO_RULES.put(
new ServoMixRule(
r.getTarget(),
r.getInput(),
r.getRate(),
r.getSpeed()
)
);
} }
} }
} }
@ -565,7 +573,15 @@ helper.mixer = (function (mixerList) {
for (const i in mixer.motorMixer) { for (const i in mixer.motorMixer) {
if (mixer.motorMixer.hasOwnProperty(i)) { if (mixer.motorMixer.hasOwnProperty(i)) {
MOTOR_RULES.put(mixer.motorMixer[i]); const r = mixer.motorMixer[i];
MOTOR_RULES.put(
new MotorMixRule(
r.getThrottle(),
r.getRoll(),
r.getPitch(),
r.getYaw()
)
);
} }
} }
} }

View file

@ -7,7 +7,11 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
let loadChainer = new MSPChainerClass(), let loadChainer = new MSPChainerClass(),
saveChainer = new MSPChainerClass(), saveChainer = new MSPChainerClass(),
currentPlatform, currentPlatform,
currentMixerPreset; currentMixerPreset,
$servoMixTable,
$servoMixTableBody,
$motorMixTable,
$motorMixTableBody;
if (GUI.active_tab != 'mixer') { if (GUI.active_tab != 'mixer') {
GUI.active_tab = 'mixer'; GUI.active_tab = 'mixer';
@ -40,10 +44,6 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
} }
function renderServoMixRules() { function renderServoMixRules() {
var $servoMixTable = $('#servo-mix-table'),
$servoMixTableBody = $servoMixTable.find('tbody');
/* /*
* Process servo mix table UI * Process servo mix table UI
*/ */
@ -59,7 +59,7 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
<td><select class="mix-rule-input"></select></td>\ <td><select class="mix-rule-input"></select></td>\
<td><input type="number" class="mix-rule-rate" step="1" min="-100" max="100" /></td>\ <td><input type="number" class="mix-rule-rate" step="1" min="-100" max="100" /></td>\
<td><input type="number" class="mix-rule-speed" step="1" min="0" max="255" /></td>\ <td><input type="number" class="mix-rule-speed" step="1" min="0" max="255" /></td>\
<td><span class="btn default_btn narrow red"><a href="#" data-role="role-delete" data-i18n="servoMixerDelete"></a></span></td>\ <td><span class="btn default_btn narrow red"><a href="#" data-role="role-servo-delete" data-i18n="servoMixerDelete"></a></span></td>\
</tr>\ </tr>\
'); ');
@ -83,7 +83,7 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
servoRule.setSpeed($(this).val()); servoRule.setSpeed($(this).val());
}); });
$row.find("[data-role='role-delete']").attr("data-index", servoRuleIndex); $row.find("[data-role='role-servo-delete']").attr("data-index", servoRuleIndex);
} }
} }
@ -92,39 +92,36 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
function renderMotorMixRules() { function renderMotorMixRules() {
var $table = $('#motor-mix-table'),
$tableBody = $table.find('tbody');
/* /*
* Process servo mix table UI * Process motor mix table UI
*/ */
var rules = MOTOR_RULES.get(); var rules = MOTOR_RULES.get();
$tableBody.find("*").remove(); $motorMixTableBody.find("*").remove();
let index = 0; let index = 0;
for (const i in rules) { for (const i in rules) {
if (rules.hasOwnProperty(i)) { if (rules.hasOwnProperty(i)) {
const rule = rules[i]; const rule = rules[i];
index++; index++;
$tableBody.append('\ $motorMixTableBody.append('\
<tr>\ <tr>\
<td><span class="mix-rule-motor"></span></td>\ <td><span class="mix-rule-motor"></span></td>\
<td><input type="number" class="mix-rule-throttle" step="0.001" min="0" max="1" /></td>\ <td><input type="number" class="mix-rule-throttle" step="0.001" min="0" max="1" /></td>\
<td><input type="number" class="mix-rule-roll" step="0.001" min="-1" max="1" /></td>\ <td><input type="number" class="mix-rule-roll" step="0.001" min="-1" max="1" /></td>\
<td><input type="number" class="mix-rule-pitch" step="0.001" min="-1" max="1" /></td>\ <td><input type="number" class="mix-rule-pitch" step="0.001" min="-1" max="1" /></td>\
<td><input type="number" class="mix-rule-yaw" step="0.001" min="-1" max="1" /></td>\ <td><input type="number" class="mix-rule-yaw" step="0.001" min="-1" max="1" /></td>\
<td><span class="btn default_btn narrow red"><a href="#" data-role="role-delete" data-i18n="servoMixerDelete"></a></span></td>\ <td><span class="btn default_btn narrow red"><a href="#" data-role="role-motor-delete" data-i18n="servoMixerDelete"></a></span></td>\
</tr>\ </tr>\
'); ');
const $row = $tableBody.find('tr:last'); const $row = $motorMixTableBody.find('tr:last');
$row.find('.mix-rule-motor').html(index); $row.find('.mix-rule-motor').html(index);
$row.find('.mix-rule-throttle').val(rule.getThrottle()); $row.find('.mix-rule-throttle').val(rule.getThrottle());
$row.find('.mix-rule-roll').val(rule.getRoll()); $row.find('.mix-rule-roll').val(rule.getRoll());
$row.find('.mix-rule-pitch').val(rule.getPitch()); $row.find('.mix-rule-pitch').val(rule.getPitch());
$row.find('.mix-rule-yaw').val(rule.getYaw()); $row.find('.mix-rule-yaw').val(rule.getYaw());
$row.find("[data-role='role-delete']").attr("data-index", i); $row.find("[data-role='role-motor-delete']").attr("data-index", i);
} }
} }
@ -133,6 +130,11 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
function processHtml() { function processHtml() {
$servoMixTable = $('#servo-mix-table');
$servoMixTableBody = $servoMixTable.find('tbody');
$motorMixTable = $('#motor-mix-table');
$motorMixTableBody = $motorMixTable.find('tbody');
function fillMixerPreset() { function fillMixerPreset() {
let mixers = helper.mixer.getByPlatform(MIXER_CONFIG.platformType); let mixers = helper.mixer.getByPlatform(MIXER_CONFIG.platformType);
@ -208,6 +210,16 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
renderMotorMixRules(); renderMotorMixRules();
}); });
$servoMixTableBody.on('click', "[data-role='role-servo-delete']", function (event) {
SERVO_RULES.drop($(event.currentTarget).attr("data-index"));
renderServoMixRules();
});
$motorMixTableBody.on('click', "[data-role='role-motor-delete']", function (event) {
MOTOR_RULES.drop($(event.currentTarget).attr("data-index"));
renderMotorMixRules();
});
localize(); localize();
GUI.content_ready(callback); GUI.content_ready(callback);
} }