This commit is contained in:
Martin Dahl 2021-07-29 11:06:11 +02:00
parent b53977f3f6
commit 41e5d27ac9
2 changed files with 20 additions and 17 deletions

View File

@ -19,13 +19,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut i = 0;
loop {
node.spin_once(std::time::Duration::from_millis(100));
if i % 20 == 0 { // every 2 seconds print all parameters
if i % 20 == 0 {
// every 2 seconds print all parameters
println!("node parameters");
node.params.lock().unwrap().iter().for_each(|(k, v)| {
println!("{} - {:?}", k, v);
});
}
i+=1;
i += 1;
if i > 1000 {
break;
}

View File

@ -1696,7 +1696,7 @@ impl ParameterValue {
_ => {
println!("warning: malformed parametervalue message");
ParameterValue::NotSet
},
}
}
}
}
@ -1867,20 +1867,22 @@ impl Node {
fn setup_parameter_services(&mut self) -> Result<()> {
let node_name = self.name()?;
let params_cb = self.params.clone();
self.create_service::<rcl_interfaces::srv::SetParameters::Service>(&format!("{}/set_parameters", node_name),
Box::new(move |req: rcl_interfaces::srv::SetParameters::Request| {
let mut result = rcl_interfaces::srv::SetParameters::Response::default();
for p in req.parameters {
let val = ParameterValue::from_parameter_value_msg(p.value);
params_cb.lock().unwrap().insert(p.name, val);
let r = rcl_interfaces::msg::SetParametersResult {
successful: true,
reason: "".into(),
};
result.results.push(r);
}
result
}))?;
self.create_service::<rcl_interfaces::srv::SetParameters::Service>(
&format!("{}/set_parameters", node_name),
Box::new(move |req: rcl_interfaces::srv::SetParameters::Request| {
let mut result = rcl_interfaces::srv::SetParameters::Response::default();
for p in req.parameters {
let val = ParameterValue::from_parameter_value_msg(p.value);
params_cb.lock().unwrap().insert(p.name, val);
let r = rcl_interfaces::msg::SetParametersResult {
successful: true,
reason: "".into(),
};
result.results.push(r);
}
result
}),
)?;
Ok(())
}