A bridge between TCP socket and DDS of ROS 2
Project description
ros2TCP
Creating a bridge between ROS 2 and TCP Socket
USAGE
Given example for using the library is given below.
Creating TCP Socket
# Import TCP Socket
from ros2tcp.TCPsocket import TCPSocketServer
# Create socket instance.
server = TCPSocketServer()
# Set 'HOST' name and 'PORT'
server.HOST = 'localhost'
server.PORT = 2040
Creating ROS service client
# Import required service type
from ros2tcp.plugins import register_callback, register_service, register_plugin
from std_srvs.srv import SetBool
# Create service request
request = SetBool.Request()
request.data = True
# Register service client
srv_1 = register_service(
n_name='test_node_1',
s_type=SetBool,
s_name='test_service',
req=request
)
srv_2 = register_service(
n_name='test_node_2',
s_type=SetBool,
s_name='test_service',
req=request
)
# Register callback when response received from the server
@register_callback
def my_callback_1(data):
# 'data' argument is the response received from the ros service.
# The data returned here will be send back to the socket client who requested this service.
return data.message
@register_callback
def my_callback_2(_):
# The data returned here will be send back to the socket client who requested this service.
return 'done'
# Now map these service client to the plc request.
server.operations = register_plugin(
srv=srv_1,
cb=my_callback_1,
key=1 # Whenever socket client sends '1', the 'srv_1' get called.
)
server.operations = register_plugin(
srv=srv_2,
cb=my_callback_1,
key=1 # Whenever socket client sends '3', the 'srv_2' get called.
)
# NOTE: Currently key should be an integer.
Running the Socket
# import server runner
from ros2tcp.plugins import run_server
# Pass the created socket
run_server(socket=server)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ros2tcp-0.1.2.tar.gz
(20.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
ros2tcp-0.1.2-py3-none-any.whl
(20.4 kB
view details)
File details
Details for the file ros2tcp-0.1.2.tar.gz.
File metadata
- Download URL: ros2tcp-0.1.2.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ccade961651634cc7dd48fc51c992670f6481acead436eb55fcf68146a6407f
|
|
| MD5 |
65e9403f9168fb3200259239999acfb2
|
|
| BLAKE2b-256 |
25f376a28daf47ae20659ce0743ff87a76d3caade253e4cfdddc1f45fa163161
|
File details
Details for the file ros2tcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ros2tcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
223278cda226e0ba5d90640dae6697ffa87f29716a862c383e727548859454d4
|
|
| MD5 |
be9b87d61063f273e3ae207f9d215c25
|
|
| BLAKE2b-256 |
a737f2e7d5bad3e9009cb9e727fbd41423f0af282a466e76d2dc8a1d09055840
|