当前位置: 首页 > news >正文

招投标网站建设开发购物网站支付功能怎么做

招投标网站建设开发,购物网站支付功能怎么做,wordpress搜索频率,成都品牌设计网站一、概念介绍 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器#xff0c;可以将数据存储在该容器中#xff0c;被不同的节点调用#xff0c;当然不同的节点也可以往其中存储数据。 作用#xff1a;存储一些多节点…一、概念介绍 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器可以将数据存储在该容器中被不同的节点调用当然不同的节点也可以往其中存储数据。 作用存储一些多节点共享的数据类似于全局变量。 二、理论模型[Autolabor-ROS] 参数服务器实现是最为简单的该模型如下图所示,该模型中涉及到三个角色: ROS Master (管理者) Talker (参数设置者) Listener (参数调用者) ROS Master 作为一个公共容器保存参数Talker 可以向容器中设置参数Listener 可以获取参数。 整个流程由以下步骤实现: 1.Talker 设置参数 Talker 通过 RPC 向参数服务器发送参数(包括参数名与参数值)ROS Master 将参数保存到参数列表中。 2.Listener 获取参数 Listener 通过 RPC 向参数服务器发送参数查找请求请求中包含要查找的参数名。 3.ROS Master 向 Listener 发送参数值 ROS Master 根据步骤2请求提供的参数名查找参数值并将查询结果通过 RPC 发送给 Listener。 注意:参数服务器不是为高性能而设计的因此最好用于存储静态的非二进制的简单数据 三、参数操作(C) 在 C 中实现参数服务器数据的增删改查均可以通过两套 API 实现: ros::NodeHandle ros::param 下面为具体操作演示 1.参数服务器新增(修改)参数 【增、改】 /*参数服务器操作之新增与修改(二者API一样)_C实现:在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandlesetParam(键,值)ros::paramset(键,值)示例:分别设置整形、浮点、字符串、bool、列表、字典等类型参数修改(相同的键不同的值)*/ #include ros/ros.hint main(int argc, char *argv[]) {ros::init(argc,argv,set_update_param);std::vectorstd::string stus;stus.push_back(zhangsan);stus.push_back(李四);stus.push_back(王五);stus.push_back(孙大脑袋);std::mapstd::string,std::string friends;friends[guo] huang;friends[yuang] xiao;//NodeHandle--------------------------------------------------------ros::NodeHandle nh;nh.setParam(nh_int,10); //整型nh.setParam(nh_double,3.14); //浮点型nh.setParam(nh_bool,true); //boolnh.setParam(nh_string,hello NodeHandle); //字符串nh.setParam(nh_vector,stus); // vectornh.setParam(nh_map,friends); // map//修改演示(相同的键不同的值)nh.setParam(nh_int,10000);//param--------------------------------------------------------ros::param::set(param_int,20);ros::param::set(param_double,3.14);ros::param::set(param_string,Hello Param);ros::param::set(param_bool,false);ros::param::set(param_vector,stus);ros::param::set(param_map,friends);//修改演示(相同的键不同的值)ros::param::set(param_int,20000);return 0; }2.参数服务器获取参数 【查】 /*参数服务器操作之查询_C实现:在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandleparam(键,默认值)存在返回对应结果否则返回默认值getParam(键,存储结果的变量)存在,返回 true,且将值赋值给参数2若果键不存在那么返回值为 false且不为参数2赋值getParamCached(键,存储结果的变量)--提高变量获取效率存在,返回 true,且将值赋值给参数2若果键不存在那么返回值为 false且不为参数2赋值getParamNames(std::vectorstd::string)获取所有的键,并存储在参数 vector 中hasParam(键)是否包含某个键存在返回 true否则返回 falsesearchParam(参数1参数2)搜索键参数1是被搜索的键参数2存储搜索结果的变量ros::param ----- 与 NodeHandle 类似 */#include ros/ros.hint main(int argc, char *argv[]) {setlocale(LC_ALL,);ros::init(argc,argv,get_param);//NodeHandle实现--------------------------------------------------------/*ros::NodeHandle nh;// 1.param 函数int res1 nh.param(nh_int,100); // 键存在int res2 nh.param(nh_int2,100); // 键不存在ROS_INFO(param获取结果:%d,%d,res1,res2);// 2.getParam 函数int nh_int_value;double nh_double_value;bool nh_bool_value;std::string nh_string_value;std::vectorstd::string stus;std::mapstd::string, std::string friends;nh.getParam(nh_int,nh_int_value);nh.getParam(nh_double,nh_double_value);nh.getParam(nh_bool,nh_bool_value);nh.getParam(nh_string,nh_string_value);nh.getParam(nh_vector,stus);nh.getParam(nh_map,friends);ROS_INFO(getParam获取的结果:%d,%.2f,%s,%d,nh_int_value,nh_double_value,nh_string_value.c_str(),nh_bool_value);for (auto stu : stus){ROS_INFO(stus 元素:%s,stu.c_str()); }for (auto f : friends){ROS_INFO(map 元素:%s %s,f.first.c_str(), f.second.c_str());}// getParamCached()nh.getParamCached(nh_int,nh_int_value);ROS_INFO(通过缓存获取数据:%d,nh_int_value);//getParamNames()std::vectorstd::string param_names1;nh.getParamNames(param_names1);for (auto name : param_names1){ROS_INFO(名称解析name %s,name.c_str()); }ROS_INFO(----------------------------);ROS_INFO(存在 nh_int 吗? %d,nh.hasParam(nh_int));ROS_INFO(存在 nh_intttt 吗? %d,nh.hasParam(nh_intttt));std::string key;nh.searchParam(nh_int,key);ROS_INFO(搜索键:%s,key.c_str());*///param实现--------------------------------------------------------ROS_INFO();int res3 ros::param::param(param_int,20); //存在int res4 ros::param::param(param_int2,20); // 不存在返回默认ROS_INFO(param获取结果:%d,%d,res3,res4);// getParam 函数int param_int_value;double param_double_value;bool param_bool_value;std::string param_string_value;std::vectorstd::string param_stus;std::mapstd::string, std::string param_friends;ros::param::get(param_int,param_int_value);ros::param::get(param_double,param_double_value);ros::param::get(param_bool,param_bool_value);ros::param::get(param_string,param_string_value);ros::param::get(param_vector,param_stus);ros::param::get(param_map,param_friends);ROS_INFO(getParam获取的结果:%d,%.2f,%s,%d,param_int_value,param_double_value,param_string_value.c_str(),param_bool_value);for (auto stu : param_stus) // 右值引用{ROS_INFO(stus 元素:%s,stu.c_str()); }for (auto f : param_friends){ROS_INFO(map 元素:%s %s,f.first.c_str(), f.second.c_str());}// getParamCached()ros::param::getCached(param_int,param_int_value);ROS_INFO(通过缓存获取数据:%d,param_int_value);//getParamNames()std::vectorstd::string param_names2;ros::param::getParamNames(param_names2);for (auto name : param_names2){ROS_INFO(名称解析name %s,name.c_str()); }ROS_INFO(----------------------------);ROS_INFO(存在 param_int 吗? %d,ros::param::has(param_int));ROS_INFO(存在 param_intttt 吗? %d,ros::param::has(param_intttt));std::string key;ros::param::search(param_int,key);ROS_INFO(搜索键:%s,key.c_str());return 0; }3.参数服务器删除参数 【删】 /* 参数服务器操作之删除_C实现:ros::NodeHandledeleteParam(键)根据键删除参数删除成功返回 true否则(参数不存在)返回 falseros::paramdel(键)根据键删除参数删除成功返回 true否则(参数不存在)返回 false*/ #include ros/ros.hint main(int argc, char *argv[]) { setlocale(LC_ALL,);ros::init(argc,argv,delete_param);ros::NodeHandle nh;bool r1 nh.deleteParam(nh_int);ROS_INFO(nh 删除结果:%d,r1);bool r2 ros::param::del(param_int);ROS_INFO(param 删除结果:%d,r2);return 0; }4.配置CMakeList.txt add_executable(demo01_param_set src/demo01_param_set.cpp) add_executable(demo02_param_get src/demo02_param_get.cpp) add_executable(demo03_param_del src/demo03_param_del.cpp)target_link_libraries(demo01_param_set${catkin_LIBRARIES} ) target_link_libraries(demo02_param_get${catkin_LIBRARIES} ) target_link_libraries(demo03_param_del${catkin_LIBRARIES} )之后编译运行即可参数服务器相较于之前两个通信机制还是比较简洁的。。。
http://www.yutouwan.com/news/414611/

