Files
5g_drone_ROS2/api/views/index.ejs
Sem van der Hoeven b69bc88b66 receive status
2023-05-29 14:27:24 +02:00

122 lines
4.1 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel='stylesheet' href='/css/stylesheet.css' />
<title>5G drone API</title>
</head>
<body>
<h1 class="header">5G Drone API</h1>
<div class="video">
<div class="mainvideo">
<p>Camera view:</p>
<div id="connectedbuttons">
<div id="connectedstatus">
<p>Connected: <%- api_connected %></p>
</div>
<div id="buttons">
<button id="take_picture" onclick="take_picture()">Take picture</button>
<br>
<button id="arm_disarm" onclick="arm_disarm()">Arm/Disarm</button>
</div>
</div>
<div id="controls">
<h2>Controls</h2>
<div id="buttons">
<button id="button_turnleft" onclick="turn_left()">Turn left</button>
<button id="button_turnright" onclick="turn_right()">Turn right</button>
<button id="button_up" onclick="up()">Up</button>
<button id="button_down" onclick="down()">Down</button>
<button id="button_forward" onclick="forward()">Forward</button>
<button id="button_backward" onclick="backward()">Backward</button>
<button id="button_left" onclick="left()">Left</button>
<button id="button_right" onclick="right()">Right</button>
<button id="button_stop" onclick="stop()"><strong>Emergency Stop</strong></button>
</div>
</div>
</div>
<div class="lastpicture">
<p>Last picture:</p>
<img id="picture">
<h2>Drone status</h2>
<p id="batterypercentage">Battery percentage</p>
<p id="cpuload">CPU load</p>
<p id="speed">Current speed</p>
<p id="position">Current position</p>
<br>
<p id="failsafe">Failsafe status</p>
</div>
</div>
</body>
<script>
var update_status = setInterval(update_status,1000);
function update_status()
{
var xhr = new XMLHttpRequest();
xhr.open("GET", "/status", true);
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var status = JSON.parse(this.responseText);
document.getElementById("batterypercentage").innerHTML = "Battery percentage: " + status.battery_percentage;
document.getElementById("cpuload").innerHTML = "CPU load: " + status.cpu_load;
document.getElementById("speed").innerHTML = "Current speed: " + status.speed;
document.getElementById("position").innerHTML = "Current position: " + status.position;
document.getElementById("failsafe").innerHTML = "Failsafe status: " + status.failsafe;
}
};
}
function turn_left() {
console.log("turnleft");
}
function turn_right() {
console.log("turnright");
}
function up() {
console.log("up");
var xhr = new XMLHttpRequest();
xhr.setRequestHeader("Content-Type", "application/json");
xhr.open("POST", "/move_up", true);
var data = JSON.stringify({"speed": 1});
xhr.send(data);
}
function down() {
console.log("down");
}
function forward() {
console.log("forward");
}
function backward() {
console.log("backward");
}
function left() {
console.log("left");
}
function right() {
console.log("right");
}
function stop() {
console.log("stop");
}
function take_picture() {
console.log("take picture");
}
function arm_disarm() {
console.log("arm/disarm");
}
// window onload function die elke seconde een request doet om te kijken of er al nieuwe foto is
// function die elke 100 ms een request doet om de status te updaten
// button callbacks
</script>
</html>