Browse Source

Adjust generated code and examples for latest `ros2-client` version

tags/v0.3.4-rc1
Philipp Oppermann 1 year ago
parent
commit
d4a406e93e
3 changed files with 12 additions and 6 deletions
  1. +5
    -3
      examples/rust-ros2-dataflow/node/src/main.rs
  2. +3
    -2
      libraries/extensions/ros2-bridge/msg-gen/src/lib.rs
  3. +4
    -1
      libraries/extensions/ros2-bridge/python/src/lib.rs

+ 5
- 3
examples/rust-ros2-dataflow/node/src/main.rs View File

@@ -25,7 +25,9 @@ fn main() -> eyre::Result<()> {

// spawn a background spinner task that is handles service discovery (and other things)
let pool = futures::executor::ThreadPool::new()?;
let spinner = ros_node.spinner();
let spinner = ros_node
.spinner()
.map_err(|e| eyre::eyre!("failed to create spinner: {e:?}"))?;
pool.spawn(async {
if let Err(err) = spinner.spin().await {
eprintln!("ros2 spinner failed: {err:?}");
@@ -150,7 +152,7 @@ async fn add_two_ints_request(

let response = add_client.async_receive_response(request_id);
futures::pin_mut!(response);
let timeout = futures_timer::Delay::new(Duration::from_secs(5));
let timeout = futures_timer::Delay::new(Duration::from_secs(15));
match futures::future::select(response, timeout).await {
futures::future::Either::Left((Ok(response), _)) => {
println!("received response: {response:?}");
@@ -172,7 +174,7 @@ fn init_ros_node() -> eyre::Result<ros2_client::Node> {
.map_err(|e| eyre!("failed to create ROS2 node name: {e}"))?,
NodeOptions::new().enable_rosout(true),
)
.context("failed to create ros2 node")
.map_err(|e| eyre::eyre!("failed to create ros2 node: {e:?}"))
}

fn create_vel_publisher(


+ 3
- 2
libraries/extensions/ros2-bridge/msg-gen/src/lib.rs View File

@@ -126,9 +126,10 @@ where

let name = ros2_client::NodeName::new(name_space, base_name).map_err(|e| eyre::eyre!(e))?;
let options = ros2_client::NodeOptions::new().enable_rosout(true);
let mut node = self.context.new_node(name, options)?;
let mut node = self.context.new_node(name, options)
.map_err(|e| eyre::eyre!("failed to create ROS2 node: {e:?}"))?;

let spinner = node.spinner();
let spinner = node.spinner().context("failed to create spinner")?;
self.executor.spawn(async {
if let Err(err) = spinner.spin().await {
eprintln!("ros2 spinner failed: {err:?}");


+ 4
- 1
libraries/extensions/ros2-bridge/python/src/lib.rs View File

@@ -81,7 +81,10 @@ impl Ros2Context {
let name = ros2_client::NodeName::new(namespace, name)
.map_err(|err| eyre!("invalid node name: {err}"))?;
Ok(Ros2Node {
node: self.context.new_node(name, options.into())?,
node: self
.context
.new_node(name, options.into())
.map_err(|e| eyre::eyre!("failed to create ROS2 node: {e:?}"))?,
messages: self.messages.clone(),
})
}


Loading…
Cancel
Save