openc3/data/config/widgets.yaml
---
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 = 0px)
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 = 0px)
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 = 0px)
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 = 0px)
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 = 0px)
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 = 0px)
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 display 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 to pull the CONVERTED value from.
If additional processing (base64 encoding) is needed consider using a DERIVED item.
values: .+
- name: Format
required: true
description: The image format of the base64 data (e.g. jpg, png, etc)
values: .+
example: |
IMAGEVIEWER INST IMAGE IMAGE jpg
PROGRESSBAR:
summary: Displays a progress bar that is useful for displaying percentages
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 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 within 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
ROLLUP:
summary: Displays a notification icon which changes color based on a rollup telemetry
since: 5.17.1
parameters:
- name: Icon name
required: true
description: The astro UX icon to display. Valid choices are 'astro' icons taken from https://github.com/RocketCommunicationsInc/astro-components/blob/master/static/json/rux-icons.json.
values: .+
- name: Icon label
required: false
description: Text to apply to the icon label
values: .+
- name: Icon sublabel
required: false
description: Text to apply to the icon sublabel
values: .+
example: |
ROLLUP satellite-transmit "SAT 1" "Details"
# Screen to open on click
SETTING SCREEN INST HS
# Telemetry items to rollup status
SETTING TLM INST HEALTH_STATUS TEMP1
SETTING TLM INST HEALTH_STATUS TEMP2
ROLLUP antenna "GND 2" "Location"
# Screen to open on click
SETTING SCREEN INST HS
# Telemetry items to rollup status
SETTING TLM INST HEALTH_STATUS TEMP3
SETTING TLM INST HEALTH_STATUS TEMP4
SIGNAL:
summary: Displays a cellular signal icon which changes based on telemetry value
since: 5.17.2
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) %>
example: |
SIGNAL INST HEALTH_STATUS TEMP1
# Screen to open on click
SETTING SCREEN INST HS
# Values to compare when setting the 1-bar, 2-bar and 3-bar icons
# Default is 30, 60, 90 (e.g. 0 to 100 range)
# Value < -50 display no bars
# Value >= -50 and < 0 displays 1 bar
# Value >= 0 and < 50 displays 2 bars
# Value >= 50 displays 5 bars
SETTING RANGE -50 0 50
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 Javascript 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 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
DATE:
summary: Displays a date picker
description:
Note this is of limited use by itself and is primarily used in
conjunction with NAMED_WIDGET.
parameters:
- name: Date label
required: false
description: Text to label the data selection ('Date' by default)
values: .+
example: |
BUTTON 'Alert Date' 'var date = screen.getNamedWidget("DATE").text();' +
'alert("Date:"+date)'
NAMED_WIDGET DATE DATE
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+"")'
TIME:
summary: Displays a time picker
description:
Note this is of limited use by itself and is primarily used in
conjunction with NAMED_WIDGET.
parameters:
- name: Time label
required: false
description: Text to label the time selection ('Time' by default)
values: .+
example: |
BUTTON 'Alert Time' 'var time = screen.getNamedWidget("TIME").text();' +
'alert("Time:"+time)'
NAMED_WIDGET TIME TIME
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: .+