地产项目网站建设监理杂志网站
news/
2025/9/23 20:10:51/
文章来源:
地产项目网站,建设监理杂志网站,做部队网站技术,福州网络营销推广以共享的方式实现不同节点之间数据交互的通信模式。
参数服务器是基于服务实现的#xff0c;包含客户端和服务器端#xff0c;服务端节点可以存储数据#xff0c;客户端节点可以访问服务端节点操作数据#xff0c;这个过程虽然基于请求响应的#xff0c;但是无需自己实现…以共享的方式实现不同节点之间数据交互的通信模式。
参数服务器是基于服务实现的包含客户端和服务器端服务端节点可以存储数据客户端节点可以访问服务端节点操作数据这个过程虽然基于请求响应的但是无需自己实现请求与响应此过程已经被封装调用者只需要通过比较简单友好的API就可以实现参数操作。
作用
存储一些多节点共享的数据类似于全局变量
需求
创建两个节点A与B节点A作为参数服务端节点B作为参数客户端在节点A存储数据(车辆参数)节点B操作数据。
流程
1.创建参数服务器服务端 2.创建参数服务器客户端 3.编译并执行
参数说明
Cyber RT 中通过apollo::cyber.:.Parameter封装参数下列表格列出了所支持的参数类型以及对应的 C 和 protobuf 中的数据类型。 除了上述5种类型之外Parameter 还支持以 protobuf 对象作为传入参数的接口。执行后的序列化处理对象 并将其转换为 STRING 类型以进行传输。
C 实现
1.参数服务端 demo_cc 目录下新建 C 文件 demo05_param_server.cc输入如下内容
/*需求参数服务端设置数据服务端也可以操作数据客户端操作数据实现1.创建头文件2.初始化i cyber 框架3.创建节点4.创建参数服务端5.操作参数增查改没有删除实现6.等待节点关闭释放资源
*/
#includecyber/cyber.h
#includecyber/parameter/parameter_server.husing apollo::cyber::ParameterServer;
using apollo::cyber::Parameter;int main(int argc, char const *argv[])
{apollo::cyber::Init(argv[0]);std::shared_ptrapollo::cyber::Nodeserver_node apollo::cyber::CreateNode(car_param);auto server std::make_sharedParameterServer(server_node);//zengserver-SetParameter(Parameter(car_type,apollo));server-SetParameter(Parameter(height,1.65));server-SetParameter(Parameter(lasers,4));//cha//1.获取指定参数Parameter temp;server-GetParameter(car_type,temp);AINFOtemp.Name()temp.AsString();server-GetParameter(height,temp);AINFOtemp.Name()temp.AsDouble();server-GetParameter(lasers,temp);AINFOtemp.Name()temp.AsInt64();//2.获取所有参数std::vectorParameterps;server-ListParameters(ps);for(auto p : ps){AINFOp.Name()---------p.TypeName();AINFOp.DebugString();}//gai 当设置的参数建已经存在时会覆盖server-SetParameter(Parameter(lasers,100));server-GetParameter(lasers,temp);AINFOtemp.Name()temp.AsInt64();apollo::cyber::WaitForShutdown();/* code */return 0;
}
BUILD 文件
cc_binary(namedemo05_param_server,srcs[demo05_param_server.cc],deps[//cyber,//cyber/parameter,]
)编译 执行
2.参数客户端 demo_cc 目录下新建 C 文件 demo06_param_client.cc输入如下内容
/*需求参数服务端设置数据服务端也可以操作数据客户端操作数据实现1.创建头文件2.初始化i cyber 框架3.创建节点4.创建参数客户端5.操作参数增查改没有删除实现6.等待节点关闭释放资源
*/
#include cyber/cyber.h
#include cyber/parameter/parameter_client.husing apollo::cyber::ParameterClient;
using apollo::cyber::Parameter;int main(int argc, char const *argv[])
{apollo::cyber::Init(argv[0]);std::shared_ptrapollo::cyber::Nodeclient_node apollo::cyber::CreateNode(param_client);auto client std::make_sharedParameterClient(client_node,car_param); //这里的就是服务端的节点名称他把话题通信封装了//zeng// client-SetParameter(Parameter(car_type,apollo));// client-SetParameter(Parameter(height,1.65));// client-SetParameter(Parameter(lasers,4));//cha//1.获取指定参数Parameter temp;client-GetParameter(car_type,temp);AINFOtemp.Name()temp.AsString();client-GetParameter(height,temp);AINFOtemp.Name()temp.AsDouble();client-GetParameter(lasers,temp);AINFOtemp.Name()temp.AsInt64();//2.获取所有参数std::vectorParameterps;client-ListParameters(ps);for(auto p : ps){AINFOp.Name()---p.TypeName()---p.DebugString();}//gai 当设置的参数建已经存在时会覆盖client-SetParameter(Parameter(height,2.0));client-GetParameter(height,temp);AINFOtemp.Name()temp.AsDouble();apollo::cyber::WaitForShutdown();return 0;
}BUILD 文件
cc_binary(namedemo06_param_client,srcs[demo06_param_client.cc],deps[//cyber,//cyber/parameter,]
)编译执行
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913752.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!