From c349b3f3aa91d46412ad053cc55cdb25375e42ea Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Wed, 30 Nov 2016 14:28:15 +1300 Subject: [PATCH] Removed PID controller selection for firmware >= 3.1.0. --- tabs/pid_tuning.js | 138 ++++++++++++++++++++++++--------------------- 1 file changed, 73 insertions(+), 65 deletions(-) diff --git a/tabs/pid_tuning.js b/tabs/pid_tuning.js index 22587e47..740675fe 100755 --- a/tabs/pid_tuning.js +++ b/tabs/pid_tuning.js @@ -339,7 +339,7 @@ TABS.pid_tuning.initialize = function (callback) { RC_tuning.rcYawRate = parseFloat($('.pid_tuning input[name="rc_rate_yaw"]').val()); RC_tuning.throttle_MID = parseFloat($('.throttle input[name="mid"]').val()); - RC_tuning.throttle_EXPO = parseFloat($('.throttle input[name="expo"]').val()) + RC_tuning.throttle_EXPO = parseFloat($('.throttle input[name="expo"]').val()); RC_tuning.dynamic_THR_PID = parseFloat($('.tpa input[name="tpa"]').val()); RC_tuning.dynamic_THR_breakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val()); @@ -612,45 +612,52 @@ TABS.pid_tuning.initialize = function (callback) { var pidController_e = $('select[name="controller"]'); - var pidControllerList; + if (semver.lt(CONFIG.flightControllerVersion, "3.1.0")) { + var pidControllerList; - if (semver.lt(CONFIG.apiVersion, "1.14.0")) { - pidControllerList = [ - { name: "MultiWii (Old)"}, - { name: "MultiWii (rewrite)"}, - { name: "LuxFloat"}, - { name: "MultiWii (2.3 - latest)"}, - { name: "MultiWii (2.3 - hybrid)"}, - { name: "Harakiri"} - ] - } else if (semver.gte(CONFIG.flightControllerVersion, "3.0.0")) { - pidControllerList = [ - { name: "Legacy"}, - { name: "Betaflight"}, - ] + + if (semver.lt(CONFIG.apiVersion, "1.14.0")) { + pidControllerList = [ + {name: "MultiWii (Old)"}, + {name: "MultiWii (rewrite)"}, + {name: "LuxFloat"}, + {name: "MultiWii (2.3 - latest)"}, + {name: "MultiWii (2.3 - hybrid)"}, + {name: "Harakiri"} + ] + } else if (semver.lt(CONFIG.flightControllerVersion, "3.0.0")) { + pidControllerList = [ + {name: ""}, + {name: "Integer"}, + {name: "Float"} + ] + } else { + pidControllerList = [ + {name: "Legacy"}, + {name: "Betaflight"} + ] + } + + for (var i = 0; i < pidControllerList.length; i++) { + pidController_e.append(''); + } + + if (semver.gte(CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion)) { + pidController_e.val(PID.controller); + + self.updatePidControllerParameters(); + } else { + GUI.log(chrome.i18n.getMessage('pidTuningUpgradeFirmwareToChangePidController', [CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion])); + + pidController_e.empty(); + pidController_e.append(''); + + pidController_e.prop('disabled', true); + } } else { - pidControllerList = [ - { name: ""}, - { name: "Integer"}, - { name: "Float"}, - ] - } + $('.tab-pid_tuning div.controller').hide(); - for (var i = 0; i < pidControllerList.length; i++) { - pidController_e.append(''); - } - - if (semver.gte(CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion)) { - pidController_e.val(PID.controller); - - self.updatePidControllerParameters(); - } else { - GUI.log(chrome.i18n.getMessage('pidTuningUpgradeFirmwareToChangePidController', [CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion])); - - pidController_e.empty(); - pidController_e.append(''); - - pidController_e.prop('disabled', true); + self.updatePidControllerParameters(); } if (semver.lt(CONFIG.apiVersion, "1.7.0")) { @@ -743,7 +750,7 @@ TABS.pid_tuning.initialize = function (callback) { updateNeeded = false; } }, 0); - }; + } // UI Hooks // curves @@ -814,11 +821,13 @@ TABS.pid_tuning.initialize = function (callback) { }); } - pidController_e.change(function () { - self.setDirty(true); + if (semver.lt(CONFIG.flightControllerVersion, "3.1.0")) { + pidController_e.change(function () { + self.setDirty(true); - self.updatePidControllerParameters(); - }); + self.updatePidControllerParameters(); + }); + } // update == save. $('a.update').click(function () { @@ -828,7 +837,7 @@ TABS.pid_tuning.initialize = function (callback) { Promise.resolve(true) .then(function () { var promise; - if (semver.gte(CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion)) { + if (semver.gte(CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion) && semver.lt(CONFIG.flightControllerVersion, "3.1.0")) { PID.controller = pidController_e.val(); promise = MSP.promise(MSPCodes.MSP_SET_PID_CONTROLLER, mspHelper.crunch(MSPCodes.MSP_SET_PID_CONTROLLER)); } @@ -939,21 +948,21 @@ TABS.pid_tuning.refresh = function (callback) { callback(); } }); -} +}; TABS.pid_tuning.setProfile = function () { var self = this; self.currentProfile = CONFIG.profile; $('.tab-pid_tuning select[name="profile"]').val(self.currentProfile); -} +}; TABS.pid_tuning.setRateProfile = function () { var self = this; self.currentRateProfile = CONFIG.rateProfile; $('.tab-pid_tuning select[name="rate_profile"]').val(self.currentRateProfile); -} +}; TABS.pid_tuning.setDirty = function (isDirty) { var self = this; @@ -963,7 +972,7 @@ TABS.pid_tuning.setDirty = function (isDirty) { if (semver.gte(CONFIG.flightControllerVersion, "3.0.0")) { $('.tab-pid_tuning select[name="rate_profile"]').prop('disabled', isDirty); } -} +}; TABS.pid_tuning.checkUpdateProfile = function (updateRateProfile) { var self = this; @@ -1004,7 +1013,7 @@ TABS.pid_tuning.checkUpdateProfile = function (updateRateProfile) { } } } -} +}; TABS.pid_tuning.checkRC = function() { // Function monitors for change in the primary axes rc received data and returns true if a change is detected. @@ -1023,24 +1032,22 @@ TABS.pid_tuning.checkRC = function() { }; TABS.pid_tuning.updatePidControllerParameters = function () { - if (semver.gte(CONFIG.flightControllerVersion, "3.0.0")) { - if ($('.tab-pid_tuning select[name="controller"]').val() === '0') { - $('.pid_tuning .YAW_JUMP_PREVENTION').show(); + if (semver.gte(CONFIG.flightControllerVersion, "3.0.0") && semver.lt(CONFIG.flightControllerVersion, "3.1.0") && $('.tab-pid_tuning select[name="controller"]').val() === '0') { + $('.pid_tuning .YAW_JUMP_PREVENTION').show(); - $('#pid-tuning .delta').show(); + $('#pid-tuning .delta').show(); - $('#pid-tuning .ptermSetpoint').hide(); - $('#pid-tuning .dtermSetpoint').hide(); - } else { - $('.pid_tuning .YAW_JUMP_PREVENTION').hide(); + $('#pid-tuning .ptermSetpoint').hide(); + $('#pid-tuning .dtermSetpoint').hide(); + } else { + $('.pid_tuning .YAW_JUMP_PREVENTION').hide(); - $('#pid-tuning .ptermSetpoint').show(); - $('#pid-tuning .dtermSetpoint').show(); + $('#pid-tuning .ptermSetpoint').show(); + $('#pid-tuning .dtermSetpoint').show(); - $('#pid-tuning .delta').hide(); - } + $('#pid-tuning .delta').hide(); } -} +}; TABS.pid_tuning.updateRatesLabels = function() { var self = this; @@ -1051,7 +1058,8 @@ TABS.pid_tuning.updateRatesLabels = function() { context.fillStyle = color || '#000000' ; context.textAlign = align || 'center'; context.fillText(axisLabel, x, y); - } + }; + var drawBalloonLabel = function(context, axisLabel, x, y, align, colors, dirty) { /** @@ -1138,7 +1146,7 @@ TABS.pid_tuning.updateRatesLabels = function() { // and add the label drawAxisLabel(context, axisLabel, x + (width/2), y + (height + fontSize)/2 - 4, 'center', colors.text); - } + }; const BALLOON_COLORS = { roll : {color: 'rgba(255,128,128,0.4)', border: 'rgba(255,128,128,0.6)', text: '#000000'}, @@ -1190,10 +1198,10 @@ TABS.pid_tuning.updateRatesLabels = function() { currentValues = []; } - stickContext.lineWidth = 1 * lineScale; + stickContext.lineWidth = lineScale; // use a custom scale so that the text does not appear stretched - stickContext.scale(textScale,1); + stickContext.scale(textScale, 1); // add the maximum range label drawAxisLabel(stickContext, maxAngularVel.toFixed(0) + ' deg/s', ((curveWidth / 2) - 10) / textScale, parseInt(stickContext.font)*1.2, 'right');