diff --git a/_locales/en/messages.json b/_locales/en/messages.json index fd62a27a..ddf0b9b2 100755 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1172,7 +1172,6 @@ "servosEepromSave": { "message": "EEPROM saved" }, - "gpsHead": { "message": "GPS" }, diff --git a/js/motorMixerRuleCollection.js b/js/motorMixerRuleCollection.js index 5671e9a2..0870bb77 100644 --- a/js/motorMixerRuleCollection.js +++ b/js/motorMixerRuleCollection.js @@ -6,6 +6,16 @@ var MotorMixerRuleCollection = function () { var self = {}; var data = []; + self.motorCount = 0; + + self.setMotorCount = function (value) { + self.motorCount = value; + }; + + self.getMotorCount = function () { + return self.motorCount; + }; + self.put = function (element) { data.push(element); }; @@ -42,7 +52,7 @@ var MotorMixerRuleCollection = function () { }; self.hasFreeSlots = function () { - return data.length < 8; + return data.length < self.getMotorCount(); }; return self; diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index b25248d8..89e2ce47 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -177,6 +177,7 @@ var mspHelper = (function (gui) { needle += 2; } + MOTOR_RULES.setMotorCount(motorCount); break; case MSPCodes.MSP_RC: RC.active_channels = dataHandler.message_length_expected / 2; @@ -2603,6 +2604,10 @@ var mspHelper = (function (gui) { } }; + self.loadMotors = function (callback) { + MSP.send_message(MSPCodes.MSP_MOTOR, false, false, callback); + }; + self.getCraftName = function(callback) { if (semver.gt(CONFIG.flightControllerVersion, "1.8.0")) { MSP.send_message(MSPCodes.MSP_NAME, false, false, function(resp) { diff --git a/tabs/motors.js b/tabs/motors.js index 0e8d9ffd..0fbd4d5d 100644 --- a/tabs/motors.js +++ b/tabs/motors.js @@ -19,25 +19,36 @@ TABS.motors.initialize = function (callback) { googleAnalytics.sendAppView('Motors'); } - function load_config() { - MSP.send_message(MSPCodes.MSP_BF_CONFIG, false, false, load_3d); - } - - function load_3d() { - MSP.send_message(MSPCodes.MSP_3D, false, false, get_motor_data); - } - - function get_motor_data() { - update_arm_status(); - MSP.send_message(MSPCodes.MSP_MOTOR, false, false, load_html); - } + var loadChainer = new MSPChainerClass(); + + loadChainer.setChain([ + mspHelper.loadMisc, + mspHelper.loadBfConfig, + mspHelper.load3dConfig, + mspHelper.loadMotors, + mspHelper.loadMotorMixRules + + ]); + loadChainer.setExitPoint(load_html); + loadChainer.execute(); + update_arm_status(); + + var saveChainer = new MSPChainerClass(); + + saveChainer.setChain([ + mspHelper.sendMotorMixer, + mspHelper.saveToEeprom + ]); + saveChainer.setExitPoint(function () { + GUI.log(chrome.i18n.getMessage('eeprom_saved_ok')); + MOTOR_RULES.cleanup(); + // renderServoMixRules(); //TODO render after save + }); function load_html() { $('#content').load("./tabs/motors.html", process_html); } - MSP.send_message(MSPCodes.MSP_MISC, false, false, load_config); - function update_arm_status() { self.armed = bit_check(CONFIG.mode, 0); } diff --git a/tabs/servos.js b/tabs/servos.js index 507bb77d..25610b10 100755 --- a/tabs/servos.js +++ b/tabs/servos.js @@ -47,7 +47,7 @@ TABS.servos.initialize = function (callback) { */ var rules = SERVO_RULES.get(); $servoMixTableBody.find("*").remove(); - for (servoRuleIndex in rules) { + for (var servoRuleIndex in rules) { if (rules.hasOwnProperty(servoRuleIndex)) { const servoRule = rules[servoRuleIndex];