From d158a9283cc411c0ffd1c140b8422a001c1a3dff Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Fri, 19 Jan 2018 21:50:12 +0100 Subject: [PATCH] servo tab uses chaner for MSP data --- js/msp/MSPHelper.js | 24 ++++------------------ js/msp/MSPchainer.js | 2 +- tabs/servos.js | 48 ++++++++++++++++---------------------------- 3 files changed, 22 insertions(+), 52 deletions(-) diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 9a91bfc5..70bfe435 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -1633,7 +1633,6 @@ var mspHelper = (function (gui) { nextFunction(); } - function send_next_servo_configuration() { var buffer = []; @@ -1676,25 +1675,6 @@ var mspHelper = (function (gui) { } MSP.send_message(MSPCodes.MSP_SET_SERVO_CONFIGURATION, buffer, false, nextFunction); } - - //FIXME looks like this is not used and not ever implemented - //noinspection JSUnusedLocalSymbols - function send_channel_forwarding() { - - var buffer = []; - - for (var i = 0; i < SERVO_CONFIG.length; i++) { - var out = SERVO_CONFIG[i].indexOfChannelToForward; - if (out == undefined) { - out = 255; // Cleanflight defines "CHANNEL_FORWARDING_DISABLED" as "(uint8_t)0xFF" - } - buffer.push(out); - } - - nextFunction = onCompleteCallback; - - MSP.send_message(MSPCodes.MSP_SET_CHANNEL_FORWARDING, buffer, false, nextFunction); - } }; self.sendModeRanges = function (onCompleteCallback) { @@ -2480,5 +2460,9 @@ var mspHelper = (function (gui) { } }; + self.loadServoConfiguration = function (callback) { + MSP.send_message(MSPCodes.MSP_SERVO_CONFIGURATIONS, false, false, callback); + }; + return self; })(GUI); diff --git a/js/msp/MSPchainer.js b/js/msp/MSPchainer.js index c8fadc22..6d963872 100644 --- a/js/msp/MSPchainer.js +++ b/js/msp/MSPchainer.js @@ -21,7 +21,7 @@ var MSPChainerClass = function () { self.chainIndex++; if (self.chain[self.chainIndex]) { self.chain[self.chainIndex](self.returnCallback); - } else { + } else if (self.exitPoint) { self.exitPoint(); } }; diff --git a/tabs/servos.js b/tabs/servos.js index 6371dec8..dbe95441 100755 --- a/tabs/servos.js +++ b/tabs/servos.js @@ -9,28 +9,29 @@ TABS.servos.initialize = function (callback) { googleAnalytics.sendAppView('Servos'); } - function get_servo_configurations() { - MSP.send_message(MSPCodes.MSP_SERVO_CONFIGURATIONS, false, false, get_servo_mix_rules); - } + var loadChainer = new MSPChainerClass(); - function get_servo_mix_rules() { - MSP.send_message(MSPCodes.MSP_SERVO_MIX_RULES, false, false, get_rc_data); - } + loadChainer.setChain([ + mspHelper.loadServoConfiguration, + mspHelper.loadRcData + ]); + loadChainer.setExitPoint(load_html); + loadChainer.execute(); - function get_rc_data() { - MSP.send_message(MSPCodes.MSP_RC, false, false, get_boxnames_data); - } + var saveChainer = new MSPChainerClass(); - function get_boxnames_data() { - MSP.send_message(MSPCodes.MSP_BOXNAMES, false, false, load_html); - } + saveChainer.setChain([ + mspHelper.sendServoConfigurations, + mspHelper.saveToEeprom + ]); + saveChainer.setExitPoint(function () { + GUI.log(chrome.i18n.getMessage('servosEepromSave')); + }); function load_html() { $('#content').load("./tabs/servos.html", process_html); } - get_servo_configurations(); - function update_ui() { var i, @@ -120,23 +121,8 @@ TABS.servos.initialize = function (callback) { SERVO_CONFIG[info.obj].rate = parseInt($('.direction select', this).val()); }); - // - // send data to FC - // - //FIXME investigate why the same frame is sent twice - mspHelper.sendServoConfigurations(send_servo_mixer_rules); - - function send_servo_mixer_rules() { - mspHelper.sendServoConfigurations(save_to_eeprom); - } - - function save_to_eeprom() { - if (save_configuration_to_eeprom) { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { - GUI.log(chrome.i18n.getMessage('servosEepromSave')); - }); - } - } + //Save configuration to FC + saveChainer.execute(); }