1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-23 00:05:22 +03:00

Auto merged - #2475 at Sat, 26 Jun 2021 00:51:14 GMT

Make connection timeout user-configurable
This commit is contained in:
J Blackman 2021-06-26 10:51:15 +10:00 committed by GitHub
commit 1d296d5af4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 63 additions and 22 deletions

View file

@ -179,9 +179,15 @@ PortHandler.detectPort = function(currentPorts) {
if (GUI.auto_connect && !GUI.connecting_to && !GUI.connected_to) {
// start connect procedure. We need firmware flasher protection over here
if (GUI.active_tab !== 'firmware_flasher') {
GUI.timeout_add('auto-connect_timeout', function () {
$('div#header_btns a.connect').click();
}, 100); // timeout so bus have time to initialize after being detected by the system
let connectionTimeout = 100;
ConfigStorage.get('connectionTimeout', function (result) {
if (result.connectionTimeout) {
connectionTimeout = result.connectionTimeout;
}
GUI.timeout_add('auto-connect_timeout', function () {
$('div#header_btns a.connect').click();
}, connectionTimeout); // timeout so bus have time to initialize after being detected by the system
});
}
}
// trigger callbacks

View file

@ -828,26 +828,32 @@ function update_dataflash_global() {
function reinitialiseConnection(originatorTab, callback) {
GUI.log(i18n.getMessage('deviceRebooting'));
let connectionTimeout = 200;
ConfigStorage.get('connectionTimeout', function (result) {
if (result.connectionTimeout) {
connectionTimeout = result.connectionTimeout;
}
if (FC.boardHasVcp()) { // VCP-based flight controls may crash old drivers, we catch and reconnect
GUI.timeout_add('waiting_for_disconnect', function waiting_for_bootup() {
if (callback) {
callback();
}
}, 200);
//TODO: Need to work out how to do a proper reconnect here.
// caveat: Timeouts set with `GUI.timeout_add()` are removed on disconnect.
} else {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(i18n.getMessage('deviceReady'));
originatorTab.initialize(false, $('#content').scrollTop());
});
if (FC.boardHasVcp()) { // VCP-based flight controls may crash old drivers, we catch and reconnect
GUI.timeout_add('waiting_for_disconnect', function waiting_for_bootup() {
if (callback) {
callback();
}
}, connectionTimeout);
//TODO: Need to work out how to do a proper reconnect here.
// caveat: Timeouts set with `GUI.timeout_add()` are removed on disconnect.
} else {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(i18n.getMessage('deviceReady'));
originatorTab.initialize(false, $('#content').scrollTop());
});
if (callback) {
callback();
}
if (callback) {
callback();
}
}, 1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts
}
}, connectionTimeout); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts
}
});
}

View file

@ -14,6 +14,7 @@ options.initialize = function (callback) {
TABS.options.initCheckForConfiguratorUnstableVersions();
TABS.options.initAnalyticsOptOut();
TABS.options.initCliAutoComplete();
TABS.options.initAutoConnectConnectionTimeout();
TABS.options.initCordovaForceComputerUI();
TABS.options.initDarkTheme();
@ -105,6 +106,18 @@ options.initCliAutoComplete = function () {
}).change();
};
options.initAutoConnectConnectionTimeout = function () {
ConfigStorage.get('connectionTimeout', function (result) {
if (result.connectionTimeout) {
$('#connectionTimeoutSelect').val(result.connectionTimeout);
}
$('#connectionTimeoutSelect').on('change', function () {
const value = parseInt($(this).val());
ConfigStorage.set({'connectionTimeout': value});
});
});
};
options.initCordovaForceComputerUI = function () {
if (GUI.isCordova() && cordovaUI.canChangeUI) {
ConfigStorage.get('cordovaForceComputerUI', function (result) {