diff --git a/__pycache__/__init__.cpython-38.pyc b/__pycache__/__init__.cpython-38.pyc index 3d7538e2d8a9aa388f27587dc29a1a8beee086b0..a7ac6448ad83054dd05bde0e8354a7e33eb0de7b 100644 Binary files a/__pycache__/__init__.cpython-38.pyc and b/__pycache__/__init__.cpython-38.pyc differ diff --git a/src/__pycache__/m_ros2py.cpython-38.pyc b/src/__pycache__/m_ros2py.cpython-38.pyc index fc840c243ec91fc26278ea4b38b2c36e04de74d9..a4e0e0065bb873b2a389e5d16c40133fd9a5a43f 100644 Binary files a/src/__pycache__/m_ros2py.cpython-38.pyc and b/src/__pycache__/m_ros2py.cpython-38.pyc differ diff --git a/src/m_ros2py.py b/src/m_ros2py.py index 44c223e848c40c42134b0e6e8aaadf8cd98ef2e3..4a854b7b41c0c5261d35b2e44af1650290fa5e11 100755 --- a/src/m_ros2py.py +++ b/src/m_ros2py.py @@ -1,6 +1,14 @@ +#______________________________________________________________________________________________________________________________________________ +#Author: VV +#Description: Class to simplify the creation of ros2 nodes +#Date: 01.08.24 +#______________________________________________________________________________________________________________________________________________ +#imports from rclpy.node import Node from std_msgs.msg import * +#______________________________________________________________________________________________________________________________________________ +#wrapper for creating ros2 node as publisher, subscriber, clients, service class ros2node(Node): def __init__(self, nodeName): super().__init__(nodeName) @@ -10,22 +18,32 @@ class ros2node(Node): self._services = {} self._clients = {} self.as_ClientService = False - + +#______________________________________________________________________________________________________________________________________________ +#ros2 publisher def create_publisher_with_timer(self, topicName, msgType, func, rate): self._publishers[topicName] = self.create_publisher(msgType, topicName, 10) self._timers[topicName] = self.create_timer(rate, lambda: self.timer_callback(topicName, func)) +#______________________________________________________________________________________________________________________________________________ +#ros2 subscriber def create_subscriber(self, topicName, msgType, func): self._subscribers[topicName] = self.create_subscription(msgType, topicName, func, 10) +#______________________________________________________________________________________________________________________________________________ +#ros2 service def create_new_service(self, topicName, msgType, func): self._services[topicName] = self.create_service(msgType, topicName, func) self.as_ClientService = True +#______________________________________________________________________________________________________________________________________________ +#ros2 client def create_new_client(self, topicName, msgType): self._clients[topicName] = self.create_client(msgType, topicName) self.as_ClientService = True - +#______________________________________________________________________________________________________________________________________________ +#external executable callback function + def timer_callback(self, topicName, func): if not self.as_ClientService: publisher = self._publishers.get(topicName) @@ -35,6 +53,10 @@ class ros2node(Node): # self.get_logger().info(f'Publishing: "{msg.data}" on topic: "{topicName}"') else: self.get_logger().info(f'No publisher found for topic: "{topicName}"') +#______________________________________________________________________________________________________________________________________________ +#getter def get_client(self, topicName): return self._clients.get(topicName) +#______________________________________________________________________________________________________________________________________________ +#setter \ No newline at end of file