Created
March 29, 2020 03:22
-
-
Save curtkim/cdd8aaa07cf9af48234c05cfb50161f8 to your computer and use it in GitHub Desktop.
ros dynamic config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//#line 2 "/opt/ros/kinetic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template" | |
// ********************************************************* | |
// | |
// File autogenerated for the map_manager package | |
// by the dynamic_reconfigure package. | |
// Please do not edit. | |
// | |
// ********************************************************/ | |
#ifndef __map_manager__ROUTECONFIG_H__ | |
#define __map_manager__ROUTECONFIG_H__ | |
#if __cplusplus >= 201103L | |
#define DYNAMIC_RECONFIGURE_FINAL final | |
#else | |
#define DYNAMIC_RECONFIGURE_FINAL | |
#endif | |
#include <dynamic_reconfigure/config_tools.h> | |
#include <limits> | |
#include <ros/node_handle.h> | |
#include <dynamic_reconfigure/ConfigDescription.h> | |
#include <dynamic_reconfigure/ParamDescription.h> | |
#include <dynamic_reconfigure/Group.h> | |
#include <dynamic_reconfigure/config_init_mutex.h> | |
#include <boost/any.hpp> | |
namespace map_manager | |
{ | |
class RouteConfigStatics; | |
class RouteConfig | |
{ | |
public: | |
class AbstractParamDescription : public dynamic_reconfigure::ParamDescription | |
{ | |
public: | |
AbstractParamDescription(std::string n, std::string t, uint32_t l, | |
std::string d, std::string e) | |
{ | |
name = n; | |
type = t; | |
level = l; | |
description = d; | |
edit_method = e; | |
} | |
virtual void clamp(RouteConfig &config, const RouteConfig &max, const RouteConfig &min) const = 0; | |
virtual void calcLevel(uint32_t &level, const RouteConfig &config1, const RouteConfig &config2) const = 0; | |
virtual void fromServer(const ros::NodeHandle &nh, RouteConfig &config) const = 0; | |
virtual void toServer(const ros::NodeHandle &nh, const RouteConfig &config) const = 0; | |
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, RouteConfig &config) const = 0; | |
virtual void toMessage(dynamic_reconfigure::Config &msg, const RouteConfig &config) const = 0; | |
virtual void getValue(const RouteConfig &config, boost::any &val) const = 0; | |
}; | |
typedef boost::shared_ptr<AbstractParamDescription> AbstractParamDescriptionPtr; | |
typedef boost::shared_ptr<const AbstractParamDescription> AbstractParamDescriptionConstPtr; | |
// Final keyword added to class because it has virtual methods and inherits | |
// from a class with a non-virtual destructor. | |
template <class T> | |
class ParamDescription DYNAMIC_RECONFIGURE_FINAL : public AbstractParamDescription | |
{ | |
public: | |
ParamDescription(std::string a_name, std::string a_type, uint32_t a_level, | |
std::string a_description, std::string a_edit_method, T RouteConfig::* a_f) : | |
AbstractParamDescription(a_name, a_type, a_level, a_description, a_edit_method), | |
field(a_f) | |
{} | |
T (RouteConfig::* field); | |
virtual void clamp(RouteConfig &config, const RouteConfig &max, const RouteConfig &min) const | |
{ | |
if (config.*field > max.*field) | |
config.*field = max.*field; | |
if (config.*field < min.*field) | |
config.*field = min.*field; | |
} | |
virtual void calcLevel(uint32_t &comb_level, const RouteConfig &config1, const RouteConfig &config2) const | |
{ | |
if (config1.*field != config2.*field) | |
comb_level |= level; | |
} | |
virtual void fromServer(const ros::NodeHandle &nh, RouteConfig &config) const | |
{ | |
nh.getParam(name, config.*field); | |
} | |
virtual void toServer(const ros::NodeHandle &nh, const RouteConfig &config) const | |
{ | |
nh.setParam(name, config.*field); | |
} | |
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, RouteConfig &config) const | |
{ | |
return dynamic_reconfigure::ConfigTools::getParameter(msg, name, config.*field); | |
} | |
virtual void toMessage(dynamic_reconfigure::Config &msg, const RouteConfig &config) const | |
{ | |
dynamic_reconfigure::ConfigTools::appendParameter(msg, name, config.*field); | |
} | |
virtual void getValue(const RouteConfig &config, boost::any &val) const | |
{ | |
val = config.*field; | |
} | |
}; | |
class AbstractGroupDescription : public dynamic_reconfigure::Group | |
{ | |
public: | |
AbstractGroupDescription(std::string n, std::string t, int p, int i, bool s) | |
{ | |
name = n; | |
type = t; | |
parent = p; | |
state = s; | |
id = i; | |
} | |
std::vector<AbstractParamDescriptionConstPtr> abstract_parameters; | |
bool state; | |
virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &config) const = 0; | |
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &config) const =0; | |
virtual void updateParams(boost::any &cfg, RouteConfig &top) const= 0; | |
virtual void setInitialState(boost::any &cfg) const = 0; | |
void convertParams() | |
{ | |
for(std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = abstract_parameters.begin(); i != abstract_parameters.end(); ++i) | |
{ | |
parameters.push_back(dynamic_reconfigure::ParamDescription(**i)); | |
} | |
} | |
}; | |
typedef boost::shared_ptr<AbstractGroupDescription> AbstractGroupDescriptionPtr; | |
typedef boost::shared_ptr<const AbstractGroupDescription> AbstractGroupDescriptionConstPtr; | |
// Final keyword added to class because it has virtual methods and inherits | |
// from a class with a non-virtual destructor. | |
template<class T, class PT> | |
class GroupDescription DYNAMIC_RECONFIGURE_FINAL : public AbstractGroupDescription | |
{ | |
public: | |
GroupDescription(std::string a_name, std::string a_type, int a_parent, int a_id, bool a_s, T PT::* a_f) : AbstractGroupDescription(a_name, a_type, a_parent, a_id, a_s), field(a_f) | |
{ | |
} | |
GroupDescription(const GroupDescription<T, PT>& g): AbstractGroupDescription(g.name, g.type, g.parent, g.id, g.state), field(g.field), groups(g.groups) | |
{ | |
parameters = g.parameters; | |
abstract_parameters = g.abstract_parameters; | |
} | |
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &cfg) const | |
{ | |
PT* config = boost::any_cast<PT*>(cfg); | |
if(!dynamic_reconfigure::ConfigTools::getGroupState(msg, name, (*config).*field)) | |
return false; | |
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) | |
{ | |
boost::any n = &((*config).*field); | |
if(!(*i)->fromMessage(msg, n)) | |
return false; | |
} | |
return true; | |
} | |
virtual void setInitialState(boost::any &cfg) const | |
{ | |
PT* config = boost::any_cast<PT*>(cfg); | |
T* group = &((*config).*field); | |
group->state = state; | |
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) | |
{ | |
boost::any n = boost::any(&((*config).*field)); | |
(*i)->setInitialState(n); | |
} | |
} | |
virtual void updateParams(boost::any &cfg, RouteConfig &top) const | |
{ | |
PT* config = boost::any_cast<PT*>(cfg); | |
T* f = &((*config).*field); | |
f->setParams(top, abstract_parameters); | |
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) | |
{ | |
boost::any n = &((*config).*field); | |
(*i)->updateParams(n, top); | |
} | |
} | |
virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &cfg) const | |
{ | |
const PT config = boost::any_cast<PT>(cfg); | |
dynamic_reconfigure::ConfigTools::appendGroup<T>(msg, name, id, parent, config.*field); | |
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) | |
{ | |
(*i)->toMessage(msg, config.*field); | |
} | |
} | |
T (PT::* field); | |
std::vector<RouteConfig::AbstractGroupDescriptionConstPtr> groups; | |
}; | |
class DEFAULT | |
{ | |
public: | |
DEFAULT() | |
{ | |
state = true; | |
name = "Default"; | |
} | |
void setParams(RouteConfig &config, const std::vector<AbstractParamDescriptionConstPtr> params) | |
{ | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator _i = params.begin(); _i != params.end(); ++_i) | |
{ | |
boost::any val; | |
(*_i)->getValue(config, val); | |
if("selected_route"==(*_i)->name){selected_route = boost::any_cast<std::string>(val);} | |
} | |
} | |
std::string selected_route; | |
bool state; | |
std::string name; | |
}groups; | |
//#line 290 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
std::string selected_route; | |
//#line 228 "/opt/ros/kinetic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template" | |
bool __fromMessage__(dynamic_reconfigure::Config &msg) | |
{ | |
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); | |
const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); | |
int count = 0; | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) | |
if ((*i)->fromMessage(msg, *this)) | |
count++; | |
for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i ++) | |
{ | |
if ((*i)->id == 0) | |
{ | |
boost::any n = boost::any(this); | |
(*i)->updateParams(n, *this); | |
(*i)->fromMessage(msg, n); | |
} | |
} | |
if (count != dynamic_reconfigure::ConfigTools::size(msg)) | |
{ | |
ROS_ERROR("RouteConfig::__fromMessage__ called with an unexpected parameter."); | |
ROS_ERROR("Booleans:"); | |
for (unsigned int i = 0; i < msg.bools.size(); i++) | |
ROS_ERROR(" %s", msg.bools[i].name.c_str()); | |
ROS_ERROR("Integers:"); | |
for (unsigned int i = 0; i < msg.ints.size(); i++) | |
ROS_ERROR(" %s", msg.ints[i].name.c_str()); | |
ROS_ERROR("Doubles:"); | |
for (unsigned int i = 0; i < msg.doubles.size(); i++) | |
ROS_ERROR(" %s", msg.doubles[i].name.c_str()); | |
ROS_ERROR("Strings:"); | |
for (unsigned int i = 0; i < msg.strs.size(); i++) | |
ROS_ERROR(" %s", msg.strs[i].name.c_str()); | |
// @todo Check that there are no duplicates. Make this error more | |
// explicit. | |
return false; | |
} | |
return true; | |
} | |
// This version of __toMessage__ is used during initialization of | |
// statics when __getParamDescriptions__ can't be called yet. | |
void __toMessage__(dynamic_reconfigure::Config &msg, const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__, const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__) const | |
{ | |
dynamic_reconfigure::ConfigTools::clear(msg); | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) | |
(*i)->toMessage(msg, *this); | |
for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i) | |
{ | |
if((*i)->id == 0) | |
{ | |
(*i)->toMessage(msg, *this); | |
} | |
} | |
} | |
void __toMessage__(dynamic_reconfigure::Config &msg) const | |
{ | |
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); | |
const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); | |
__toMessage__(msg, __param_descriptions__, __group_descriptions__); | |
} | |
void __toServer__(const ros::NodeHandle &nh) const | |
{ | |
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) | |
(*i)->toServer(nh, *this); | |
} | |
void __fromServer__(const ros::NodeHandle &nh) | |
{ | |
static bool setup=false; | |
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) | |
(*i)->fromServer(nh, *this); | |
const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); | |
for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i++){ | |
if (!setup && (*i)->id == 0) { | |
setup = true; | |
boost::any n = boost::any(this); | |
(*i)->setInitialState(n); | |
} | |
} | |
} | |
void __clamp__() | |
{ | |
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); | |
const RouteConfig &__max__ = __getMax__(); | |
const RouteConfig &__min__ = __getMin__(); | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) | |
(*i)->clamp(*this, __max__, __min__); | |
} | |
uint32_t __level__(const RouteConfig &config) const | |
{ | |
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); | |
uint32_t level = 0; | |
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) | |
(*i)->calcLevel(level, config, *this); | |
return level; | |
} | |
static const dynamic_reconfigure::ConfigDescription &__getDescriptionMessage__(); | |
static const RouteConfig &__getDefault__(); | |
static const RouteConfig &__getMax__(); | |
static const RouteConfig &__getMin__(); | |
static const std::vector<AbstractParamDescriptionConstPtr> &__getParamDescriptions__(); | |
static const std::vector<AbstractGroupDescriptionConstPtr> &__getGroupDescriptions__(); | |
private: | |
static const RouteConfigStatics *__get_statics__(); | |
}; | |
template <> // Max and min are ignored for strings. | |
inline void RouteConfig::ParamDescription<std::string>::clamp(RouteConfig &config, const RouteConfig &max, const RouteConfig &min) const | |
{ | |
(void) config; | |
(void) min; | |
(void) max; | |
return; | |
} | |
class RouteConfigStatics | |
{ | |
friend class RouteConfig; | |
RouteConfigStatics() | |
{ | |
RouteConfig::GroupDescription<RouteConfig::DEFAULT, RouteConfig> Default("Default", "", 0, 0, true, &RouteConfig::groups); | |
//#line 290 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
__min__.selected_route = ""; | |
//#line 290 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
__max__.selected_route = ""; | |
//#line 290 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
__default__.selected_route = "empty"; | |
//#line 290 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
Default.abstract_parameters.push_back(RouteConfig::AbstractParamDescriptionConstPtr(new RouteConfig::ParamDescription<std::string>("selected_route", "str", 0, "select predefined route", "{'enum_description': 'An enum to set the predefined route', 'enum': [{'srcline': 8, 'description': 'Empty', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'empty', 'ctype': 'std::string', 'type': 'str', 'name': 'Empty'}, {'srcline': 9, 'description': 'pangyo predefined route #1', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'route_1', 'ctype': 'std::string', 'type': 'str', 'name': 'Route1'}, {'srcline': 10, 'description': 'pangyo predefined route #2', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'route_2', 'ctype': 'std::string', 'type': 'str', 'name': 'Route2'}, {'srcline': 11, 'description': 'pangyo predefined route #3', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'route_3', 'ctype': 'std::string', 'type': 'str', 'name': 'Route3'}]}", &RouteConfig::selected_route))); | |
//#line 290 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
__param_descriptions__.push_back(RouteConfig::AbstractParamDescriptionConstPtr(new RouteConfig::ParamDescription<std::string>("selected_route", "str", 0, "select predefined route", "{'enum_description': 'An enum to set the predefined route', 'enum': [{'srcline': 8, 'description': 'Empty', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'empty', 'ctype': 'std::string', 'type': 'str', 'name': 'Empty'}, {'srcline': 9, 'description': 'pangyo predefined route #1', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'route_1', 'ctype': 'std::string', 'type': 'str', 'name': 'Route1'}, {'srcline': 10, 'description': 'pangyo predefined route #2', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'route_2', 'ctype': 'std::string', 'type': 'str', 'name': 'Route2'}, {'srcline': 11, 'description': 'pangyo predefined route #3', 'srcfile': '/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg', 'cconsttype': 'const char * const', 'value': 'route_3', 'ctype': 'std::string', 'type': 'str', 'name': 'Route3'}]}", &RouteConfig::selected_route))); | |
//#line 245 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
Default.convertParams(); | |
//#line 245 "/opt/ros/kinetic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py" | |
__group_descriptions__.push_back(RouteConfig::AbstractGroupDescriptionConstPtr(new RouteConfig::GroupDescription<RouteConfig::DEFAULT, RouteConfig>(Default))); | |
//#line 366 "/opt/ros/kinetic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template" | |
for (std::vector<RouteConfig::AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i) | |
{ | |
__description_message__.groups.push_back(**i); | |
} | |
__max__.__toMessage__(__description_message__.max, __param_descriptions__, __group_descriptions__); | |
__min__.__toMessage__(__description_message__.min, __param_descriptions__, __group_descriptions__); | |
__default__.__toMessage__(__description_message__.dflt, __param_descriptions__, __group_descriptions__); | |
} | |
std::vector<RouteConfig::AbstractParamDescriptionConstPtr> __param_descriptions__; | |
std::vector<RouteConfig::AbstractGroupDescriptionConstPtr> __group_descriptions__; | |
RouteConfig __max__; | |
RouteConfig __min__; | |
RouteConfig __default__; | |
dynamic_reconfigure::ConfigDescription __description_message__; | |
static const RouteConfigStatics *get_instance() | |
{ | |
// Split this off in a separate function because I know that | |
// instance will get initialized the first time get_instance is | |
// called, and I am guaranteeing that get_instance gets called at | |
// most once. | |
static RouteConfigStatics instance; | |
return &instance; | |
} | |
}; | |
inline const dynamic_reconfigure::ConfigDescription &RouteConfig::__getDescriptionMessage__() | |
{ | |
return __get_statics__()->__description_message__; | |
} | |
inline const RouteConfig &RouteConfig::__getDefault__() | |
{ | |
return __get_statics__()->__default__; | |
} | |
inline const RouteConfig &RouteConfig::__getMax__() | |
{ | |
return __get_statics__()->__max__; | |
} | |
inline const RouteConfig &RouteConfig::__getMin__() | |
{ | |
return __get_statics__()->__min__; | |
} | |
inline const std::vector<RouteConfig::AbstractParamDescriptionConstPtr> &RouteConfig::__getParamDescriptions__() | |
{ | |
return __get_statics__()->__param_descriptions__; | |
} | |
inline const std::vector<RouteConfig::AbstractGroupDescriptionConstPtr> &RouteConfig::__getGroupDescriptions__() | |
{ | |
return __get_statics__()->__group_descriptions__; | |
} | |
inline const RouteConfigStatics *RouteConfig::__get_statics__() | |
{ | |
const static RouteConfigStatics *statics; | |
if (statics) // Common case | |
return statics; | |
boost::mutex::scoped_lock lock(dynamic_reconfigure::__init_mutex__); | |
if (statics) // In case we lost a race. | |
return statics; | |
statics = RouteConfigStatics::get_instance(); | |
return statics; | |
} | |
//#line 8 "/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg" | |
const char * const Route_Empty = "empty"; | |
//#line 9 "/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg" | |
const char * const Route_Route1 = "route_1"; | |
//#line 10 "/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg" | |
const char * const Route_Route2 = "route_2"; | |
//#line 11 "/home/omega/ros_ws/src/hd_map_server/map_manager/cfg/Route.cfg" | |
const char * const Route_Route3 = "route_3"; | |
} | |
#undef DYNAMIC_RECONFIGURE_FINAL | |
#endif // __ROUTERECONFIGURATOR_H__ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment