add api basics
This commit is contained in:
38
src/api_communication/api_communication/api_listener.py
Normal file
38
src/api_communication/api_communication/api_listener.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import rclpy
|
||||
from rclpy.node import Node
|
||||
|
||||
import asyncio
|
||||
import websockets.server
|
||||
|
||||
class ApiListener(Node):
|
||||
def __init__(self):
|
||||
super().__init__('api_listener')
|
||||
self.get_logger().info('ApiListener node started')
|
||||
asyncio.run(self.run_api())
|
||||
|
||||
async def run_api(self):
|
||||
self.get_logger().info('Starting API')
|
||||
self.server = await websockets.serve(self.api_handler, 'localhost', 8765)
|
||||
|
||||
async def api_handler(self, websocket):
|
||||
try:
|
||||
while True:
|
||||
message = await websocket.recv()
|
||||
self.get_logger().info('Received message: {0}'.format(message))
|
||||
await websocket.send("You sent " + str(message))
|
||||
except websockets.exceptions.ConnectionClosed:
|
||||
self.get_logger().info('Connection closed')
|
||||
|
||||
|
||||
def main(args=None):
|
||||
rclpy.init(args=args)
|
||||
|
||||
api_listener = ApiListener()
|
||||
|
||||
rclpy.spin(api_listener)
|
||||
|
||||
api_listener.destroy_node()
|
||||
rclpy.shutdown()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -3,9 +3,10 @@
|
||||
<package format="3">
|
||||
<name>api_communication</name>
|
||||
<version>0.0.0</version>
|
||||
<description>TODO: Package description</description>
|
||||
<maintainer email="semmer99@gmail.com">ubuntu</maintainer>
|
||||
<license>TODO: License declaration</license>
|
||||
<description>package for communicating with edge computer through 5G</description>
|
||||
<maintainer email="semmer99@gmail.com">sem</maintainer>
|
||||
<license>Apache License 2.0</license>
|
||||
<depend>rclpy</depend>
|
||||
|
||||
<test_depend>ament_copyright</test_depend>
|
||||
<test_depend>ament_flake8</test_depend>
|
||||
|
||||
@@ -20,6 +20,7 @@ setup(
|
||||
tests_require=['pytest'],
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'api_listener = api_communication.api_listener:main'
|
||||
],
|
||||
},
|
||||
)
|
||||
|
||||
Submodule src/px4_msgs updated: ffc3a4cd57...b64ef0475c
Reference in New Issue
Block a user