diff --git a/arduino/Serial button test/sketch_nov21a/sketch_nov21a.ino b/arduino/Serial button test/sketch_nov21a/sketch_nov21a.ino index 89c0a26..3cb04c9 100644 --- a/arduino/Serial button test/sketch_nov21a/sketch_nov21a.ino +++ b/arduino/Serial button test/sketch_nov21a/sketch_nov21a.ino @@ -68,9 +68,7 @@ void loop() { boolPause = true; } - String inputOutput = String("[") + boolUp + "," + boolRight + "," + boolDown + "," + boolLeft + "," + boolDodge + "," + boolPause + "]\n"; - - if (inputOutput) { - Serial.println(inputOutput); - } + String Jsarray = String("[") + boolUp + "," + boolRight + "," + boolDown + "," + boolLeft + "," + boolDodge + "," + boolPause + "]\n"; + Serial.print(Jsarray); + } diff --git a/web/Serial.js b/web/Serial.js new file mode 100644 index 0000000..4eaaea8 --- /dev/null +++ b/web/Serial.js @@ -0,0 +1,71 @@ +let port; +let reader; +const decoder = new TextDecoder("utf-8"); +let readibleoutput = 0; + +// Request a port and open a connection. +async function connect() { + //vraag aan de browser om een serial port te selecteren + port = await navigator.serial.requestPort(); + await port.open({ baudRate: 9600 }); + reader = port.readable.getReader(); + console.log("Port is open!"); + readLoop() +} + +// Read data from serial port +async function readLoop() { + let buffer = []; + + // loop until reader.cancel() is called + while (true) { + // Wait for data + const { value, done } = await reader.read(); + + + for (let iByte = 0; iByte < value.length; iByte++) { + let singleByte = value[iByte]; + //functie maken er van met boolean!!! + if (singleByte != 10) { + buffer.push(singleByte); + } + + else { + let sensorString = decoder.decode(new Uint8Array(buffer)); + console.log(sensorString); + //zet alle data in een json array + + try { + let incomingData = JSON.parse(sensorString.replace(/'/g, '"')); + + // Ensure incomingData is an array + if (Array.isArray(incomingData)) { + // Convert the array of strings to a boolean array + let booleanArray = incomingData.map(bit => bit == '1'); + + console.log(booleanArray); + } else { + console.error("Invalid incoming data format. Expecting an array."); + } + } catch (e) { + console.log("json niet geparserd"); + } + + buffer = []; + } + if (done) { + console.log('[readLoop] DONE', done); + reader.releaseLock(); + break; + } + } + } + +} + +// Sluit de poort +async function disconnect() { + await reader.cancel(); + await port.close(); + console.log("Port is closed!"); +} \ No newline at end of file