Skip to content

Commit ba0ffe0

Browse files
authored
🔧 Abort when already connected (#4560)
* Abort when already connected * Remove duplicate code * Improve connection reset
1 parent 25badda commit ba0ffe0

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

src/js/serial_backend.js

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,26 @@ function resetConnection() {
235235
$("div.connection_button__label").text(i18n.getMessage("connect"));
236236
$("a.connection_button__link").removeClass("active");
237237

238+
clearLiveDataRefreshTimer();
239+
240+
MSP.clearListeners();
241+
242+
if (PortHandler.portPicker.selectedPort !== "virtual") {
243+
serial.removeEventListener("receive", read_serial_adapter);
244+
serial.removeEventListener("connect", connectHandler);
245+
serial.removeEventListener("disconnect", disconnectHandler);
246+
}
247+
248+
$("#tabs ul.mode-connected").hide();
249+
$("#tabs ul.mode-connected-cli").hide();
250+
$("#tabs ul.mode-disconnected").show();
251+
252+
// header bar
253+
$("#sensor-status").hide();
254+
$("#portsinput").show();
255+
$("#dataflash_wrapper_global").hide();
256+
$("#quad-status_wrapper").hide();
257+
238258
CONFIGURATOR.connectionValid = false;
239259
CONFIGURATOR.cliValid = false;
240260
CONFIGURATOR.cliActive = false;
@@ -331,6 +351,11 @@ function onOpen(openInfo) {
331351
}
332352
});
333353
} else {
354+
if (!serial.connected) {
355+
abortConnection();
356+
return;
357+
}
358+
334359
const dialog = $(".dialogConnectWarning")[0];
335360

336361
$(".dialogConnectWarning-content").html(
@@ -654,29 +679,9 @@ function onConnect() {
654679
function onClosed(result) {
655680
gui_log(i18n.getMessage(result ? "serialPortClosedOk" : "serialPortClosedFail"));
656681

657-
$("#tabs ul.mode-connected").hide();
658-
$("#tabs ul.mode-connected-cli").hide();
659-
$("#tabs ul.mode-disconnected").show();
660-
661-
// header bar
662-
$("#sensor-status").hide();
663-
$("#portsinput").show();
664-
$("#dataflash_wrapper_global").hide();
665-
$("#quad-status_wrapper").hide();
666-
667682
console.log(`${logHead} Connection closed:`, result);
668683

669684
resetConnection();
670-
671-
clearLiveDataRefreshTimer();
672-
673-
MSP.clearListeners();
674-
675-
if (PortHandler.portPicker.selectedPort !== "virtual") {
676-
serial.removeEventListener("receive", read_serial_adapter);
677-
serial.removeEventListener("connect", connectHandler);
678-
serial.removeEventListener("disconnect", disconnectHandler);
679-
}
680685
}
681686

682687
export function read_serial(info) {

0 commit comments

Comments
 (0)