try closing camera

This commit is contained in:
Sem van der Hoeven
2023-06-05 21:59:19 +02:00
parent edde183c7b
commit e808e93cf3
3 changed files with 11 additions and 3 deletions

View File

@@ -119,7 +119,10 @@
document.getElementById("position").innerHTML = "Current position (m): x: " + data.data.position[0] + " y: " + data.data.position[1] + " z: " + data.data.position[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") { } else if (data.type == "FAILSAFE") {
document.getElementById("failsafe").innerHTML = "Failsafe: ENABLED"; document.getElementById("failsafe").innerHTML = "Failsafe: ENABLED";
alert("Failsafe enabled! Drone is landing. The failsafe message is: " + data.message); document.getElementById("failsafe").style.backgroundColor = "red";
document.getElementById("failsafe").style.color = "white";
document.getElementById("failsafe").style.textDecoration = "bold";
alert("Failsafe enabled! Drone is landing. The failsafe message is:\n" + data.message);
} else { } else {
// decodeBase64Image(data.image, document.getElementById("result-video")); // decodeBase64Image(data.image, document.getElementById("result-video"));
} }

View File

@@ -140,7 +140,7 @@ class ApiListener(Node):
self.status_data['battery_percentage'] = msg.battery_percentage self.status_data['battery_percentage'] = msg.battery_percentage
if msg.battery_percentage < 0.15: if msg.battery_percentage < 0.15:
self.enable_failsafe( self.enable_failsafe(
"Battery level too low! Failsafe enabled to prevent damage to battery") "Battery level too low! Failsafe enabled to prevent damage to battery (" + str(msg.battery_percentage * 10) + "%)")
self.status_data['cpu_usage'] = msg.cpu_usage self.status_data['cpu_usage'] = msg.cpu_usage
self.status_data['armed'] = msg.armed self.status_data['armed'] = msg.armed
self.armed = msg.armed self.armed = msg.armed

View File

@@ -68,6 +68,11 @@ class CameraController(Node):
connected = False connected = False
loop.run_until_complete(start_server) loop.run_until_complete(start_server)
loop.run_forever() loop.run_forever()
try:
self.destroy_node()
except Exception as e:
self.get_logger().error("error " + str(e))
sys.exit(-1)
async def websocket_video(self,websocket,path): async def websocket_video(self,websocket,path):
vid = cv2.VideoCapture(0,cv2.CAP_V4L) vid = cv2.VideoCapture(0,cv2.CAP_V4L)
@@ -93,7 +98,7 @@ class CameraController(Node):
error_amount += 1 error_amount += 1
if error_amount > 20: if error_amount > 20:
self.get_logger().error("Too many errors, closing node") self.get_logger().error("Too many errors, closing node")
self.destroy_node() sys.exit(-1)
def handle_video_connection(self): def handle_video_connection(self):