(5)使用参数
来源:互联网 发布:算法伪代码怎么写 编辑:程序博客网 时间:2024/05/22 00:06
参考链接:ROS与C++入门教程-使用参数
ROS与C++入门教程-使用参数
说明:
- 介绍如何在C++中使用参数
- 介绍NodeHandle parameter API
- 介绍如何维护参数服务器中的参数
获取参数
- 通过NodeHandle,有两种方式获取参数:
- 下面的例子,n是NodeHandle实例对象
- getParam()函数说明:
- getParam函数可以进行重载,不过基本格式如下:
bool getParam (const std::string& key, parameter_type& output_value) const
key是参数名,命名方法参考
output_value用来保持参数的值
parameter_type类型包含bool, int, double, string, 或 特定的 XmlRpcValue 类型
XmlRpcValue类型包含所有类型,甚至是lists/maps
用法:
std::string s;n.getParam("my_param", s);
- getParam函数有一个布尔类型的返回值,可以通过它来表示是否获取参数成功
- 例如:
std::string s;if (n.getParam("my_param", s)){ ROS_INFO("Got param: %s", s.c_str());}else{ ROS_ERROR("Failed to get param 'my_param'");}
- param()函数说明:
- param类似getParam,不同是:在没有获取到参数值的时候,可以设置默认值。
- 例如:
int i;n.param("my_num", i, 42);
- 有时编译器需要字符串类型的提示。
std::string s;n.param<std::string>("my_param", s, "default_value");
设置参数
- 通过setParam() 函数设置参数:
n.setParam("my_param", "hello there");
- 类似getParam,能取不同的值,如: bool, int, double, string, 和特定XmlRpcValue type
删除参数
- 通过 deleteParam() 函数删除参数:
n.deleteParam("my_param");
检查参数
- 这不是必需的,但有hasParam()可以实现检查
if (!n.hasParam("my_param")){ ROS_INFO("No param named 'my_param'");}
搜索参数
- 参数服务器允许你在你开始的工作空间或父工作空间进行搜索参数
- 例如:如果参数服务器存在/a/b的参数,你的NodeHandle在/a/c工作空间,searchParam()搜索b会得到/a/b. 如果/a/c/b参数增加,搜索就会得到/a/c/b参数。
- 测试代码:
std::string param_name; if (n.searchParam("b", param_name)) { // Found parameter, can now query it using param_name int i = 0; n.getParam(param_name, i); } else { ROS_INFO("No param 'b' found in an upward search"); }
阅读全文
0 0
- (5)使用参数
- simplescalar使用(命令参数)
- (八)使用可选参数
- Java(命令行参数使用)
- 参数使用
- libsvm使用中的参数问题(选择最优参数)
- C++参数传递指导原则(何时使用引用参数)
- 单元测试-JMockit中使用参数化(多参数)测试
- c 函数不定参数(不限参数)使用实例 不定参数输出函数
- java使用省略号代替多参数(参数类型... 参数名)
- CreateThread使用(六个参数介绍)
- 脚本参数的使用(ex17.sh)
- tcpdump参数及使用介绍(转)
- CreateThread使用(六个参数介绍)
- Nginx 使用之一(server参数配置)
- PRD SQL脚本使用参数(3)
- libsvm使用注意事项(参数顺序)
- Activiti使用(二),参数传递
- 18岁生日 HDU
- Ubuntu新用户
- 判断二叉树是否平衡
- Unsupported major.minor version 52.0
- 设计模式-单例模式
- (5)使用参数
- httpbin
- 前端JS知识要点总结(10)
- C语言 (数组、sting)
- linux 查看某进程 并杀死进程 ps grep kill
- C#基础--attribute||reflect
- 获取T.class的完整例子
- 判断单链表是否带环,如果带环,求环的长度和入口结点
- C/C++内存管理