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{
        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

    OperationCaller17 func = taskContext->getOperation(operationName); 
    if(func.ready())
    SendHandle18 handle = func.send(arg1);
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:
> 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<double>)> func = taskContext->getOperation("setPosition");
>                vector<double> tmpvect(6,0);
>                SendHandle<void(vector<double>)> 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.

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{
TaskContext* taskContext = TaskContextProxy::Create("SpaceNav");
OperationCaller<void(vector<double>)> func = taskContext->getOperation("setPosition");
vector<double> tmpvect(6,0);
SendHandle<void(vector<double>)> 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.