From e808e93cf30115977e9ac92ce51785639cc26fd8 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Mon, 5 Jun 2023 21:59:19 +0200 Subject: [PATCH] try closing camera --- api/views/index.ejs | 5 ++++- src/api_communication/api_communication/api_listener.py | 2 +- src/camera/camera/camera_controller.py | 7 ++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/api/views/index.ejs b/api/views/index.ejs index 95404da5..a636bc86 100644 --- a/api/views/index.ejs +++ b/api/views/index.ejs @@ -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]; } else if (data.type == "FAILSAFE") { 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 { // decodeBase64Image(data.image, document.getElementById("result-video")); } diff --git a/src/api_communication/api_communication/api_listener.py b/src/api_communication/api_communication/api_listener.py index 8995be88..e98139d1 100644 --- a/src/api_communication/api_communication/api_listener.py +++ b/src/api_communication/api_communication/api_listener.py @@ -140,7 +140,7 @@ class ApiListener(Node): self.status_data['battery_percentage'] = msg.battery_percentage if msg.battery_percentage < 0.15: 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['armed'] = msg.armed self.armed = msg.armed diff --git a/src/camera/camera/camera_controller.py b/src/camera/camera/camera_controller.py index 19b02aaf..6345a329 100644 --- a/src/camera/camera/camera_controller.py +++ b/src/camera/camera/camera_controller.py @@ -68,6 +68,11 @@ class CameraController(Node): connected = False loop.run_until_complete(start_server) 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): vid = cv2.VideoCapture(0,cv2.CAP_V4L) @@ -93,7 +98,7 @@ class CameraController(Node): error_amount += 1 if error_amount > 20: self.get_logger().error("Too many errors, closing node") - self.destroy_node() + sys.exit(-1) def handle_video_connection(self):