xxxxxxxxxx
101
/*This template is a slightly simplified version from the labs.
Labs make a GUI button that 'magically' appears when needed.
Here I use a keyboard shortcut ('s') to force open the port selector dialog
https://github.com/yoonbuck/p5.WebSerial/wiki/Guide
*/
//Add library reference to index with this line:
//<script src="https://unpkg.com/p5-webserial@0.1.1/build/p5.webserial.js"></script>
//Declare the serial object
const serial = new p5.WebSerial();
function setup() {
createCanvas(400, 400);
//lab version:
if (!navigator.serial) {
//navigator is P5 Navigator?
alert("WebSerial is not supported in this browser. Try Chrome or MS Edge.");
}
//library version:
// if (!p5.WebSerial.checkSupport()) {
// alert("WebSerial is not supported.");
// }
navigator.serial.addEventListener("connect", portConnect);
navigator.serial.addEventListener("disconnect", portDisconnect);
serial.on("noport", function() { print("No ports yet");});
serial.on("portavailable", function () {
print("Port available");
serial.open();
});
serial.on("open", function () { print("Port open"); });
serial.on("requesterror", function () { print("Request error"); });
serial.on("readerror", function () { print("Read error"); });
serial.on("data", serialEvent); //<== This is the main event, see below
serial.on("close", function () { serial.close(); });
serial.getPorts();
}
function draw() {
background(220);
}
function keyPressed() {
//hot ket forces open a serial dialog
if (key == "s") {
serial.requestPort();
}
//serial.write(key);
}
// function mouseDragged() {
// var outByte = byte(map(mouseY, 0, height, 0, 255));
// serial.write(outByte);
// }
// try to connect if a new serial port
// gets added (i.e. plugged in via USB):
function portConnect() {
console.log("port connected");
serial.getPorts();
}
// if a port is disconnected:
function portDisconnect() {
serial.close();
console.log("port disconnected");
}
function serialEvent() {
//console.log("Got data!");
// lastDataTime = millis();
let inString = serial.readStringUntil("\r\n");
//console.log(inString);
if (inString != null) {
//console.log(inString);
let temp = split((inString), ",");
if (temp.length==2) {
console.log(temp);
console.log("Value one is: " + Number(temp[0])/2);
}
}
// if (temp.length==6) { //looks like a good packet, so let's assign the contents to our global variables
// xAccel = Number(temp[0]);
// yAccel = Number(temp[1]);
// zAccel = Number(temp[2]);
// xGyro = Number(temp[3]);
// yGyro = Number(temp[4]);
// zGyro = Number(temp[5]);
// //pot1 = Number(temp[6]);
// //pot2 = Number(temp[7]);
// }
// serial.print('x'); //whenever we get any data, ask for more
// }
// // if (inString=="hello") {
// // console.log("Initializing data transfer..."); //cuz that sounds cool
// // }
// //}
}