Files
NodeMCU_Lua/Websocket/nodemcu-webide/bin/ws-robot.html
Christian Zufferey 8abc823276 - commencé à bosser sur les websocket, ce n'est pas en yaka :-(
- essayé d'installer webide sur NodeMCU, il y a justement un exemple de websocker server, je n'arrive pas encore à comprendre comment cela marche
- donc il y a encore pas mal de taf
2018-11-02 23:02:02 +01:00

84 lines
2.6 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>WebSocket Remote Robot</title>
<style>
canvas {
border: 1px solid #000000;
}
</style>
</head>
<body>
<h1>WebSocket Remote Robot</h1>
<p>Touch the canvas to control the robot.</p>
<canvas id="canvas" width="400" height="400"></canvas>
<script language="javascript" type="text/javascript">
var wsUri = "ws://" + location.hostname + "/ws-robot.lc";
var websocket;
var canvas, context;
function init() {
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { };
websocket.onclose = function(evt) { };
websocket.onmessage = function(evt) { };
websocket.onerror = function(evt) { };
canvas = document.getElementById('canvas');
context = canvas.getContext("2d");
// Add mouse event listeners to canvas element
canvas.addEventListener("mousedown", press, false);
canvas.addEventListener("mousemove", drag, false);
canvas.addEventListener("mouseup", release);
canvas.addEventListener("mouseout", cancel, false);
// Add touch event listeners to canvas element
canvas.addEventListener("touchstart", press, false);
canvas.addEventListener("touchmove", drag, false);
canvas.addEventListener("touchend", release, false);
canvas.addEventListener("touchcancel", cancel, false);
}
function sendMessage(message) {
websocket.send(message);
}
function press(e) {
var mouseX = (e.changedTouches ? e.changedTouches[0].pageX : e.pageX) - this.offsetLeft;
var mouseY = (e.changedTouches ? e.changedTouches[0].pageY : e.pageY) - this.offsetTop;
if (mouseX < 150) {
sendMessage('L');
} else if (mouseX > 250) {
sendMessage('R');
} else {
sendMessage('F');
}
}
function drag(e) {
var mouseX = (e.changedTouches ? e.changedTouches[0].pageX : e.pageX) - this.offsetLeft;
var mouseY = (e.changedTouches ? e.changedTouches[0].pageY : e.pageY) - this.offsetTop;
if (mouseX < 150) {
sendMessage('L');
} else if (mouseX > 250) {
sendMessage('R');
} else {
sendMessage('F');
}
}
function release(e) {
sendMessage('S');
}
function cancel(e) {
sendMessage('S');
}
window.addEventListener("load", init, false);
</script>
</body>
</html>