1
J'essaye de passer un constructeur de classe dans la fonction d'abonnement de ros. Est-il possible d'avoir le constructeur appelé quand le sujet est publié?Est-il possible d'envoyer un constructeur dans un nœud ros abonné?
class udpMsg
{
public:
std::string udp;
size_t posOfDelim;
std::string token;
udpMsg(){};
udpMsg(const std_msgs::String::ConstPtr& msg)
{
udp = std::string(msg->data);
posOfDelim = udp.find(delimiter);
token = udp.substr(0, posOfDelim);
}
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "listener");
ros::NodeHandle n;
A_pub = n.advertise<udpubsub::msgA>("Amsg", 1000);
B_pub = n.advertise<udpubsub::msgB>("Bmsg", 1000);
udpMsg mainMsg;
ros::Subscriber sub = n.subscribe("chatter", 1000,mainMsg.udpMsg)
ros::spin();
Quels sont les types des arguments à inscrire? Je soupçonne qu'il cherche une fonction de rappel. Et je suppose que ce n'est pas une fonction membre mais plutôt une fonction membre libre ou statique. –