Re: [Discuss OpenCPI] Accessing Complex Properties (struct) of A Worker

From: Brian Padalino <bpadalino_at_gmail.com>
Date: Mon, 27 Apr 20 10:03:48 -0400

On Sat, Apr 25, 2020 at 8:13 AM James Kulp <jek_at_parera.com> wrote:

> I'll put forth a more restricted answer. The ACI can read volatile
> property values of all types, whole and in part.
> In all cases you can get the value returned as a formatted string
> according to the documented textual format.
> When the values being read (whole or part) are scalars or
> arrays/sequences of scalars, they can also be read directly as binary
> values.
>
> These restrictions come down to the fact that OpenCPI does not perform
> data type code generation for the ACI.
>

Sure - that's very understandable.


> One idea that has been floated is to use Google's flatbuffers for this
> purpose.
>

I won't comment on the binary reading part, but I would definitely
recommend changing the string data exchange format to be JSON instead of
what you have. There is a great JSON library for C++11 which makes super
easy to use objects and is MIT licensed:

  https://github.com/nlohmann/json

Now, for something back on topic. I had setup the readsync functionality,
but forgot to set it to volatile. When I did this, the read() method was
called for syncing, but the data was never updated. Is this expected
behavior? I would think that readsync would imply volatile. Are there
cases where readsync would be set, but volatile shouldn't be assumed?

Lastly, there's a lot of XML happening for all these different devices,
workers, platforms, etc. Is there a comprehensive XML schema that can be
referenced for each of the XML data types?

Thanks,
Brian


Received on Mon Apr 27 2020 - 14:03:48 CDT

This archive was generated by hypermail 2.3.0 : Fri Jun 05 2026 - 08:45:25 CDT