Using reporter over CORBA

Hi

I am working on an application where I want to log data from a remote component. So on my local machine, I have a reporter. I load the remote component over CORBA and connect the ports that I want to log to the reporter. Accessing components over CORBA is not a problem. But when I start the reporter, I see that none of the remote ports are reported (I see this by loading the .nc file in kst), while ports from local components are available. After I start the remote component (so it sends data on its output ports), stop it, and restart it, the reporter sees the remote ports. Is this normal behaviour?

Using reporter over CORBA

Is the "keep_last_written_value" flag involved here? IIRC we had to ensure that it was on for all GUI connections, to make sure that "old" data is available as soon as the GUI connects.
S

On Jun 24, 2015, at 05:51 PM, ruben [dot] vanparys [..] ... wrote:

Hi

I am working on an application where I want to log data from a remote
component. So on my local machine, I have a reporter. I load the remote
component over CORBA and connect the ports that I want to log to the
reporter. Accessing components over CORBA is not a problem. But when I start
the reporter, I see that none of the remote ports are reported (I see this by
loading the .nc file in kst), while ports from local components are
available. After I start the remote component (so it sends data on its output
ports), stop it, and restart it, the reporter sees the remote ports. Is this
normal behaviour?

Ruben Smits's picture

Using reporter over CORBA

What type of data is this? Could you replace the NetCDFReporter with a
FileReporter and check if it fills in the header? If not, there is
definitely a bug IMO. If your ports contain dynamic sized types, like
std::vector<T> it is important that you use the setDataSample function to
initialize all parts in the data connection to the correct size. AFAIK the
reporter needs at least one sample with the correct size before it works
correctly.

R.

On Fri, Jun 26, 2015 at 5:47 PM, <ruben [dot] vanparys [..] ...> wrote:

> Thank you for your answer.
> I enabled the flag for my remote component's port, but that didn't solve
> the
> problem...
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>

Using reporter over CORBA

data is of type std::vector<double>. Should the setDataSample function
be called after the (remote) connection is made? As for now, I called
setDataSample before the connection was made... maybe that's the
problem? However for local components, I also call setDataSample before
connecting them to the reporter, while these ports are visible.

Sorry for the late answer, I was working on other projects lately...

Ruben VP

On 29-06-15 09:03, Ruben Smits wrote:
> What type of data is this? Could you replace the NetCDFReporter with a
> FileReporter and check if it fills in the header? If not, there is
> definitely a bug IMO. If your ports contain dynamic sized types, like
> std::vector<T> it is important that you use the setDataSample function
> to initialize all parts in the data connection to the correct size.
> AFAIK the reporter needs at least one sample with the correct size
> before it works correctly.
>
> R.
>
> On Fri, Jun 26, 2015 at 5:47 PM, <ruben [dot] vanparys [..] ...
> <mailto:ruben [dot] vanparys [..] ...>> wrote:
>
> Thank you for your answer.
> I enabled the flag for my remote component's port, but that didn't
> solve the
> problem...
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> <mailto:Orocos-Users [..] ...>
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>
>
>
>

Using reporter over CORBA

Thank you for your answer. I enabled the flag for my remote component's port, but that didn't solve the problem...