From 1ab95054f211b98f6a9e595b4af008b5f75cd1fc Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Mon, 22 May 2023 15:06:10 +0200 Subject: [PATCH] add task wrapper for api --- .../api_communication/api_listener.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/api_communication/api_communication/api_listener.py b/src/api_communication/api_communication/api_listener.py index 1ccef444..e7658d9d 100644 --- a/src/api_communication/api_communication/api_listener.py +++ b/src/api_communication/api_communication/api_listener.py @@ -22,7 +22,7 @@ class ApiListener(Node): self.last_battery_percentage = msg.battery_percentage self.last_cpu_usage = msg.cpu_usage - async def spin(self): + async def handle_api(self): self.get_logger().info('Starting API') self.server = await websockets.serve(self.api_handler, '0.0.0.0', 9001) self.get_logger().info('API started') @@ -31,8 +31,7 @@ class ApiListener(Node): async def api_handler(self, websocket): try: - while rclpy.ok(): - rclpy.spin_once(self, timeout_sec=0.1) + while True: message = await websocket.recv() self.get_logger().info('Received message: {0}'.format(message)) await websocket.send("Yeet ") @@ -45,9 +44,12 @@ async def main(args=None): api_listener = ApiListener() - await api_listener.spin() + # start the websockets api in its own task wrapper + asyncio.ensure_future(api_listener.handle_api()) + rclpy.spin(api_listener) api_listener.destroy_node() rclpy.shutdown() +print("running main") asyncio.run(main()) \ No newline at end of file