From 5e19a8fd686ce9510fb384076744f9c796a59926 Mon Sep 17 00:00:00 2001 From: tinito Date: Thu, 5 Nov 2015 10:51:30 +0100 Subject: [PATCH 1/2] Added callback for uROSnode subscribers --- .project | 16 ++++++++++++++++ tools/urosgen/src/urosgen.py | 12 +++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/.project b/.project index 302aaa6..4331339 100644 --- a/.project +++ b/.project @@ -5,8 +5,24 @@ + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + org.python.pydev.pythonNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature diff --git a/tools/urosgen/src/urosgen.py b/tools/urosgen/src/urosgen.py index 3f4a8c8..a685d1c 100755 --- a/tools/urosgen/src/urosgen.py +++ b/tools/urosgen/src/urosgen.py @@ -1640,6 +1640,14 @@ def gen_pubtopic_handler(self, name): def gen_subtopic_sig(self, name): return 'uros_err_t sub_tpc%s(UrosTcpRosStatus *tcpstp)' % mangled_name(name) + + def gen_subtopic_cb_sig(self, name): + msgtype = self.msgTypes[self.subTopics[name]] + return 'void sub_cb%s(%s &msg)' % (mangled_name(name), msgtype.cname) + + def gen_subtopic_cb(self, name): + msgtype = self.msgTypes[self.subTopics[name]] + return 'sub_cb%s(%s msg)' % (mangled_name(name), msgtype.cname) def gen_subtopic_handler(self, name): msgtype = self.msgTypes[self.subTopics[name]] @@ -1667,7 +1675,8 @@ def gen_subtopic_handler(self, name): text += tab*2 + '/* Receive the next message.*/\n' text += tab*2 + 'UROS_MSG_RECV_LENGTH();\n' text += tab*2 + 'UROS_MSG_RECV_BODY(%s, %s);\n\n' % (msgref, msgtype.cname) - text += tab*2 + '/* TODO: Process the received message.*/\n\n' + text += tab*2 + '/* Call callback function.*/\n' + text += tab*2 + self.gen_subtopic_cb(name) + ';\n\n' text += tab*2 + '/* Dispose the contents of the message.*/\n' text += tab*2 + 'clean_%s(%s);\n' % (msgtype.cname, msgref) text += tab + '}\n' @@ -1965,6 +1974,7 @@ def gen_handlers_header(self): for name in sorted(self.subTopics): text += banner_small('SUBSCRIBED TOPIC: ' + name) + '\n\n' text += self.gen_subtopic_sig(name) + ';\n\n' + text += self.gen_subtopic_cb_sig(name) + ';\n\n' if len(self.subTopics) == 0: text += '/* There are no subscribed topics.*/\n\n' From cd84c8a572dfbd7cdfcfac3a35d226be5be58bb7 Mon Sep 17 00:00:00 2001 From: Boris_il_forte Date: Tue, 10 Nov 2015 19:51:50 +0100 Subject: [PATCH 2/2] Tentative fix - first tentative fix --- tools/urosgen/src/urosgen.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/urosgen/src/urosgen.py b/tools/urosgen/src/urosgen.py index a685d1c..a951e4f 100755 --- a/tools/urosgen/src/urosgen.py +++ b/tools/urosgen/src/urosgen.py @@ -1643,11 +1643,11 @@ def gen_subtopic_sig(self, name): def gen_subtopic_cb_sig(self, name): msgtype = self.msgTypes[self.subTopics[name]] - return 'void sub_cb%s(%s &msg)' % (mangled_name(name), msgtype.cname) + return 'void sub_cb%s(struct %s *msg)' % (mangled_name(name), msgtype.cname) def gen_subtopic_cb(self, name): msgtype = self.msgTypes[self.subTopics[name]] - return 'sub_cb%s(%s msg)' % (mangled_name(name), msgtype.cname) + return 'sub_cb%s(&msg)' % mangled_name(name) def gen_subtopic_handler(self, name): msgtype = self.msgTypes[self.subTopics[name]]