Where ParameterServer determines parameter type while filling XmlRpcValue?

asked 2022-07-10 22:50:37 -0500

standmit gravatar image

Example code:

include <ros/ros.h>

int main(int argc, char** argv) {
  ros::init(argc, argv, "paramtype");
  ros::NodeHandle nh;
  XmlRpc::XmlRpcValue value;
  nh.getParam("/ns", value);
  std::cout << value.toXml() << std::endl;
  return 0;
}

Example launch:

<launch>
  <rosparam ns="/ns">
    abc: 2
    def: 3.14
  </rosparam>
  ...
</launch>

Output is:

<value><struct><member><name>abc</name><value><i4>2</i4></value></member><member><name>def</name><value><double>3.1400000000000001</double></value></member></struct></value>

Launch file is just a text. How parameters types was determinated? I would like to see the code, but I can't find it. Please give me a link to related source code. Of cource I can make my own code for the conversion, but I want to find the code called inside the getParam method.

edit retag flag offensive close merge delete