Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial setup of fprime-gds to work with OpenMCT #136

Open
wants to merge 7 commits into
base: devel
Choose a base branch
from

Conversation

mohitsingh999
Copy link

@mohitsingh999 mohitsingh999 commented Aug 8, 2023

Originating Project/Creator Mohit Singh
Affected Component
Affected Architectures(s) F-Prime GDS
Related Issue(s)
Has Unit Tests (y/n)
Builds Without Errors (y/n)
Unit Tests Pass (y/n)
Documentation Included (y/n) y

Change Description

Add functionality to run OpenMCT from the F-Prime GDS. A user can specify the openmct argument at command line by running fprime-gds --openmct , and they will get two tabs; one that launches the standard GDS, and one that launches an OpenMCT server with all the telemetry channels registered and showing Real Time Telemetry.

Rationale

The current F-Prime GDS has two ways of visualizing telemetry. Channels and Charts. These telemetry visualizations can be expanded upon by integrating OpenMCT with F-Prime. OpenMCT allows for users to create dashboards, utilize gauges, stacked/overlay plots, and tables. It also incorporates conditional coloring based on user defined limits.

Testing/Review Recommendations

Currently this functionality has been fully tested with the base Ref deployment. It should be tested with additional deployments to ensure no critical values are hardcoded, since that would hinder general usability.

NOTE: This pull request is breaking. Users will need to install the fprime_openmct python package repo since that is imported at the start of run_deployment.py. That package is available at https://github.com/mohitsingh999/fprime-openmct currently and can be registered as a python package by running pip install . at the root of fprime-openmct. A pull request has been created to merge this repo into https://github.com/fprime-community/fprime-openmct, and is currently being reviewed.

Future Work

Work needs to be done to ensure the OpenMCT integration with fprime-gds happens in parallel with integration of fprime-openmct in fprime-community. General installation instructions will need to be updated to inform users to install fprime_openmct with pip, in addition to fprime_tools and fprime_gds. fprime-openmct needs to be registered on PyPI as well, just like fprime-gds and fprime-tools.

@jwest115 will be taking over managing OpenMCT integration related tasks after August 10th

Changes were made to the repo structure of FPrime-OpenMCT which required changes to the imports made in FPrime GDS's run_deployment.py script.
src/fprime_gds/executables/run_deployment.py Outdated Show resolved Hide resolved
src/fprime_gds/executables/run_deployment.py Outdated Show resolved Hide resolved
src/fprime_gds/executables/run_deployment.py Outdated Show resolved Hide resolved
src/fprime_gds/executables/run_deployment.py Outdated Show resolved Hide resolved
@SMorettini
Copy link
Contributor

I'm interested in this feature, what's the state of the pull request?

@SMorettini
Copy link
Contributor

I just tested this feature. I like it, is there something I can do to help merge this pull request?

@thomas-bc
Copy link
Collaborator

@SMorettini we are working on the addition of a plugin architecture to the GDS (nasa/fprime#2268) and we would like the OpenMCT integration to be using it. I believe we decided to hold off on this PR until then. Copying @LeStarch for sanity check and because he's going to be the one doing the plugin architecture.

@thomas-bc
Copy link
Collaborator

Plugin PR was just merged! #164

We have a plugin system - some work is probably needed to incorporate this into it.

@LeStarch
Copy link
Collaborator

In order for this to work, we need the "start-up application" plugin defined. That hasn't been done yet, but isn't much work.

@SMorettini
Copy link
Contributor

I don't think this merge request should be merged in this stage. I'm working on some big change on it in my fork.
This setup is not optimal and doesn't work with big setup with a lot of channels because the full dictionary for openmct is downloaded every time when a smarter system should be used and only the dictionary for the channel requested you should be downloaded. Moreover it doesn't work except for the channel made by a single value.

@ReggieMarr
Copy link

Out of curiosity how does openmct compare to yamcs? My org uses that so I'm looking into a similar effort for that support

@timcanham
Copy link
Contributor

@ReggieMarr We are aware of yamcs, but haven't gotten around to digging deeply into it. I took a quick look a while ago, and it supports commanding and telemetry aspects that probably could be adapted to F Prime. It doesn't support (as far as I can tell) the F Prime notion of events.

OpenMCT is really meant to display telemetry. It is great for building views and plots and the like, but it doesn't support commanding and events. Our adaptation was meant to run along side the regular F Prime ground system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants