41 const uint16_t minor_version,
67 ROS_ERROR(
"ATTENTION: YOU HAVE AN INCORRECT PARAMETER FILE!!!");
77 std::vector<float>& my_vector)
81 for (
size_t i = 0; i < (unsigned)my_array.
size(); ++i)
88 my_vector.push_back(
static_cast<double>(my_array[i]));
92 int value = my_array[i];
93 my_vector.push_back(
static_cast<double>(value));
105 const uint16_t minor_version_target,
108 ROS_INFO(
"Trying to search controller parameters for version: %d.%d",
109 major_version_target,
110 minor_version_target);
115 if (0 == major_version_target || 5 < major_version_target)
118 "Could not establish connection to Schunk SVH. Please check connections and power source!");
122 if (0 < parameters.
size())
124 ROS_DEBUG(
"There exist %d different parameter versions", parameters.
size());
125 for (
size_t i = 0; i < (unsigned)parameters.
size(); ++i)
130 uint16_t major_version_read = int(parameter_set_yaml[
"major_version"]);
131 uint16_t minor_version_read = int(parameter_set_yaml[
"minor_version"]);
134 ROS_DEBUG(
"Skipping version %d.%d as better matching version was already found",
140 bool is_correct_version =
141 major_version_read == major_version_target && minor_version_read == minor_version_target;
142 bool is_same_major_version =
143 major_version_read == major_version_target && minor_version_read <= minor_version_target;
144 bool is_default_state = major_version_read == 0 && minor_version_read == 0;
146 if (is_correct_version || is_same_major_version || is_default_state)
148 ROS_DEBUG(
"major version: %d minor version: %d", major_version_read, minor_version_read);
150 for (std::map<driver_svh::SVHChannel, std::string>::iterator it =
m_name_to_enum.begin();
156 if (parameter_set_yaml.
hasMember(it->second))
158 ROS_DEBUG(
"Parameter Name: %s", it->second.c_str());
171 std::stringstream error_stream;
172 error_stream <<
"Could not find parameters for channel " << it->second;
178 if (is_default_state)
180 is_default_state =
false;
182 else if (is_correct_version)
184 ROS_INFO(
"Did find correct version");
189 ROS_DEBUG(
"Did find same major version");
194 ROS_WARN_STREAM(
"DID NOT FIND EXACT VERSION: " << major_version_target <<
"."
195 << minor_version_target