From a59b7d762ff42ae227ccaf9265aea83b73023810 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 30 Jul 2025 23:13:27 +0200 Subject: [PATCH 1/3] Abort when already connected --- src/js/serial_backend.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index e61c7ec62a..646151bbd6 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -331,6 +331,12 @@ function onOpen(openInfo) { } }); } else { + if (!serial.connected) { + GUI.timeout_remove("connecting"); // kill connecting timer + abortConnection(); + return; + } + const dialog = $(".dialogConnectWarning")[0]; $(".dialogConnectWarning-content").html( From 6c34e23f387ceec90a465c238e3f803c9dcfe39c Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 30 Jul 2025 23:33:29 +0200 Subject: [PATCH 2/3] Remove duplicate code --- src/js/serial_backend.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 646151bbd6..b8bf5cfcca 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -332,7 +332,6 @@ function onOpen(openInfo) { }); } else { if (!serial.connected) { - GUI.timeout_remove("connecting"); // kill connecting timer abortConnection(); return; } From ffeb071c39a27561ec2d03104a6d2aef64c1a073 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 31 Jul 2025 13:27:47 +0200 Subject: [PATCH 3/3] Improve connection reset --- src/js/serial_backend.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index b8bf5cfcca..5073ab977e 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -235,6 +235,26 @@ function resetConnection() { $("div.connection_button__label").text(i18n.getMessage("connect")); $("a.connection_button__link").removeClass("active"); + clearLiveDataRefreshTimer(); + + MSP.clearListeners(); + + if (PortHandler.portPicker.selectedPort !== "virtual") { + serial.removeEventListener("receive", read_serial_adapter); + serial.removeEventListener("connect", connectHandler); + serial.removeEventListener("disconnect", disconnectHandler); + } + + $("#tabs ul.mode-connected").hide(); + $("#tabs ul.mode-connected-cli").hide(); + $("#tabs ul.mode-disconnected").show(); + + // header bar + $("#sensor-status").hide(); + $("#portsinput").show(); + $("#dataflash_wrapper_global").hide(); + $("#quad-status_wrapper").hide(); + CONFIGURATOR.connectionValid = false; CONFIGURATOR.cliValid = false; CONFIGURATOR.cliActive = false; @@ -659,29 +679,9 @@ function onConnect() { function onClosed(result) { gui_log(i18n.getMessage(result ? "serialPortClosedOk" : "serialPortClosedFail")); - $("#tabs ul.mode-connected").hide(); - $("#tabs ul.mode-connected-cli").hide(); - $("#tabs ul.mode-disconnected").show(); - - // header bar - $("#sensor-status").hide(); - $("#portsinput").show(); - $("#dataflash_wrapper_global").hide(); - $("#quad-status_wrapper").hide(); - console.log(`${logHead} Connection closed:`, result); resetConnection(); - - clearLiveDataRefreshTimer(); - - MSP.clearListeners(); - - if (PortHandler.portPicker.selectedPort !== "virtual") { - serial.removeEventListener("receive", read_serial_adapter); - serial.removeEventListener("connect", connectHandler); - serial.removeEventListener("disconnect", disconnectHandler); - } } export function read_serial(info) {