// Define port and reader globally to be used in other functions let port; let reader let decoder = new TextDecoder("utf-8"); let counterElement = document.getElementById("counter"); // Request a port and open a connection. async function connect() { port = await navigator.serial.requestPort(); await port.open({ baudRate: 9600 }); reader = port.readable.getReader(); console.log("Port is open!"); } // Read data async function readLoop() { // loop until reader.cancel() is called while (true) { // Wait for data const { value, done } = await reader.read(); // Show the received data in the console if (value) { console.log(decoder.decode(value)); } // Exit the loop when done if (done) { console.log('[readLoop] DONE', done); reader.releaseLock(); break; } } } // Close the port async function disconnect() { await reader.cancel(); await port.close(); console.log("Port is closed!"); }