add subscribe to drone status
This commit is contained in:
@@ -1,23 +1,30 @@
|
|||||||
import rclpy
|
import rclpy
|
||||||
from rclpy.node import Node
|
from rclpy.node import Node
|
||||||
|
|
||||||
|
from drone_services.msg import DroneStatus
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import websockets.server
|
import websockets.server
|
||||||
import threading
|
|
||||||
|
|
||||||
|
|
||||||
class ApiListener(Node):
|
class ApiListener(Node):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__('api_listener')
|
super().__init__('api_listener')
|
||||||
self.get_logger().info('ApiListener node started')
|
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
|
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):
|
async def spin(self):
|
||||||
self.get_logger().info('Starting API')
|
self.get_logger().info('Starting API')
|
||||||
self.server = await websockets.serve(self.api_handler, '0.0.0.0', 9001)
|
self.server = await websockets.serve(self.api_handler, '0.0.0.0', 9001)
|
||||||
self.get_logger().info('API started')
|
self.get_logger().info('API started')
|
||||||
await self.server.wait_closed()
|
await self.server.wait_closed()
|
||||||
|
|
||||||
|
|
||||||
async def api_handler(self, websocket):
|
async def api_handler(self, websocket):
|
||||||
try:
|
try:
|
||||||
while rclpy.ok():
|
while rclpy.ok():
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
<maintainer email="semmer99@gmail.com">sem</maintainer>
|
<maintainer email="semmer99@gmail.com">sem</maintainer>
|
||||||
<license>Apache License 2.0</license>
|
<license>Apache License 2.0</license>
|
||||||
<depend>rclpy</depend>
|
<depend>rclpy</depend>
|
||||||
|
<depend>drone_services</depend>
|
||||||
|
|
||||||
<test_depend>ament_copyright</test_depend>
|
<test_depend>ament_copyright</test_depend>
|
||||||
<test_depend>ament_flake8</test_depend>
|
<test_depend>ament_flake8</test_depend>
|
||||||
|
|||||||
Reference in New Issue
Block a user