Skip to main content

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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ros2tcp-0.1.2-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

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

Hashes for ros2tcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3ccade961651634cc7dd48fc51c992670f6481acead436eb55fcf68146a6407f
MD5 65e9403f9168fb3200259239999acfb2
BLAKE2b-256 25f376a28daf47ae20659ce0743ff87a76d3caade253e4cfdddc1f45fa163161

See more details on using hashes here.

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

Hashes for ros2tcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 223278cda226e0ba5d90640dae6697ffa87f29716a862c383e727548859454d4
MD5 be9b87d61063f273e3ae207f9d215c25
BLAKE2b-256 a737f2e7d5bad3e9009cb9e727fbd41423f0af282a466e76d2dc8a1d09055840

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page