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">
|
<package format="3">
|
||||||
<name>api_communication</name>
|
<name>api_communication</name>
|
||||||
<version>0.0.0</version>
|
<version>0.0.0</version>
|
||||||
<description>TODO: Package description</description>
|
<description>package for communicating with edge computer through 5G</description>
|
||||||
<maintainer email="semmer99@gmail.com">ubuntu</maintainer>
|
<maintainer email="semmer99@gmail.com">sem</maintainer>
|
||||||
<license>TODO: License declaration</license>
|
<license>Apache License 2.0</license>
|
||||||
|
<depend>rclpy</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>
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ setup(
|
|||||||
tests_require=['pytest'],
|
tests_require=['pytest'],
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
|
'api_listener = api_communication.api_listener:main'
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Submodule src/px4_msgs updated: ffc3a4cd57...b64ef0475c
Reference in New Issue
Block a user