3939// ----------------------------------------------------------------------
4040
4141#include < ur_controllers/ur_configuration_controller.hpp>
42+ #include < realtime_tools/realtime_box.h>
4243namespace ur_controllers
4344{
4445
4546controller_interface::CallbackReturn URConfigurationController::on_init ()
4647{
47- param_listener_ = std::make_shared<ur_configuration_controller::ParamListener>(get_node ());
48- params_ = param_listener_->get_params ();
4948 return controller_interface::CallbackReturn::SUCCESS;
5049}
5150
5251controller_interface::CallbackReturn
5352URConfigurationController::on_configure (const rclcpp_lifecycle::State& /* previous_state */ )
5453{
54+ param_listener_ = std::make_shared<ur_configuration_controller::ParamListener>(get_node ());
55+ params_ = param_listener_->get_params ();
56+
57+ get_robot_software_version_srv_ = get_node ()->create_service <ur_msgs::srv::GetRobotSoftwareVersion>(
58+ " ~/get_robot_software_version" , std::bind (&URConfigurationController::getRobotSoftwareVersion, this ,
59+ std::placeholders::_1, std::placeholders::_2));
60+
5561 return controller_interface::CallbackReturn::SUCCESS;
5662}
5763
@@ -61,8 +67,6 @@ controller_interface::InterfaceConfiguration URConfigurationController::command_
6167 controller_interface::InterfaceConfiguration config;
6268 config.type = controller_interface::interface_configuration_type::INDIVIDUAL;
6369
64- const std::string tf_prefix = params_.tf_prefix ;
65-
6670 return config;
6771}
6872
@@ -90,28 +94,32 @@ controller_interface::return_type URConfigurationController::update(const rclcpp
9094controller_interface::CallbackReturn
9195URConfigurationController::on_activate (const rclcpp_lifecycle::State& /* previous_state */ )
9296{
93- get_robot_software_version_srv_ = get_node ()->create_service <ur_msgs::srv::GetRobotSoftwareVersion>(
94- " ~/get_robot_software_version" , std::bind (&URConfigurationController::getRobotSoftwareVersion, this ,
95- std::placeholders::_1, std::placeholders::_2));
97+ VersionInformation temp;
98+ temp.major = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_MAJOR].get_value ());
99+ temp.minor = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_MINOR].get_value ());
100+ temp.bugfix = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_BUGFIX].get_value ());
101+ temp.build = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_BUILD].get_value ());
96102
103+ robot_software_version_.set (std::make_shared<VersionInformation>(temp));
97104 return controller_interface::CallbackReturn::SUCCESS;
98105}
99106
100107controller_interface::CallbackReturn
101108URConfigurationController::on_deactivate (const rclcpp_lifecycle::State& /* previous_state */ )
102109{
103- get_robot_software_version_srv_.reset ();
104110 return controller_interface::CallbackReturn::SUCCESS;
105111}
106112
107113bool URConfigurationController::getRobotSoftwareVersion (
108114 ur_msgs::srv::GetRobotSoftwareVersion::Request::SharedPtr /* req*/ ,
109115 ur_msgs::srv::GetRobotSoftwareVersion::Response::SharedPtr resp)
110116{
111- resp->major = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_MAJOR].get_value ());
112- resp->minor = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_MINOR].get_value ());
113- resp->bugfix = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_BUGFIX].get_value ());
114- resp->build = static_cast <uint32_t >(state_interfaces_[StateInterfaces::ROBOT_VERSION_BUILD].get_value ());
117+ std::shared_ptr<VersionInformation> temp;
118+ robot_software_version_.get (temp);
119+ resp->major = temp->major ;
120+ resp->minor = temp->minor ;
121+ resp->bugfix = temp->bugfix ;
122+ resp->build = temp->build ;
115123
116124 return true ;
117125}
0 commit comments