Dear orocos-users list,
I have the following issue, at the moment I have some trouble figuring
out how to realize a functionality of calling arbitrary operations of tasks.
So precondition is:
- there is a task named "provider" that is running and registered a the
- the task has a registered operation named "testop" (which for now does
not take any parameters and returns void).
- we have a local task "localTask" which has its execution engine running.
- The argument list with correct objects of correct types is already
So now what I want to have is a c++ function like:
void callOp(std::string taskName, std::string opName,
RTT::TaskContext *task =
RTT::corba::TaskContextProxy::Create(taskName , false);
RTT::OperationInterfacePart *operation = nullptr;
operation = task->getOperation(opName);
// now some code that executes the operation call...
And and exemplary call for the test task that I have could be:
callOp("provider", "testop", args);
So at the moment it seems like I can correctly set up the operation
object, but how can I make the call actually happen now?
The produce method itself doesn't seem to execute the call. In examples
that I found, always a "OperationCaller" was used, but
here I do not know the header of the operation in advance, so I can not
use the templated versions.
Question is now, how can I execute the operation?