--- Layout Widgets: description: Layout widgets are used to position other widgets on the screen. For example, the HORIZONTAL layout widget places the widgets it encapsulates horizontally on the screen. collection: VERTICAL: summary: Places the widgets it encapsulates vertically description: The screen defaults to a vertical layout, so if no layout widgets are specified, all widgets will be automatically placed within a VERTICAL layout widget. The VERTICAL widget sizes itself to fit its contents. parameters: - name: Margin required: false description: Margin between widgets (default = 1px) values: .* example: | VERTICAL 5px LABEL "TEST" LABEL "SCREEN" END VERTICALBOX: summary: Places the widgets it encapsulates vertically inside a thin border description: The VERTICALBOX widget sizes itself to fit its contents vertically and to fit the screen horizontally parameters: - name: Title required: false description: Text to place within the border to label the box values: .* - name: Margin required: false description: Margin between widgets (default = 1px) values: .* example: | VERTICALBOX Info LABEL "TEST" LABEL "SCREEN" END HORIZONTAL: summary: Places the widgets it encapsulates horizontally description: The HORIZONTAL widget sizes itself to fit its contents parameters: - name: Margin required: false description: Margin between widgets (default = 1px) values: .* example: | HORIZONTAL 100 LABEL "TEST" LABEL "SCREEN" END HORIZONTALBOX: summary: Places the widgets it encapsulates horizontally inside a thin border description: The HORIZONTALBOX widget sizes itself to fit its contents parameters: - name: Title required: false description: Text to place within the border to label the box values: .* - name: Margin required: false description: Margin between widgets (default = 1px) values: .* example: | HORIZONTALBOX Info 10 LABEL "TEST" LABEL "SCREEN" END MATRIXBYCOLUMNS: summary: Places the widgets into a table-like matrix description: The MATRIXBYCOLUMNS widget sizes itself to fit its contents parameters: - name: Columns required: true description: The number of columns to create values: .* - name: Margin required: false description: Margin between widgets (default = 1px) values: .* example: | MATRIXBYCOLUMNS 3 10 LABEL "COL 1" LABEL "COL 2" LABEL "COL 3" LABEL "100" LABEL "200" LABEL "300" END SCROLLWINDOW: summary: Places the widgets inside of it into a scrollable area description: The SCROLLWINDOW widget sizes itself to fit the screen in which it is contained parameters: - name: Height required: false description: Maximum height of the scroll window in pixels (default = 200) values: .* - name: Margin required: false description: Margin between widgets (default = 1px) values: .* example: | SCROLLWINDOW 100 10 VERTICAL LABEL "100" LABEL "200" LABEL "300" LABEL "400" LABEL "500" LABEL "600" LABEL "700" LABEL "800" LABEL "900" END END TABBOOK: summary: Creates a tabbed area in which to place TABITEM widgets TABITEM: summary: Creates a VERTICAL layout tab into which to place widgets parameters: - name: Tab text required: true description: Text to diplay in the tab values: .* example: | TABBOOK TABITEM "Tab 1" LABEL "100" LABEL "200" END TABITEM "Tab 2" LABEL "300" LABEL "400" END END IFRAME: summary: Open external tools in an Iframe within OpenC3 parameters: - name: URL required: true description: The path to the page to display in the iframe values: .* - name: Width required: false description: Width of the widget values: .* - name: Height required: false description: Height of the widget values: .* example: | IFRAME https://openc3.com 900 450 Decoration Widgets: description: Decoration widgets are used to enhance the appearance of the screen. They do not respond to input, nor does the output vary with telemetry. collection: LABEL: summary: Displays text on the screen description: Generally, label widgets contain a telemetry mnemonic and are placed next to the telemetry VALUE widget. parameters: - name: Text required: true description: Text to display on the label values: .* example: | LABEL "Note: This is only a warning" HORIZONTALLINE: summary: Displays a horizontal line on the screen that can be used as a separator since: 5.5.1 example: | LABEL Over HORIZONTALLINE LABEL Under SECTIONHEADER: summary: DEPRECATED - Displays a label that is underlined with a horizontal line description: Use a VERTICALBOX or HORIZONTALBOX with title parameter instead of SECTIONHEADER parameters: - name: Text required: true description: Text to display values: .* TITLE: summary: Displays a large centered title on the screen parameters: - name: Text required: true description: Text to display values: .* example: | TITLE "Title" HORIZONTALLINE LABEL "Label" SPACER: summary: Places a fixed size spacer in between widgets parameters: - name: Width required: true description: Width of the spacer in pixels values: .* - name: Height required: true description: Height of the spacer in pixels values: .* example: | VERTICAL 3 LABEL "Spacer below" SPACER 0 100 LABEL "Spacer above" END Telemetry Widgets: description: Telemetry widgets are used to display telemetry values. The first parameters to each of these widgets is a telemetry mnemonic. Depending on the type and purpose of the telemetry item, the screen designer may select from a wide selection of widgets to display the value in the most useful format. collection: ARRAY: summary: Displays ARRAY data organized into rows and space separated parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Width required: false description: Width of the widget (default = 200) values: .* - name: Height required: false description: Height of the widget (default = 100) values: .* - name: Format string required: false description: Format string applied to each array item (default = nil) values: .* - name: Items per row required: false description: Number of array items per row (default = 4) values: .* - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> example: | ARRAY INST HEALTH_STATUS ARY 250 80 "0x%x" 6 FORMATTED ARRAY INST HEALTH_STATUS ARY2 200 100 nil 4 WITH_UNITS BLOCK: summary: Displays BLOCK data organized into rows and space separated parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Width required: false description: Width of the widget (default = 200) values: .* - name: Height required: false description: Height of the widget (default = 100) values: .* - name: Format string required: false description: Format string applied to each array item (default = nil) values: .* - name: Bytes per word required: false description: Number of bytes per word (default = 4) values: .* - name: Words per row required: false description: Number of words per row (default = 4 values: .* - name: Address format required: false description: Format for the address printed at the beginning of each line (default = nil which means do not print an address) values: .* - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> example: | BLOCK INST IMAGE IMAGE 400 130 "%02X" 4 4 "0x%08X:" # FORMATFONTVALUE: # summary: Displays a box with a value printed inside # that is formatted by the specified string rather than by a format string given # in the telemetry definition files. Additionally, this widget can use a specified # font. The white portion of the box darkens to gray while the value remains # stagnant, then brightens to white each time the value changes. Additionally # the value is colored based on the items limits state (Red for example if it is out of limits). # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Format string # required: false # description: Printf style format string to apply to the telemetry item # values: .* # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Number of characters # required: false # description: The number of characters wide to make the value box (default = 12) # values: .* # - name: Font name # required: false # description: The font to use. (default = arial) # values: .* # - name: Font size # required: false # description: The font size. (default = 100) # values: .* # example: | # FORMATFONTVALUE INST LATEST TIMESEC %012u CONVERTED 12 arial 30 FORMATVALUE: summary: Displays a box with a formatted value description: Data is formatted by the specified string rather than by a format string given in the telemetry definition files. The white portion of the box darkens to gray while the value remains stagnant, then brightens to white each time the value changes. Additionally the value is colored based on the items limits state (Red for example if it is out of limits). parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Format string required: false description: Printf style format string to apply to the telemetry item values: .* - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* example: | FORMATVALUE INST LATEST TIMESEC %012u CONVERTED 20 LABELLED: summary: Displays a LABEL followed by a LED parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Width required: false description: Width of the LED circle (default = 15) values: .* - name: Height required: false description: Height of the LED circle (default = 15) values: .* - name: Justification required: false description: How to justify the label and LED together. The default of 'SPLIT' aligns the label to the left and the LED to the right with any additional space going between them. 'CENTER' pushes the label and LED together with any additional space to the left and right. 'LEFT' or 'RIGHT' pushes them to the respective side with the space going on the opposite. values: ["SPLIT", "CENTER", "LEFT", "RIGHT"] example: | LABELLED INST PARAMS VALUE1 SETTING LED_COLOR GOOD GREEN SETTING LED_COLOR BAD RED settings: LED_COLOR: summary: Map a state or value to a color parameters: - name: Value required: true description: State or value. ANY used to match any value or state not declared. values: .+ - name: LED color required: true description: Color of the LED values: .+ LABELPROGRESSBAR: summary: Displays a LABEL with the item name followed by a PROGRESSBAR parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Scale factor required: false description: Value to multiply the telemetry item by before displaying in the progress bar. Final value should be in the range of 0 to 100. Default is 1.0. values: .* - name: Width required: false description: Width of the progress bar (default = 80 pixels values: .* - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> example: | LABELPROGRESSBAR INST ADCS POSPROGRESS 2 200 RAW LABELPROGRESSBAR INST ADCS POSPROGRESS LABELVALUE: summary: Displays a LABEL with the item name followed by a VALUE parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* example: | LABELVALUE INST LATEST TIMESEC CONVERTED 18 LABELVALUE INST LATEST COLLECT_TYPE LABELVALUEDESC: summary: Displays a LABEL with the items description followed by a VALUE parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Description required: false description: The description to display in the label (default is to display the description text associated with the telemetry item) values: .* - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* example: | LABELVALUEDESC INST HEALTH_STATUS TEMP1 "Temperature number 1" RAW 18 LABELVALUEDESC INST HEALTH_STATUS COLLECT_TYPE # LABELFORMATVALUE: # summary: Displays a LABEL widget to show the telemetry # items name followed by a formatted VALUE widget to display the items value. # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Format String # required: true # description: Printf style format string, for example %0.6f # values: .* # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Number of characters # required: false # description: The number of characters wide to make the value box (default = 12) # values: .* LABELVALUELIMITSBAR: summary: Displays a LABEL with the item name followed by VALUE and LIMITSBAR widgets parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* examples: | LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP1 RAW 18 LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP1 LABELVALUELIMITSCOLUMN: summary: Displays a LABEL with the item name followed by VALUE and LIMITSCOLUMN widgets parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* example: | LABELVALUELIMITSCOLUMN INST HEALTH_STATUS TEMP1 CONVERTED 18 LABELVALUELIMITSCOLUMN INST HEALTH_STATUS TEMP1 LABELVALUERANGEBAR: summary: Displays a LABEL with the item name followed by VALUE and RANGEBAR widgets parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Low Value required: true description: Minimum value to display on the range bar. If the telemetry item goes below this value the bar is “pegged” on the low end. values: .+ - name: High Value required: true description: Maximum value to display on the range bar. If the telemetry item goes above this value the bar is “pegged” on the high end. values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* - name: Width required: false description: Width of the range bar (default = 160) values: .* - name: Height required: false description: Height of the range bar (default = 25) values: .* example: | LABELVALUERANGEBAR INST HEALTH_STATUS TEMP1 0 100000 RAW 18 200 40 LABELVALUERANGEBAR INST HEALTH_STATUS TEMP1 -120 120 # LABELVALUERANGECOLUMN: # summary: Displays a LABEL widget to show the telemetry item's name, # followed by a VALUE widget to display the item's value, followed by a RANGECOLUMN widget. # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Low Value # required: true # description: Minimum value to display on the range bar. If the telemetry # item goes below this value the bar is “pegged” on the low end. # values: .+ # - name: High Value # required: true # description: Maximum value to display on the range bar. If the telemetry # item goes above this value the bar is “pegged” on the high end. # values: .+ # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Number of characters # required: false # description: The number of characters wide to make the value box (default = 12) # values: .* # - name: Width # required: false # description: Width of the range bar (default = 160) # values: .* # - name: Height # required: false # description: Height of the range bar (default = 25) # values: .* # example: | # LABELVALUERANGECOLUMN INST HEALTH_STATUS TEMP1 0 100000 RAW 18 200 40 # LABELVALUERANGECOLUMN INST HEALTH_STATUS TEMP1 -120 120 LED: summary: Displays a LED which changes color based on telemetry values description: By default TRUE is green and FALSE is red and all other values are black. Additional values can be added by using the LED_COLOR setting. For example LED INST PARAMS VALUE3 RAW can be followed by SETTING LED_COLOR 0 GREEN, SETTING LED_COLOR 1 RED, and SETTING LED_COLOR ANY ORANGE. parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Width required: false description: Width of the LED circle (default = 15) values: .* - name: Height required: false description: Height of the LED circle (default = 15) values: .* example: | LED INST PARAMS VALUE5 RAW 25 20 # Ellipse SETTING LED_COLOR 0 GREEN SETTING LED_COLOR 1 RED SETTING LED_COLOR ANY YELLOW settings: LED_COLOR: summary: Map a state or value to a color parameters: - name: Value required: true description: State or value. ANY used to match any value or state not declared. values: .+ - name: LED color required: true description: Color of the LED values: .+ LIMITSBAR: summary: Displays an item's current value within its colored limits horizontally parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Width required: false description: Width of the range bar (default = 160) values: .* - name: Height required: false description: Height of the range bar (default = 25) values: .* example: | LIMITSBAR INST HEALTH_STATUS TEMP1 CONVERTED 200 50 LIMITSBAR INST HEALTH_STATUS TEMP1 LIMITSCOLUMN: summary: Displays an item's current value within its colored limits vertically parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Width required: false description: Width of the range bar (default = 160) values: .* - name: Height required: false description: Height of the range bar (default = 25) values: .* example: | LIMITSCOLUMN INST HEALTH_STATUS TEMP1 CONVERTED 50 200 LIMITSCOLUMN INST HEALTH_STATUS TEMP1 LIMITSCOLOR: summary: Displays a circle depicting the limits color of an item parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Radius required: false description: Radius of the circle (default is 10) values: .* - name: Full Item Name required: false description: Show the full item name (default is false) values: .* example: | LIMITSCOLOR INST HEALTH_STATUS TEMP1 CONVERTED 30 TRUE LIMITSCOLOR INST HEALTH_STATUS TEMP1 VALUELIMITSBAR: summary: Displays an item VALUE followed by LIMITSBAR parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* example: | VALUELIMITSBAR INST HEALTH_STATUS TEMP1 CONVERTED 18 VALUELIMITSBAR INST HEALTH_STATUS TEMP1 VALUELIMITSCOLUMN: summary: Displays an item VALUE followed by LIMITSCOLUMN parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 8) values: .* example: | VALUELIMITSCOLUMN INST HEALTH_STATUS TEMP1 CONVERTED 18 VALUELIMITSCOLUMN INST HEALTH_STATUS TEMP1 VALUERANGEBAR: summary: Displays an item VALUE followed by RANGEBAR parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Low Value required: true description: Minimum value to display on the range bar. If the telemetry item goes below this value the bar is “pegged” on the low end. values: .+ - name: High Value required: true description: Maximum value to display on the range bar. If the telemetry item goes above this value the bar is “pegged” on the high end. values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* - name: Width required: false description: Width of the range bar (default = 160) values: .* - name: Height required: false description: Height of the range bar (default = 25) values: .* example: | VALUERANGEBAR INST HEALTH_STATUS TEMP1 0 100000 RAW 18 200 40 VALUERANGEBAR INST HEALTH_STATUS TEMP1 -120 120 # VALUERANGECOLUMN: # summary: Displays a graphical representation of where # an item's value falls within a range vertically and its value in a VALUE widget. # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Low Value # required: true # description: Minimum value to display on the range bar. If the telemetry # item goes below this value the bar is “pegged” on the low end. # values: .+ # - name: High Value # required: true # description: Maximum value to display on the range bar. If the telemetry # item goes above this value the bar is “pegged” on the high end. # values: .+ # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Number of characters # required: false # description: The number of characters wide to make the value box (default = 12) # values: .* # - name: Width # required: false # description: Width of the range bar (default = 160) # values: .* # - name: Height # required: false # description: Height of the range bar (default = 25) # values: .* # example: | # VALUERANGECOLUMN INST HEALTH_STATUS TEMP1 0 100000 RAW 18 200 40 # VALUERANGECOLUMN INST HEALTH_STATUS TEMP1 -120 120 LINEGRAPH: summary: Displays a line graph of a telemetry item parameters: # Inject the graph parameters <%= MetaConfigParser.load('_graph_params.yaml').to_meta_config_yaml(8) %> example: | LINEGRAPH INST HEALTH_STATUS TEMP1 SETTING ITEM INST ADCS Q1 # Add additional item to graph LINEGRAPH INST HEALTH_STATUS TEMP2 RAW LINEGRAPH INST HEALTH_STATUS TEMP3 CONVERTED REDUCED_MINUTE MIN SETTING SIZE 600 500 # width height SETTING HISTORY 1h # load 1 hour of data into graph LINEGRAPH INST HEALTH_STATUS TEMP4 SETTING HISTORY 30m # load 30 minutes of data into graph settings: # Inject the graph settings <%= MetaConfigParser.load('graph_settings.yaml').to_meta_config_yaml(8) %> SPARKLINE: summary: Displays a sparkline graph (no cursor, scale or legend) of a telemetry item parameters: # Inject the graph parameters <%= MetaConfigParser.load('_graph_params.yaml').to_meta_config_yaml(8) %> example: | SPARKLINE INST HEALTH_STATUS TEMP1 SETTING SIZE 400 50 SETTING HISTORY 30s # Add 30 seconds of data into graph settings: # Inject the graph settings <%= MetaConfigParser.load('graph_settings.yaml').to_meta_config_yaml(8) %> LABELSPARKLINE: summary: Displays a LABEL with the item name followed by a SPARKLINE parameters: # Inject the graph parameters <%= MetaConfigParser.load('_graph_params.yaml').to_meta_config_yaml(8) %> example: | LABELSPARKLINE INST HEALTH_STATUS TEMP1 SETTING HISTORY 5m # Add 5 minutes of data into graph settings: # Inject the graph settings <%= MetaConfigParser.load('graph_settings.yaml').to_meta_config_yaml(8) %> IMAGEVIEWER: summary: Display a base64 image from a TLM packet parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Format required: true description: The image format of the base64 data (e.g. jpg, png, etc) values: .+ - name: Width required: false description: Width of the widget values: .* - name: Height required: false description: Height of the widget values: .* example: | IMAGEVIEWER INST IMAGE IMAGE jpg PROGRESSBAR: summary: Displays a progress bar that is useful for displaying percentages parmeters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Scale factor required: false description: Value to multiple the telemetry item by before displaying the in the progress bar. Final value should be in the range of 0 to 100. Default is 1.0. values: .* - name: Width required: false description: Width of the progress bar (default = 100 pixels) values: .* - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> example: | PROGRESSBAR INST ADCS POSPROGRESS 0.5 200 PROGRESSBAR INST ADCS POSPROGRESS RANGEBAR: summary: Displays a custom range bar displaying the item value parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Low Value required: true description: Minimum value to display on the range bar. If the telemetry item goes below this value the bar is “pegged” on the low end. values: .+ - name: High Value required: true description: Maximum value to display on the range bar. If the telemetry item goes above this value the bar is “pegged” on the high end. values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Width required: false description: Width of the range bar (default = 100) values: .* - name: Height required: false description: Height of the range bar (default = 25) values: .* example: | RANGEBAR INST HEALTH_STATUS TEMP1 0 100000 RAW 200 50 RANGEBAR INST HEALTH_STATUS TEMP1 -100 100 # RANGECOLUMN: # summary: Displays a graphical representation of where # an item's value falls withing a range vertically # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Low Value # required: true # description: Minimum value to display on the range bar. If the telemetry # item goes below this value the bar is “pegged” on the low end. # values: .+ # - name: High Value # required: true # description: Maximum value to display on the range bar. If the telemetry # item goes above this value the bar is “pegged” on the high end. # values: .+ # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Width # required: false # description: Width of the range bar (default = 30) # values: .* # - name: Height # required: false # description: Height of the range bar (default = 100) # values: .* # example: | # RANGECOLUMN INST HEALTH_STATUS TEMP1 0 100000 RAW 200 50 # RANGECOLUMN INST HEALTH_STATUS TEMP1 -100 100 TEXTBOX: summary: Provides a large box for multiline text parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Width required: false description: Width of the textbox in px (default = 200) values: .* - name: Height required: false description: Height of the textbox in px (default = 200) values: .* example: | TEXTBOX INST HEALTH_STATUS PACKET_TIMEFORMATTED 150 70 TEXTBOX INST HEALTH_STATUS PACKET_TIMEFORMATTED # TRENDBAR: # summary: Provides the same functionality as the LIMITSBAR # widget except that it also keeps a history of the telemetry item and # graphically shows where the value was X seconds ago. # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Trend Seconds # required: false # description: The number of seconds in the past to display the trend value (default = 60) # values: .* # - name: Width # required: false # description: Width of the limits bar (default = 160) # values: .* # - name: Height # required: false # description: Height of the limits bar (default = 25) # values: .* # example: | # TRENDBAR INST HEALTH_STATUS TEMP1 CONVERTED 20 200 50 # TRENDBAR INST HEALTH_STATUS TEMP1 # TRENDLIMITSBAR: # summary: Displays a VALUE widget to show the telemetry items current value, # a VALUE widget to display the value of the item X seconds ago, and a TRENDBAR # widget to display the items value within its limits ranges and its trend. # parameters: # - name: Target name # required: true # description: The target name # values: .+ # - name: Packet name # required: true # description: The packet name # values: .+ # - name: Item name # required: true # description: The item name # values: .+ # - name: Value type # required: false # description: The type of the value to display. Default is CONVERTED. # values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> # - name: Trend Seconds # required: false # description: The number of seconds in the past to display the trend value (default = 60) # values: .* # - name: Characters # required: false # description: The number of characters to display the telemetry value (default = 12) # values: .* # - name: Width # required: false # description: Width of the limits bar (default = 160) # values: .* # - name: Height # required: false # description: Height of the limits bar (default = 25) # values: .* # example: | # TRENDLIMITSBAR INST HEALTH_STATUS TEMP1 CONVERTED 20 20 200 50 # TRENDLIMITSBAR INST HEALTH_STATUS TEMP1 VALUE: summary: Displays a box with a telemetry item value description: The white portion of the box darkens to gray while the value remains stagnant, then brightens to white each time the value changes. Additionally the value is colored based on the items limits state (Red for example if it is out of limits). parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Number of characters required: false description: The number of characters wide to make the value box (default = 12) values: .* example: | VALUE INST HEALTH_STATUS TEMP1 CONVERTED 18 VALUE INST HEALTH_STATUS TEMP1 Interactive Widgets: description: Interactive widgets are used to gather input from the user. Unlike all other widgets, which only output some graphical representation, interactive widgets permit input either from the keyboard or mouse. collection: BUTTON: summary: Displays a rectangular clickable button description: | Upon clicking, the button executes the Ruby code assigned. Buttons can be used to send commands and perform other tasks. If you want your button to use values from other widgets, define them as named widgets and read their values using the `screen.getNamedWidget("WIDGET_NAME").text()` method. See the example in CHECKBUTTON. Button code can get rather complex so remember to use string concatenation to make things more readable. If you use `+` newlines are inserted automatically during string concatenation. If you use `\` you'll need to separate lines with a single semicolon `;`. COSMOS uses double semicolon `;;` to indicate lines should be evaluated separately. Note that all OpenC3 commands (using api.cmd) must be separated by `;;`. You can send commands with buttons using api.cmd(). The cmd() syntax looks exactly like the standard COSMOS Ruby scripting syntax. You can also request and use telemetry in screens using Javascript Promises. `api.tlm('INST PARAMS VALUE3', 'RAW').then(dur => api.cmd('INST COLLECT with TYPE NORMAL, DURATION '+dur))"` The api.tlm() function returns a Promise which is resolved with then() at which point we send the command with the telemetry value we received. Scripts can be launched from a BUTTON using the `runScript()` method. `runScript()` takes three parameters, the name of the script, whether to open the script in the foreground of Script Runner (default = true), and a hash of environment variables. For example: `runScript('INST/procedures/script.rb', false, {'VAR': 'VALUE'})` parameters: - name: Button Text required: true description: Text displayed on the button values: .+ - name: Button Code required: true description: Javascript code to execute when the button is pressed values: .+ example: | BUTTON 'Start Collect' 'api.cmd("INST COLLECT with TYPE NORMAL, DURATION 5")' BUTTON 'Run Checks' 'runScript("INST/procedures/checks.rb")' # More complex example with background checkbox and env vars NAMED_WIDGET SCRIPTNAME COMBOBOX collect.rb checks.rb NAMED_WIDGET BG CHECKBUTTON 'Background' BUTTON 'Run Script' "var script=screen.getNamedWidget('SCRIPTNAME').text();" \ # Set an environment variable to be used by the script as ENV['TYPE'] "var env = {}; env['TYPE'] = 'TEST';" \ "runScript('INST/procedures/'+script, !screen.getNamedWidget('BG').checked(), env)" CHECKBUTTON: summary: Displays a check box description: Note this is of limited use by itself and is primarily used in conjunction with NAMED_WIDGET. parameters: - name: Checkbox Text required: true description: Text displayed next to the checkbox values: .+ example: | NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' BUTTON 'Send' 'screen.getNamedWidget("CHECK").checked() ? ' \ 'api.cmd_no_hazardous_check("INST CLEAR") : api.cmd("INST CLEAR")' COMBOBOX: summary: Displays a drop down list of text items description: Note this is of limited use by itself and is primarily used in conjunction with NAMED_WIDGET. parameters: - name: Option Text 1 required: true description: Text to display in the selection drop down values: .+ - name: Option Text n required: false description: Text to display in the selection drop down values: .+ example: | BUTTON 'Start Collect' 'var type = screen.getNamedWidget("COLLECT_TYPE").text();' + 'api.cmd("INST COLLECT with TYPE "+type+", DURATION 10.0")' NAMED_WIDGET COLLECT_TYPE COMBOBOX NORMAL SPECIAL RADIOGROUP: summary: Creates a group of RADIOBUTTONs description: RADIOBUTTONs must be part of a group to enable selection logic parameters: - name: Initial selected button required: false description: Selects a radio button at initialization (0-based) values: \d+ RADIOBUTTON: summary: Displays a radio button and text description: Note this is of limited use by itself and is primarily used in conjunction with NAMED_WIDGET. It must be contained by a RADIOGROUP to enable typical selection of a single RADIOBUTTON. parameters: - name: Text required: true description: Text to display next to the radio button values: .+ example: | NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index RADIOBUTTON 'Abort' RADIOBUTTON 'Clear' END BUTTON 'Send' "screen.getNamedWidget('GROUP').selected() === 0 ? " + "api.cmd('INST ABORT') : api.cmd('INST CLEAR')" TEXTFIELD: summary: Displays a rectangular box where the user can enter text parameters: - name: Characters required: false description: Width of the text field in characters (default = 12) values: .* - name: Text required: false description: Default text to put in the text field (default is blank) values: .* example: | NAMED_WIDGET DURATION TEXTFIELD 12 "10.0" BUTTON 'Start Collect' 'var dur = screen.getNamedWidget("DURATION").text();' + 'api.cmd("INST COLLECT with TYPE NORMAL, DURATION "+dur+"")' Canvas Widgets: description: Canvas Widgets are used to draw custom displays into telemetry screens. The canvas coordinate frame places (0,0) in the upper-left corner of the canvas. collection: CANVAS: summary: Layout widget for the other canvas widgets description: All canvas widgets must be enclosed within a CANVAS widget. warning: The canvas coordinate frame places (0,0) in the upper-left corner of the canvas. parameters: - name: Width required: true description: Width of the canvas values: .+ - name: Height required: true description: Height of the canvas values: .+ CANVASLABEL: summary: Draws text onto the canvas parameters: - name: X Position required: true description: X position of the upper-left corner of the text on the canvas values: \d+ - name: Y Position required: true description: Y position of the upper-left corner of the text on the canvas values: \d+ - name: Text required: true description: Text to draw onto the canvas values: .+ - name: Font Size required: false description: Font size of the text (Default = 12) values: \d+ - name: Color required: false description: Color of the text values: .+ example: | CANVAS 100 100 CANVASLABEL 5 34 "Label1" 24 red CANVASLABEL 5 70 "Label2" 18 blue END CANVASLABELVALUE: summary: Draws the text value of a telemetry item onto the canvas in an optional frame parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: X Position required: true description: X position of the upper-left corner of the text on the canvas values: \d+ - name: Y Position required: true description: Y position of the upper-left corner of the text on the canvas values: \d+ - name: Font Size required: false description: Font size of the text (Default = 12) values: \d+ - name: Color required: false description: Color of the text values: .+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED. values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> example: | CANVAS 200 100 CANVASLABELVALUE INST HEALTH_STATUS TEMP1 5 34 12 red CANVASLABELVALUE INST HEALTH_STATUS TEMP2 5 70 10 blue WITH_UNITS END CANVASIMAGE: summary: Displays an image on the canvas parameters: - name: Image filename required: true description: Name of a image file. The file must be in the plugin's targets/TARGET/public directory. values: .+ - name: X Position required: true description: X position of the upper-left corner of the image on the canvas values: \d+ - name: Y Position required: true description: Y position of the upper-left corner of the image on the canvas values: \d+ example: | CANVAS 250 430 CANVASIMAGE "satellite.png" 10 10 200 200 SETTING SCREEN INST HS CANVASIMAGE "https://images.pexels.com/photos/256152/pexels-photo-256152.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=640&w=426" 0 250 250 150 END settings: SCREEN: summary: Open another screen when clicked parameters: - name: Target name required: true description: Name of the target values: .+ - name: Screen name required: true description: Name of the screen values: .+ CANVASIMAGEVALUE: summary: Displays an image on the canvas that changes with a telemetry value description: Use various SETTING values to indicate which images should be displayed based on telemetry. For example, SETTING IMAGE CONNECTED "ground_on.png" 400 100. See the DEMO for a complete example. parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Value type required: true description: The type of the value to display values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> - name: Default image filename required: true description: The default image to display. The file must be in the targets/TARGET/public directory. values: .+ - name: X Position required: true description: X position of the upper-left corner of the image on the canvas values: \d+ - name: Y Position required: true description: Y position of the upper-left corner of the image on the canvas values: \d+ - name: Image width required: false description: Width of the image (default is 100%) values: \d+ - name: Image height required: false description: Height of the image (default is 100%) values: \d+ example: | CANVAS 230 230 CANVASIMAGEVALUE INST HEALTH_STATUS GROUND1STATUS CONVERTED "ground_error.png" 10 10 180 180 SETTING IMAGE CONNECTED "ground_on.png" 10 10 SETTING IMAGE UNAVAILABLE "ground_off.png" 10 10 SETTING SCREEN INST HS END settings: IMAGE: summary: Map an image to a state or value parameters: - name: Value required: true description: State or value values: .+ - name: Image filename required: true description: Image to display. The file must be in the targets/TARGET/public directory. values: .+ - name: X Position required: true description: X position of the upper-left corner of the image on the canvas values: \d+ - name: Y Position required: true description: Y position of the upper-left corner of the image on the canvas values: \d+ SCREEN: summary: Open another screen when clicked parameters: - name: Target name required: true description: Name of the target values: .+ - name: Screen name required: true description: Name of the screen values: .+ CANVASLINE: summary: Draws a line onto the canvas parameters: - name: Start X Position required: true description: X position of the start of the line on the canvas values: \d+ - name: Start Y Position required: true description: Y position of the start of the line on the canvas values: \d+ - name: End X Position required: true description: X position of the end of the line on the canvas values: \d+ - name: End Y Position required: true description: Y position of the end of the line on the canvas values: \d+ - name: Color required: false description: Color of the line values: .+ - name: Width required: false description: Width of the line in pixels (default = 1) values: \d+ example: | CANVAS 100 50 CANVASLINE 5 5 95 5 CANVASLINE 5 5 5 45 green 2 CANVASLINE 95 5 95 45 blue 3 END CANVASLINEVALUE: summary: Draws a color changing line onto the canvas description: The line is represented by one of two colors based on the value of the associated telemetry item parameters: - name: Target name required: true description: The target name values: .+ - name: Packet name required: true description: The packet name values: .+ - name: Item name required: true description: The item name values: .+ - name: Start X Position required: true description: X position of the start of the line on the canvas values: \d+ - name: Start Y Position required: true description: Y position of the start of the line on the canvas values: \d+ - name: End X Position required: true description: X position of the end of the line on the canvas values: \d+ - name: End Y Position required: true description: Y position of the end of the line on the canvas values: \d+ - name: Width required: false description: Width of the line in pixels (default = 3) values: \d+ - name: Value type required: false description: The type of the value to display. Default is CONVERTED values: <%= %w(RAW CONVERTED FORMATTED WITH_UNITS) %> example: | CANVAS 120 50 CANVASLABELVALUE INST HEALTH_STATUS GROUND1STATUS 0 12 12 black CANVASLINEVALUE INST HEALTH_STATUS GROUND1STATUS 5 25 115 25 5 RAW SETTING VALUE_EQ 1 GREEN SETTING VALUE_EQ 0 RED CANVASLINEVALUE INST HEALTH_STATUS GROUND1STATUS 5 45 115 45 SETTING VALUE_EQ CONNECTED GREEN SETTING VALUE_EQ UNAVAILABLE RED END settings: # Inject the canvas value settings <%= MetaConfigParser.load('_canvas_values.yaml').to_meta_config_yaml(8) %> CANVASDOT: summary: Draws a dot onto the canvas parameters: - name: X Position required: true description: X position of the dot values: .+ - name: Y Position required: true description: Y position of the dot values: .+ - name: Color required: true description: Color of the dot values: .+ - name: Radius required: true description: Radius of the dot in pixels values: \d+ example: | CANVAS 50 50 CANVASDOT 10 15 BLUE 5 END # CANVASELLIPSE: # summary: The CANVASELLIPSE widget draws an ellipse onto the canvas # parameters: # - name: X Center # required: true # description: X position of the center of the ellipse # values: \d+ # - name: Y Center # required: true # description: Y position of the center of the ellipse # values: \d+ # - name: Width # required: true # description: Width of the ellipse in pixels # values: \d+ # - name: Height # required: true # description: Height of the ellipse in pixels # values: \d+ # - name: Color # required: false # description: Color of the ellipse. Default is black. # values: .+ # - name: Line Width # required: false # description: Width of the line. Default is 1 # values: \d+ # - name: Fill # required: false # description: Whether to fill the ellipse. Default is false. # values: .+