欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【SY4进阶】Apollo10.0 Cyber参数实验

【SY4进阶】Apollo10.0 Cyber参数实验

2025/2/5 13:57:18 来源:https://blog.csdn.net/weixin_60062799/article/details/145215369  浏览:    关键词:【SY4进阶】Apollo10.0 Cyber参数实验

实验基础

  • Apollo10.0 源码
  • Docker
  • Vscode
  • Ubuntu20.04
  • 以及完成相关配置

具体可以参考一下这篇文章 icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_60062799/article/details/145029669?spm=1001.2014.3001.5502

实验步骤

步骤一、建立目录

 

步骤二、编写文件

client.cc
#include "cyber/cyber.h"
#include "cyber/parameter/parameter_client.h"using apollo::cyber::ParameterClient;
using apollo::cyber::Parameter;int main(int argc, char* argv[])
{apollo::cyber::Init(argv[0]);// 创建节点std::shared_ptr<apollo::cyber::Node> param_client_node = apollo::cyber::CreateNode("parameter_client");// 创建参数服务端auto param_client = std::make_shared<ParameterClient>(param_client_node, "parameter"); // 后面第二个参数为服务端节点名称// 读取Parameter temp;param_client->GetParameter("type", &temp);AINFO << temp.Name() << ":" << temp.AsString();param_client->GetParameter("height", &temp);AINFO << temp.Name() << ":" << temp.AsDouble();param_client->GetParameter("age", &temp);AINFO << temp.Name() << ":" << temp.AsInt64();// 修改参数param_client->SetParameter(Parameter("age", 20));AINFO << "----------修改后的参数-------------";param_client->GetParameter("age", &temp);AINFO << temp.Name() << ":" << temp.AsInt64();// 获取所有参数std::vector<Parameter> params;param_client->ListParameters(&params);for (auto &&param : params){// AINFO << param.Name() << ":" << param.TypeName();AINFO << param.DebugString();}apollo::cyber::WaitForShutdown();return 0;
}
parameter_service.cc 
#include "cyber/cyber.h"
#include "cyber/parameter/parameter_server.h"using apollo::cyber::ParameterServer;
using apollo::cyber::Parameter;int main(int argc, char* argv[])
{apollo::cyber::Init(argv[0]);// 创建节点std::shared_ptr<apollo::cyber::Node> param_service_node = apollo::cyber::CreateNode("parameter");// 创建参数服务端auto param_service = std::make_shared<ParameterServer>(param_service_node);// 设置参数param_service->SetParameter(Parameter("type", "Xiaomi"));param_service->SetParameter(Parameter("height", 2.00));param_service->SetParameter(Parameter("age", 32));// 获取参数Parameter temp;param_service->GetParameter("type", &temp);AINFO << temp.Name() << ":" << temp.AsString();param_service->GetParameter("height", &temp);AINFO << temp.Name() << ":" << temp.AsDouble();param_service->GetParameter("age", &temp);AINFO << temp.Name() << ":" << temp.AsInt64();// 获取所有参数std::vector<Parameter> params;param_service->ListParameters(&params);for (auto &&param : params){AINFO << param.Name() << ":" << param.TypeName() << ":" << param.DebugString();}apollo::cyber::WaitForShutdown();return 0;
}
BUILD
load("//tools:apollo_package.bzl", "apollo_cc_library", "apollo_cc_binary", "apollo_package", "apollo_component")
load("//tools:cpplint.bzl", "cpplint")package(default_visibility = ["//visibility:public"])apollo_cc_binary(name = "param_client",srcs = ["client.cc"],deps = ["//cyber",],
)
apollo_cc_binary(name = "param_server",srcs = ["parameter_service.cc"],deps = ["//cyber",],
)apollo_package()cpplint()

步骤三、编译执行

编译文件
buildtool build -p cyber/demo_cc/parameter/
更改变量,使终端能够打印出消息
 export GLOG_alsologtostderr=1
执行

第一个终端执行

bazel-bin/cyber/demo_cc/parameter/param_client

第二个终端执行

 bazel-bin/cyber/demo_cc/parameter/param_server

执行结果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com