diff options
| author | Yann C <yann.clarisse@epita.fr> | 2024-04-18 17:44:18 +0300 |
|---|---|---|
| committer | Yann C <yann.clarisse@epita.fr> | 2024-04-18 17:44:18 +0300 |
| commit | 55045dfe27374ade8cdd55667197f42595917669 (patch) | |
| tree | faeb1dc1e95f0c6f0cbf6967237acbd956e53640 /temp_robot.js | |
| parent | 0deb0d6e9e85a169571240de634d958183c56b56 (diff) | |
saved
Diffstat (limited to 'temp_robot.js')
| -rw-r--r-- | temp_robot.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/temp_robot.js b/temp_robot.js new file mode 100644 index 0000000..b47ace2 --- /dev/null +++ b/temp_robot.js @@ -0,0 +1,59 @@ +const client = mqtt.connect("ws://marcellus.cc:9001"); + +function wait(ms) +{ + return new Promise((resolve, reject) => { + let isObstacle = false; + + const timer = setTimeout(() => { + if(!isObstacle){ + resolve(0); + } // Le délai s'est écoulé sans détecter d'obstacle + }, ms); + + // Supposons que `client` est un objet qui écoute les messages + client.on('message', (topic, message) => { + if (topic === 'move' && parseInt(message.toString()) < 150) { + isObstacle = true; + clearTimeout(timer); + resolve(1); // Un obstacle a été détecté + } + }); + }); +} + +function getTime(dist) +{ + let res = (dist / 200)*1000 + //console.log('time is '+res) + return res +} + +async function moveTo(dist,angle) +{ + console.log('dist is '+ dist) + ang = angle * 180 /Math.PI + console.log('ang is :' + ang.toString()) + var str = 'T'+(Math.floor(ang)).toString() + client.publish('move',str) + client.publish('move','D200') + const time = getTime(dist) + let tmp = await wait(time); + if (tmp == 0){ + client.publish('move', 'STOP'); + } + stop() + +} + +client.on('connect', () => { + console.log('Connecté au courtier MQTT'); + client.subscribe('move') +}); +// client.publish('move','ULT1') + + +/* client.on('close', function () { + console.log('Déconnecté du courtier MQTT'); +});*/ + |
