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("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
↧