Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Bridge plugin sources #1

Merged
merged 21 commits into from
Apr 24, 2023
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4,026 changes: 4,026 additions & 0 deletions Cargo.lock

Large diffs are not rendered by default.

56 changes: 56 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
[workspace]
members = [
"zplugin-ros1",
]

[workspace.package]
version = "0.7.0-rc"
authors = [
"Dmitrii Bannov <dmitrii.bannov@zettascale.tech>",
"Luca Cominardi <luca@zettascale.tech>"
]
edition = "2021"
repository = "https://github.com/eclipse-zenoh/zenoh-plugin-ros1"
homepage = "http://zenoh.io"
license = " EPL-2.0 OR Apache-2.0"

[workspace.dependencies]
env_logger = "0.9.1"
flume = "0.10.14"
futures = "0.3.24"
git-version = "0.3.5"
lazy_static = "1.4.0"
log = "0.4.17"
serde = "1.0.147"
serde_json = "1.0.85"
async-global-executor = "2.3.1"
rand = "0.8.5"
strum = "0.24"
strum_macros = "0.24"
duration-string = "0.3.0"
zenoh = { git = "https://github.com/eclipse-zenoh/zenoh.git", features = ["unstable"] }
zenoh-ext = { git = "https://github.com/eclipse-zenoh/zenoh.git", features = ["unstable"] }
zenoh-core = { git = "https://github.com/eclipse-zenoh/zenoh.git" }
zenoh-plugin-trait = { git = "https://github.com/eclipse-zenoh/zenoh.git", default-features = false }
rosrust = { git = "https://github.com/ZettaScaleLabs/rosrust.git", branch = "feature/fix_bugs" }
rustc_version = "0.4"

[profile.release]
debug = false
lto = "fat"
codegen-units = 1
opt-level = 3
panic = "abort"
92 changes: 92 additions & 0 deletions DEFAULT_CONFIG.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
////
//// This file presents the default configuration used by `zplugin-ros1` plugin.
//// The "ros1" JSON5 object below can be used as such in the "plugins" part of a config file for the zenoh router (zenohd).
////
{
plugins: {
////
//// ROS1 bridge related configuration
//// All settings are optional and are unset by default - uncomment the ones you want to set
////
ros1: {
////
//// ROS_MASTER_URI: A URI of the ROS1 Master to connect to, the defailt is http://localhost:11311/
////
// ROS_MASTER_URI: "http://localhost:11311/",

////
//// ROS_HOSTNAME: A hostname to send to ROS1 Master, the default is system's hostname
////
// ROS_HOSTNAME: "hostname",

////
//// ROS_NAME: A bridge node's name for ROS1, the default is "ros1_to_zenoh_bridge"
////
// ROS_NAME: "ros1_to_zenoh_bridge",

////
//// ROS_BRIDGING_MODE: When to bridge topics:
//// "Automatic"(default) - bridge topics once they are declared locally
//// "Lazy" - bridge topics once they are declared both locally and required remotely through discovery
//// Warn: this setting is ignored for local ROS1 clients, as they require a tricky discovery mechanism
////
// ROS_BRIDGING_MODE: "Automatic",

////
//// ROS_MASTER_POLLING_INTERVAL: An interval how to poll the ROS1 master for status
//// Bridge polls ROS1 master to get information on local topics, as this is the only way to keep
//// this info updated. This is the interval of this polling. The default is "100ms"
////
//// Takes a string such as 100ms, 2s, 5m
//// The string format is [0-9]+(ns|us|ms|[smhdwy])
////
// ROS_MASTER_POLLING_INTERVAL: "100ms",
},

////
//// REST API configuration (active only if this part is defined)
////
// rest: {
// ////
// //// The HTTP port number (for all network interfaces).
// //// You can bind on a specific interface setting a "<local_ip>:<port>" string.
// ////
// http_port: 8000,
// },
},

////
//// zenoh related configuration (see zenoh documentation for more details)
////

////
//// id: The identifier (as hex-string) that zenoh-bridge-ros1 must use. If not set, a random UUIDv4 will be used.
//// WARNING: this id must be unique in your zenoh network.
// id: "A00001",

////
//// mode: The bridge's mode (peer or client)
////
//mode: "client",

////
//// Which endpoints to connect to. E.g. tcp/localhost:7447.
//// By configuring the endpoints, it is possible to tell zenoh which router/peer to connect to at startup.
////
connect: {
endpoints: [
// "<proto>/<ip>:<port>"
]
},

////
//// Which endpoints to listen on. E.g. tcp/localhost:7447.
//// By configuring the endpoints, it is possible to tell zenoh which are the endpoints that other routers,
//// peers, or client can use to establish a zenoh session.
////
listen: {
endpoints: [
// "<proto>/<ip>:<port>"
]
},
}
Loading