Problem to connect Services

I try to figure out how to connect the service of one component to another component. Is there a way to do this with the deployer? I search in the documentation and I found nothing.

I try to make a test case with one ComponentA who requires service "display" and another ComponentB who provides the service "display". In the display service, there is juste "oneOperation"

In the ComponentA, I check if the operation is ready and if the service "display" is ready.

I start the ComponentA and the ComponentB in two deployer-corba.

I make another program who find the two components and connect the service "display". After it check if it's ready in the test program and it's ready, but the service and the operation never become ready in the ComponentA.

I join the test case.

Thanks for your help.

AttachmentSize
TestService.zip6.27 KB

Problem to connect Services

On Wednesday 01 December 2010 14:55:04 ookki [..] ... wrote:
> I try to figure out how to connect the service of one component to another
> component. Is there a way to do this with the deployer? I search in the
> documentation and I found nothing.
>
> I try to make a test case with one ComponentA who requires service
> "display" and another ComponentB who provides the service "display". In
> the display service, there is juste "oneOperation"
>
> In the ComponentA, I check if the operation is ready and if the service
> "display" is ready.
>
> I start the ComponentA and the ComponentB in two deployer-corba.
>
> I make another program who find the two components and connect the service
> "display". After it check if it's ready in the test program and it's
> ready, but the service and the operation never become ready in the
> ComponentA.

There was some functionality missing to have this operational. It required
quite some patches on the master branch, so this is 2.2 material. I have your
testcase working. The output, when starting the TestProgram, is:

...
Not ready
6.758 [ Debug ][Logger] ServiceRequeste: oneOperation not set up.
Not ready
7.233 [ Debug ][Logger] Creating CService for ComponentA
7.294 [ Debug ][Logger] Creating CServiceRequester for ComponentA
7.314 [ Debug ][Logger] Creating CServiceRequester for display
7.385 [ Debug ][Logger] Creating CService for ComponentB
7.468 [ Debug ][Logger] Creating CServiceRequester for ComponentB
7.494 [ Debug ][Logger] ServiceRequeste: oneOperation not set up.
7.517 [ Debug ][Logger] Constructed OperationCaller from remote
implementation 'oneOperation'.
Service display ready
Service display ready
1 Test Msg
2 Test Msg
Service display ready
Service display ready
3 Test Msg
Service display ready
4 Test Msg

You must update both rtt/ocl from gitorious' master.

Note that your test's use of 'Import' is no longer correct on master. You need
to use 'Path' instead. I'll probably add some detection in the deployer to
catch a case like this and to warn the user that they are using deprecated
syntax.

Regarding Philippe's comment, I had the same issue. I also added a log()
statement in TaskContextProxy's Create method for the reason why it's
returning null (orb nill or empty name) and a suggestion to the solution (call
InitOrb())

Peter

Problem to connect

Thanks for your help.
I will move to the master and change the Import to Path.
I think I just erase the InitOrb when I clean up the code.

Problem to connect Services

Thanks for your help. I will move to the master and change the Import to Path. I think I just erase the InitOrb when I clean up the code.

Problem to connect Services

Hello,

I'm trying to do the same thing as you. I used your example to validate my
thought, but I had to add the InitOrb, ThreadOrb... in the test program to
make it work. I attached the modified version with which I was able to
reproduce the problem. I didn't look further into the RTT code, but it seems
that it's just impossible to connect two services from a third-party
process. We had the same problem with ports some days ago, so I guess this
may be a similar problem?

Does someone has already successfully connected two "external" services ?

Philippe

2010/12/1 <ookki [..] ...>

> I try to figure out how to connect the service of one component to another
> component. Is there a way to do this with the deployer? I search in the
> documentation and I found nothing.
>
> I try to make a test case with one ComponentA who requires service
> "display" and another ComponentB who provides the service "display". In the
> display service, there is juste "oneOperation"
>
> In the ComponentA, I check if the operation is ready and if the service
> "display" is ready.
>
> I start the ComponentA and the ComponentB in two deployer-corba.
>
> I make another program who find the two components and connect the service
> "display". After it check if it's ready in the test program and it's ready,
> but the service and the operation never become ready in the ComponentA.
>
> I join the test case.
>
> Thanks for your help.
>
>
> --
> Orocos-Dev mailing list
> Orocos-Dev [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
>
>

Problem to connect Services

On Thursday 02 December 2010 14:28:09 Philippe Hamelin wrote:
> Hello,
>
> I'm trying to do the same thing as you. I used your example to validate my
> thought, but I had to add the InitOrb, ThreadOrb... in the test program to
> make it work. I attached the modified version with which I was able to
> reproduce the problem. I didn't look further into the RTT code, but it
> seems that it's just impossible to connect two services from a third-party
> process. We had the same problem with ports some days ago, so I guess this
> may be a similar problem?
>
> Does someone has already successfully connected two "external" services ?

For connecting two remote ports, you need the master or toolchain-2.1 branch.
For connecting two remote services, that's only on master.

Peter

Problem to connect Services

Thank you Peter. I will switch on the master branch. Now waiting for the
official 2.2 release :)

Philippe

2010/12/2 Peter Soetens <peter [..] ...>

> On Thursday 02 December 2010 14:28:09 Philippe Hamelin wrote:
> > Hello,
> >
> > I'm trying to do the same thing as you. I used your example to validate
> my
> > thought, but I had to add the InitOrb, ThreadOrb... in the test program
> to
> > make it work. I attached the modified version with which I was able to
> > reproduce the problem. I didn't look further into the RTT code, but it
> > seems that it's just impossible to connect two services from a
> third-party
> > process. We had the same problem with ports some days ago, so I guess
> this
> > may be a similar problem?
> >
> > Does someone has already successfully connected two "external" services ?
>
> For connecting two remote ports, you need the master or toolchain-2.1
> branch.
> For connecting two remote services, that's only on master.
>
> Peter
>

Problem to connect Services

I try to figure out how to connect the service of one component to another component. Is there a way to do this with the deployer? I search in the documentation and I found nothing.

I try to make a test case with one ComponentA who requires service "display" and another ComponentB who provides the service "display". In the display service, there is juste "oneOperation"

In the ComponentA, I check if the operation is ready and if the service "display" is ready.

I start the ComponentA and the ComponentB in two deployer-corba.

I make another program who find the two components and connect the service "display". After it check if it's ready in the test program and it's ready, but the service and the operation never become ready in the ComponentA.

I join the test case.

Thanks for your help.