1use ratpub::Node;
2use ros2_interfaces_jazzy_rkyv::std_msgs::msg;
3
4#[tokio::main]
5async fn main() -> anyhow::Result<()> {
6 env_logger::init();
7
8 let node = Node::create("node2".to_owned()).await?;
9 let mut subber = node
10 .create_subscriber::<msg::String>("/some_topic".to_owned(), 10)
11 .await?;
12 let pubber = node
13 .create_publisher::<msg::String>("/another_topic".to_owned())
14 .await?;
15 let pubber2 = node
16 .create_publisher::<msg::String>("/boring_topic".to_owned())
17 .await?;
18
19 let msg_out = msg::String {
20 data: "sup".to_owned(),
21 };
22
23 let boring_msg = msg::String {
24 data: "🙄".to_owned(),
25 };
26
27 let mut pubbing = tokio::time::interval(std::time::Duration::from_millis(4320));
28
29 tokio::spawn(async move {
30 loop {
31 pubbing.tick().await;
32 pubber2.publish(&boring_msg).await.unwrap();
33 }
34 });
35
36 while let Some(msg) = subber.next().await {
37 println!("Got: {}", &msg.data);
38 pubber.publish(&msg_out).await.unwrap();
39 }
40
41 Ok(())
42}