From 17068da9402204b3fda7300c6ab5c717b771920d Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Fri, 15 Nov 2024 15:18:10 -0800 Subject: [PATCH 1/2] Passthrough logic inside hardReset() A small change to read the Passthrough checkbox state directly inside of hardReset(). This is to avoid issuing a reset on passthrough boards (M4 + ESP coprocessor). --- js/script.js | 14 +++++--------- src/esp_loader.ts | 15 ++++++--------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/js/script.js b/js/script.js index 59ddca5..b5781c2 100644 --- a/js/script.js +++ b/js/script.js @@ -46,7 +46,10 @@ document.addEventListener("DOMContentLoaded", () => { autoscroll.addEventListener("click", clickAutoscroll); baudRate.addEventListener("change", changeBaudRate); darkMode.addEventListener("click", clickDarkMode); - noReset.addEventListener("click", clickNoReset); + noReset.addEventListener("change", () => { + console.log("Checkbox changed:", noReset.checked); // Log checkbox state changes + }); + window.addEventListener("error", function (event) { console.log("Got an uncaught error: ", event.error); }); @@ -248,15 +251,8 @@ async function clickDarkMode() { * Change handler for ESP32 co-processor boards */ async function clickNoReset() { + console.log("Checkbox state:", noReset.checked); // Debugging output saveSetting("noReset", noReset.checked); - if (espStub) { - try { - // Assuming espStub has a setNoReset method, similar to setBaudrate - await espStub.setNoReset(noReset.checked); - } catch (error) { - console.error("Failed to set noReset:", error); - } - } } /** diff --git a/src/esp_loader.ts b/src/esp_loader.ts index 4e16e2e..317d4f8 100644 --- a/src/esp_loader.ts +++ b/src/esp_loader.ts @@ -164,17 +164,14 @@ export class ESPLoader extends EventTarget { } async hardReset(bootloader = false) { - this.logger.log("Try hard reset."); - // Check for noReset toggle - const noResetCheckbox = document.getElementById("noReset"); - const noResetEnabled = noResetCheckbox - ? (noResetCheckbox as HTMLInputElement).checked - : false; + // Passthrough mode defaults to "off" + // Passthrough checkbox is "on" will prevent a controller reset + const noResetCheckbox = document.getElementById("noReset") as HTMLInputElement; + const noReset = noResetCheckbox ? noResetCheckbox.checked : false; - if (noResetEnabled) { - this.logger.log("No reset requested; skipping hard reset."); - return; // Skip reset if noReset is enabled + if (noReset) { + return; // Skip reset if noReset is true } if (bootloader) { From 7403c16d7c346572c1d01b22997a3c63a1126830 Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Fri, 15 Nov 2024 15:36:42 -0800 Subject: [PATCH 2/2] Update esp_loader.ts --- src/esp_loader.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/esp_loader.ts b/src/esp_loader.ts index 317d4f8..b4bb286 100644 --- a/src/esp_loader.ts +++ b/src/esp_loader.ts @@ -164,10 +164,11 @@ export class ESPLoader extends EventTarget { } async hardReset(bootloader = false) { - // Passthrough mode defaults to "off" // Passthrough checkbox is "on" will prevent a controller reset - const noResetCheckbox = document.getElementById("noReset") as HTMLInputElement; + const noResetCheckbox = document.getElementById( + "noReset", + ) as HTMLInputElement; const noReset = noResetCheckbox ? noResetCheckbox.checked : false; if (noReset) {