add timeout
This commit is contained in:
@@ -76,9 +76,9 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var ws;
|
var ws;
|
||||||
|
var api_timout;
|
||||||
var checked_for_connection = false;
|
var checked_for_connection = false;
|
||||||
var connected_to_api = false;
|
var connected_to_api = false;
|
||||||
// setInterval(check_ws_connection, 1000, ws);
|
|
||||||
assign_button_callbacks();
|
assign_button_callbacks();
|
||||||
openSocket = () => {
|
openSocket = () => {
|
||||||
|
|
||||||
@@ -317,22 +317,23 @@
|
|||||||
document.getElementById("failsafe").style.color = "white";
|
document.getElementById("failsafe").style.color = "white";
|
||||||
document.getElementById("failsafe").style.textDecoration = "bold";
|
document.getElementById("failsafe").style.textDecoration = "bold";
|
||||||
alert("Failsafe enabled! Drone is landing. The failsafe message is:\n" + data.message);
|
alert("Failsafe enabled! Drone is landing. The failsafe message is:\n" + data.message);
|
||||||
|
} else if (data.type == "API_HEARTBEAT") {
|
||||||
|
clearTimeout(api_timout);
|
||||||
} else {
|
} else {
|
||||||
// decodeBase64Image(data.image, document.getElementById("result-video"));
|
// decodeBase64Image(data.image, document.getElementById("result-video"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_ws_connection() {
|
function check_ws_connection() {
|
||||||
if (checked_for_connection == false && connected_to_api)
|
if (checked_for_connection == false && connected_to_api) {
|
||||||
{
|
|
||||||
console.log("Checking connection to API")
|
console.log("Checking connection to API")
|
||||||
console.log(ws.readyState)
|
ws.send(JSON.stringify({ "command": 7 }));
|
||||||
if (ws.readyState != WebSocket.OPEN) {
|
api_timout = setTimeout(function () {
|
||||||
alert("Lost connection to API!")
|
alert("API did not respond on time!")
|
||||||
document.getElementById("connectedlabel").innerHTML = "Not connected to drone";
|
document.getElementById("connectedlabel").innerHTML = "Not connected to drone";
|
||||||
document.getElementById("connectbutton").disabled = false;
|
document.getElementById("connectbutton").disabled = false;
|
||||||
checked_for_connection = true;
|
}, 1000);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -345,7 +346,7 @@
|
|||||||
document.getElementById("connectedlabel").innerHTML = "Connected to drone";
|
document.getElementById("connectedlabel").innerHTML = "Connected to drone";
|
||||||
document.getElementById("connectbutton").disabled = true;
|
document.getElementById("connectbutton").disabled = true;
|
||||||
connected_to_api = true;
|
connected_to_api = true;
|
||||||
setInterval(check_ws_connection, 1000);
|
setInterval(check_ws_connection, 2000);
|
||||||
openSocket();
|
openSocket();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class RequestCommand(Enum):
|
|||||||
MOVE_DIRECTION = 3
|
MOVE_DIRECTION = 3
|
||||||
TAKE_PICTURE = 5
|
TAKE_PICTURE = 5
|
||||||
EMERGENCY_STOP = 6
|
EMERGENCY_STOP = 6
|
||||||
|
API_HEARTBEAT = 7
|
||||||
|
|
||||||
|
|
||||||
class ResponseMessage(Enum):
|
class ResponseMessage(Enum):
|
||||||
@@ -53,6 +54,7 @@ class ResponseMessage(Enum):
|
|||||||
IMAGE = 1
|
IMAGE = 1
|
||||||
MOVE_DIRECTION_RESULT = 2
|
MOVE_DIRECTION_RESULT = 2
|
||||||
FAILSAFE = 3
|
FAILSAFE = 3
|
||||||
|
API_HEARTBEAT = 4
|
||||||
|
|
||||||
|
|
||||||
class ApiListener(Node):
|
class ApiListener(Node):
|
||||||
@@ -442,6 +444,9 @@ class ApiListener(Node):
|
|||||||
elif message_json['command'] == RequestCommand.EMERGENCY_STOP.value:
|
elif message_json['command'] == RequestCommand.EMERGENCY_STOP.value:
|
||||||
self.get_logger().info('Emergency stop command received')
|
self.get_logger().info('Emergency stop command received')
|
||||||
self.emergency_stop()
|
self.emergency_stop()
|
||||||
|
elif message_json['command'] == RequestCommand.API_HEARTBEAT.value:
|
||||||
|
self.get_logger().info('API heartbeat received')
|
||||||
|
self.message_queue.append(json.dumps({"type": ResponseMessage.API_HEARTBEAT.name}))
|
||||||
else:
|
else:
|
||||||
self.get_logger().error('Received unknown command ' +
|
self.get_logger().error('Received unknown command ' +
|
||||||
str(message_json['command']))
|
str(message_json['command']))
|
||||||
|
|||||||
Reference in New Issue
Block a user