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

电商网站怎么做搜索搜索软件

电商网站怎么做搜索,搜索软件,湖南中虹羽建设工程有限公司网站,施工企业一、概念介绍 参数服务器在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.hkea.cn/news/14449203/

相关文章:

  • 国际贸易英文网站微信公众号平台开发文档
  • 专业图库网站 西安泗阳网站建设公司
  • 如何线上推广自己产品公司优化网站的案例
  • 类似源码之家的网站wordpress页面属性模板怎么添加
  • 域名注册哪个最好关键词优化外包服务
  • 淘宝联盟 网站备案上传网站的软件
  • 校园网站建设方向做网站用到的工具
  • 东莞销售网站建设adsl做网站
  • 宜昌外贸网站建设优化推广网站电脑端和手机端
  • 公司网站制作注意什么百度网站关键词
  • 潍坊网站建设一品网络小程序中国优化网
  • 网站注册主机餐饮行业做网站的好处
  • h5网站不利于优化吗免费网站自助建站系统
  • 张北网站建设wordpress 添加外链
  • 贵州微网站建设公司人才共享网站的建设方案怎么写
  • 网站底部备案号自己做第一个网站
  • 广西钦州有做网站的公司吗php二次网站开发步骤
  • 河南省南水北调建设管理局网站太原优化型网站建设
  • qq整人网站怎么做建站公司学习
  • 三门峡网站制作公司网站开发强制开启浏览器极速模式
  • 做请柬网站东莞市住房建设部网站
  • wordpress主页打不开网站seo查询
  • 网站开发端兰山区网站建设推广
  • 比较多人用什么网站做推广山西教育学会的网站建设
  • 贵阳网站排名优化网站建设简运维 简历
  • 网站开发需要什么人员甘肃住房和城乡建设厅网站首页
  • 外贸推广是做什么的seo 整站优化
  • 安监网站如何做紧急预案备案涿州市住房和城乡建设局网站
  • 制作网站建设拓扑图软件海外推广引流
  • 厦门集团网站设计公司wordpress如何添加备案信息