Skip to content

Commit

Permalink
Merge pull request #996 from OpenC3/screenshots
Browse files Browse the repository at this point in the history
Tool Screenshots for AstroUX
  • Loading branch information
jmthomas authored Dec 21, 2023
2 parents 54c57ce + 04f9e66 commit dd13990
Show file tree
Hide file tree
Showing 824 changed files with 1,621 additions and 1,275 deletions.
23 changes: 1 addition & 22 deletions docs.openc3.com/docs/configuration/_plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,28 +37,7 @@ Microservices are persistent running backend code that runs within the COSMOS en

## Plugin Directory Structure

COSMOS plugins have a well-defined directory structure as follows:

| Folder / File | Description |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| plugin.txt | Configuration file for the plugin. This file is required and always named exactly plugin.txt. See later in this document for the format. |
| LICENSE.txt | License for the plugin. COSMOS Plugins should be licensed in a manner compatible with the AGPLv3, unless they are designed only for use with COSMOS Enterprise Edition (or only for use at Ball), in which case they can take on any license as desired. |
| openc3-PLUGINNAME.gemspec | This file should have the name of the plugin with a .gemspec extension. For example openc3-cosmos-demo.gemspec. The name of this file is used in compiling the plugin contents into the final corresponding PluginName-Version.gem plugin file. ie. openc3-cosmos-demo-5.0.0.gem. COSMOS plugins should always begin with the openc3- prefix to make them easily identifiable in the Rubygems repository. The contents of this file take on the Rubygems spec format as documented at: https://guides.rubygems.org/specification-reference/ |
| Rakefile | This is a helper ruby Rakefile used to build the plugin. In general, the exact same file as provided with the COSMOS demo plugins can be used, or other features can be added as necessary for your plugin project. This file is typically just used to support building the plugin by running "rake build VERSION=X.X.X" where X.X.X is the plugin version number. A working Ruby installation is required. |
| README.md | Use this file to describe your plugin. It is typically a markdown file that supports nice formatting on Github. |
| targets/ | This folder is required if any targets are defined by your plugin. All target configuration is included under this folder. It should contain one or more target configurations |
| targets/TARGETNAME | This is a folder that contains the configuration for a specific target named TARGETNAME. The name is always defined in all caps. For example: targets/INST. This is typically the default name of the target, but well-designed targets will allow themselves to be renamed at installation. All subfolders and files below this folder are optional and should be added as needed. |
| targets/TARGETNAME/cmd_tlm | This folder contains the command and telemetry definition files for the target. These files capture the format of the commands that can be sent to the target, and the telemetry packets that are expected to be received by COSMOS from the target. Note that the files in this folder are processed in alphabetical order by default. That can matter if you reference a packet in another file (it should already have been defined). See the Command and Telemetry Configuration Guides for more information. |
| targets/TARGETNAME/data | Use this folder to store any general data that is needed by the target excluding CANVAS image files. |
| targets/TARGETNAME/lib | This folder contains any custom code required by the target. Good examples of custom code are custom Interface classes and protocols. See the Interface documentation for more information. Try to give any custom code a unique filename that starts with the name of the target. This can help avoid name conflicts that can occur if two different targets create a custom code file with the same filename. |
| targets/TARGETNAME/procedures | This folder contains target specific procedures and helper methods which exercise functionality of the target. These procedures should be kept simple and only use the command and telemetry definitions associated with this target. See the Scripting Guide for more information. |
| targets/TARGETNAME/public | Put image files here for use in Telemetry Viewer Canvas Image widgets such as [CANVASIMAGE](telemetry-screens.md#canvasimage) and [CANVASIMAGEVALUE](telemetry-screens.md#canvasimagevalue). |
| targets/TARGETNAME/screens | This folder contains telemetry screens for the target. See Screen Configuration for more information. |
| targets/TARGETNAME/target.txt | This file contains target specific configuration such as which command parameters should be ignored by Command Sender. See Target Configuration for more information. |
| microservices/ | This folder is required if any microservices are defined by your plugin. All microservice code and configuration is included in this folder. It should contain one or more MICROSERVICENAME subfolders |
| microservices/MICROSERVICENAME | This is a folder that contains the code and any necessary configuration for a specific microservice named MICROSERVICENAME. The name is always defined in all caps. For example: microservices/EXAMPLE. This is typically the default name of the microservice, but well-designed microservices will allow themselves to be renamed at installation. All subfolders and files below this folder are optional and should be added as needed. |
| tools/ | This folder is required if any tools are defined by your plugin. All tool code and configuration is included in this folder. It should contain one or more toolname subfolders |
| tools/toolname | This is a folder that contains all the files necessary to serve a web-based tool named toolname. The name is always defined in all lowercase. For example: tools/base. Due to technical limitations, the toolname must be unique and cannot be renamed at installation. All subfolders and files below this folder are optional and should be added as needed. |
COSMOS plugins have a well-defined directory structure described in detail in the [Code Generator](../getting-started/generators) documentation.

## plugin.txt Configuration File

Expand Down
3 changes: 1 addition & 2 deletions docs.openc3.com/docs/configuration/command.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,7 @@ APPEND_PARAMETER STRING 1024 STRING "NOOP" "String parameter"
**Applies a conversion when writing the current command parameter**

Conversions are implemented in a custom Ruby file which should be
located in the target's lib folder and required by the target's target.txt
file (see REQUIRE). The class must require 'openc3/conversions/conversion'
located in the target's lib folder. The class must require 'openc3/conversions/conversion'
and inherit from Conversion. It must implement the initialize method if it
takes extra parameters and must always implement the call method. The conversion
factor is applied to the value entered by the user before it is written into
Expand Down
Loading

0 comments on commit dd13990

Please sign in to comment.