I'm trying to send operation to a remote TaskContext with a c++ application.
I use this code to send operation:
try{ TaskContext* taskContext = TaskContextProxy::Create("SpaceNav"); OperationCaller<void(vector0)> func = taskContext->getOperation("setPosition"); vector1 tmpvect(6,0); SendHandle<void(vector2)> handle = func.send(tmpvect); } catch(CORBA::Exception &e) { Logger::log() << Logger::Info << CORBA_EXCEPTION_INFO(e) << Logger::endl; }When I use a operation with double as arguments, there is no problem, but when I try to pass vector<double> I got this exception :
system exception, ID 'IDL:omg.org/CORBA/COMM_FAILURE:1.0'TAO exception, minor code = 6 (failed to recv request response; ENOENT), completed = MAYB
and the component "SpaceNav" stops. (Aborted).
I'm able to send operation with the ctaskbrowser.
OperationCaller send
I get a new problem since I updated from the master today.
I create an OperationCaller, after that I quit the Component who has the operation. After, I use the method "ready" on the OperationCaller and I get this message
OperationCaller<Signature> func = taskContext->getOperation(operationName);
if(func.ready())
SendHandle<Signature> handle = func.send(arg1);
Message : terminate called after throwing an instance of 'CORBA::COMM_FAILURE'
This is another different error
OperationCaller send
I get a new problem since I updated from the master today.
I create an OperationCaller, after that I quit the Component who has the operation. After, I use the method "ready" on the OperationCaller and I get this message
Message : terminate called after throwing an instance of 'CORBA::COMM_FAILURE'This is another different error
OperationCaller send
I also get a problem with the collectIfDone(data) of SendHandle.
It always returns SendNotReady.
OperationCaller send
I also get a problem with the collectIfDone(data) of SendHandle. It always returns SendNotReady.
I'm using the master.When
I'm using the master.
When the "SpaceNav" aborted, I got this message to:
deployer-corba-gnulinux: /usr/include/boost/smart_ptr/intrusive_ptr.hpp:166: T* boost::intrusive_ptr<T>::operator->() const [with T = RTT::base::DataSourceBase]: Assertion `px != 0' failed.
I'm using the master.When
I'm using the master.
When the "SpaceNav" aborted, I got this message to:
deployer-corba-gnulinux: /usr/include/boost/smart_ptr/intrusive_ptr.hpp:166: T* boost::intrusive_ptr<T>::operator->() const [with T = RTT::base::DataSourceBase]: Assertion `px != 0' failed.
I'm using the master.When
On Thursday 18 November 2010 18:57:02 ookki [..] ... wrote:
> I'm using the master.
>
> When the "SpaceNav" aborted, I got this message to:
>
> deployer-corba-gnulinux:
> /usr/include/boost/smart_ptr/intrusive_ptr.hpp:166: T*
> boost::intrusive_ptr<T>::operator->() const [with T =
> RTT::base::DataSourceBase]: Assertion `px != 0' failed.
Thanks for this information. I'll try to reproduce it.
Peter
OperationCaller send vector<double>
On Thu, Nov 18, 2010 at 5:08 PM, <ookki [..] ...> wrote:
> vector<double> tmpvect(6,0);
> }
> I'm trying to send operation to a remote TaskContext with a c++ application.
>
> I use this code to send operation:
>
> try{
> TaskContext* taskContext = TaskContextProxy::Create("SpaceNav");
> OperationCaller<void(vector
> SendHandle<void(vector
> catch(CORBA::Exception &e)
> {
> Logger::log() << Logger::Info << CORBA_EXCEPTION_INFO(e) << Logger::endl;
> }
>
> When I use a operation with double as arguments, there is no problem, but when I try to pass vector<double> I got this exception :
>
> system exception, ID 'IDL:omg.org/CORBA/COMM_FAILURE:1.0'TAO exception, minor code = 6 (failed to recv request response; ENOENT), completed = MAYB
>
> and the component "SpaceNav" stops. (Aborted).
>
> I'm able to send operation with the ctaskbrowser.
Did you try this with the master branch of rtt ?
It looks like the abort in SpaceNav did cause the CORBA exception. The
question is thus why SpaceNav aborts. Any assertions printed ?
Peter
--
Orocos-Dev mailing list
Orocos-Dev [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
OperationCaller send vector<double>
I'm trying to send operation to a remote TaskContext with a c++ application.
I use this code to send operation:
try{
vector<double> tmpvect(6,0);
}
TaskContext* taskContext = TaskContextProxy::Create("SpaceNav");
OperationCaller<void(vector
SendHandle<void(vector
catch(CORBA::Exception &e)
{
Logger::log() << Logger::Info << CORBA_EXCEPTION_INFO(e) << Logger::endl;
}
When I use a operation with double as arguments, there is no problem, but when I try to pass vector<double> I got this exception :
system exception, ID 'IDL:omg.org/CORBA/COMM_FAILURE:1.0'TAO exception, minor code = 6 (failed to recv request response; ENOENT), completed = MAYB
and the component "SpaceNav" stops. (Aborted).
I'm able to send operation with the ctaskbrowser.