iCub-main
RawValuesPublisherServer_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(RawValuesPublisherServerParamsCOMPONENT, "yarp.device.RawValuesPublisherServer")
20 }
21 
22 
24 {
25 }
26 
27 
29 {
30  std::vector<std::string> params;
31  params.push_back("name");
32  params.push_back("period");
33  return params;
34 }
35 
36 
37 bool RawValuesPublisherServer_ParamsParser::parseParams(const yarp::os::Searchable & config)
38 {
39  //Check for --help option
40  if (config.check("help"))
41  {
42  yCInfo(RawValuesPublisherServerParamsCOMPONENT) << getDocumentationOfDeviceParams();
43  }
44 
45  std::string config_string = config.toString();
46  yarp::os::Property prop_check(config_string.c_str());
47  //Parser of parameter name
48  {
49  if (config.check("name"))
50  {
51  m_name = config.find("name").asString();
52  yCInfo(RawValuesPublisherServerParamsCOMPONENT) << "Parameter 'name' using value:" << m_name;
53  }
54  else
55  {
56  yCError(RawValuesPublisherServerParamsCOMPONENT) << "Mandatory parameter 'name' not found!";
57  yCError(RawValuesPublisherServerParamsCOMPONENT) << "Description of the parameter: Prefix of the port opened by this device";
58  return false;
59  }
60  prop_check.unput("name");
61  }
62 
63  //Parser of parameter period
64  {
65  if (config.check("period"))
66  {
67  m_period = config.find("period").asInt64();
68  yCInfo(RawValuesPublisherServerParamsCOMPONENT) << "Parameter 'period' using value:" << m_period;
69  }
70  else
71  {
72  yCError(RawValuesPublisherServerParamsCOMPONENT) << "Mandatory parameter 'period' not found!";
73  yCError(RawValuesPublisherServerParamsCOMPONENT) << "Description of the parameter: Refresh period of the broadcasted values in ms";
74  yCError(RawValuesPublisherServerParamsCOMPONENT) << "Remember: Units for this parameter are: 'ms'";
75  return false;
76  }
77  prop_check.unput("period");
78  }
79 
80  /*
81  //This code check if the user set some parameter which are not check by the parser
82  //If the parser is set in strict mode, this will generate an error
83  if (prop_check.size() > 0)
84  {
85  bool extra_params_found = false;
86  for (auto it=prop_check.begin(); it!=prop_check.end(); it++)
87  {
88  if (m_parser_is_strict)
89  {
90  yCError(RawValuesPublisherServerParamsCOMPONENT) << "User asking for parameter: "<<it->name <<" which is unknown to this parser!";
91  extra_params_found = true;
92  }
93  else
94  {
95  yCWarning(RawValuesPublisherServerParamsCOMPONENT) << "User asking for parameter: "<< it->name <<" which is unknown to this parser!";
96  }
97  }
98 
99  if (m_parser_is_strict && extra_params_found)
100  {
101  return false;
102  }
103  }
104  */
105  return true;
106 }
107 
108 
110 {
111  std::string doc;
112  doc = doc + std::string("\n=============================================\n");
113  doc = doc + std::string("This is the help for device: RawValuesPublisherServer\n");
114  doc = doc + std::string("\n");
115  doc = doc + std::string("This is the list of the parameters accepted by the device:\n");
116  doc = doc + std::string("'name': Prefix of the port opened by this device\n");
117  doc = doc + std::string("'period': Refresh period of the broadcasted values in ms\n");
118  doc = doc + std::string("\n");
119  doc = doc + std::string("Here are some examples of invocation command with yarpdev, with all params:\n");
120  doc = doc + " yarpdev --device rawValuesPublisherServer --name <mandatory_value> --period <mandatory_value>\n";
121  doc = doc + std::string("Using only mandatory params:\n");
122  doc = doc + " yarpdev --device rawValuesPublisherServer --name <mandatory_value> --period <mandatory_value>\n";
123  doc = doc + std::string("=============================================\n\n"); return doc;
124 }
bool parseParams(const yarp::os::Searchable &config)