From 3f3f9a8883fcce763c35eb1b1ecb9be425ecf6cb Mon Sep 17 00:00:00 2001 From: maudulo Date: Sat, 22 Mar 2025 15:27:29 +0100 Subject: [PATCH 1/3] add led --- script.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/script.js b/script.js index 99ef0fe..aa704a3 100644 --- a/script.js +++ b/script.js @@ -3,6 +3,7 @@ const URL = "192.168.185.20"; let socketMoteur = undefined; let socketInfos = undefined; let moteur = undefined; +let led = undefined; const connectSockets = () => { @@ -97,14 +98,37 @@ class Moteur { } +class Led { + http = undefined; + send(color){ + this.http = new XMLHttpRequest(); + this.http.open('POST', 'http://' + URL + '/led/set_color', true); + this.http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + this.http.send('ledcolor=' + color); + } + + red(){ + this.send("#ff0000") + } + + green(){ + this.send("#00ff00") + } + + blue(){ + this.send("#0000ff") + } + +} function run() { connectSockets(); moteur = new Moteur(); + led = new Led(); socketMoteur.onmessage = function(event) { console.log(`[message] Data received from server: ${event.data}`); From bf51e5292b1a85dce29ea2fe6982801cc107358b Mon Sep 17 00:00:00 2001 From: Nogard Date: Sat, 22 Mar 2025 15:28:33 +0100 Subject: [PATCH 2/3] =?UTF-8?q?R=C3=A9cup=20infos=20+=20moteur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 9 +++++++++ script.js | 54 +++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..4c8e669 --- /dev/null +++ b/index.html @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/script.js b/script.js index 99ef0fe..2691ce0 100644 --- a/script.js +++ b/script.js @@ -1,8 +1,13 @@ const URL = "192.168.185.20"; +const INFO_POSITION = 0x01; +const INFO_LED = 0x02; + +const DEBUG = false; let socketMoteur = undefined; let socketInfos = undefined; let moteur = undefined; +let position = undefined; const connectSockets = () => { @@ -11,6 +16,7 @@ const connectSockets = () => { } socketMoteur = new WebSocket("ws://" + URL + "/motors.ws"); socketInfos = new WebSocket("ws://" + URL + "/infos.ws"); + socketInfos.binaryType = "arraybuffer"; socketMoteur.onclose = function(event) { if (event.wasClean) { @@ -26,6 +32,7 @@ const connectSockets = () => { socketInfos.onopen = function(e) { console.log("[socketInfos] Connection established"); + position.reset(); }; socketInfos.onclose = function(event) { @@ -75,40 +82,69 @@ class Moteur { } avancer(v) { - this.send(-1, -1, 1); + this.send(-1, -1, v); } reculer(v) { - this.send(1, 1, 1); + this.send(1, 1, v); } droite(v) { - this.send(1, -1, 1); + this.send(1, -1, v); } gauche(v) { - this.send(-1, 1, 1); + this.send(-1, 1, v); } - stop(v) { + stop() { this.send(0, 0, 0); } } +class Position { + posX = 0; + posY = 0; + Rot = 0; + constructor(socket) { + socket.addEventListener("message", e => { + const view = new DataView(e.data); + let pos = 0; + + const mask = view.getUint8(0); + + if (mask & INFO_POSITION) { + const position_x = view.getFloat32(1); + const position_y = view.getFloat32(5); + const position_a = view.getFloat32(9); + + if (DEBUG) { + console.log( + {"posX": position_x, "posY": position_y, "Rot": position_a } + ); + } + } + }); + } + reset() { + try { + const request = new XMLHttpRequest(); + request.open("GET", "http://" + URL + "/position/reset"); + request.send(); + } catch (e) {} + } +} function run() { connectSockets(); moteur = new Moteur(); - - socketMoteur.onmessage = function(event) { - console.log(`[message] Data received from server: ${event.data}`); - }; + position = new Position(socketInfos); } From 5ce711df55be6f81ea72c82533ba3403bc803cb7 Mon Sep 17 00:00:00 2001 From: Nogard Date: Sat, 22 Mar 2025 16:06:51 +0100 Subject: [PATCH 3/3] FIX moteur --- script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script.js b/script.js index 0a925a8..56ff520 100644 --- a/script.js +++ b/script.js @@ -83,11 +83,11 @@ class Moteur { } avancer(v) { - this.send(-1, -1, v); + this.send(1, 1, v); } reculer(v) { - this.send(1, 1, v); + this.send(-1, -1, v); } droite(v) {