moniks_bot/client/index.html

115 lines
2.6 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Contrôle du robot</title>
</head>
<body>
<h1>Contrôle du robot sans fils</h1>
<p>
Cette page permet de contrôler le robot depuis un PC portable
connecté au WiFi du robot. Elle est destinée aux personnes n'ayant
pas de smartphone.
</p>
<h2>Paramètres de contrôle</h2>
<p>
Ici vous pourrez paramétrer les contrôles du robot, rentrer son
adresse IP ainsi que lui indiquer la distance à parcourir ou l'angle
de rotation désiré.
</p>
<form class="settings" onsubmit="setEndpoint()">
<label>
<span>Adresse IP du robot</span>
<input
type="text"
title="Adresse IP du robot (ex: 192.168.0.1)"
pattern="\d+\.\d+\.\d+\.\d+"
placeholder="192.168.0.0"
required
/>
</label>
<button>Se connecter</button>
</form>
<div class="controls">
<label>
<span>Rotation en degrés</span>
<input
type="number"
title="Rotation en degrés (0° - 360°)"
min="0"
max="360"
step="1"
placeholder="90"
onchange="rotate()"
/>
</label>
<label>
<span>Longueur en cm</span>
<input
type="number"
title="Longueur en cm (0 - 2^31)"
min="-2147483647"
step="1"
max="2147483647"
placeholder="10"
onchange="move()"
/>
</label>
</div>
<h2>Contrôle</h2>
<p>
Amusez vous ! Pour contrôler le robot, utilisez les flèches
directionnelles pour le diriger et la barre espace pour le stopper.
</p>
</body>
<script>
var ipInput = ''
var valueRot = ''
var valueLength = ''
var keyMap = {}
window.onload = function () {
storeInput()
}
document.addEventListener('keydown', (event) => {
const key = event.keyCode
const url = keyMap[key]
console.log(url)
const xhr = new XMLHttpRequest()
xhr.open('GET', url)
xhr.onload = () => {
const response = xhr.responseText
console.log(response)
}
xhr.send()
})
function storeInput() {
ipInput = document.getElementById('ip').value
valueRot = document.getElementById('valueRot').value
valueLength = document.getElementById('valueLength').value
keyMap = {
38:
'http://' +
ipInput +
'/get?command=forward&value=' +
valueLength,
40:
'http://' +
ipInput +
'/get?command=backward&value=' +
valueLength,
37: 'http://' + ipInput + '/get?command=left&value=' + valueRot,
39:
'http://' +
ipInput +
'/get?command=right&value=' +
valueRot,
32: 'http://' + ipInput + '/get?command=stop',
}
}
</script>
</html>