From 52fd9642bd68ccf033cce4bb7d29e78ad34f3b55 Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Tue, 10 Nov 2015 01:28:05 +0000 Subject: [PATCH] Fixed failed merge of VCP reboot handling. --- tabs/configuration.js | 27 +++++++++++++++---------- tabs/ports.js | 47 ++++++++++++++----------------------------- 2 files changed, 31 insertions(+), 43 deletions(-) diff --git a/tabs/configuration.js b/tabs/configuration.js index 6019e90e..3c481afb 100644 --- a/tabs/configuration.js +++ b/tabs/configuration.js @@ -445,12 +445,20 @@ TABS.configuration.initialize = function (callback, scrollPosition) { function reinitialize() { GUI.log(chrome.i18n.getMessage('deviceRebooting')); - GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { - MSP.send_message(MSP_codes.MSP_IDENT, false, false, function () { - GUI.log(chrome.i18n.getMessage('deviceReady')); - TABS.configuration.initialize(false, $('#content').scrollTop()); - }); - },1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts + if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect + $('a.connect').click(); + GUI.timeout_add('start_connection',function start_connection() { + $('a.connect').click(); + },2000); + } else { + + GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { + MSP.send_message(MSP_codes.MSP_IDENT, false, false, function () { + GUI.log(chrome.i18n.getMessage('deviceReady')); + TABS.configuration.initialize(false, $('#content').scrollTop()); + }); + },1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts + } } MSP.send_message(MSP_codes.MSP_SET_BF_CONFIG, MSP.crunch(MSP_codes.MSP_SET_BF_CONFIG), false, save_serial_config); @@ -465,9 +473,6 @@ TABS.configuration.initialize = function (callback, scrollPosition) { } }; - - - - TABS.configuration.cleanup = function (callback) { +TABS.configuration.cleanup = function (callback) { if (callback) callback(); -}; \ No newline at end of file +}; diff --git a/tabs/ports.js b/tabs/ports.js index 123f1e43..d0e439fe 100644 --- a/tabs/ports.js +++ b/tabs/ports.js @@ -73,13 +73,10 @@ TABS.ports.initialize = function (callback, scrollPosition) { $('#content').load("./tabs/ports.html", on_tab_loaded_handler); - board_definition = BOARD.find_board_definition(CONFIG.boardIdentifier); console.log('Using board definition', board_definition); } - - - } + } function update_ui() { @@ -168,11 +165,6 @@ TABS.ports.initialize = function (callback, scrollPosition) { var checkboxId = 'functionCheckbox-' + portIndex + '-' + columnIndex + '-' + i; functions_e.prepend(''); - - - - - if (serialPort.functions.indexOf(functionName) >= 0) { var checkbox_e = functions_e.find('#' + checkboxId); checkbox_e.prop("checked", true); @@ -219,14 +211,7 @@ TABS.ports.initialize = function (callback, scrollPosition) { if (callback) callback(); } - - - - - - - - function on_save_handler() { + function on_save_handler() { // update configuration based on current ui state SERIAL_CONFIG.ports = []; @@ -254,12 +239,9 @@ TABS.ports.initialize = function (callback, scrollPosition) { blackbox_baudrate: $(portConfiguration_e).find('.blackbox_baudrate').val(), identifier: oldSerialPort.identifier }; - - console.log(serialPort); SERIAL_CONFIG.ports.push(serialPort); }); - MSP.send_message(MSP_codes.MSP_SET_CF_SERIAL_CONFIG, MSP.crunch(MSP_codes.MSP_SET_CF_SERIAL_CONFIG), false, save_to_eeprom); function save_to_eeprom() { @@ -277,22 +259,23 @@ TABS.ports.initialize = function (callback, scrollPosition) { function on_reboot_success_handler() { GUI.log(chrome.i18n.getMessage('deviceRebooting')); - var rebootTimeoutDelay = 1500; // seems to be just the right amount of delay to prevent data request timeouts - - GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { - MSP.send_message(MSP_codes.MSP_IDENT, false, false, function () { - GUI.log(chrome.i18n.getMessage('deviceReady')); - TABS.ports.initialize(false, $('#content').scrollTop()); - }); - }, rebootTimeoutDelay); + if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect + $('a.connect').click(); + GUI.timeout_add('start_connection',function start_connection() { + $('a.connect').click(); + },2000); + } else { + GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { + MSP.send_message(MSP_codes.MSP_IDENT, false, false, function () { + GUI.log(chrome.i18n.getMessage('deviceReady')); + TABS.ports.initialize(false, $('#content').scrollTop()); + }); + }, 1500); // seems to be just the right amount of delay to prevent data request timeouts + } } } }; - - - - TABS.ports.cleanup = function (callback) { if (callback) callback(); };