xxxxxxxxxx
65
let port1, reader1, writer1;
let port2, reader2, writer2;
async function setup() {
createCanvas(400, 400);
// Set up first serial port
({ port: port1, reader: reader1, writer: writer1 } = await getPort());
// Set up second serial port
({ port: port2, reader: reader2, writer: writer2 } = await getPort());
// Start reading from the serial ports
runSerial();
}
async function runSerial() {
try {
while (true) {
// Read from the first serial port
const { value: value1, done: done1 } = await reader1.read();
if (!done1) {
console.log("Received from port 1:", value1);
// Write to the second serial port
await writer2.write(value1);
}
// Read from the second serial port
const { value: value2, done: done2 } = await reader2.read();
if (!done2) {
console.log("Received from port 2:", value2);
// Write to the first serial port
await writer1.write(value2);
}
}
} catch (e) {
console.error(e);
}
}
function draw() {
background(220);
textSize(20);
text("Open the browser console to see serial output.", 20, height / 2);
}
function keyPressed() {
// Write to the first serial port when 'a' key is pressed
if (key === "a") {
writeSerial1("Hello from port 1!\n");
}
// Write to the second serial port when 'b' key is pressed
if (key === "b") {
writeSerial2("Hello from port 2!\n");
}
}
async function writeSerial1(msg) {
await writer1.write(msg);
}
async function writeSerial2(msg) {
await writer2.write(msg);
}