Skip to content
Snippets Groups Projects
Commit 2a774c4f authored by plw1g21's avatar plw1g21
Browse files

Added the scripts for connecting and handling commands into the api_node

parent 8e713f0e
Branches handling-tcp-messages
No related tags found
No related merge requests found
Showing
with 636 additions and 6 deletions
# robobin/api_node.py
import rclpy
from rclpy.node import Node
from .message_handler import MessageHandler
from .connection_manager import ConnectionManager
class ApiNode(Node):
def __init__(self):
super().__init__('api_node')
self.get_logger().info("ApiNode has been started.")
# Initialize handlers
self.message_handler = MessageHandler(self)
self.connection_manager = ConnectionManager(self)
# Start connection manager
self.connection_manager.start()
def handle_client_connection(self, client_socket):
"""Handles incoming TCP client connections."""
try:
while True:
data = client_socket.recv(1024).decode()
if not data:
break
command, *args = data.split(" ", 1)
self.message_handler.handle_message(client_socket, command, args[0] if args else None)
finally:
client_socket.close()
self.get_logger().info("Client disconnected.")
def shutdown(self):
"""Stops the connection manager."""
self.connection_manager.stop()
def main(args=None):
rclpy.init(args=args)
node = ApiNode()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
node.shutdown()
finally:
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
# robobin/connection_manager.py
import socket
import threading
import time
class ConnectionManager:
def __init__(self, api_node, udp_ip="255.255.255.255", udp_port=5005, listen_port=5006):
self.api_node = api_node
self.UDP_IP = udp_ip
self.UDP_PORT = udp_port
self.LISTEN_PORT = listen_port
self.stop_event = threading.Event()
def start(self):
"""Starts listening for connections and broadcasting presence."""
self.listen_thread = threading.Thread(target=self.listen_for_connections)
self.broadcast_thread = threading.Thread(target=self.broadcast_presence)
self.listen_thread.start()
self.broadcast_thread.start()
def listen_for_connections(self):
"""Listens for UDP 'CONNECT' messages and sets up TCP connections."""
udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
udp_sock.bind(('', self.LISTEN_PORT))
while not self.stop_event.is_set():
try:
data, addr = udp_sock.recvfrom(1024)
if data.decode() == "CONNECT":
print(f"Connection request from {addr}")
tcp_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp_sock.bind(('', self.LISTEN_PORT))
tcp_sock.listen(1)
client_socket, client_addr = tcp_sock.accept()
print(f"Client connected from {client_addr}")
threading.Thread(target=self.api_node.handle_client_connection, args=(client_socket,)).start()
except socket.timeout:
continue
except OSError:
break
udp_sock.close()
print("Stopped listening for connections.")
def broadcast_presence(self):
"""Broadcasts presence periodically over UDP."""
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while not self.stop_event.is_set():
try:
location = "(0,0)" #At some point this will be retrieved from navigation node
message = f"ROBOBIN_PRESENT {location}".encode()
sock.sendto(message, (self.UDP_IP, self.UDP_PORT))
print("Broadcasting presence.")
time.sleep(5)
except OSError:
break
sock.close()
print("Stopped broadcasting presence.")
def stop(self):
"""Stops the connection manager."""
self.stop_event.set()
# robobin/message_handler.py
class MessageHandler:
def __init__(self, api_node):
self.api_node = api_node
self.handlers = {
"PING": self.handle_ping,
"TIME": self.handle_time_request,
"MANUALCTRL": self.handle_manual_control
}
def handle_message(self, client_socket, command, data):
"""Routes the command to the appropriate handler."""
handler = self.handlers.get(command, self.handle_unknown_message)
handler(client_socket, data)
def handle_ping(self, client_socket, _):
"""Responds with a PONG message."""
client_socket.sendall(b"PONG")
def handle_time_request(self, client_socket, _):
"""Sends the current server time."""
client_socket.sendall(time.ctime().encode())
def handle_manual_control(self, client_socket, message):
"""Handles manual control commands: W, A, S, D."""
directions = {
"W": (1, 0, 0), # Move forward
"A": (0, 0, 1), # Turn left
"S": (-1, 0, 0), # Move backward
"D": (0, 0, -1) # Turn right
}
response_data = directions.get(message.strip().upper(), (0, 0, 0))
response = f"Manual control command received: {response_data}".encode()
client_socket.sendall(response)
print("Processed manual control command:", response_data)
def handle_unknown_message(self, client_socket, _):
"""Handles unknown commands."""
client_socket.sendall(b"Unknown command")
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/connection_manager.py
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/message_handler.py
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/__init__.py
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/api_node.py
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/__pycache__/connection_manager.cpython-312.pyc
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/__pycache__/message_handler.cpython-312.pyc
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/__pycache__/__init__.cpython-312.pyc
/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/__pycache__/api_node.cpython-312.pyc
/home/paulw/GitLab/robobin/ros2/install/robobin/share/ament_index/resource_index/packages/robobin
......
No preview for this file type
......@@ -12,6 +12,8 @@ launch/robobin_launch.py
resource/robobin
robobin/__init__.py
robobin/api_node.py
robobin/connection_manager.py
robobin/message_handler.py
test/test_copyright.py
test/test_flake8.py
test/test_pep257.py
\ No newline at end of file
......@@ -12,6 +12,8 @@ launch/robobin_launch.py
resource/robobin
robobin/__init__.py
robobin/api_node.py
robobin/connection_manager.py
robobin/message_handler.py
test/test_copyright.py
test/test_flake8.py
test/test_pep257.py
\ No newline at end of file
No preview for this file type
# robobin/api_node.py
import rclpy
from rclpy.node import Node
from .message_handler import MessageHandler
from .connection_manager import ConnectionManager
class ApiNode(Node):
def __init__(self):
super().__init__('api_node')
self.get_logger().info("ApiNode has been started.")
# Initialize handlers
self.message_handler = MessageHandler(self)
self.connection_manager = ConnectionManager(self)
# Start connection manager
self.connection_manager.start()
def handle_client_connection(self, client_socket):
"""Handles incoming TCP client connections."""
try:
while True:
data = client_socket.recv(1024).decode()
if not data:
break
command, *args = data.split(" ", 1)
self.message_handler.handle_message(client_socket, command, args[0] if args else None)
finally:
client_socket.close()
self.get_logger().info("Client disconnected.")
def shutdown(self):
"""Stops the connection manager."""
self.connection_manager.stop()
def main(args=None):
rclpy.init(args=args)
node = ApiNode()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
node.shutdown()
finally:
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
# robobin/connection_manager.py
import socket
import threading
import time
class ConnectionManager:
def __init__(self, api_node, udp_ip="255.255.255.255", udp_port=5005, listen_port=5006):
self.api_node = api_node
self.UDP_IP = udp_ip
self.UDP_PORT = udp_port
self.LISTEN_PORT = listen_port
self.stop_event = threading.Event()
def start(self):
"""Starts listening for connections and broadcasting presence."""
self.listen_thread = threading.Thread(target=self.listen_for_connections)
self.broadcast_thread = threading.Thread(target=self.broadcast_presence)
self.listen_thread.start()
self.broadcast_thread.start()
def listen_for_connections(self):
"""Listens for UDP 'CONNECT' messages and sets up TCP connections."""
udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
udp_sock.bind(('', self.LISTEN_PORT))
while not self.stop_event.is_set():
try:
data, addr = udp_sock.recvfrom(1024)
if data.decode() == "CONNECT":
print(f"Connection request from {addr}")
tcp_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp_sock.bind(('', self.LISTEN_PORT))
tcp_sock.listen(1)
client_socket, client_addr = tcp_sock.accept()
print(f"Client connected from {client_addr}")
threading.Thread(target=self.api_node.handle_client_connection, args=(client_socket,)).start()
except socket.timeout:
continue
except OSError:
break
udp_sock.close()
print("Stopped listening for connections.")
def broadcast_presence(self):
"""Broadcasts presence periodically over UDP."""
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while not self.stop_event.is_set():
try:
location = "(0,0)" #At some point this will be retrieved from navigation node
message = f"ROBOBIN_PRESENT {location}".encode()
sock.sendto(message, (self.UDP_IP, self.UDP_PORT))
print("Broadcasting presence.")
time.sleep(5)
except OSError:
break
sock.close()
print("Stopped broadcasting presence.")
def stop(self):
"""Stops the connection manager."""
self.stop_event.set()
# robobin/message_handler.py
class MessageHandler:
def __init__(self, api_node):
self.api_node = api_node
self.handlers = {
"PING": self.handle_ping,
"TIME": self.handle_time_request,
"MANUALCTRL": self.handle_manual_control
}
def handle_message(self, client_socket, command, data):
"""Routes the command to the appropriate handler."""
handler = self.handlers.get(command, self.handle_unknown_message)
handler(client_socket, data)
def handle_ping(self, client_socket, _):
"""Responds with a PONG message."""
client_socket.sendall(b"PONG")
def handle_time_request(self, client_socket, _):
"""Sends the current server time."""
client_socket.sendall(time.ctime().encode())
def handle_manual_control(self, client_socket, message):
"""Handles manual control commands: W, A, S, D."""
directions = {
"W": (1, 0, 0), # Move forward
"A": (0, 0, 1), # Turn left
"S": (-1, 0, 0), # Move backward
"D": (0, 0, -1) # Turn right
}
response_data = directions.get(message.strip().upper(), (0, 0, 0))
response = f"Manual control command received: {response_data}".encode()
client_socket.sendall(response)
print("Processed manual control command:", response_data)
def handle_unknown_message(self, client_socket, _):
"""Handles unknown commands."""
client_socket.sendall(b"Unknown command")
[0.000000] (-) TimerEvent: {}
[0.001654] (robobin) JobQueued: {'identifier': 'robobin', 'dependencies': OrderedDict()}
[0.003226] (robobin) JobStarted: {'identifier': 'robobin'}
[0.098720] (-) TimerEvent: {}
[0.199890] (-) TimerEvent: {}
[0.300926] (-) TimerEvent: {}
[0.402044] (-) TimerEvent: {}
[0.503069] (-) TimerEvent: {}
[0.604080] (-) TimerEvent: {}
[0.705040] (-) TimerEvent: {}
[0.805903] (-) TimerEvent: {}
[0.906810] (-) TimerEvent: {}
[1.007808] (-) TimerEvent: {}
[1.108763] (-) TimerEvent: {}
[1.209720] (-) TimerEvent: {}
[1.310695] (-) TimerEvent: {}
[1.411628] (-) TimerEvent: {}
[1.512637] (-) TimerEvent: {}
[1.613708] (-) TimerEvent: {}
[1.714888] (-) TimerEvent: {}
[1.815986] (-) TimerEvent: {}
[1.917037] (-) TimerEvent: {}
[2.018065] (-) TimerEvent: {}
[2.119133] (-) TimerEvent: {}
[2.220123] (-) TimerEvent: {}
[2.321124] (-) TimerEvent: {}
[2.422131] (-) TimerEvent: {}
[2.523154] (-) TimerEvent: {}
[2.624086] (-) TimerEvent: {}
[2.725062] (-) TimerEvent: {}
[2.825998] (-) TimerEvent: {}
[2.926895] (-) TimerEvent: {}
[3.027837] (-) TimerEvent: {}
[3.128797] (-) TimerEvent: {}
[3.229741] (-) TimerEvent: {}
[3.330706] (-) TimerEvent: {}
[3.431702] (-) TimerEvent: {}
[3.532687] (-) TimerEvent: {}
[3.633666] (-) TimerEvent: {}
[3.734581] (-) TimerEvent: {}
[3.835579] (-) TimerEvent: {}
[3.936594] (-) TimerEvent: {}
[4.037557] (-) TimerEvent: {}
[4.138628] (-) TimerEvent: {}
[4.239605] (-) TimerEvent: {}
[4.340563] (-) TimerEvent: {}
[4.441560] (-) TimerEvent: {}
[4.542589] (-) TimerEvent: {}
[4.643617] (-) TimerEvent: {}
[4.744674] (-) TimerEvent: {}
[4.845683] (-) TimerEvent: {}
[4.946672] (-) TimerEvent: {}
[5.047643] (-) TimerEvent: {}
[5.148620] (-) TimerEvent: {}
[5.249594] (-) TimerEvent: {}
[5.350558] (-) TimerEvent: {}
[5.451526] (-) TimerEvent: {}
[5.552484] (-) TimerEvent: {}
[5.653401] (-) TimerEvent: {}
[5.754404] (-) TimerEvent: {}
[5.855391] (-) TimerEvent: {}
[5.956344] (-) TimerEvent: {}
[6.057367] (-) TimerEvent: {}
[6.158375] (-) TimerEvent: {}
[6.259566] (-) TimerEvent: {}
[6.360691] (-) TimerEvent: {}
[6.461774] (-) TimerEvent: {}
[6.517788] (robobin) Command: {'cmd': ['/usr/bin/python3', '-W', 'ignore:setup.py install is deprecated', 'setup.py', 'egg_info', '--egg-base', '../../build/robobin', 'build', '--build-base', '/home/paulw/GitLab/robobin/ros2/build/robobin/build', 'install', '--record', '/home/paulw/GitLab/robobin/ros2/build/robobin/install.log', '--single-version-externally-managed', 'install_data'], 'cwd': '/home/paulw/GitLab/robobin/ros2/src/robobin', 'env': {'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'paulw', 'SSH_CLIENT': '192.168.0.20 57325 22', 'XDG_SESSION_TYPE': 'tty', 'SHLVL': '1', 'LD_LIBRARY_PATH': '/opt/ros/jazzy/lib/aarch64-linux-gnu:/opt/ros/jazzy/lib', 'HOME': '/home/paulw', 'OLDPWD': '/home/paulw/GitLab/robobin/ros2/src', 'SSH_TTY': '/dev/pts/0', 'ROS_PYTHON_VERSION': '3', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus', 'COLCON_PREFIX_PATH': '/home/paulw/GitLab/robobin/ros2/install', 'ROS_DISTRO': 'jazzy', 'LOGNAME': 'paulw', '_': '/usr/bin/colcon', 'ROS_VERSION': '2', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', 'XDG_SESSION_ID': '5', 'PATH': '/opt/ros/jazzy/bin:/home/paulw/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'XDG_RUNTIME_DIR': '/run/user/1000', 'LANG': 'en_US.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:', 'AMENT_PREFIX_PATH': '/home/paulw/GitLab/robobin/ros2/install/robobin:/opt/ros/jazzy', 'SHELL': '/bin/bash', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'ROS_AUTOMATIC_DISCOVERY_RANGE': 'SUBNET', 'PWD': '/home/paulw/GitLab/robobin/ros2/build/robobin', 'SSH_CONNECTION': '192.168.0.20 57325 192.168.0.46 22', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PYTHONPATH': '/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:/opt/ros/jazzy/lib/python3.12/site-packages', 'COLCON': '1'}, 'shell': False}
[6.562141] (-) TimerEvent: {}
[6.663107] (-) TimerEvent: {}
[6.764097] (-) TimerEvent: {}
[6.864987] (-) TimerEvent: {}
[6.965907] (-) TimerEvent: {}
[7.066887] (-) TimerEvent: {}
[7.167917] (-) TimerEvent: {}
[7.268971] (-) TimerEvent: {}
[7.369901] (-) TimerEvent: {}
[7.470871] (-) TimerEvent: {}
[7.571835] (-) TimerEvent: {}
[7.672777] (-) TimerEvent: {}
[7.773720] (-) TimerEvent: {}
[7.874721] (-) TimerEvent: {}
[7.975713] (-) TimerEvent: {}
[8.076716] (-) TimerEvent: {}
[8.177694] (-) TimerEvent: {}
[8.278644] (-) TimerEvent: {}
[8.379672] (-) TimerEvent: {}
[8.480652] (-) TimerEvent: {}
[8.581605] (-) TimerEvent: {}
[8.660352] (robobin) StdoutLine: {'line': b'running egg_info\n'}
[8.681817] (-) TimerEvent: {}
[8.782784] (-) TimerEvent: {}
[8.809299] (robobin) StdoutLine: {'line': b'writing ../../build/robobin/robobin.egg-info/PKG-INFO\n'}
[8.811392] (robobin) StdoutLine: {'line': b'writing dependency_links to ../../build/robobin/robobin.egg-info/dependency_links.txt\n'}
[8.813196] (robobin) StdoutLine: {'line': b'writing entry points to ../../build/robobin/robobin.egg-info/entry_points.txt\n'}
[8.814728] (robobin) StdoutLine: {'line': b'writing requirements to ../../build/robobin/robobin.egg-info/requires.txt\n'}
[8.816049] (robobin) StdoutLine: {'line': b'writing top-level names to ../../build/robobin/robobin.egg-info/top_level.txt\n'}
[8.883073] (-) TimerEvent: {}
[8.984038] (-) TimerEvent: {}
[9.084985] (-) TimerEvent: {}
[9.121851] (robobin) StdoutLine: {'line': b"reading manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'\n"}
[9.128398] (robobin) StdoutLine: {'line': b"writing manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'\n"}
[9.129787] (robobin) StdoutLine: {'line': b'running build\n'}
[9.131090] (robobin) StdoutLine: {'line': b'running build_py\n'}
[9.132271] (robobin) StdoutLine: {'line': b'copying robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin\n'}
[9.133626] (robobin) StdoutLine: {'line': b'copying robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin\n'}
[9.135661] (robobin) StdoutLine: {'line': b'copying robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin\n'}
[9.138331] (robobin) StdoutLine: {'line': b'running install\n'}
[9.185168] (-) TimerEvent: {}
[9.196374] (robobin) StdoutLine: {'line': b'running install_lib\n'}
[9.285374] (-) TimerEvent: {}
[9.348838] (robobin) StdoutLine: {'line': b'copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin\n'}
[9.350553] (robobin) StdoutLine: {'line': b'copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin\n'}
[9.352702] (robobin) StdoutLine: {'line': b'copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin\n'}
[9.357573] (robobin) StdoutLine: {'line': b'byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/connection_manager.py to connection_manager.cpython-312.pyc\n'}
[9.364443] (robobin) StdoutLine: {'line': b'byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/message_handler.py to message_handler.cpython-312.pyc\n'}
[9.369647] (robobin) StdoutLine: {'line': b'byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/api_node.py to api_node.cpython-312.pyc\n'}
[9.374906] (robobin) StdoutLine: {'line': b'running install_data\n'}
[9.376736] (robobin) StdoutLine: {'line': b'running install_egg_info\n'}
[9.385604] (-) TimerEvent: {}
[9.486540] (-) TimerEvent: {}
[9.538010] (robobin) StdoutLine: {'line': b"removing '/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info' (and everything under it)\n"}
[9.541309] (robobin) StdoutLine: {'line': b'Copying ../../build/robobin/robobin.egg-info to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info\n'}
[9.551690] (robobin) StdoutLine: {'line': b'running install_scripts\n'}
[9.586759] (-) TimerEvent: {}
[9.687726] (-) TimerEvent: {}
[9.788697] (-) TimerEvent: {}
[9.889695] (-) TimerEvent: {}
[9.990679] (-) TimerEvent: {}
[10.091657] (-) TimerEvent: {}
[10.192578] (-) TimerEvent: {}
[10.293507] (-) TimerEvent: {}
[10.394480] (-) TimerEvent: {}
[10.495444] (-) TimerEvent: {}
[10.596430] (-) TimerEvent: {}
[10.626327] (robobin) StdoutLine: {'line': b'Installing api_node script to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/robobin\n'}
[10.629351] (robobin) StdoutLine: {'line': b"writing list of installed files to '/home/paulw/GitLab/robobin/ros2/build/robobin/install.log'\n"}
[10.696746] (-) TimerEvent: {}
[10.798025] (-) TimerEvent: {}
[10.899173] (-) TimerEvent: {}
[10.905924] (robobin) CommandEnded: {'returncode': 0}
[10.986475] (robobin) JobEnded: {'identifier': 'robobin', 'rc': 0}
[10.992426] (-) EventReactorShutdown: {}
[0.878s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build']
[0.879s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=4, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=None, packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, verb_parser=<colcon_defaults.argument_parser.defaults.DefaultArgumentsDecorator object at 0xffffabccbbf0>, verb_extension=<colcon_core.verb.build.BuildVerb object at 0xffffacf9b320>, main=<bound method BuildVerb.main of <colcon_core.verb.build.BuildVerb object at 0xffffacf9b320>>)
[1.210s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters
[1.210s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters
[1.211s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters
[1.211s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters
[1.211s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover
[1.211s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover
[1.212s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/home/paulw/GitLab/robobin/ros2'
[1.212s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install']
[1.213s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore'
[1.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install'
[1.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg']
[1.214s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg'
[1.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta']
[1.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta'
[1.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros']
[1.215s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros'
[1.418s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python']
[1.419s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake'
[1.419s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python'
[1.419s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py']
[1.420s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py'
[1.421s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install']
[1.421s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore'
[1.422s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored
[1.423s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install']
[1.423s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore'
[1.424s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored
[1.425s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install']
[1.425s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore'
[1.426s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored
[1.426s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ignore', 'ignore_ament_install']
[1.427s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore'
[1.427s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ignore_ament_install'
[1.428s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_pkg']
[1.428s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_pkg'
[1.428s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['colcon_meta']
[1.428s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'colcon_meta'
[1.429s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['ros']
[1.429s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'ros'
[1.430s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['cmake', 'python']
[1.430s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'cmake'
[1.430s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python'
[1.431s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extensions ['python_setup_py']
[1.431s] Level 1:colcon.colcon_core.package_identification:_identify(src) by extension 'python_setup_py'
[1.432s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extensions ['ignore', 'ignore_ament_install']
[1.432s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extension 'ignore'
[1.433s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extension 'ignore_ament_install'
[1.433s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extensions ['colcon_pkg']
[1.433s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extension 'colcon_pkg'
[1.434s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extensions ['colcon_meta']
[1.434s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extension 'colcon_meta'
[1.434s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extensions ['ros']
[1.435s] Level 1:colcon.colcon_core.package_identification:_identify(src/robobin) by extension 'ros'
[1.460s] DEBUG:colcon.colcon_core.package_identification:Package 'src/robobin' with type 'ros.ament_python' and name 'robobin'
[1.461s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults
[1.461s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover
[1.461s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults
[1.462s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover
[1.462s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults
[1.594s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters
[1.594s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover
[1.608s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 1 installed packages in /home/paulw/GitLab/robobin/ros2/install
[1.621s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 192 installed packages in /opt/ros/jazzy
[1.626s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults
[1.906s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'cmake_args' from command line to 'None'
[1.906s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'cmake_target' from command line to 'None'
[1.907s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'cmake_target_skip_unavailable' from command line to 'False'
[1.907s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'cmake_clean_cache' from command line to 'False'
[1.907s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'cmake_clean_first' from command line to 'False'
[1.907s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'cmake_force_configure' from command line to 'False'
[1.907s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'ament_cmake_args' from command line to 'None'
[1.907s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'catkin_cmake_args' from command line to 'None'
[1.908s] Level 5:colcon.colcon_core.verb:set package 'robobin' build argument 'catkin_skip_building_tests' from command line to 'False'
[1.908s] DEBUG:colcon.colcon_core.verb:Building package 'robobin' with the following arguments: {'ament_cmake_args': None, 'build_base': '/home/paulw/GitLab/robobin/ros2/build/robobin', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/home/paulw/GitLab/robobin/ros2/install/robobin', 'merge_install': False, 'path': '/home/paulw/GitLab/robobin/ros2/src/robobin', 'symlink_install': False, 'test_result_base': None}
[1.909s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor
[1.914s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete
[1.916s] INFO:colcon.colcon_ros.task.ament_python.build:Building ROS package in '/home/paulw/GitLab/robobin/ros2/src/robobin' with build type 'ament_python'
[1.917s] Level 1:colcon.colcon_core.shell:create_environment_hook('robobin', 'ament_prefix_path')
[1.933s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems
[1.934s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/hook/ament_prefix_path.ps1'
[1.939s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/hook/ament_prefix_path.dsv'
[1.942s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/hook/ament_prefix_path.sh'
[1.948s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
[1.948s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
[3.709s] INFO:colcon.colcon_core.task.python.build:Building Python package in '/home/paulw/GitLab/robobin/ros2/src/robobin'
[3.710s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell
[3.711s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment
[8.457s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/home/paulw/GitLab/robobin/ros2/src/robobin': PYTHONPATH=/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated setup.py egg_info --egg-base ../../build/robobin build --build-base /home/paulw/GitLab/robobin/ros2/build/robobin/build install --record /home/paulw/GitLab/robobin/ros2/build/robobin/install.log --single-version-externally-managed install_data
[12.821s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/home/paulw/GitLab/robobin/ros2/src/robobin' returned '0': PYTHONPATH=/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated setup.py egg_info --egg-base ../../build/robobin build --build-base /home/paulw/GitLab/robobin/ros2/build/robobin/build install --record /home/paulw/GitLab/robobin/ros2/build/robobin/install.log --single-version-externally-managed install_data
[12.840s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin' for CMake module files
[12.845s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin' for CMake config files
[12.852s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin/lib'
[12.853s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin/bin'
[12.854s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin/lib/pkgconfig/robobin.pc'
[12.855s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages'
[12.856s] Level 1:colcon.colcon_core.shell:create_environment_hook('robobin', 'pythonpath')
[12.858s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/hook/pythonpath.ps1'
[12.861s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/hook/pythonpath.dsv'
[12.864s] INFO:colcon.colcon_core.shell:Creating environment hook '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/hook/pythonpath.sh'
[12.869s] Level 1:colcon.colcon_core.environment:checking '/home/paulw/GitLab/robobin/ros2/install/robobin/bin'
[12.869s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(robobin)
[12.871s] INFO:colcon.colcon_core.shell:Creating package script '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/package.ps1'
[12.877s] INFO:colcon.colcon_core.shell:Creating package descriptor '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/package.dsv'
[12.881s] INFO:colcon.colcon_core.shell:Creating package script '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/package.sh'
[12.887s] INFO:colcon.colcon_core.shell:Creating package script '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/package.bash'
[12.893s] INFO:colcon.colcon_core.shell:Creating package script '/home/paulw/GitLab/robobin/ros2/install/robobin/share/robobin/package.zsh'
[12.897s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/home/paulw/GitLab/robobin/ros2/install/robobin/share/colcon-core/packages/robobin)
[12.900s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop
[12.903s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed
[12.903s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0'
[12.904s] DEBUG:colcon.colcon_core.event_reactor:joining thread
[12.942s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send'
[12.943s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems
[12.943s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems
[12.943s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2'
[12.949s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files
[12.950s] DEBUG:colcon.colcon_core.event_reactor:joined thread
[12.951s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/paulw/GitLab/robobin/ros2/install/local_setup.ps1'
[12.958s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/paulw/GitLab/robobin/ros2/install/_local_setup_util_ps1.py'
[12.969s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/paulw/GitLab/robobin/ros2/install/setup.ps1'
[12.975s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/paulw/GitLab/robobin/ros2/install/local_setup.sh'
[12.980s] INFO:colcon.colcon_core.shell:Creating prefix util module '/home/paulw/GitLab/robobin/ros2/install/_local_setup_util_sh.py'
[12.985s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/paulw/GitLab/robobin/ros2/install/setup.sh'
[12.991s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/paulw/GitLab/robobin/ros2/install/local_setup.bash'
[12.995s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/paulw/GitLab/robobin/ros2/install/setup.bash'
[13.002s] INFO:colcon.colcon_core.shell:Creating prefix script '/home/paulw/GitLab/robobin/ros2/install/local_setup.zsh'
[13.007s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/home/paulw/GitLab/robobin/ros2/install/setup.zsh'
Invoking command in '/home/paulw/GitLab/robobin/ros2/src/robobin': PYTHONPATH=/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated setup.py egg_info --egg-base ../../build/robobin build --build-base /home/paulw/GitLab/robobin/ros2/build/robobin/build install --record /home/paulw/GitLab/robobin/ros2/build/robobin/install.log --single-version-externally-managed install_data
Invoked command in '/home/paulw/GitLab/robobin/ros2/src/robobin' returned '0': PYTHONPATH=/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated setup.py egg_info --egg-base ../../build/robobin build --build-base /home/paulw/GitLab/robobin/ros2/build/robobin/build install --record /home/paulw/GitLab/robobin/ros2/build/robobin/install.log --single-version-externally-managed install_data
running egg_info
writing ../../build/robobin/robobin.egg-info/PKG-INFO
writing dependency_links to ../../build/robobin/robobin.egg-info/dependency_links.txt
writing entry points to ../../build/robobin/robobin.egg-info/entry_points.txt
writing requirements to ../../build/robobin/robobin.egg-info/requires.txt
writing top-level names to ../../build/robobin/robobin.egg-info/top_level.txt
reading manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'
writing manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'
running build
running build_py
copying robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
copying robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
copying robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
running install
running install_lib
copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/connection_manager.py to connection_manager.cpython-312.pyc
byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/message_handler.py to message_handler.cpython-312.pyc
byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/api_node.py to api_node.cpython-312.pyc
running install_data
running install_egg_info
removing '/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info' (and everything under it)
Copying ../../build/robobin/robobin.egg-info to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info
running install_scripts
Installing api_node script to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/robobin
writing list of installed files to '/home/paulw/GitLab/robobin/ros2/build/robobin/install.log'
running egg_info
writing ../../build/robobin/robobin.egg-info/PKG-INFO
writing dependency_links to ../../build/robobin/robobin.egg-info/dependency_links.txt
writing entry points to ../../build/robobin/robobin.egg-info/entry_points.txt
writing requirements to ../../build/robobin/robobin.egg-info/requires.txt
writing top-level names to ../../build/robobin/robobin.egg-info/top_level.txt
reading manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'
writing manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'
running build
running build_py
copying robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
copying robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
copying robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
running install
running install_lib
copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/connection_manager.py to connection_manager.cpython-312.pyc
byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/message_handler.py to message_handler.cpython-312.pyc
byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/api_node.py to api_node.cpython-312.pyc
running install_data
running install_egg_info
removing '/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info' (and everything under it)
Copying ../../build/robobin/robobin.egg-info to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info
running install_scripts
Installing api_node script to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/robobin
writing list of installed files to '/home/paulw/GitLab/robobin/ros2/build/robobin/install.log'
[6.539s] Invoking command in '/home/paulw/GitLab/robobin/ros2/src/robobin': PYTHONPATH=/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated setup.py egg_info --egg-base ../../build/robobin build --build-base /home/paulw/GitLab/robobin/ros2/build/robobin/build install --record /home/paulw/GitLab/robobin/ros2/build/robobin/install.log --single-version-externally-managed install_data
[8.657s] running egg_info
[8.806s] writing ../../build/robobin/robobin.egg-info/PKG-INFO
[8.808s] writing dependency_links to ../../build/robobin/robobin.egg-info/dependency_links.txt
[8.810s] writing entry points to ../../build/robobin/robobin.egg-info/entry_points.txt
[8.811s] writing requirements to ../../build/robobin/robobin.egg-info/requires.txt
[8.813s] writing top-level names to ../../build/robobin/robobin.egg-info/top_level.txt
[9.118s] reading manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'
[9.125s] writing manifest file '../../build/robobin/robobin.egg-info/SOURCES.txt'
[9.127s] running build
[9.128s] running build_py
[9.129s] copying robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
[9.130s] copying robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
[9.132s] copying robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin
[9.139s] running install
[9.193s] running install_lib
[9.346s] copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/connection_manager.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
[9.347s] copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/message_handler.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
[9.349s] copying /home/paulw/GitLab/robobin/ros2/build/robobin/build/lib/robobin/api_node.py -> /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin
[9.354s] byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/connection_manager.py to connection_manager.cpython-312.pyc
[9.361s] byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/message_handler.py to message_handler.cpython-312.pyc
[9.366s] byte-compiling /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin/api_node.py to api_node.cpython-312.pyc
[9.372s] running install_data
[9.373s] running install_egg_info
[9.535s] removing '/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info' (and everything under it)
[9.538s] Copying ../../build/robobin/robobin.egg-info to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages/robobin-0.0.0-py3.12.egg-info
[9.548s] running install_scripts
[10.623s] Installing api_node script to /home/paulw/GitLab/robobin/ros2/install/robobin/lib/robobin
[10.626s] writing list of installed files to '/home/paulw/GitLab/robobin/ros2/build/robobin/install.log'
[10.903s] Invoked command in '/home/paulw/GitLab/robobin/ros2/src/robobin' returned '0': PYTHONPATH=/home/paulw/GitLab/robobin/ros2/build/robobin/prefix_override:/usr/lib/python3/dist-packages/colcon_core/task/python/colcon_distutils_commands:/home/paulw/GitLab/robobin/ros2/install/robobin/lib/python3.12/site-packages:${PYTHONPATH} /usr/bin/python3 -W ignore:setup.py install is deprecated setup.py egg_info --egg-base ../../build/robobin build --build-base /home/paulw/GitLab/robobin/ros2/build/robobin/build install --record /home/paulw/GitLab/robobin/ros2/build/robobin/install.log --single-version-externally-managed install_data
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment