Hi,
I would like to create a component that will monitor my joysticks. As I have
2 of them, with different combinaison of button and axes, I created a
generic component (HML::Joystick) that will manage detection, connection,
... and have virtual fonction for button and axis events. The specific
components (HML::ManettePS1 for isntance) will be an implementation of
theses virtual functions and a "Deployable" Orocos Component.
I am stucked with a simple empty code, because HML::ManettePS1 which
inheritates from HML::Joystick which inheritates from TaskContest doesn't
want to deploy :
"Unable to create Orocos Component 'HML::ManettePS1' : unknown component
>
I am quite sure this is not a deployment problem or a build problem because
when a make HML::ManettePS1 a direct child of TaskContext it deploys.
I migth be a very simple inheritance question, but there is so few lines...
Here are the lines :
/* ManettePs1.hpp */
#ifndef MANETTE_PS1_HPP_
#define MANETTE_PS1_HPP_
#include "Joystick.hpp"
namespace HML
{
using namespace RTT;
class ManettePS1: public Joystick
{
public:
ManettePS1(const std::string& name);
~ManettePS1();
};
}
#endif /* MANETTE_PS1_HPP_ */
-----------------------------------------------------------------------------------------------------------------------------
/* ManettePs1.cpp */
#include "ManettePS1.hpp"
#include <ocl/Component.hp
using namespace HML;
ORO_CREATE_COMPONENT( HML::ManettePS1 )
ManettePS1::ManettePS1(const std::string& name) :
Joystick(name)
{
}
ManettePS1::~ManettePS1()
{
}
-----------------------------------------------------------------------------------------------------------------------------
/*Joystick.hpp */
#ifndef JOYSTICK_HPP_
#define JOYSTICK_HPP_
#include <rtt/TaskContext.hp
#include <rtt/Port.hp
#include <rtt/extras/Properties.hp
#include <rtt/OperationCaller.hp
namespace HML
{
using namespace RTT;
class Joystick: public TaskContext
{
public:
Joystick(const std::string& name);
~Joystick();
};
}
#endif /* JOYSTICK_HPP_ */
-----------------------------------------------------------------------------------------------------------------------------
/* Joystick.cpp */
#include "Joystick.hpp"
#include <ocl/Component.hp
using namespace HML;
Joystick::Joystick(const std::string& name) :
TaskContext(name, PreOperational)
{
}
Joystick::~Joystick()
{
}
Inheritance from TaskContest failed
On Wednesday 29 September 2010 18:46:33 Willy Lambert wrote:
> Hi,
>
> I would like to create a component that will monitor my joysticks. As I
> have 2 of them, with different combinaison of button and axes, I created a
> generic component (HML::Joystick) that will manage detection, connection,
> ... and have virtual fonction for button and axis events. The specific
> components (HML::ManettePS1 for isntance) will be an implementation of
> theses virtual functions and a "Deployable" Orocos Component.
Sounds ok.
>
> I am stucked with a simple empty code, because HML::ManettePS1 which
> inheritates from HML::Joystick which inheritates from TaskContest doesn't
> want to deploy :
>
> "Unable to create Orocos Component 'HML::ManettePS1' : unknown component
You can check known components by typing: displayComponentTypes() at the TB
prompt.
Next you can try to force loading a library using the
import("/absolute/path/to/library.so") and see which error messages you get.
>
>
> I am quite sure this is not a deployment problem or a build problem because
> when a make HML::ManettePS1 a direct child of TaskContext it deploys.
>
> I migth be a very simple inheritance question, but there is so few lines...
> Here are the lines :
...
These all look correct. As you might now, ORO_CREATE_COMPONENT only allows one
component in a .so file. Use the alternative macros for multi-component .so
files.
Peter
Inheritance from TaskContest failed
2010/9/30 Peter Soetens <peter [..] ...>
> On Wednesday 29 September 2010 18:46:33 Willy Lambert wrote:
> > Hi,
> >
> > I would like to create a component that will monitor my joysticks. As I
> > have 2 of them, with different combinaison of button and axes, I created
> a
> > generic component (HML::Joystick) that will manage detection, connection,
> > ... and have virtual fonction for button and axis events. The specific
> > components (HML::ManettePS1 for isntance) will be an implementation of
> > theses virtual functions and a "Deployable" Orocos Component.
>
> Sounds ok.
>
> >
> > I am stucked with a simple empty code, because HML::ManettePS1 which
> > inheritates from HML::Joystick which inheritates from TaskContest doesn't
> > want to deploy :
> >
> > "Unable to create Orocos Component 'HML::ManettePS1' : unknown component
>
> You can check known components by typing: displayComponentTypes() at the TB
> prompt.
>
I did but none of my components are here when I use Joystick heritance, the
HML::ManettePS1 is here when I don't use it
>
> Next you can try to force loading a library using the
> import("/absolute/path/to/library.so") and see which error messages you
> get.
>
I wrote this in the TaskBrowser, it answered true, but displayComponent
still doesn't want to show it
>
> >
> >
> > I am quite sure this is not a deployment problem or a build problem
> because
> > when a make HML::ManettePS1 a direct child of TaskContext it deploys.
> >
> > I migth be a very simple inheritance question, but there is so few
> lines...
> > Here are the lines :
>
> ...
>
> These all look correct. As you might now, ORO_CREATE_COMPONENT only allows
> one
> component in a .so file. Use the alternative macros for multi-component .so
> files.
>
I just have one libhnl-manettePS1.so
May I send my eclipse project ?
>
> Peter
>
Inheritance from TaskContest failed
On Thursday 30 September 2010 14:11:41 Willy Lambert wrote:
> 2010/9/30 Peter Soetens <peter [..] ...>
>
> > On Wednesday 29 September 2010 18:46:33 Willy Lambert wrote:
> > > Hi,
> > >
> > > I would like to create a component that will monitor my joysticks. As I
> > > have 2 of them, with different combinaison of button and axes, I
> > > created
> >
> > a
> >
> > > generic component (HML::Joystick) that will manage detection,
> > > connection, ... and have virtual fonction for button and axis events.
> > > The specific components (HML::ManettePS1 for isntance) will be an
> > > implementation of theses virtual functions and a "Deployable" Orocos
> > > Component.
> >
> > Sounds ok.
> >
> > > I am stucked with a simple empty code, because HML::ManettePS1 which
> > > inheritates from HML::Joystick which inheritates from TaskContest
> > > doesn't want to deploy :
> > >
> > > "Unable to create Orocos Component 'HML::ManettePS1' : unknown
> > > component
> >
> > You can check known components by typing: displayComponentTypes() at the
> > TB prompt.
>
> I did but none of my components are here when I use Joystick heritance, the
> HML::ManettePS1 is here when I don't use it
This sounds insane. Inheritance has been used since a long time, I can't
remember that it caused any problems.
>
> > Next you can try to force loading a library using the
> > import("/absolute/path/to/library.so") and see which error messages you
> > get.
>
> I wrote this in the TaskBrowser, it answered true, but displayComponent
> still doesn't want to show it
>
> > > I am quite sure this is not a deployment problem or a build problem
> >
> > because
> >
> > > when a make HML::ManettePS1 a direct child of TaskContext it deploys.
> > >
> > > I migth be a very simple inheritance question, but there is so few
> >
> > lines...
> >
> > > Here are the lines :
> > ...
> >
> > These all look correct. As you might now, ORO_CREATE_COMPONENT only
> > allows one
> > component in a .so file. Use the alternative macros for multi-component
> > .so files.
>
> I just have one libhnl-manettePS1.so
>
>
> May I send my eclipse project ?
You can send it personally (not the ml).
Peter