nasa / openmct-tutorial

A tutorial for OpenMCT that guides you through integrating historical and realtime telemetry.
Other
244 stars 106 forks source link

Passing additional parameter to historical telemetry plugin #42

Open mnawaz779 opened 4 years ago

mnawaz779 commented 4 years ago

I am using openmct framework to build telemetry dashboard. I am implementing historical telemetry plugin for the application. The options object passed to the "request function" of the "provider" supplies the options.start and options.end time for the historical query. The telemetry data source requires one more parameter like "level" to get the historical telemetry. Currently I have the "level" parameter hard coded in the plugin and it is working. However, I want to remove the hard coded "level" parameter and pass it as an additional parameter to the "request function" using "options" object or some other mechanism. How to go about it? What are my choices here? Any idea or assistance will be greatly appreciated as I am new to Openmct.

Note: if this is not the right forum for such questions, please advise appropriate mechanism to get help in such scenario.

Thanks, -mnawaz779

deeptailor commented 4 years ago

Hi Mnawaz779,

This is a good question. You could pass the level parameter via the domainObject. An example would be, having 3 domainObjects that correspond to low, medium and high levels, and then when passed to the historical provider you can make the correct request accordingly.

-Deep Tailor

On Sep 7, 2020, at 7:51 PM, MOHAMMAD S NAWAZ notifications@github.com wrote:

 I am using openmct framework to build telemetry dashboard. I am implementing historical telemetry plugin for the application. The options object passed to the "request function" of the "provider" supplies the options.start and options.end time for the historical query. The telemetry data source requires one more parameter like "level" to get the historical telemetry. Currently I have the "level" parameter hard coded in the plugin and it is working. However, I want to remove the hard coded "level" parameter and pass it as an additional parameter to the "request function" using "options" object or some other mechanism. How to go about it? What are my choices here? Any idea or assistance will be greatly appreciated as I am new to Openmct.

Note: if this is not the right forum for such questions, please advise appropriate mechanism to get help in such scenario.

Thanks, -mnawaz779

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mnawaz779 commented 4 years ago

Hi Deep,

i can extend the domainObject to include level. However, i am not sure how to pass the level selection from level selector vue control to the domain object. I have 10 different levels at which historical data can be viewed so I have to use single domain object or plugin to pull historical data. So, how to pass level information from level selector to domaiObject is still a challenge for me. Any help will be greatly appreciated. It could be through some global scope variables or through context which I do not know.

Thank you for your assistance. -mnawaz779

deeptailor commented 4 years ago

Hi,

You can mutate the domainObject (using openmct.objects.mutate), with the level the use has selected. Then pass the mutated domainObject to the request call, which will be passed on to your historical provider.

Let me know if you need further guidance.

Thank you,

Deep Tailor

On Sep 8, 2020, at 5:51 AM, MOHAMMAD S NAWAZ notifications@github.com wrote:

 Hi Deep,

i can extend the domainObject to include level. However, i am not sure how to pass the level selection from level selector vue control to the domain object. I have 10 different levels at which historical data can be viewed so I have to use single domain object or plugin to pull historical data. So, how to pass level information from level selector to domaiObject is still a challenge for me. Any help will be greatly appreciated. It could be through some global scope variables or through context which I do not know.

Thank you for your assistance. -mnawaz779

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

mnawaz779 commented 4 years ago

Hi Deep,

The level selector has been created using Vuejs that resides inside the timeConductor plugin folder. The historytelemetry plugin lives in its own folder. I am trying to use level select event handler of the Vue component to mutate the domainObject and update the level parameter that will be used by historyTelemetry plugin. But is does not work. I am missing some basic mechanism to pass data from one component to another., By any chance do we have some additional information or sample code on openmct.objects.mutate etc.

Thank you for your help in this effort. -mnawaz779

mnawaz779 commented 4 years ago

Looking for information on how to pass data from one plugin to another using Openmct framework. If anyone has some guidance or hints please let me know. Thanks,

deeptailor commented 4 years ago

Mohammed,

Thinking about this a little more, you can pass an options object to the historical provider, which will then get start and end times added by the telemetry provider.

You can use a shared object between plugins to share information. We do this with domainObjects between the inspector views and main view.

If you want to communicate between the time conductor and a view plugin, I would share that data via your historical provider.

Let me know if you have any further questions.

Thank you,

Deep Tailor

On Sep 9, 2020, at 11:07 AM, MOHAMMAD S NAWAZ notifications@github.com wrote:

 Looking for information on how to pass data from one plugin to another using Openmct framework. If anyone has info on this please let me know. Thanks,

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

mnawaz779 commented 4 years ago

Thank you for your time and sharing your thoughts on this task. I will look into this further and update the forum once I have something concrete. Thanks again, -mnawaz779