PidConfig.h
Go to the documentation of this file.
1 //#line 2
2 //"/opt/ros/indigo/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
3 // *********************************************************
4 //
5 // File autogenerated for the pid package
6 // by the dynamic_reconfigure package.
7 // Please do not edit.
8 //
9 // ********************************************************/
10 
11 #include <boost/any.hpp>
12 #include <dynamic_reconfigure/config_tools.h>
13 #include <dynamic_reconfigure/config_init_mutex.h>
14 
15 #ifndef __pid__PIDCONFIG_H__
16 #define __pid__PIDCONFIG_H__
17 
18 namespace pid
19 {
20 class PidConfigStatics;
21 
22 class PidConfig
23 {
24 public:
25  class AbstractParamDescription : public dynamic_reconfigure::ParamDescription
26  {
27  public:
28  AbstractParamDescription(std::string n, std::string t, uint32_t l, std::string d, std::string e)
29  {
30  name = n;
31  type = t;
32  level = l;
33  description = d;
34  edit_method = e;
35  }
36 
37  virtual void clamp(PidConfig& config, const PidConfig& max, const PidConfig& min) const = 0;
38  virtual void calcLevel(uint32_t& level, const PidConfig& config1, const PidConfig& config2) const = 0;
39  virtual void fromServer(const ros::NodeHandle& nh, PidConfig& config) const = 0;
40  virtual void toServer(const ros::NodeHandle& nh, const PidConfig& config) const = 0;
41  virtual bool fromMessage(const dynamic_reconfigure::Config& msg, PidConfig& config) const = 0;
42  virtual void toMessage(dynamic_reconfigure::Config& msg, const PidConfig& config) const = 0;
43  virtual void getValue(const PidConfig& config, boost::any& val) const = 0;
44  };
45 
48 
49  template <class T>
51  {
52  public:
53  ParamDescription(std::string name, std::string type, uint32_t level, std::string description,
54  std::string edit_method, T PidConfig::*f)
55  : AbstractParamDescription(name, type, level, description, edit_method), field(f)
56  {
57  }
58 
59  T(PidConfig::*field);
60 
61  virtual void clamp(PidConfig& config, const PidConfig& max, const PidConfig& min) const
62  {
63  if (config.*field > max.*field)
64  config.*field = max.*field;
65 
66  if (config.*field < min.*field)
67  config.*field = min.*field;
68  }
69 
70  virtual void calcLevel(uint32_t& comb_level, const PidConfig& config1, const PidConfig& config2) const
71  {
72  if (config1.*field != config2.*field)
73  comb_level |= level;
74  }
75 
76  virtual void fromServer(const ros::NodeHandle& nh, PidConfig& config) const
77  {
78  nh.getParam(name, config.*field);
79  }
80 
81  virtual void toServer(const ros::NodeHandle& nh, const PidConfig& config) const
82  {
83  nh.setParam(name, config.*field);
84  }
85 
86  virtual bool fromMessage(const dynamic_reconfigure::Config& msg, PidConfig& config) const
87  {
88  return dynamic_reconfigure::ConfigTools::getParameter(msg, name, config.*field);
89  }
90 
91  virtual void toMessage(dynamic_reconfigure::Config& msg, const PidConfig& config) const
92  {
93  dynamic_reconfigure::ConfigTools::appendParameter(msg, name, config.*field);
94  }
95 
96  virtual void getValue(const PidConfig& config, boost::any& val) const
97  {
98  val = config.*field;
99  }
100  };
101 
102  class AbstractGroupDescription : public dynamic_reconfigure::Group
103  {
104  public:
105  AbstractGroupDescription(std::string n, std::string t, int p, int i, bool s)
106  {
107  name = n;
108  type = t;
109  parent = p;
110  state = s;
111  id = i;
112  }
113 
114  std::vector<AbstractParamDescriptionConstPtr> abstract_parameters;
115  bool state;
116 
117  virtual void toMessage(dynamic_reconfigure::Config& msg, const boost::any& config) const = 0;
118  virtual bool fromMessage(const dynamic_reconfigure::Config& msg, boost::any& config) const = 0;
119  virtual void updateParams(boost::any& cfg, PidConfig& top) const = 0;
120  virtual void setInitialState(boost::any& cfg) const = 0;
121 
123  {
124  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = abstract_parameters.begin();
125  i != abstract_parameters.end(); ++i)
126  {
127  parameters.push_back(dynamic_reconfigure::ParamDescription(**i));
128  }
129  }
130  };
131 
134 
135  template <class T, class PT>
137  {
138  public:
139  GroupDescription(std::string name, std::string type, int parent, int id, bool s, T PT::*f)
140  : AbstractGroupDescription(name, type, parent, id, s), field(f)
141  {
142  }
143 
145  : AbstractGroupDescription(g.name, g.type, g.parent, g.id, g.state), field(g.field), groups(g.groups)
146  {
147  parameters = g.parameters;
148  abstract_parameters = g.abstract_parameters;
149  }
150 
151  virtual bool fromMessage(const dynamic_reconfigure::Config& msg, boost::any& cfg) const
152  {
153  PT* config = boost::any_cast<PT*>(cfg);
154  if (!dynamic_reconfigure::ConfigTools::getGroupState(msg, name, (*config).*field))
155  return false;
156 
157  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
158  {
159  boost::any n = &((*config).*field);
160  if (!(*i)->fromMessage(msg, n))
161  return false;
162  }
163 
164  return true;
165  }
166 
167  virtual void setInitialState(boost::any& cfg) const
168  {
169  PT* config = boost::any_cast<PT*>(cfg);
170  T* group = &((*config).*field);
171  group->state = state;
172 
173  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
174  {
175  boost::any n = boost::any(&((*config).*field));
176  (*i)->setInitialState(n);
177  }
178  }
179 
180  virtual void updateParams(boost::any& cfg, PidConfig& top) const
181  {
182  PT* config = boost::any_cast<PT*>(cfg);
183 
184  T* f = &((*config).*field);
185  f->setParams(top, abstract_parameters);
186 
187  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
188  {
189  boost::any n = &((*config).*field);
190  (*i)->updateParams(n, top);
191  }
192  }
193 
194  virtual void toMessage(dynamic_reconfigure::Config& msg, const boost::any& cfg) const
195  {
196  const PT config = boost::any_cast<PT>(cfg);
197  dynamic_reconfigure::ConfigTools::appendGroup<T>(msg, name, id, parent, config.*field);
198 
199  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
200  {
201  (*i)->toMessage(msg, config.*field);
202  }
203  }
204 
205  T(PT::*field);
206  std::vector<PidConfig::AbstractGroupDescriptionConstPtr> groups;
207  };
208 
209  class DEFAULT
210  {
211  public:
213  {
214  state = true;
215  name = "Default";
216  }
217 
218  void setParams(PidConfig& config, const std::vector<AbstractParamDescriptionConstPtr> params)
219  {
220  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator _i = params.begin(); _i != params.end(); ++_i)
221  {
222  boost::any val;
223  (*_i)->getValue(config, val);
224 
225  if ("Kp_scale" == (*_i)->name)
226  {
227  Kp_scale = boost::any_cast<double>(val);
228  }
229  if ("Kp" == (*_i)->name)
230  {
231  Kp = boost::any_cast<double>(val);
232  }
233  if ("Ki_scale" == (*_i)->name)
234  {
235  Ki_scale = boost::any_cast<double>(val);
236  }
237  if ("Ki" == (*_i)->name)
238  {
239  Ki = boost::any_cast<double>(val);
240  }
241  if ("Kd_scale" == (*_i)->name)
242  {
243  Kd_scale = boost::any_cast<double>(val);
244  }
245  if ("Kd" == (*_i)->name)
246  {
247  Kd = boost::any_cast<double>(val);
248  }
249  }
250  }
251 
252  double Kp_scale;
253  double Kp;
254  double Ki_scale;
255  double Ki;
256  double Kd_scale;
257  double Kd;
258 
259  bool state;
260  std::string name;
261 
262  } groups;
263 
264  //#line 262
265  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
266  double Kp_scale;
267  //#line 262
268  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
269  double Kp;
270  //#line 262
271  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
272  double Ki_scale;
273  //#line 262
274  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
275  double Ki;
276  //#line 262
277  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
278  double Kd_scale;
279  //#line 262
280  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
281  double Kd;
282  //#line 218
283  //"/opt/ros/indigo/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
284 
285  bool __fromMessage__(dynamic_reconfigure::Config& msg)
286  {
287  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__ = __getParamDescriptions__();
288  const std::vector<AbstractGroupDescriptionConstPtr>& __group_descriptions__ = __getGroupDescriptions__();
289 
290  int count = 0;
291  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin();
292  i != __param_descriptions__.end(); ++i)
293  if ((*i)->fromMessage(msg, *this))
294  count++;
295 
296  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin();
297  i != __group_descriptions__.end(); i++)
298  {
299  if ((*i)->id == 0)
300  {
301  boost::any n = boost::any(this);
302  (*i)->updateParams(n, *this);
303  (*i)->fromMessage(msg, n);
304  }
305  }
306 
307  if (count != dynamic_reconfigure::ConfigTools::size(msg))
308  {
309  ROS_ERROR("PidConfig::__fromMessage__ called with an unexpected parameter.");
310  ROS_ERROR("Booleans:");
311  for (unsigned int i = 0; i < msg.bools.size(); i++)
312  ROS_ERROR(" %s", msg.bools[i].name.c_str());
313  ROS_ERROR("Integers:");
314  for (unsigned int i = 0; i < msg.ints.size(); i++)
315  ROS_ERROR(" %s", msg.ints[i].name.c_str());
316  ROS_ERROR("Doubles:");
317  for (unsigned int i = 0; i < msg.doubles.size(); i++)
318  ROS_ERROR(" %s", msg.doubles[i].name.c_str());
319  ROS_ERROR("Strings:");
320  for (unsigned int i = 0; i < msg.strs.size(); i++)
321  ROS_ERROR(" %s", msg.strs[i].name.c_str());
322  // @todo Check that there are no duplicates. Make this error more
323  // explicit.
324  return false;
325  }
326  return true;
327  }
328 
329  // This version of __toMessage__ is used during initialization of
330  // statics when __getParamDescriptions__ can't be called yet.
331  void __toMessage__(dynamic_reconfigure::Config& msg,
332  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__,
333  const std::vector<AbstractGroupDescriptionConstPtr>& __group_descriptions__) const
334  {
335  dynamic_reconfigure::ConfigTools::clear(msg);
336  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin();
337  i != __param_descriptions__.end(); ++i)
338  (*i)->toMessage(msg, *this);
339 
340  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin();
341  i != __group_descriptions__.end(); ++i)
342  {
343  if ((*i)->id == 0)
344  {
345  (*i)->toMessage(msg, *this);
346  }
347  }
348  }
349 
350  void __toMessage__(dynamic_reconfigure::Config& msg) const
351  {
352  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__ = __getParamDescriptions__();
353  const std::vector<AbstractGroupDescriptionConstPtr>& __group_descriptions__ = __getGroupDescriptions__();
354  __toMessage__(msg, __param_descriptions__, __group_descriptions__);
355  }
356 
357  void __toServer__(const ros::NodeHandle& nh) const
358  {
359  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__ = __getParamDescriptions__();
360  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin();
361  i != __param_descriptions__.end(); ++i)
362  (*i)->toServer(nh, *this);
363  }
364 
366  {
367  static bool setup = false;
368 
369  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__ = __getParamDescriptions__();
370  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin();
371  i != __param_descriptions__.end(); ++i)
372  (*i)->fromServer(nh, *this);
373 
374  const std::vector<AbstractGroupDescriptionConstPtr>& __group_descriptions__ = __getGroupDescriptions__();
375  for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin();
376  i != __group_descriptions__.end(); i++)
377  {
378  if (!setup && (*i)->id == 0)
379  {
380  setup = true;
381  boost::any n = boost::any(this);
382  (*i)->setInitialState(n);
383  }
384  }
385  }
386 
387  void __clamp__()
388  {
389  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__ = __getParamDescriptions__();
390  const PidConfig& __max__ = __getMax__();
391  const PidConfig& __min__ = __getMin__();
392  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin();
393  i != __param_descriptions__.end(); ++i)
394  (*i)->clamp(*this, __max__, __min__);
395  }
396 
397  uint32_t __level__(const PidConfig& config) const
398  {
399  const std::vector<AbstractParamDescriptionConstPtr>& __param_descriptions__ = __getParamDescriptions__();
400  uint32_t level = 0;
401  for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin();
402  i != __param_descriptions__.end(); ++i)
403  (*i)->calcLevel(level, config, *this);
404  return level;
405  }
406 
407  static const dynamic_reconfigure::ConfigDescription& __getDescriptionMessage__();
408  static const PidConfig& __getDefault__();
409  static const PidConfig& __getMax__();
410  static const PidConfig& __getMin__();
411  static const std::vector<AbstractParamDescriptionConstPtr>& __getParamDescriptions__();
412  static const std::vector<AbstractGroupDescriptionConstPtr>& __getGroupDescriptions__();
413 
414 private:
415  static const PidConfigStatics* __get_statics__();
416 };
417 
418 template <> // Max and min are ignored for strings.
420  const PidConfig& min) const
421 {
422  return;
423 }
424 
426 {
427  friend class PidConfig;
428 
430  {
432  //#line 262
433  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
434  __min__.Kp_scale = 0.1;
435  //#line 262
436  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
437  __max__.Kp_scale = 100.0;
438  //#line 262
439  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
440  __default__.Kp_scale = 10.0;
441  //#line 262
442  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
444  new PidConfig::ParamDescription<double>("Kp_scale", "double", 0, "Kp scale",
445  "{'enum_description': 'Scale factor for K setting', 'enum': "
446  "[{'srcline': 7, 'description': 'Scale by 0.1', 'srcfile': "
447  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
448  "'cconsttype': 'const double', 'value': 0.1, 'ctype': "
449  "'double', 'type': 'double', 'name': 'scale_tenth'}, "
450  "{'srcline': 8, 'description': 'No scaling', 'srcfile': "
451  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
452  "'cconsttype': 'const double', 'value': 1.0, 'ctype': "
453  "'double', 'type': 'double', 'name': 'scale_unity'}, "
454  "{'srcline': 9, 'description': 'Scale by 10', 'srcfile': "
455  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
456  "'cconsttype': 'const double', 'value': 10.0, 'ctype': "
457  "'double', 'type': 'double', 'name': 'scale_ten'}, {'srcline': "
458  "10, 'description': 'Scale by 100', 'srcfile': "
459  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
460  "'cconsttype': 'const double', 'value': 100.0, 'ctype': "
461  "'double', 'type': 'double', 'name': 'scale_hundred'}]}",
463  //#line 262
464  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
465  __param_descriptions__.push_back(PidConfig::AbstractParamDescriptionConstPtr(
466  new PidConfig::ParamDescription<double>("Kp_scale", "double", 0, "Kp scale",
467  "{'enum_description': 'Scale factor for K setting', 'enum': "
468  "[{'srcline': 7, 'description': 'Scale by 0.1', 'srcfile': "
469  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
470  "'cconsttype': 'const double', 'value': 0.1, 'ctype': "
471  "'double', 'type': 'double', 'name': 'scale_tenth'}, "
472  "{'srcline': 8, 'description': 'No scaling', 'srcfile': "
473  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
474  "'cconsttype': 'const double', 'value': 1.0, 'ctype': "
475  "'double', 'type': 'double', 'name': 'scale_unity'}, "
476  "{'srcline': 9, 'description': 'Scale by 10', 'srcfile': "
477  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
478  "'cconsttype': 'const double', 'value': 10.0, 'ctype': "
479  "'double', 'type': 'double', 'name': 'scale_ten'}, {'srcline': "
480  "10, 'description': 'Scale by 100', 'srcfile': "
481  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
482  "'cconsttype': 'const double', 'value': 100.0, 'ctype': "
483  "'double', 'type': 'double', 'name': 'scale_hundred'}]}",
485  //#line 262
486  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
487  __min__.Kp = 0.0;
488  //#line 262
489  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
490  __max__.Kp = 1.0;
491  //#line 262
492  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
493  __default__.Kp = 0.1;
494  //#line 262
495  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
497  new PidConfig::ParamDescription<double>("Kp", "double", 0, "Kp", "", &PidConfig::Kp)));
498  //#line 262
499  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
500  __param_descriptions__.push_back(PidConfig::AbstractParamDescriptionConstPtr(
501  new PidConfig::ParamDescription<double>("Kp", "double", 0, "Kp", "", &PidConfig::Kp)));
502  //#line 262
503  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
504  __min__.Ki_scale = 0.1;
505  //#line 262
506  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
507  __max__.Ki_scale = 100.0;
508  //#line 262
509  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
510  __default__.Ki_scale = 10.0;
511  //#line 262
512  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
514  new PidConfig::ParamDescription<double>("Ki_scale", "double", 0, "Ki scale",
515  "{'enum_description': 'Scale factor for K setting', 'enum': "
516  "[{'srcline': 7, 'description': 'Scale by 0.1', 'srcfile': "
517  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
518  "'cconsttype': 'const double', 'value': 0.1, 'ctype': "
519  "'double', 'type': 'double', 'name': 'scale_tenth'}, "
520  "{'srcline': 8, 'description': 'No scaling', 'srcfile': "
521  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
522  "'cconsttype': 'const double', 'value': 1.0, 'ctype': "
523  "'double', 'type': 'double', 'name': 'scale_unity'}, "
524  "{'srcline': 9, 'description': 'Scale by 10', 'srcfile': "
525  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
526  "'cconsttype': 'const double', 'value': 10.0, 'ctype': "
527  "'double', 'type': 'double', 'name': 'scale_ten'}, {'srcline': "
528  "10, 'description': 'Scale by 100', 'srcfile': "
529  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
530  "'cconsttype': 'const double', 'value': 100.0, 'ctype': "
531  "'double', 'type': 'double', 'name': 'scale_hundred'}]}",
533  //#line 262
534  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
535  __param_descriptions__.push_back(PidConfig::AbstractParamDescriptionConstPtr(
536  new PidConfig::ParamDescription<double>("Ki_scale", "double", 0, "Ki scale",
537  "{'enum_description': 'Scale factor for K setting', 'enum': "
538  "[{'srcline': 7, 'description': 'Scale by 0.1', 'srcfile': "
539  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
540  "'cconsttype': 'const double', 'value': 0.1, 'ctype': "
541  "'double', 'type': 'double', 'name': 'scale_tenth'}, "
542  "{'srcline': 8, 'description': 'No scaling', 'srcfile': "
543  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
544  "'cconsttype': 'const double', 'value': 1.0, 'ctype': "
545  "'double', 'type': 'double', 'name': 'scale_unity'}, "
546  "{'srcline': 9, 'description': 'Scale by 10', 'srcfile': "
547  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
548  "'cconsttype': 'const double', 'value': 10.0, 'ctype': "
549  "'double', 'type': 'double', 'name': 'scale_ten'}, {'srcline': "
550  "10, 'description': 'Scale by 100', 'srcfile': "
551  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
552  "'cconsttype': 'const double', 'value': 100.0, 'ctype': "
553  "'double', 'type': 'double', 'name': 'scale_hundred'}]}",
555  //#line 262
556  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
557  __min__.Ki = 0.0;
558  //#line 262
559  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
560  __max__.Ki = 1.0;
561  //#line 262
562  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
563  __default__.Ki = 0.1;
564  //#line 262
565  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
567  new PidConfig::ParamDescription<double>("Ki", "double", 0, "Ki", "", &PidConfig::Ki)));
568  //#line 262
569  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
570  __param_descriptions__.push_back(PidConfig::AbstractParamDescriptionConstPtr(
571  new PidConfig::ParamDescription<double>("Ki", "double", 0, "Ki", "", &PidConfig::Ki)));
572  //#line 262
573  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
574  __min__.Kd_scale = 0.1;
575  //#line 262
576  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
577  __max__.Kd_scale = 100.0;
578  //#line 262
579  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
580  __default__.Kd_scale = 10.0;
581  //#line 262
582  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
584  new PidConfig::ParamDescription<double>("Kd_scale", "double", 0, "Kd scale",
585  "{'enum_description': 'Scale factor for K setting', 'enum': "
586  "[{'srcline': 7, 'description': 'Scale by 0.1', 'srcfile': "
587  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
588  "'cconsttype': 'const double', 'value': 0.1, 'ctype': "
589  "'double', 'type': 'double', 'name': 'scale_tenth'}, "
590  "{'srcline': 8, 'description': 'No scaling', 'srcfile': "
591  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
592  "'cconsttype': 'const double', 'value': 1.0, 'ctype': "
593  "'double', 'type': 'double', 'name': 'scale_unity'}, "
594  "{'srcline': 9, 'description': 'Scale by 10', 'srcfile': "
595  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
596  "'cconsttype': 'const double', 'value': 10.0, 'ctype': "
597  "'double', 'type': 'double', 'name': 'scale_ten'}, {'srcline': "
598  "10, 'description': 'Scale by 100', 'srcfile': "
599  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
600  "'cconsttype': 'const double', 'value': 100.0, 'ctype': "
601  "'double', 'type': 'double', 'name': 'scale_hundred'}]}",
603  //#line 262
604  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
605  __param_descriptions__.push_back(PidConfig::AbstractParamDescriptionConstPtr(
606  new PidConfig::ParamDescription<double>("Kd_scale", "double", 0, "Kd scale",
607  "{'enum_description': 'Scale factor for K setting', 'enum': "
608  "[{'srcline': 7, 'description': 'Scale by 0.1', 'srcfile': "
609  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
610  "'cconsttype': 'const double', 'value': 0.1, 'ctype': "
611  "'double', 'type': 'double', 'name': 'scale_tenth'}, "
612  "{'srcline': 8, 'description': 'No scaling', 'srcfile': "
613  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
614  "'cconsttype': 'const double', 'value': 1.0, 'ctype': "
615  "'double', 'type': 'double', 'name': 'scale_unity'}, "
616  "{'srcline': 9, 'description': 'Scale by 10', 'srcfile': "
617  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
618  "'cconsttype': 'const double', 'value': 10.0, 'ctype': "
619  "'double', 'type': 'double', 'name': 'scale_ten'}, {'srcline': "
620  "10, 'description': 'Scale by 100', 'srcfile': "
621  "'/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg', "
622  "'cconsttype': 'const double', 'value': 100.0, 'ctype': "
623  "'double', 'type': 'double', 'name': 'scale_hundred'}]}",
625  //#line 262
626  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
627  __min__.Kd = 0.0;
628  //#line 262
629  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
630  __max__.Kd = 1.0;
631  //#line 262
632  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
633  __default__.Kd = 0.1;
634  //#line 262
635  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
637  new PidConfig::ParamDescription<double>("Kd", "double", 0, "Kd", "", &PidConfig::Kd)));
638  //#line 262
639  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
640  __param_descriptions__.push_back(PidConfig::AbstractParamDescriptionConstPtr(
641  new PidConfig::ParamDescription<double>("Kd", "double", 0, "Kd", "", &PidConfig::Kd)));
642  //#line 233
643  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
644  Default.convertParams();
645  //#line 233
646  //"/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
647  __group_descriptions__.push_back(PidConfig::AbstractGroupDescriptionConstPtr(
649  //#line 353
650  //"/opt/ros/indigo/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
651 
652  for (std::vector<PidConfig::AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin();
653  i != __group_descriptions__.end(); ++i)
654  {
655  __description_message__.groups.push_back(**i);
656  }
657  __max__.__toMessage__(__description_message__.max, __param_descriptions__, __group_descriptions__);
658  __min__.__toMessage__(__description_message__.min, __param_descriptions__, __group_descriptions__);
659  __default__.__toMessage__(__description_message__.dflt, __param_descriptions__, __group_descriptions__);
660  }
661  std::vector<PidConfig::AbstractParamDescriptionConstPtr> __param_descriptions__;
662  std::vector<PidConfig::AbstractGroupDescriptionConstPtr> __group_descriptions__;
666  dynamic_reconfigure::ConfigDescription __description_message__;
667 
669  {
670  // Split this off in a separate function because I know that
671  // instance will get initialized the first time get_instance is
672  // called, and I am guaranteeing that get_instance gets called at
673  // most once.
674  static PidConfigStatics instance;
675  return &instance;
676  }
677 };
678 
679 inline const dynamic_reconfigure::ConfigDescription& PidConfig::__getDescriptionMessage__()
680 {
682 }
683 
685 {
686  return __get_statics__()->__default__;
687 }
688 
690 {
691  return __get_statics__()->__max__;
692 }
693 
695 {
696  return __get_statics__()->__min__;
697 }
698 
699 inline const std::vector<PidConfig::AbstractParamDescriptionConstPtr>& PidConfig::__getParamDescriptions__()
700 {
702 }
703 
704 inline const std::vector<PidConfig::AbstractGroupDescriptionConstPtr>& PidConfig::__getGroupDescriptions__()
705 {
707 }
708 
710 {
711  const static PidConfigStatics* statics;
712 
713  if (statics) // Common case
714  return statics;
715 
716  boost::mutex::scoped_lock lock(dynamic_reconfigure::__init_mutex__);
717 
718  if (statics) // In case we lost a race.
719  return statics;
720 
721  statics = PidConfigStatics::get_instance();
722 
723  return statics;
724 }
725 
726 //#line 7 "/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg"
727 const double Pid_scale_tenth = 0.1;
728 //#line 8 "/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg"
729 const double Pid_scale_unity = 1.0;
730 //#line 9 "/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg"
731 const double Pid_scale_ten = 10.0;
732 //#line 10 "/home/andy/Desktop/catkin_ws/src/pid/cfg/Pid.cfg"
733 const double Pid_scale_hundred = 100.0;
734 }
735 
736 #endif // __PIDRECONFIGURATOR_H__
virtual void calcLevel(uint32_t &level, const PidConfig &config1, const PidConfig &config2) const =0
virtual void setInitialState(boost::any &cfg) const
Definition: PidConfig.h:167
void __toMessage__(dynamic_reconfigure::Config &msg) const
Definition: PidConfig.h:350
static const PidConfig & __getDefault__()
Definition: PidConfig.h:684
boost::shared_ptr< AbstractGroupDescription > AbstractGroupDescriptionPtr
Definition: PidConfig.h:132
f
void __toMessage__(dynamic_reconfigure::Config &msg, const std::vector< AbstractParamDescriptionConstPtr > &__param_descriptions__, const std::vector< AbstractGroupDescriptionConstPtr > &__group_descriptions__) const
Definition: PidConfig.h:331
static const std::vector< AbstractParamDescriptionConstPtr > & __getParamDescriptions__()
Definition: PidConfig.h:699
const double Pid_scale_hundred
Definition: PidConfig.h:733
static const PidConfigStatics * __get_statics__()
Definition: PidConfig.h:709
double state
Definition: autotune.cpp:65
virtual void toServer(const ros::NodeHandle &nh, const PidConfig &config) const =0
static const std::vector< AbstractGroupDescriptionConstPtr > & __getGroupDescriptions__()
Definition: PidConfig.h:704
const double Pid_scale_tenth
Definition: PidConfig.h:727
virtual void getValue(const PidConfig &config, boost::any &val) const =0
AbstractParamDescription(std::string n, std::string t, uint32_t l, std::string d, std::string e)
Definition: PidConfig.h:28
GroupDescription(std::string name, std::string type, int parent, int id, bool s, T PT::*f)
Definition: PidConfig.h:139
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &cfg) const
Definition: PidConfig.h:151
virtual void getValue(const PidConfig &config, boost::any &val) const
Definition: PidConfig.h:96
double Ki_scale
Definition: PidConfig.h:272
static const PidConfig & __getMin__()
Definition: PidConfig.h:694
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, PidConfig &config) const =0
boost::shared_ptr< const AbstractParamDescription > AbstractParamDescriptionConstPtr
Definition: PidConfig.h:47
double Kd_scale
Definition: PidConfig.h:278
dynamic_reconfigure::ConfigDescription __description_message__
Definition: PidConfig.h:666
std::vector< PidConfig::AbstractParamDescriptionConstPtr > __param_descriptions__
Definition: PidConfig.h:661
PidConfig __default__
Definition: PidConfig.h:665
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, PidConfig &config) const
Definition: PidConfig.h:86
void __clamp__()
Definition: PidConfig.h:387
void __toServer__(const ros::NodeHandle &nh) const
Definition: PidConfig.h:357
virtual void fromServer(const ros::NodeHandle &nh, PidConfig &config) const
Definition: PidConfig.h:76
AbstractGroupDescription(std::string n, std::string t, int p, int i, bool s)
Definition: PidConfig.h:105
virtual void toServer(const ros::NodeHandle &nh, const PidConfig &config) const
Definition: PidConfig.h:81
void setParams(PidConfig &config, const std::vector< AbstractParamDescriptionConstPtr > params)
Definition: PidConfig.h:218
static const PidConfigStatics * get_instance()
Definition: PidConfig.h:668
virtual void clamp(PidConfig &config, const PidConfig &max, const PidConfig &min) const
Definition: PidConfig.h:61
uint32_t __level__(const PidConfig &config) const
Definition: PidConfig.h:397
virtual void toMessage(dynamic_reconfigure::Config &msg, const PidConfig &config) const
Definition: PidConfig.h:91
const double Pid_scale_unity
Definition: PidConfig.h:729
static const PidConfig & __getMax__()
Definition: PidConfig.h:689
static const dynamic_reconfigure::ConfigDescription & __getDescriptionMessage__()
Definition: PidConfig.h:679
class pid::PidConfig::DEFAULT groups
int min(int a, int b)
bool getParam(const std::string &key, std::string &s) const
GroupDescription(const GroupDescription< T, PT > &g)
Definition: PidConfig.h:144
double Kp_scale
Definition: PidConfig.h:266
ParamDescription(std::string name, std::string type, uint32_t level, std::string description, std::string edit_method, T PidConfig::*f)
Definition: PidConfig.h:53
boost::shared_ptr< const AbstractGroupDescription > AbstractGroupDescriptionConstPtr
Definition: PidConfig.h:133
std::vector< AbstractParamDescriptionConstPtr > abstract_parameters
Definition: PidConfig.h:114
virtual void toMessage(dynamic_reconfigure::Config &msg, const PidConfig &config) const =0
void __fromServer__(const ros::NodeHandle &nh)
Definition: PidConfig.h:365
bool __fromMessage__(dynamic_reconfigure::Config &msg)
Definition: PidConfig.h:285
std::vector< PidConfig::AbstractGroupDescriptionConstPtr > groups
Definition: PidConfig.h:206
#define ROS_ERROR(...)
void setParam(const std::string &key, const XmlRpc::XmlRpcValue &v) const
virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &cfg) const
Definition: PidConfig.h:194
virtual void updateParams(boost::any &cfg, PidConfig &top) const
Definition: PidConfig.h:180
boost::shared_ptr< AbstractParamDescription > AbstractParamDescriptionPtr
Definition: PidConfig.h:46
std::vector< PidConfig::AbstractGroupDescriptionConstPtr > __group_descriptions__
Definition: PidConfig.h:662
virtual void clamp(PidConfig &config, const PidConfig &max, const PidConfig &min) const =0
virtual void fromServer(const ros::NodeHandle &nh, PidConfig &config) const =0
Definition: PidConfig.h:18
virtual void calcLevel(uint32_t &comb_level, const PidConfig &config1, const PidConfig &config2) const
Definition: PidConfig.h:70
const double Pid_scale_ten
Definition: PidConfig.h:731


pid
Author(s): Andy Zelenak , Paul Bouchier
autogenerated on Sat Jul 4 2020 03:26:04