Apollo 10.0
自动驾驶开放平台
apollo::cyber::ParameterClient类 参考

Parameter Client is used to set/get/list parameter(s) by sending a request to ParameterServer 更多...

#include <parameter_client.h>

apollo::cyber::ParameterClient 的协作图:

Public 类型

using Param = apollo::cyber::proto::Param
 
using NodeName = apollo::cyber::proto::NodeName
 
using ParamName = apollo::cyber::proto::ParamName
 
using BoolResult = apollo::cyber::proto::BoolResult
 
using Params = apollo::cyber::proto::Params
 
using GetParameterClient = Client< ParamName, Param >
 
using SetParameterClient = Client< Param, BoolResult >
 
using ListParametersClient = Client< NodeName, Params >
 

Public 成员函数

 ParameterClient (const std::shared_ptr< Node > &node, const std::string &service_node_name)
 Construct a new ParameterClient object
 
bool GetParameter (const std::string &param_name, Parameter *parameter)
 Get the Parameter object
 
bool SetParameter (const Parameter &parameter)
 Set the Parameter object
 
bool ListParameters (std::vector< Parameter > *parameters)
 Get all the Parameter objects
 

详细描述

Parameter Client is used to set/get/list parameter(s) by sending a request to ParameterServer

在文件 parameter_client.h39 行定义.

成员类型定义说明

◆ BoolResult

◆ GetParameterClient

◆ ListParametersClient

◆ NodeName

◆ Param

◆ ParamName

◆ Params

◆ SetParameterClient

构造及析构函数说明

◆ ParameterClient()

apollo::cyber::ParameterClient::ParameterClient ( const std::shared_ptr< Node > &  node,
const std::string &  service_node_name 
)

Construct a new ParameterClient object

参数
nodeshared_ptr of the node handler
service_node_namenode name which provide a param services

在文件 parameter_client.cc25 行定义.

27 : node_(node) {
28 get_parameter_client_ = node_->CreateClient<ParamName, Param>(
29 FixParameterServiceName(service_node_name, GET_PARAMETER_SERVICE_NAME));
30
31 set_parameter_client_ = node_->CreateClient<Param, BoolResult>(
32 FixParameterServiceName(service_node_name, SET_PARAMETER_SERVICE_NAME));
33
34 list_parameters_client_ = node_->CreateClient<NodeName, Params>(
35 FixParameterServiceName(service_node_name, LIST_PARAMETERS_SERVICE_NAME));
36}
apollo::cyber::proto::BoolResult BoolResult
apollo::cyber::proto::ParamName ParamName
apollo::cyber::proto::NodeName NodeName
apollo::cyber::proto::Param Param
apollo::cyber::proto::Params Params
constexpr auto SET_PARAMETER_SERVICE_NAME
constexpr auto LIST_PARAMETERS_SERVICE_NAME
constexpr auto GET_PARAMETER_SERVICE_NAME

成员函数说明

◆ GetParameter()

bool apollo::cyber::ParameterClient::GetParameter ( const std::string &  param_name,
Parameter parameter 
)

Get the Parameter object

参数
param_name
parameterthe pointer to store
返回
true
false call service fail or timeout

在文件 parameter_client.cc38 行定义.

39 {
40 auto request = std::make_shared<ParamName>();
41 request->set_value(param_name);
42 auto response = get_parameter_client_->SendRequest(request);
43 if (response == nullptr) {
44 AERROR << "Call " << get_parameter_client_->ServiceName() << " failed";
45 return false;
46 }
47 if (response->type() == ParamType::NOT_SET) {
48 AWARN << "Parameter " << param_name << " not exists yet.";
49 return false;
50 }
51 parameter->FromProtoParam(*response);
52 return true;
53}
#define AERROR
Definition log.h:44
#define AWARN
Definition log.h:43

◆ ListParameters()

bool apollo::cyber::ParameterClient::ListParameters ( std::vector< Parameter > *  parameters)

Get all the Parameter objects

参数
parameterspointer of vector to store all the parameters
返回
true
false call service fail or timeout

在文件 parameter_client.cc65 行定义.

65 {
66 auto request = std::make_shared<NodeName>();
67 request->set_value(node_->Name());
68 auto response = list_parameters_client_->SendRequest(request);
69 if (response == nullptr) {
70 AERROR << "Call " << list_parameters_client_->ServiceName() << " failed";
71 return false;
72 }
73 for (auto& param : response->param()) {
74 Parameter parameter;
75 parameter.FromProtoParam(param);
76 parameters->emplace_back(parameter);
77 }
78 return true;
79}

◆ SetParameter()

bool apollo::cyber::ParameterClient::SetParameter ( const Parameter parameter)

Set the Parameter object

参数
parameterparameter to be set
返回
true set parameter success
false 1. call service timeout
  1. parameter not exists The corresponding log will be recorded at the same time

在文件 parameter_client.cc55 行定义.

55 {
56 auto request = std::make_shared<Param>(parameter.ToProtoParam());
57 auto response = set_parameter_client_->SendRequest(request);
58 if (response == nullptr) {
59 AERROR << "Call " << set_parameter_client_->ServiceName() << " failed";
60 return false;
61 }
62 return response->value();
63}

该类的文档由以下文件生成: