How to publish messages on a topic of type rosgraph_msgs/Clock?
Hello!
I want to give values to a topic with this type of mesage (rosgraph_msgs/Clock)
I create a variable called "reloj" for example:
rosgraph_msgs::Clock reloj;
How do I give a value to that variable?, because it has two parts (secs and nsecs)
For example in float64 I give it the value this way
std_msgs::Float64 variable;
variable.data = 0;
I would like to do the same but in rosgraph_msgs/Clock, one value for "secs" and one for "nsecs"
I tried: reloj.clock.secs = 1; reloj.clock.nsecs = 100;
reloj.clock_secs = 1; reloj.clock_nsecs = 100;
But this does not work
I found that putting the following does work
reloj.clock = {5,88};
but when creating the node executable, I get this warning:
warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 reloj.clock = {5,88};
I use ROS kinetic and roscpp (c++)
this is the code in c++
#include "ros/ros.h"
#include "rosgraph_msgs/Clock.h"
rosgraph_msgs::Clock reloj;
int main(int argc, char **argv)
{
ros::init(argc, argv, "pubsubclock");
ros::NodeHandle n;
ros::Publisher publicador;
publicador = n.advertise<rosgraph_msgs::Clock>("topico_pub", 1000);
reloj.clock = {5,88};
ros::Rate loop_rate(10);
while (ros::ok()) {
publicador.publish(reloj);
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}
thank you very much
that doesn't tell us very much. Please explain what you found that "does not work". Include any error messages that you get.
Please use the
edit
button/link to update your original question.I updated the message
The syntax
reloj.clock = {5,88};
is a form of constructor calling that is new in C++11. You cannot use it without telling the compiler to compile in C++11 mode.