From 560d6ca866f12f421271143d9a5d5c528b207718 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 2 Jun 2023 11:22:28 +0200 Subject: [PATCH] change send video thread to use asyncio.run because webserver thread does not use asyncio --- src/camera/camera/camera_controller.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/camera/camera/camera_controller.py b/src/camera/camera/camera_controller.py index a7d4dd80..46c22d35 100644 --- a/src/camera/camera/camera_controller.py +++ b/src/camera/camera/camera_controller.py @@ -28,11 +28,12 @@ class CameraController(Node): self.server = None self.event_loop = None + self.websocket_thread = threading.Thread(target=self.start_websocket_server) + self.websocket_thread.start() + self.video_thread = threading.Thread(target=self.handle_video_connection) self.video_thread.start() - self.websocket_thread = threading.Thread(target=self.start_websocket_server) - self.websocket_thread.start() @@ -50,7 +51,7 @@ class CameraController(Node): return response async def handle_video_connection(self): - asyncio.ensure_future(self.send_video(),loop=self.event_loop) + asyncio.run(self.send_video()) async def send_video(self): self.get_logger().info('Starting video thread') @@ -71,6 +72,7 @@ class CameraController(Node): except Exception as e: self.get_logger().error('Something went wrong while reading and sending video: ' + str(e)) + async def start_websocket_server(self): self.get_logger().info('Starting websocket server for video') self.event_loop = asyncio.get_event_loop()