add remaining functionality and comments

This commit is contained in:
Sem van der Hoeven
2023-06-05 13:36:44 +02:00
parent 267e818d66
commit 273d979beb
3 changed files with 152 additions and 28 deletions

View File

@@ -82,7 +82,6 @@ var connect_to_api = function () {
function send_image_data_to_clients(videoData) {
sse_clients.forEach((client) => {
// Set the SSE event name as 'message'
client.response.write("event: message\n");
@@ -98,7 +97,7 @@ function send_image_data_to_clients(videoData) {
// Define the endpoint to receive video data
app.post("/video", (req, res) => {
// console.log("got video endpoint")
// console.log("got video endpoint")
let videoData = Buffer.from("");
req.on("data", (chunk) => {
@@ -109,7 +108,7 @@ app.post("/video", (req, res) => {
req.on("end", () => {
// Process the received video data
// console.log("Received video data:" + videoData.length);
send_image_data_to_clients(videoData);
send_image_data_to_clients(videoData);
// Send a response indicating successful receipt
res.sendStatus(200);
@@ -150,6 +149,26 @@ app.post("/move", function (req, res) {
ws.send(request);
});
app.post("/estop", function (req, res) {
console.log("got estop request");
var request = JSON.stringify({
command: 6,
});
ws.send(request);
});
app.post("/land", function (req, res) {
console.log("got land request");
var request = JSON.stringify({ command: 0 });
ws.send(request);
});
app.post("/arm_disarm", function (req, res) {
console.log("got arm/disarm request");
var request = JSON.stringify({ command: 1 });
ws.send(request);
});
app.get("/connect", function (req, res) {
console.log("got connect request");
connect_to_api();
@@ -164,7 +183,7 @@ app.get("/connect", function (req, res) {
});
app.get("/test", function (req, res) {
res.render("test");
res.render("test");
});
app.listen(8080);

View File

@@ -37,7 +37,7 @@
<button class="movebutton" id="button_backward">Backward</button>
<button class="movebutton" id="button_left">Left</button>
<button class="movebutton" id="button_right">Right</button>
<button id="button_stop" onclick="stop()">Stop</button>
<button id="button_land" onclick="land()">Land</button>
<button id="button_estop" onclick="estop()"><strong>Emergency Stop</strong></button>
</div>
@@ -112,6 +112,9 @@
document.getElementById("control_mode").innerHTML = "Control mode: " + data.data.control_mode;
document.getElementById("speed").innerHTML = "Current speed (m/s): x: " + data.data.speed[0] + " y: " + data.data.speed[1] + " z: " + data.data.speed[2];
document.getElementById("position").innerHTML = "Current position (m): x: " + data.data.position[0] + " y: " + data.data.position[1] + " z: " + data.data.position[2];
} else if (data.type == "FAILSAFE") {
document.getElementById("failsafe").innerHTML = "Failsafe: ENABLED";
alert("Failsafe enabled! Drone is landing. The failsafe message is: " + data.message);
} else {
// decodeBase64Image(data.image, document.getElementById("result-video"));
}
@@ -208,9 +211,19 @@
console.log("stop");
send_move_request(JSON.stringify({ "up_down": 0.0, "forward_backward": 0.0, "left_right": 0.0, "turn_left_right": 0.0 }));
}
function land_takeoff() {
console.log("land");
var xhr = new XMLHttpRequest();
xhr.open("POST", "/land", true);
xhr.send();
}
function estop() {
console.log("estop");
var xhr = new XMLHttpRequest();
xhr.open("POST", "/estop", true);
xhr.send();
}
function take_picture() {
@@ -224,6 +237,9 @@
function arm_disarm() {
console.log("arm/disarm");
var xhr = new XMLHttpRequest();
xhr.open("POST", "/arm_disarm", true);
xhr.send();
}
function connect_to_video_stream() {