async spin with rclpy.spin_once
This commit is contained in:
@@ -9,16 +9,18 @@ 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.angle = 30
|
self.server = None
|
||||||
asyncio.async(self.run_api())
|
|
||||||
|
|
||||||
async def run_api(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, 'localhost', 8765)
|
self.server = await websockets.serve(self.api_handler, 'localhost', 8765)
|
||||||
|
self.get_logger().info('API started')
|
||||||
|
await self.server.wait_closed()
|
||||||
|
|
||||||
async def api_handler(self, websocket):
|
async def api_handler(self, websocket):
|
||||||
try:
|
try:
|
||||||
while True:
|
while rclpy.ok():
|
||||||
|
rclpy.spin_once(self, timeout_sec=0.1)
|
||||||
message = await websocket.recv()
|
message = await websocket.recv()
|
||||||
self.get_logger().info('Received message: {0}'.format(message))
|
self.get_logger().info('Received message: {0}'.format(message))
|
||||||
await websocket.send("You sent " + str(message))
|
await websocket.send("You sent " + str(message))
|
||||||
@@ -26,15 +28,15 @@ class ApiListener(Node):
|
|||||||
self.get_logger().info('Connection closed')
|
self.get_logger().info('Connection closed')
|
||||||
|
|
||||||
|
|
||||||
def main(args=None):
|
async def main(args=None):
|
||||||
rclpy.init(args=args)
|
rclpy.init(args=args)
|
||||||
|
|
||||||
api_listener = ApiListener()
|
api_listener = ApiListener()
|
||||||
|
|
||||||
rclpy.spin(api_listener)
|
await api_listener.spin()
|
||||||
|
|
||||||
api_listener.destroy_node()
|
api_listener.destroy_node()
|
||||||
rclpy.shutdown()
|
rclpy.shutdown()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
asyncio.run(main())
|
||||||
Reference in New Issue
Block a user