added serial comm and parsing bool into array

This commit is contained in:
sam
2023-11-22 16:42:50 +01:00
parent ac2983da6f
commit 55a6726f59
2 changed files with 74 additions and 5 deletions

View File

@@ -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);
}

71
web/Serial.js Normal file
View File

@@ -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!");
}