<div dir="ltr"><div>2014-02-25 18:15 GMT+01:00 Gabriel Alcantara <span dir="ltr"><<a href="mailto:alcantara@poli.ufrj.br" target="_blank">alcantara@poli.ufrj.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">Hi Sylvain,<div><br></div><div>I am coding the orogen/octomap package and the opaque type is really consuming me. Eduardo is also helping me.</div><div><br></div><div>What I understood from the opaque type is that we need to encapsulate the octomap, so the orocos can understand this type, am I right?! So I tried to put them as an attribute of an opaque_type_octomap. I got a bunch of compilation erros, even with the gccxml.</div>
<div><br></div><div>Then I tried to do something as a ROS msg and encapsulate like that. I could run the rock-orogen-create, but not the amake. I got this error </div><div><div><br></div><div> error: ‘bool orogen_typekits::fromCORBA(octotype::Task_STATES&, const orogen::octotype::Corba::Task_STATES&)’ redeclared as different kind of symbol<br>
</div><div><br></div><div>the code is in this git </div><div><br></div><div><a href="https://github.com/OpenLEAD/OrogenOctomap.git" target="_blank">https://github.com/OpenLEAD/OrogenOctomap.git</a></div></div></div></blockquote>
<div> </div></div><div><br></div>I found the problem ...<div> 1. you did not include any header that define octomap::OcTree. Newer versions of orogen (in next and master) generate an error about it, but I guess you are using stable.</div>
<div> 2. OcTree.h cannot be loaded by gccxml (they use a tr1 header a.k.a. some C++11 code), and therefore cannot be loaded by orogen itself. This is a major issue. I am going to start with replacing gccxml with clang ASAP, as gccxml is going to really hold us back in the next years.</div>
<div><br></div><div>In the meantime, you will have to do it "the ROS way" :(:</div><div> - create the intermediate type and the conversion functions</div><div> - use the intermediate type directly on the ports (i.e. never the opaque) and convert manually inside the C++ code (in the orogen tasks)</div>
<div><br></div><div>It sucks, but will allow you to go forward</div><div><br></div><div>Sylvain</div><div class="gmail_extra"><br><br></div></div>