Added from_parameter
This commit is contained in:
parent
346f17aff0
commit
9a499cf726
2 changed files with 21 additions and 2 deletions
|
@ -24,6 +24,7 @@
|
|||
#include <rclcpp/client.hpp>
|
||||
#include <rclcpp/context.hpp>
|
||||
#include <rclcpp/macros.hpp>
|
||||
#include <rclcpp/parameter.hpp>
|
||||
#include <rclcpp/publisher.hpp>
|
||||
#include <rclcpp/service.hpp>
|
||||
#include <rclcpp/subscription.hpp>
|
||||
|
@ -154,7 +155,7 @@ public:
|
|||
{
|
||||
std::vector<rcl_interfaces::SetParametersResult> results;
|
||||
for (auto p : parameters) {
|
||||
// parameters_[p.name] = ParameterVariant::from_parameter_value(p.value);
|
||||
parameters_[p.name] = rclcpp::parameter::ParameterVariant::from_parameter(p);
|
||||
rcl_interfaces::SetParametersResult result;
|
||||
result.successful = true;
|
||||
// TODO: handle parameter constraints
|
||||
|
@ -185,7 +186,7 @@ private:
|
|||
|
||||
std::mutex mutex_;
|
||||
|
||||
// std::map<std::string, ParameterVariant> parameters_;
|
||||
std::map<std::string, rclcpp::parameter::ParameterVariant> parameters_;
|
||||
|
||||
template<
|
||||
typename ServiceT,
|
||||
|
|
|
@ -170,6 +170,24 @@ public:
|
|||
return get_value<ParameterType::PARAMETER_BYTES>();
|
||||
}
|
||||
|
||||
static ParameterVariant from_parameter(const rcl_interfaces::Parameter & parameter) {
|
||||
switch(parameter.value.parameter_type) {
|
||||
case PARAMETER_BOOL:
|
||||
return ParameterVariant(parameter.name, parameter.value.bool_value);
|
||||
case PARAMETER_INTEGER:
|
||||
return ParameterVariant(parameter.name, parameter.value.integer_value);
|
||||
case PARAMETER_DOUBLE:
|
||||
return ParameterVariant(parameter.name, parameter.value.double_value);
|
||||
case PARAMETER_STRING:
|
||||
return ParameterVariant(parameter.name, parameter.value.string_value);
|
||||
case PARAMETER_BYTES:
|
||||
return ParameterVariant(parameter.name, parameter.value.bytes_value);
|
||||
case PARAMETER_NOT_SET:
|
||||
default:
|
||||
// TODO: use custom exception
|
||||
throw std::runtime_error("Invalid type from ParameterValue");
|
||||
}
|
||||
}
|
||||
private:
|
||||
std::string name_;
|
||||
rcl_interfaces::ParameterValue value_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue