akhenry / openmct-yamcs

Open MCT YAMCS plugin
14 stars 9 forks source link

Does OpenMCT support array parameter types? #76

Closed AdamElliott-AB closed 3 years ago

AdamElliott-AB commented 3 years ago

I see that this plugin supports Array parameter types from Yamcs, which is awesome. However, do any of the OpenMCT views support array parameter data? I have not had success in that regard.

jvigliotta commented 3 years ago

Hi @AdamElliott-AB, so we've added rudimentary support for arrays. If there are Array parameter values, we stringify them so they can be shown as a string value. We have been looking at other ways to handle this, but we haven't decided on anything as of yet. @akhenry if there is anything else you want to add to this feel free!

akhenry commented 3 years ago

@AdamElliott-AB As @jvigliotta mentioned we just stringify array parameter values right now so that they can at least be viewed in tables. We don't have a good general strategy for handling arrays right now, and the correct handling may be context-specific. The challenge is that arrays can really be of any length, and can represent any number of different things.

Sometimes they are used to represent tuples (eg. x,y,z cartesian coordinates, or quaternions, or whatever), which could probably be handled more gracefully (eg as separate values that can be plotted etc.), but they can also be arbitrarily large, and represent things like binary data. In the former case, the data might be better defined as an aggregate parameter in the XTCE definition. In the case of the latter, the correct handling is probably context-specific (eg. does the array represent binary image data? or spectral data? etc.)

So, I guess what it boils down to is - how would you like your array data to be visualized?

AdamElliott-AB commented 3 years ago

Thank you both for your input. The types of arrays I want to visualize are indeed tuples and I see your point @akhenry about generic visualization of other array usages not making much sense. I will take your advice and use aggregates to represent this data.