- Notifications
You must be signed in to change notification settings - Fork2
Topcoder Open MCT Notebook Demo
topcoderinc/openmct
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Open MCT (Open Mission Control Technologies) is a next-generation mission control framework for visualization of data on desktop and mobile devices. It is developed at NASA's Ames Research Center, and is being used by NASA for data analysis of spacecraft missions, as well as planning and operation of experimental rover systems. As a generalizable and open source framework, Open MCT could be used as the basis for building applications for planning, operation, and analysis of any systems producing telemetry data.
Please visit ourOfficial Site andGetting Started Guide
Try Open MCT now with ourlive demo.
A simpler,easier-to-use APIhas been added to Open MCT. Changes in thisAPI include a move away from a declarative system of JSON configuration filestowards an imperative system based on function calls. Developers will be ableto extend and build on Open MCT by making direct function calls to a publicAPI. Open MCT is also being refactored to minimize the dependencies that usingOpen MCT imposes on developers, such as the current requirement to useAngularJS.
This new API has not yet been heavily used and is likely to contain defects.You can help by trying it out, and reporting any issues you encounterusing our GitHub issue tracker. Such issues may include bugs, suggestions,missing documentation, or even just requests for help if you're havingtrouble.
We want Open MCT to be as easy to use, install, run, and develop for aspossible, and your feedback will help us get there!
Building and running Open MCT in your local dev environment is very easy. Be sure you haveGit andNode.js installed, then follow the directions below. Need additional information? Check out theGetting Started page on our website.(These instructions assume you are installing as a non-root user; developers havereported issues running these steps with root privileges.)
- Clone the source code
git clone https://github.com/nasa/openmct.git
- Install development dependencies
npm install
- Run a local development server
npm start
Open MCT is now running, and can be accessed by pointing a web browser athttp://localhost:8080/
Documentation is available on theOpen MCT website. The documentation can also be built locally.
The clearest examples for developing Open MCT plugins are in thetutorials provided inour documentation.
For a practical example of a telemetry adapter, see David Hudson'sKerbal Space Program plugin,which allowsKerbal Space Program playersto build and use displays for their own missions in Open MCT.
Additional examples are available in theexamples hierarchy of thisrepository; however, be aware that these examples arenot fully-documented, sothe tutorials will likely serve as a better starting point.
Open MCT's documentation is generated by annpm-based build. It has additional dependencies thatmay not be available on every platform and thus is not covered in the standardnpm install. Ensure your system haslibcairoinstalled and then run the following commands:
npm installnpm install canvas nomnomlnpm run docs
Documentation will be generated intarget/docs.
Open MCT is built usingnpmandgulp.
To build Open MCT for deployment:
npm run prepublish
This will compile and minify JavaScript sources, as well as copy over assets.The contents of thedist folder will contain a runnable Open MCTinstance (e.g. by starting an HTTP server in that directory), including:
- A
main.jsfile containing Open MCT source code. - Various assets in the
exampleandplatformdirectories. - An
index.htmlthat runs Open MCT in its default configuration.
Additionalgulp tasks are defined inthe gulpfile.
A bundle is a group of software components (including source code, declaredas AMD modules, as well as resources such as images and HTML templates)that is intended to be added or removed as a single unit. A plug-in forOpen MCT will be expressed as a bundle; platform components are alsoexpressed as bundles.
A bundle is also just a directory which contains a filebundle.json,which declares its contents.
The filebundles.json (note the plural), at the top level of therepository, is a JSON file containing an array of all bundles (expressed asdirectory names) to include in a running instance of Open MCT. Adding orremoving paths from this list will add or remove bundles from the runningapplication.
Tests are written forJasmine 1.3and run byKarma. To run:
npm test
The test suite is configured to load any scripts ending withSpec.js foundin thesrc hierarchy. Full configuration details are found inkarma.conf.js. By convention, unit test scripts should be locatedalongside the units that they test; for example,src/foo/Bar.js would betested bysrc/foo/BarSpec.js. (For legacy reasons, some existing tests maybe located in separatetest folders near the units they test, but thenaming convention is otherwise the same.)
Whennpm test is run, test results will be written as HTML totarget/tests. Code coverage information is written totarget/coverage.
Certain terms are used throughout Open MCT with consistent meaningsor conventions. Any deviations from the below are issues and should beaddressed (either by updating this glossary or changing code to reflectcorrect usage.) Other developer documentation, particularly in-linedocumentation, may presume an understanding of these terms.
- bundle: A bundle is a removable, reusable grouping of software elements.The application is composed of bundles. Plug-ins are bundles. For moreinformation, refer to framework documentation (under
platform/framework.) - capability: An object which exposes dynamic behavior or non-persistentstate associated with a domain object.
- composition: In the context of a domain object, this refers to the set ofother domain objects that compose or are contained by that object. A domainobject's composition is the set of domain objects that should appearimmediately beneath it in a tree hierarchy. A domain object's composition isdescribed in its model as an array of id's; its composition capabilityprovides a means to retrieve the actual domain object instances associatedwith these identifiers asynchronously.
- description: When used as an object property, this refers to the human-readabledescription of a thing; usually a single sentence or short paragraph.(Most often used in the context of extensions, domainobject models, or other similar application-specific objects.)
- domain object: A meaningful object to the user; a distinct thing inthe work support by Open MCT. Anything that appears in the left-handtree is a domain object.
- extension: An extension is a unit of functionality exposed to theplatform in a declarative fashion by a bundle. For moreinformation, refer to framework documentation (under
platform/framework.) - id: A string which uniquely identifies a domain object.
- key: When used as an object property, this refers to the machine-readableidentifier for a specific thing in a set of things. (Most often used in thecontext of extensions or other similar application-specific object sets.)
- model: The persistent state associated with a domain object. A domainobject's model is a JavaScript object which can be converted to JSONwithout losing information (that is, it contains no methods.)
- name: When used as an object property, this refers to the human-readablename for a thing. (Most often used in the context of extensions, domainobject models, or other similar application-specific objects.)
- navigation: Refers to the current state of the application with respectto the user's expressed interest in a specific domain object; e.g. whena user clicks on a domain object in the tree, they arenavigating toit, and it is thereafter considered thenavigated object (until theuser makes another such choice.)
- space: A name used to identify a persistence store. Interactions withpersistence will generally involve a
spaceparameter in some form, todistinguish multiple persistence stores from one another (for caseswhere there are multiple valid persistence locations available.)
About
Topcoder Open MCT Notebook Demo
Resources
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Languages
- JavaScript87.4%
- CSS6.4%
- HTML6.2%
