iCub-main
RawValuesPublisherClient_ParamsParser.cpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2023-2023 Istituto Italiano di Tecnologia (IIT)
3  * SPDX-License-Identifier: LGPL-2.1-or-later
4  */
5 
6 
7 // Generated by yarpDeviceParamParserGenerator (1.0)
8 // This is an automatically generated file. Please do not edit it.
9 // It will be re-generated if the cmake flag ALLOW_DEVICE_PARAM_PARSER_GERNERATION is ON.
10 
11 // Generated on: Fri Oct 4 16:28:45 2024
12 
13 
15 #include <yarp/os/LogStream.h>
16 #include <yarp/os/Value.h>
17 
18 namespace {
19  YARP_LOG_COMPONENT(RawValuesPublisherClientParamsCOMPONENT, "yarp.device.RawValuesPublisherClient")
20 }
21 
22 
24 {
25 }
26 
27 
29 {
30  std::vector<std::string> params;
31  params.push_back("remote");
32  params.push_back("local");
33  params.push_back("externalConnection");
34  params.push_back("carrier");
35  return params;
36 }
37 
38 
39 bool RawValuesPublisherClient_ParamsParser::parseParams(const yarp::os::Searchable & config)
40 {
41  //Check for --help option
42  if (config.check("help"))
43  {
44  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << getDocumentationOfDeviceParams();
45  }
46 
47  std::string config_string = config.toString();
48  yarp::os::Property prop_check(config_string.c_str());
49  //Parser of parameter remote
50  {
51  if (config.check("remote"))
52  {
53  m_remote = config.find("remote").asString();
54  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << "Parameter 'remote' using value:" << m_remote;
55  }
56  else
57  {
58  yCError(RawValuesPublisherClientParamsCOMPONENT) << "Mandatory parameter 'remote' not found!";
59  yCError(RawValuesPublisherClientParamsCOMPONENT) << "Description of the parameter: Prefix of the ports to which to connect, opened by RawValuesParameterSensorsServer device.";
60  return false;
61  }
62  prop_check.unput("remote");
63  }
64 
65  //Parser of parameter local
66  {
67  if (config.check("local"))
68  {
69  m_local = config.find("local").asString();
70  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << "Parameter 'local' using value:" << m_local;
71  }
72  else
73  {
74  yCError(RawValuesPublisherClientParamsCOMPONENT) << "Mandatory parameter 'local' not found!";
75  yCError(RawValuesPublisherClientParamsCOMPONENT) << "Description of the parameter: Port prefix of the ports opened by this device.";
76  return false;
77  }
78  prop_check.unput("local");
79  }
80 
81  //Parser of parameter externalConnection
82  {
83  if (config.check("externalConnection"))
84  {
85  m_externalConnection = config.find("externalConnection").asBool();
86  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << "Parameter 'externalConnection' using value:" << m_externalConnection;
87  }
88  else
89  {
90  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << "Parameter 'externalConnection' using DEFAULT value:" << m_externalConnection;
91  }
92  prop_check.unput("externalConnection");
93  }
94 
95  //Parser of parameter carrier
96  {
97  if (config.check("carrier"))
98  {
99  m_carrier = config.find("carrier").asString();
100  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << "Parameter 'carrier' using value:" << m_carrier;
101  }
102  else
103  {
104  yCInfo(RawValuesPublisherClientParamsCOMPONENT) << "Parameter 'carrier' using DEFAULT value:" << m_carrier;
105  }
106  prop_check.unput("carrier");
107  }
108 
109  /*
110  //This code check if the user set some parameter which are not check by the parser
111  //If the parser is set in strict mode, this will generate an error
112  if (prop_check.size() > 0)
113  {
114  bool extra_params_found = false;
115  for (auto it=prop_check.begin(); it!=prop_check.end(); it++)
116  {
117  if (m_parser_is_strict)
118  {
119  yCError(RawValuesPublisherClientParamsCOMPONENT) << "User asking for parameter: "<<it->name <<" which is unknown to this parser!";
120  extra_params_found = true;
121  }
122  else
123  {
124  yCWarning(RawValuesPublisherClientParamsCOMPONENT) << "User asking for parameter: "<< it->name <<" which is unknown to this parser!";
125  }
126  }
127 
128  if (m_parser_is_strict && extra_params_found)
129  {
130  return false;
131  }
132  }
133  */
134  return true;
135 }
136 
137 
139 {
140  std::string doc;
141  doc = doc + std::string("\n=============================================\n");
142  doc = doc + std::string("This is the help for device: RawValuesPublisherClient\n");
143  doc = doc + std::string("\n");
144  doc = doc + std::string("This is the list of the parameters accepted by the device:\n");
145  doc = doc + std::string("'remote': Prefix of the ports to which to connect, opened by RawValuesParameterSensorsServer device.\n");
146  doc = doc + std::string("'local': Port prefix of the ports opened by this device.\n");
147  doc = doc + std::string("'externalConnection': If set to true, the connection to the rpc port of the RVP server is skipped and it is possible to connect to the data source externally after being opened\n");
148  doc = doc + std::string("'carrier': The carier used for the connection with the server.\n");
149  doc = doc + std::string("\n");
150  doc = doc + std::string("Here are some examples of invocation command with yarpdev, with all params:\n");
151  doc = doc + " yarpdev --device rawValuesPublisherClient --remote <mandatory_value> --local <mandatory_value> --externalConnection false --carrier tcp\n";
152  doc = doc + std::string("Using only mandatory params:\n");
153  doc = doc + " yarpdev --device rawValuesPublisherClient --remote <mandatory_value> --local <mandatory_value>\n";
154  doc = doc + std::string("=============================================\n\n"); return doc;
155 }
bool parseParams(const yarp::os::Searchable &config)