相关文章:

  • 网站建设实训意见网站建设 服务器
  • 找外包公司做网站价钱wordpress默认设置页面
  • 图书网站建设论文网站推广seo招聘
  • 福州注册公司快点办企业网站seo模板
  • wordpress站点描述密云郑州阳网站建设
  • php网站建设的公司石家庄百度提升优化
  • 商城网站建设套餐报价个人导航网站源码
  • 电子商务网站建设的模式镇江住房和城乡建设局网站
  • 制作服务网站广州快速建站哪家服务专业
  • 实木餐桌椅移动网站建设wordpress 支付宝
  • 网站关键词几个合适网站页面优化怎么做
  • 湛江市建设教育协会学校网站wordpress 视频转码
  • 济南做网站优化创建域名
  • wordpress整站克隆深圳网站建设 公司元
  • 天津网站优化哪家快wordpress 模板修改
  • 优秀品牌企业网站建设案例网站工作室 需要什么手续
  • 沈阳信息工程学校中专seo查询seo优化
  • 郑州网站建设公司如何网站ui设计收费
  • 微网站建设方向电商平面设计主要做什么
  • 手机建站程序仿美团外卖小程序源码
  • 用php做视频网站的步骤无限空间 网站
  • 北京市丰台区建设部官方网站怎样搭建网站视频教程
  • 衡水网站建设公司网站识别手机电脑自动跳转
  • 怎么自己公司名下的网站免费软件网
  • 随州做网站生意怎么样网页设计培训平台
  • 做ppt的模板网站有哪些营业执照包含网站开发
  • 网站外链如何建设最有用创建网络公司
  • 网站网站怎么做怎么做军事小视频网站
  • 网站怎么打开网站开发平台目录
  • 做的好的办公家具网站足球最新世界排名表