diff --git a/src/api_communication/api_communication/api_listener.py b/src/api_communication/api_communication/api_listener.py
index c9f7166b..219a969e 100644
--- a/src/api_communication/api_communication/api_listener.py
+++ b/src/api_communication/api_communication/api_listener.py
@@ -1,23 +1,30 @@
import rclpy
from rclpy.node import Node
+from drone_services.msg import DroneStatus
+
import asyncio
import websockets.server
-import threading
+
+
class ApiListener(Node):
def __init__(self):
super().__init__('api_listener')
self.get_logger().info('ApiListener node started')
- self.messages = 0
+ self.drone_status_subscriber = self.create_subscription(DroneStatus, '/drone/status', self.drone_status_callback, 10)
self.server = None
+ def drone_status_callback(self, msg):
+ self.get_logger().info('Received drone battery and cpu: {0} {1}'.format(msg.battery_percentage,msg.cpu_usage))
+
async def spin(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')
await self.server.wait_closed()
+
async def api_handler(self, websocket):
try:
while rclpy.ok():
diff --git a/src/api_communication/package.xml b/src/api_communication/package.xml
index be9c3731..2f4475b4 100644
--- a/src/api_communication/package.xml
+++ b/src/api_communication/package.xml
@@ -7,6 +7,7 @@
sem
Apache License 2.0
rclpy
+ drone_services
ament_copyright
ament_flake8