openc3-cosmos-demo 5.11.3 → 5.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/plugin.txt +2 -2
- data/targets/INST/lib/example_limits_response.rb +4 -10
- data/targets/INST/procedures/calendar.rb +43 -0
- data/targets/INST/screens/adcs.txt +12 -12
- data/targets/INST/screens/array.txt +5 -9
- data/targets/INST/screens/ground.txt +2 -3
- data/targets/INST/screens/hs.txt +7 -11
- data/targets/INST/target.txt +2 -0
- data/targets/INST2/cmd_tlm/_ccsds_cmd.txt +9 -0
- data/targets/INST2/cmd_tlm/_ccsds_tlm.txt +19 -0
- data/targets/INST2/cmd_tlm/inst_cmds.txt +68 -0
- data/targets/INST2/cmd_tlm/inst_tlm.txt +149 -0
- data/targets/INST2/cmd_tlm/inst_tlm_override.txt +12 -0
- data/targets/INST2/data/attitude.bin +0 -0
- data/targets/INST2/data/position.bin +0 -0
- data/targets/INST2/lib/example_limits_response.py +27 -0
- data/targets/INST2/lib/helper.py +3 -0
- data/targets/INST2/lib/sim_inst.py +383 -0
- data/targets/INST2/procedures/calendar.py +57 -0
- data/targets/{INST/procedures_py → INST2/procedures}/checks.py +0 -1
- data/targets/{INST/procedures_py → INST2/procedures}/collect.py +7 -3
- data/targets/{INST/procedures_py → INST2/procedures}/disconnect.py +0 -2
- data/targets/{INST/procedures_py → INST2/procedures}/file_dialog.py +0 -2
- data/targets/{INST/procedures_py → INST2/procedures}/metadata.py +0 -2
- data/targets/INST2/procedures/my_script_suite.py +49 -0
- data/targets/INST2/procedures/my_test_suite.py +43 -0
- data/targets/{INST/procedures_py → INST2/procedures}/screens.py +0 -2
- data/targets/{INST/procedures_py → INST2/procedures}/stash.py +0 -2
- data/targets/{INST/procedures_py → INST2/procedures}/target_file.py +0 -1
- data/targets/{INST/procedures_py → INST2/procedures}/utilities/clear.py +0 -3
- data/targets/{INST/procedures_py → INST2/procedures}/utilities/collect.py +1 -3
- data/targets/INST2/public/ground_error.png +0 -0
- data/targets/INST2/public/ground_off.png +0 -0
- data/targets/INST2/public/ground_on.png +0 -0
- data/targets/INST2/public/satellite.png +0 -0
- data/targets/INST2/public/spiral.jpg +0 -0
- data/targets/INST2/screens/_footer.txt +1 -0
- data/targets/INST2/screens/adcs.txt +65 -0
- data/targets/INST2/screens/array.txt +12 -0
- data/targets/INST2/screens/block.txt +7 -0
- data/targets/INST2/screens/commanding.txt +57 -0
- data/targets/INST2/screens/graphs.txt +27 -0
- data/targets/INST2/screens/ground.txt +47 -0
- data/targets/INST2/screens/hs.txt +37 -0
- data/targets/INST2/screens/image.txt +3 -0
- data/targets/INST2/screens/latest.txt +20 -0
- data/targets/INST2/screens/launcher.txt +10 -0
- data/targets/INST2/screens/limits.txt +77 -0
- data/targets/INST2/screens/other.txt +22 -0
- data/targets/INST2/screens/params.txt +69 -0
- data/targets/INST2/screens/simple.txt +6 -0
- data/targets/INST2/screens/tabs.txt +56 -0
- data/targets/INST2/screens/web.txt +5 -0
- data/targets/INST2/tables/bin/ConfigTables.bin +0 -0
- data/targets/INST2/tables/config/ConfigTables_def.txt +7 -0
- data/targets/INST2/tables/config/MCConfigurationTable_def.txt +36 -0
- data/targets/INST2/tables/config/PPSSelectionTable_def.txt +7 -0
- data/targets/INST2/tables/config/TLMMonitoringTable_def.txt +31 -0
- data/targets/INST2/tables/procedures/download.rb +16 -0
- data/targets/INST2/tables/procedures/upload.rb +19 -0
- data/targets/INST2/target.txt +27 -0
- data/targets/SYSTEM/procedures/example_test.rb +0 -5
- data/targets/SYSTEM/procedures/openc3_api_test.rb +6 -6
- data/tools/widgets/BigWidget/BigWidget.umd.min.js +1 -3
- data/tools/widgets/BigWidget/BigWidget.umd.min.js.map +1 -1
- data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js +2 -2
- data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js.map +1 -1
- data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js +1 -1
- data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js.map +1 -1
- data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js +1 -1
- data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js.map +1 -1
- metadata +56 -12
@@ -0,0 +1,65 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
TITLE "<%= target_name %> Instrument ADCS Information" Courier 20 NORMAL true
|
5
|
+
# Note @original_target_name is also available
|
6
|
+
|
7
|
+
HORIZONTAL
|
8
|
+
VERTICALBOX "Position and Velocity"
|
9
|
+
LABELVALUE <%= target_name %> ADCS POSX WITH_UNITS 20 CENTER
|
10
|
+
# We recommend using these built-in colors from 1-8
|
11
|
+
SETTING TEXTCOLOR var(--color-data-visualization-1)
|
12
|
+
LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 22 CENTER
|
13
|
+
SETTING TEXTCOLOR var(--color-data-visualization-1)
|
14
|
+
LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 24 CENTER
|
15
|
+
SETTING TEXTCOLOR var(--color-data-visualization-1)
|
16
|
+
LABELVALUE <%= target_name %> ADCS VELX WITH_UNITS 20
|
17
|
+
SETTING TEXTCOLOR var(--color-data-visualization-2)
|
18
|
+
LABELVALUE <%= target_name %> ADCS VELY WITH_UNITS 22
|
19
|
+
SETTING TEXTCOLOR var(--color-data-visualization-2)
|
20
|
+
LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 24
|
21
|
+
SETTING TEXTCOLOR var(--color-data-visualization-2)
|
22
|
+
END
|
23
|
+
|
24
|
+
VERTICALBOX "Attitude"
|
25
|
+
LABELVALUE <%= target_name %> ADCS Q1 WITH_UNITS 12 RIGHT
|
26
|
+
SETTING TEXTALIGN LEFT
|
27
|
+
LABELVALUE <%= target_name %> ADCS Q2 WITH_UNITS 12 RIGHT
|
28
|
+
SETTING TEXTALIGN LEFT
|
29
|
+
LABELVALUE <%= target_name %> ADCS Q3 WITH_UNITS 12 RIGHT
|
30
|
+
SETTING TEXTALIGN LEFT
|
31
|
+
LABELVALUE <%= target_name %> ADCS Q4 WITH_UNITS 12 RIGHT
|
32
|
+
SETTING TEXTALIGN LEFT
|
33
|
+
LABELVALUE <%= target_name %> ADCS BIASX WITH_UNITS 12 RIGHT
|
34
|
+
SETTING TEXTALIGN LEFT
|
35
|
+
LABELVALUE <%= target_name %> ADCS BIASY WITH_UNITS 12 RIGHT
|
36
|
+
SETTING TEXTALIGN LEFT
|
37
|
+
LABELVALUE <%= target_name %> ADCS BIASZ WITH_UNITS 12 RIGHT
|
38
|
+
SETTING TEXTALIGN LEFT
|
39
|
+
END
|
40
|
+
|
41
|
+
VERTICALBOX "File Progress"
|
42
|
+
LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS 1 200 # scale 1, width 200
|
43
|
+
LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
|
44
|
+
LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS 2 # scale by 2
|
45
|
+
|
46
|
+
LABEL ""
|
47
|
+
LABEL "LEFT"
|
48
|
+
SETTING PADDING 5
|
49
|
+
SETTING TEXTALIGN LEFT
|
50
|
+
SETTING BACKCOLOR var(--color-data-visualization-1)
|
51
|
+
LABEL "CENTER"
|
52
|
+
SETTING PADDING 5
|
53
|
+
SETTING TEXTALIGN CENTER
|
54
|
+
SETTING BACKCOLOR var(--color-data-visualization-2)
|
55
|
+
LABEL "RIGHT"
|
56
|
+
SETTING PADDING 5
|
57
|
+
SETTING TEXTALIGN RIGHT
|
58
|
+
SETTING BACKCOLOR var(--color-data-visualization-3)
|
59
|
+
END
|
60
|
+
END
|
61
|
+
|
62
|
+
VERTICALBOX
|
63
|
+
LABELVALUE <%= target_name %> ADCS PACKET_TIMEFORMATTED WITH_UNITS 30
|
64
|
+
END
|
65
|
+
END
|
@@ -0,0 +1,12 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
TITLE "<%= target_name %> Instrument Array Data"
|
5
|
+
ARRAY <%= target_name %> HEALTH_STATUS ARY
|
6
|
+
ARRAY <%= target_name %> HEALTH_STATUS ARY 300 65 nil 8 FORMATTED
|
7
|
+
ARRAY <%= target_name %> HEALTH_STATUS ARY2 300 65 nil 5 WITH_UNITS
|
8
|
+
TEXTBOX <%= target_name %> HEALTH_STATUS ARY 200 65
|
9
|
+
TEXTBOX <%= target_name %> HEALTH_STATUS ARY2 300 200
|
10
|
+
ARRAY <%= target_name %> HEALTH_STATUS GROUND1STATUS 300 65 nil 8 FORMATTED
|
11
|
+
ARRAY <%= target_name %> HEALTH_STATUS GROUND2STATUS 300 65 nil 5 WITH_UNITS
|
12
|
+
END
|
@@ -0,0 +1,57 @@
|
|
1
|
+
SCREEN AUTO AUTO 0.5
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
TITLE "<%= target_name %> Commanding Examples"
|
5
|
+
|
6
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
|
7
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
|
8
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
|
9
|
+
|
10
|
+
VERTICALBOX "Send Collect Command:"
|
11
|
+
HORIZONTAL
|
12
|
+
LABEL "Type: "
|
13
|
+
# The ampersand '&' indicates a line continuation
|
14
|
+
NAMED_WIDGET COLLECT_TYPE &
|
15
|
+
COMBOBOX NORMAL SPECIAL
|
16
|
+
END
|
17
|
+
HORIZONTAL
|
18
|
+
LABEL " Duration: "
|
19
|
+
NAMED_WIDGET DURATION TEXTFIELD 12 "10.0"
|
20
|
+
END
|
21
|
+
# This is an example of using a varible named 'type'. You can operate on variables with Javascript code.
|
22
|
+
# All OpenC3 commands (api.cmd) must be separated by double semicolons ';;'. All code separated by semicolons is evaluated together.
|
23
|
+
# Note: you can also request and use telemetry in screens using Javascript Promises, e.g.
|
24
|
+
# api.tlm('INST PARAMS VALUE3', 'RAW').then(dur => api.cmd('INST COLLECT with TYPE '+type+', DURATION '+dur))"
|
25
|
+
# The tlm() function returns a Promise which is resolved with then() at which point we send the command with the parameter
|
26
|
+
# The plus '+' symbol indicates string concatenation with newlines.
|
27
|
+
# NOTE: Both lines must use the same quote character: ' or "
|
28
|
+
BUTTON 'Start Collect' "var type=screen.getNamedWidget('COLLECT_TYPE').text();" +
|
29
|
+
"var dur=screen.getNamedWidget('DURATION').text();" +
|
30
|
+
# You can have comments between string concatenations
|
31
|
+
"api.cmd('<%= target_name %> COLLECT with TYPE '+type+', DURATION '+dur)"
|
32
|
+
END
|
33
|
+
|
34
|
+
VERTICALBOX "Parameter-less Commands:"
|
35
|
+
NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
|
36
|
+
RADIOBUTTON 'Abort'
|
37
|
+
RADIOBUTTON 'Clear'
|
38
|
+
END
|
39
|
+
NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
|
40
|
+
BUTTON 'Send' "screen.getNamedWidget('GROUP').selected() === 0 ? " +
|
41
|
+
"api.cmd('<%= target_name %> ABORT') : (screen.getNamedWidget('CHECK').checked() ? " +
|
42
|
+
"api.cmd_no_hazardous_check('<%= target_name %> CLEAR') : api.cmd('<%= target_name %> CLEAR'))"
|
43
|
+
END
|
44
|
+
|
45
|
+
VERTICALBOX "Run Script:"
|
46
|
+
NAMED_WIDGET SCRIPTNAME COMBOBOX collect.rb checks.rb
|
47
|
+
NAMED_WIDGET BG CHECKBUTTON 'Background'
|
48
|
+
# The backslash '\' character indicates string concatenation without newlines.
|
49
|
+
# NOTE: Both lines must use the same quote character: ' or "
|
50
|
+
BUTTON 'Run Script' "var script=screen.getNamedWidget('SCRIPTNAME').text();" \
|
51
|
+
"var ctype=screen.getNamedWidget('COLLECT_TYPE').text();" \
|
52
|
+
# Set some environment variables to be used by the script as ENV['TYPE']
|
53
|
+
# See INST/procedures/checks.rb for an example of usage
|
54
|
+
"var env = {}; env['TYPE'] = ctype;" \
|
55
|
+
"runScript('INST/procedures/'+script, !screen.getNamedWidget('BG').checked(), env)"
|
56
|
+
END
|
57
|
+
END
|
@@ -0,0 +1,27 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
TITLE "<%= target_name %> Instrument Graphs"
|
5
|
+
|
6
|
+
MATRIXBYCOLUMNS 2
|
7
|
+
SPARKLINE <%= target_name %> HEALTH_STATUS TEMP1
|
8
|
+
SETTING SIZE 400 50
|
9
|
+
SETTING HISTORY 30s
|
10
|
+
SPARKLINE <%= target_name %> HEALTH_STATUS TEMP2
|
11
|
+
SETTING SIZE 400 50
|
12
|
+
SETTING HISTORY 30s
|
13
|
+
LABELSPARKLINE <%= target_name %> HEALTH_STATUS TEMP3
|
14
|
+
LABELSPARKLINE <%= target_name %> HEALTH_STATUS TEMP4
|
15
|
+
LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP1
|
16
|
+
SETTING ITEM <%= target_name %> ADCS Q1
|
17
|
+
LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP2 RAW
|
18
|
+
SETTING SECONDSGRAPHED 60
|
19
|
+
SETTING POINTSSAVED 600
|
20
|
+
SETTING POINTSGRAPHED 60
|
21
|
+
LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP3 CONVERTED REDUCED_MINUTE MIN
|
22
|
+
SETTING SIZE 600 500 # width height
|
23
|
+
SETTING HISTORY 1h
|
24
|
+
LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP4
|
25
|
+
SETTING HISTORY 30m
|
26
|
+
END
|
27
|
+
END
|
@@ -0,0 +1,47 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
TITLE "<%= target_name %> Instrument Ground Station Status"
|
5
|
+
|
6
|
+
CANVAS 650 600
|
7
|
+
# Example of lines and circles
|
8
|
+
# CANVASLINE 0 3 650 3 blue 3
|
9
|
+
# CANVASDOT 10 15 BLUE 5
|
10
|
+
CANVASLABEL 200 30 "Ground Contact Status"
|
11
|
+
|
12
|
+
# This is an example of using TLM_AND to && together different logical values
|
13
|
+
# Note you must use RAW for the base value and use SETTING IMAGE true / false
|
14
|
+
# for the two values you wish to display
|
15
|
+
#CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS
|
16
|
+
# SETTING TLM_AND <%= target_name %> HEALTH_STATUS GROUND2STATUS VALUE_EQ 1
|
17
|
+
# SETTING TLM_AND <%= target_name %> HEALTH_STATUS COLLECTS VALUE_EQ 0
|
18
|
+
# SETTING IMAGE true "ground_on.png" 100 200
|
19
|
+
# SETTING IMAGE false "ground_off.png" 100 200
|
20
|
+
CANVASIMAGE "satellite.png" 90 130 200 200
|
21
|
+
# If the image is clicked the "<%= target_name %> ADCS" screen will popup
|
22
|
+
SETTING SCREEN <%= target_name %> ADCS
|
23
|
+
# We're using the converted value and specifing a default of "ground_error.png"
|
24
|
+
# if none of the IMAGE settings match the value
|
25
|
+
CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED "ground_error.png" 400 100 180 180
|
26
|
+
SETTING IMAGE CONNECTED "ground_on.png" 400 100
|
27
|
+
SETTING IMAGE UNAVAILABLE "ground_off.png" 400 100
|
28
|
+
# If the image is clicked the "<%= target_name %> HS" screen will popup
|
29
|
+
SETTING SCREEN <%= target_name %> HS
|
30
|
+
CANVASLABEL 380 300 "Ground Station #1"
|
31
|
+
CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 520 300
|
32
|
+
# The default type is RAW and no default means anything over 10 will be blank
|
33
|
+
CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS RAW "ground_error.png" 400 350 180 180
|
34
|
+
SETTING IMAGE 1 "ground_on.png" 400 350
|
35
|
+
SETTING IMAGE 0 "ground_off.png" 400 350
|
36
|
+
# This is an example of using a range of values with a particular image
|
37
|
+
SETTING IMAGE 2..10 "ground_error.png" 400 350
|
38
|
+
CANVASLABEL 380 550 "Ground Station #2"
|
39
|
+
CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 520 550
|
40
|
+
CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 420 135 240 330 3 RAW
|
41
|
+
SETTING VALUE_EQ 0 WHITE
|
42
|
+
SETTING VALUE_EQ 1 GREEN
|
43
|
+
CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 420 385 240 330 3
|
44
|
+
SETTING VALUE_EQ UNAVAILABLE WHITE
|
45
|
+
SETTING VALUE_EQ CONNECTED GREEN
|
46
|
+
END
|
47
|
+
END
|
@@ -0,0 +1,37 @@
|
|
1
|
+
SCREEN AUTO AUTO 0.5
|
2
|
+
# Apply a setting to all LABELVALUEs
|
3
|
+
# GLOBAL_SETTING LABELVALUE TEXTCOLOR BLACK
|
4
|
+
|
5
|
+
VERTICAL
|
6
|
+
TITLE "<%= target_name %> Instrument Health and Status"
|
7
|
+
|
8
|
+
VERTICALBOX "General Telemetry"
|
9
|
+
BUTTON 'Start Collect' 'api.cmd("<%= target_name %> COLLECT with TYPE NORMAL, DURATION 5")'
|
10
|
+
FORMATVALUE <%= target_name %> HEALTH_STATUS COLLECTS "0x%08X" CONVERTED 16
|
11
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
|
12
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
|
13
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS ASCIICMD WITH_UNITS 40
|
14
|
+
END
|
15
|
+
|
16
|
+
VERTICALBOX "Temperatures"
|
17
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS 7
|
18
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
|
19
|
+
# LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
|
20
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
|
21
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS
|
22
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3
|
23
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP4
|
24
|
+
END
|
25
|
+
|
26
|
+
VERTICALBOX "Ground Station"
|
27
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 18
|
28
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS CONVERTED 18
|
29
|
+
END
|
30
|
+
# You can apply settings to an entire box
|
31
|
+
SETTING BACKCOLOR var(--color-data-visualization-2)
|
32
|
+
SETTING TEXTCOLOR BLACK
|
33
|
+
|
34
|
+
<%= render "_footer.txt" %>
|
35
|
+
END
|
36
|
+
# You can also apply BACKCOLOR to the entire screen
|
37
|
+
# SETTING BACKCOLOR var(--color-data-visualization-1)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
|
5
|
+
TITLE "<%= target_name %> Instrument Latest Header"
|
6
|
+
|
7
|
+
VERTICALBOX "Header"
|
8
|
+
LABELVALUE INST LATEST CCSDSVER
|
9
|
+
LABELVALUE INST LATEST CCSDSTYPE
|
10
|
+
LABELVALUE INST LATEST CCSDSSHF
|
11
|
+
LABELVALUE INST LATEST CCSDSAPID
|
12
|
+
LABELVALUE INST LATEST CCSDSSEQFLAGS
|
13
|
+
LABELVALUE INST LATEST CCSDSSEQCNT
|
14
|
+
LABELVALUE INST LATEST CCSDSLENGTH
|
15
|
+
LABELVALUE INST LATEST TIMESEC
|
16
|
+
LABELVALUE INST LATEST TIMEUS
|
17
|
+
LABELVALUE INST LATEST PKTID
|
18
|
+
END
|
19
|
+
|
20
|
+
END
|
@@ -0,0 +1,10 @@
|
|
1
|
+
SCREEN AUTO AUTO 1
|
2
|
+
|
3
|
+
TITLE 'Screen Launcher'
|
4
|
+
HORIZONTAL
|
5
|
+
BUTTON 'HS' "screen.open('INST', 'HS')"
|
6
|
+
BUTTON 'CMD' "screen.open('INST', 'COMMANDING')"
|
7
|
+
BUTTON 'GROUND' "screen.open('INST', 'GROUND')"
|
8
|
+
END
|
9
|
+
BUTTON 'Close HS & CMD' "screen.close('INST', 'HS');; screen.close('INST', 'COMMANDING')"
|
10
|
+
BUTTON 'Close All' "screen.closeAll()" # including this screen!
|
@@ -0,0 +1,77 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
TITLE "<%= target_name %> Instrument Limits"
|
4
|
+
|
5
|
+
HORIZONTAL
|
6
|
+
VERTICALBOX "Limits Bars"
|
7
|
+
LIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
8
|
+
VALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
9
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
10
|
+
# The TEMP1 limits are defined as follow:
|
11
|
+
# LIMITS DEFAULT 1 ENABLED -80.0 -70.0 60.0 80.0 -20.0 20.0
|
12
|
+
# Thus the following are examples of limiting the limitsbar
|
13
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
14
|
+
SUBSETTING 1 MIN_VALUE -80
|
15
|
+
SUBSETTING 1 MAX_VALUE 80
|
16
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
17
|
+
SUBSETTING 1 MIN_VALUE -75
|
18
|
+
SUBSETTING 1 MAX_VALUE 70
|
19
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
20
|
+
SUBSETTING 1 MIN_VALUE -70
|
21
|
+
SUBSETTING 1 MAX_VALUE 60
|
22
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
23
|
+
SUBSETTING 1 MIN_VALUE -50
|
24
|
+
SUBSETTING 1 MAX_VALUE 50
|
25
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
26
|
+
SUBSETTING 1 MIN_VALUE -20
|
27
|
+
SUBSETTING 1 MAX_VALUE 20
|
28
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
29
|
+
SUBSETTING 1 MIN_VALUE -10
|
30
|
+
SUBSETTING 1 MAX_VALUE 10
|
31
|
+
END
|
32
|
+
VERTICAL
|
33
|
+
VERTICALBOX "Range Bars 0-100"
|
34
|
+
RANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
|
35
|
+
VALUERANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
|
36
|
+
LABELVALUERANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
|
37
|
+
END
|
38
|
+
VERTICALBOX "Limits Colors"
|
39
|
+
LIMITSCOLOR <%= target_name %> HEALTH_STATUS TEMP1 CONVERTED 10 NIL # No label
|
40
|
+
LIMITSCOLOR <%= target_name %> HEALTH_STATUS TEMP2 # Default is label with just item name
|
41
|
+
LIMITSCOLOR <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 20 TRUE # Full TGT/PKT/ITEM label
|
42
|
+
END
|
43
|
+
END
|
44
|
+
END
|
45
|
+
|
46
|
+
HORIZONTAL
|
47
|
+
VERTICALBOX "Limits Columns"
|
48
|
+
HORIZONTAL
|
49
|
+
LIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2
|
50
|
+
VALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2
|
51
|
+
LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
|
52
|
+
# The TEMP2 limits are defined as follow:
|
53
|
+
# LIMITS DEFAULT 1 ENABLED -60.0 -55.0 30.0 35.0
|
54
|
+
# Thus the following are examples of limiting the limitscolumn
|
55
|
+
LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
|
56
|
+
SUBSETTING 1 MIN_VALUE -60
|
57
|
+
SUBSETTING 1 MAX_VALUE 35
|
58
|
+
LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
|
59
|
+
SUBSETTING 1 MIN_VALUE -55
|
60
|
+
SUBSETTING 1 MAX_VALUE 30
|
61
|
+
LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
|
62
|
+
SUBSETTING 1 MIN_VALUE -20
|
63
|
+
SUBSETTING 1 MAX_VALUE 10
|
64
|
+
END
|
65
|
+
END
|
66
|
+
|
67
|
+
# TODO: Not yet implemented
|
68
|
+
#VERTICALBOX "Range Columns 0-100"
|
69
|
+
# HORIZONTAL
|
70
|
+
# RANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
|
71
|
+
# VALUERANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
|
72
|
+
# LABELVALUERANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
|
73
|
+
# END
|
74
|
+
#END
|
75
|
+
END
|
76
|
+
|
77
|
+
<%= render "_footer.txt" %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
SCREEN 500 200 1.0
|
2
|
+
|
3
|
+
SCROLLWINDOW 200
|
4
|
+
|
5
|
+
# Change the title font to 10 pt courier without bold and make it italic
|
6
|
+
TITLE "<%= target_name %> Other Widget Examples" courier 10 normal true
|
7
|
+
|
8
|
+
HORIZONTAL
|
9
|
+
LABEL "TestText"
|
10
|
+
LABEL "TestText" nil 20 # Only change the font size
|
11
|
+
LABEL "TestText" nil nil BOLD # Only change make it bold
|
12
|
+
LABEL "TestText" nil nil nil true # Only make it italic
|
13
|
+
SPACER 32 24
|
14
|
+
LABEL "TestText" Arial nil BOLD # Bold arial with default size
|
15
|
+
LABEL "TestText" Arial nil nil true # Italic arial with default size
|
16
|
+
LABEL "TestText" Courier 14 # 14pt courier
|
17
|
+
END
|
18
|
+
|
19
|
+
LABELVALUEDESC INST HEALTH_STATUS TEMP1
|
20
|
+
LABELVALUEDESC INST HEALTH_STATUS TEMP1 "Description"
|
21
|
+
TEXTBOX INST ADCS PACKET_TIMEFORMATTED 400 100
|
22
|
+
END
|
@@ -0,0 +1,69 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
VERTICAL
|
4
|
+
TITLE Params
|
5
|
+
|
6
|
+
HORIZONTAL
|
7
|
+
MATRIXBYCOLUMNS 3
|
8
|
+
LABEL VALUE5
|
9
|
+
SETTING WIDTH 100 # Only need width on the first row
|
10
|
+
VALUE <%= target_name %> PARAMS VALUE5
|
11
|
+
LABELLED <%= target_name %> PARAMS VALUE5
|
12
|
+
SETTING LED_COLOR GOOD GREEN
|
13
|
+
SETTING LED_COLOR BAD RED
|
14
|
+
|
15
|
+
LABEL VALUE4
|
16
|
+
SETTING TEXTALIGN CENTER
|
17
|
+
VALUE <%= target_name %> PARAMS VALUE4
|
18
|
+
SETTING TEXTALIGN CENTER
|
19
|
+
LABELLED <%= target_name %> PARAMS VALUE4
|
20
|
+
SETTING LED_COLOR GOOD GREEN
|
21
|
+
SETTING LED_COLOR BAD RED
|
22
|
+
|
23
|
+
LABEL VALUE3
|
24
|
+
SETTING TEXTALIGN RIGHT
|
25
|
+
VALUE <%= target_name %> PARAMS VALUE3
|
26
|
+
SETTING TEXTALIGN RIGHT
|
27
|
+
LABELLED <%= target_name %> PARAMS VALUE3
|
28
|
+
SETTING LED_COLOR GOOD GREEN
|
29
|
+
SETTING LED_COLOR BAD RED
|
30
|
+
|
31
|
+
LABEL VALUE2
|
32
|
+
SETTING TEXTALIGN CENTER
|
33
|
+
VALUE <%= target_name %> PARAMS VALUE2
|
34
|
+
SETTING TEXTALIGN CENTER
|
35
|
+
LABELLED <%= target_name %> PARAMS VALUE2
|
36
|
+
SETTING LED_COLOR GOOD GREEN
|
37
|
+
SETTING LED_COLOR BAD RED
|
38
|
+
|
39
|
+
LABEL VALUE1
|
40
|
+
VALUE <%= target_name %> PARAMS VALUE1
|
41
|
+
LABELLED <%= target_name %> PARAMS VALUE1
|
42
|
+
SETTING LED_COLOR GOOD GREEN
|
43
|
+
SETTING LED_COLOR BAD RED
|
44
|
+
END
|
45
|
+
VERTICAL
|
46
|
+
LED <%= target_name %> PARAMS VALUE5 RAW 25 20 # Ellipse
|
47
|
+
SETTING LED_COLOR 0 GREEN
|
48
|
+
SETTING LED_COLOR 1 RED
|
49
|
+
LED <%= target_name %> PARAMS VALUE4 RAW 20 25 # Ellipse
|
50
|
+
SETTING LED_COLOR 0 YELLOW
|
51
|
+
SETTING LED_COLOR 1 BLUE
|
52
|
+
LED <%= target_name %> PARAMS VALUE3 RAW 20 20
|
53
|
+
SETTING LED_COLOR 0 GREEN
|
54
|
+
SETTING LED_COLOR 1 RED
|
55
|
+
SETTING LED_COLOR ANY ORANGE # All other values are ORANGE
|
56
|
+
LED <%= target_name %> PARAMS VALUE2 # Default is WITH_UNITS 15 15
|
57
|
+
SETTING LED_COLOR GOOD GREEN
|
58
|
+
SETTING LED_COLOR BAD RED
|
59
|
+
LED <%= target_name %> PARAMS VALUE1 CONVERTED 10 10
|
60
|
+
SETTING LED_COLOR GOOD GREEN
|
61
|
+
SETTING LED_COLOR BAD RED
|
62
|
+
END
|
63
|
+
SETTING RAW margin-left 20px
|
64
|
+
END
|
65
|
+
|
66
|
+
VERTICAL
|
67
|
+
LABELVALUE <%= target_name %> PARAMS PACKET_TIMEFORMATTED WITH_UNITS 20
|
68
|
+
END
|
69
|
+
END
|
@@ -0,0 +1,56 @@
|
|
1
|
+
SCREEN AUTO AUTO 1.0
|
2
|
+
|
3
|
+
TABBOOK
|
4
|
+
TABITEM ADCS
|
5
|
+
TITLE "<%= target_name %> Instrument ADCS Information"
|
6
|
+
|
7
|
+
HORIZONTAL
|
8
|
+
VERTICALBOX "Position and Velocity"
|
9
|
+
LABELVALUE <%= target_name %> ADCS POSX WITH_UNITS 20
|
10
|
+
LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 20
|
11
|
+
LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 20
|
12
|
+
LABELVALUE <%= target_name %> ADCS VELX WITH_UNITS 20
|
13
|
+
LABELVALUE <%= target_name %> ADCS VELY WITH_UNITS 20
|
14
|
+
LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 20
|
15
|
+
END
|
16
|
+
|
17
|
+
VERTICALBOX "Attitude"
|
18
|
+
LABELVALUE <%= target_name %> ADCS Q1
|
19
|
+
LABELVALUE <%= target_name %> ADCS Q2
|
20
|
+
LABELVALUE <%= target_name %> ADCS Q3
|
21
|
+
LABELVALUE <%= target_name %> ADCS Q4
|
22
|
+
LABELVALUE <%= target_name %> ADCS BIASX
|
23
|
+
LABELVALUE <%= target_name %> ADCS BIASY
|
24
|
+
LABELVALUE <%= target_name %> ADCS BIASZ
|
25
|
+
END
|
26
|
+
|
27
|
+
VERTICALBOX "File Progress"
|
28
|
+
LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS
|
29
|
+
LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
|
30
|
+
END
|
31
|
+
END
|
32
|
+
|
33
|
+
VERTICALBOX
|
34
|
+
LABELVALUE <%= target_name %> ADCS PACKET_TIMEFORMATTED WITH_UNITS 30
|
35
|
+
END
|
36
|
+
END
|
37
|
+
|
38
|
+
TABITEM HS
|
39
|
+
TITLE "Instrument Health and Status"
|
40
|
+
|
41
|
+
VERTICALBOX "General Telemetry"
|
42
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
|
43
|
+
END
|
44
|
+
|
45
|
+
VERTICALBOX "Temperatures"
|
46
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
|
47
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2
|
48
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3
|
49
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP4
|
50
|
+
END
|
51
|
+
|
52
|
+
VERTICALBOX
|
53
|
+
LABELVALUE <%= target_name %> HEALTH_STATUS PACKET_TIMEFORMATTED WITH_UNITS 30
|
54
|
+
END
|
55
|
+
END
|
56
|
+
END
|
Binary file
|
@@ -0,0 +1,36 @@
|
|
1
|
+
TABLE "MC_Configuration" BIG_ENDIAN KEY_VALUE "Memory Control Configuration Table"
|
2
|
+
APPEND_PARAMETER "Scrub_Region_1_Start_Addr" 32 UINT 0 0x03FFFFFB 0
|
3
|
+
FORMAT_STRING "0x%0X"
|
4
|
+
APPEND_PARAMETER "Scrub_Region_1_End_Addr" 32 UINT 0 0x03FFFFFF 0x03FFFFFF
|
5
|
+
FORMAT_STRING "0x%0X"
|
6
|
+
APPEND_PARAMETER "Scrub_Region_2_Start_Addr" 32 UINT 0 0x03FFFFB 0
|
7
|
+
FORMAT_STRING "0x%0X"
|
8
|
+
APPEND_PARAMETER "Scrub_Region_2_End_Addr" 32 UINT 0 0x03FFFFF 0x03FFFFF
|
9
|
+
FORMAT_STRING "0x%0X"
|
10
|
+
APPEND_PARAMETER "Dump_Packet_Throttle_(sec)" 32 UINT 0 0x0FFFFFFFF 2 "Number of seconds to wait between dumping large packets"
|
11
|
+
APPEND_PARAMETER "Memory_Scrubbing" 8 UINT 0 1 1
|
12
|
+
STATE DISABLE 0
|
13
|
+
STATE ENABLE 1
|
14
|
+
APPEND_PARAMETER "SIOC_Memory_Config" 8 UINT 1 3 3
|
15
|
+
GENERIC_WRITE_CONVERSION_START
|
16
|
+
if packet.read("Memory_Scrubbing") == 'DISABLE'
|
17
|
+
packet.get_item("SIOC_Memory_Config").range = (10..20)
|
18
|
+
else
|
19
|
+
packet.get_item("SIOC_Memory_Config").range = (1..3)
|
20
|
+
end
|
21
|
+
value
|
22
|
+
GENERIC_WRITE_CONVERSION_END
|
23
|
+
APPEND_PARAMETER "Uneditable_Text" 32 UINT MIN MAX 0xDEADBEEF "Uneditable field"
|
24
|
+
FORMAT_STRING "0x%0X"
|
25
|
+
UNEDITABLE
|
26
|
+
APPEND_PARAMETER "Uneditable_State" 16 UINT MIN MAX 0 "Uneditable field"
|
27
|
+
STATE DISABLE 0
|
28
|
+
STATE ENABLE 1
|
29
|
+
UNEDITABLE
|
30
|
+
APPEND_PARAMETER "Uneditable_Check" 16 UINT MIN MAX 1 "Uneditable field"
|
31
|
+
STATE UNCHECKED 0
|
32
|
+
STATE CHECKED 1
|
33
|
+
UNEDITABLE
|
34
|
+
APPEND_PARAMETER "Binary" 32 STRING 0xDEADBEEF "Binary string"
|
35
|
+
APPEND_PARAMETER "Pad" 16 UINT 0 0 0
|
36
|
+
HIDDEN
|
@@ -0,0 +1,7 @@
|
|
1
|
+
TABLE "PPS_Selection" BIG_ENDIAN KEY_VALUE "Payload Clock Control Pulse Per Second Selection Table"
|
2
|
+
APPEND_PARAMETER "Primary_PPS" 8 UINT 0 1 1
|
3
|
+
STATE CHECKED 1
|
4
|
+
STATE UNCHECKED 0
|
5
|
+
APPEND_PARAMETER "Redundant_PPS" 8 UINT 0 1 0
|
6
|
+
STATE UNCHECKED 0
|
7
|
+
STATE CHECKED 1
|
@@ -0,0 +1,31 @@
|
|
1
|
+
TABLE "TLM_Monitoring" BIG_ENDIAN ROW_COLUMN 100 "Telemetry Monitoring Table"
|
2
|
+
APPEND_PARAMETER "Threshold" 32 UINT MIN MAX 0 "Telemetry item threshold at which point persistance is incremented"
|
3
|
+
APPEND_PARAMETER "Offset" 32 UINT MIN MAX 0 "Offset into the telemetry packet to monitor"
|
4
|
+
APPEND_PARAMETER "Data_Size" 32 UINT 0 3 0 "Amount of data to monitor (bytes)"
|
5
|
+
STATE BITS 0
|
6
|
+
STATE BYTE 1
|
7
|
+
STATE WORD 2
|
8
|
+
STATE LONGWORD 3
|
9
|
+
APPEND_PARAMETER "Bit_Mask" 32 UINT MIN MAX 0 "Bit Mask to apply to the Data Size before the value is compared ot the Threshold"
|
10
|
+
APPEND_PARAMETER "Persistence" 32 UINT MIN MAX 0 "Number of times the Threshold must be exceeded before Action is triggered"
|
11
|
+
APPEND_PARAMETER "Type" 32 UINT 0 3 0 "How the Threshold is compared against"
|
12
|
+
STATE LESS_THAN 0
|
13
|
+
STATE GREATER_THAN 1
|
14
|
+
STATE EQUAL_TO 2
|
15
|
+
STATE NOT_EQUAL_TO 3
|
16
|
+
APPEND_PARAMETER "Action" 32 UINT 0 4 0 "Action to take when Persistance is met"
|
17
|
+
STATE NO_ACTION_REQUIRED 0
|
18
|
+
STATE INITIATE_RESET 1
|
19
|
+
STATE CHANGE_MODE_SAFE 2
|
20
|
+
APPEND_PARAMETER "Group" 32 UINT 1 4 1 "Telemetry group this monitor item belongs to. Groups are automatically enabled due to payload events."
|
21
|
+
STATE ALL_MODES 1
|
22
|
+
STATE SAFE_MODE 2
|
23
|
+
APPEND_PARAMETER "Signed" 8 UINT 0 2 0 "Whether to treat the Data Size data as signed or unsigned when comparing to the Threshold"
|
24
|
+
STATE NOT_APPLICABLE 0
|
25
|
+
STATE UNSIGNED 1
|
26
|
+
STATE SIGNED 2
|
27
|
+
|
28
|
+
# Note we're creating 100 DEFAULT rows to match our 100 row table
|
29
|
+
<% 100.times do %>
|
30
|
+
DEFAULT 0x0 0 BITS 0x0 0 LESS_THAN NO_ACTION_REQUIRED ALL_MODES UNSIGNED
|
31
|
+
<% end %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# TBL_FILENAME is set to the name of the table file to overwrite
|
2
|
+
puts "file:#{ENV['TBL_FILENAME']}"
|
3
|
+
# Download the file
|
4
|
+
# Implement custom commanding logic to download the table
|
5
|
+
# You probably want to do something like:
|
6
|
+
buffer = ''
|
7
|
+
# i = 1
|
8
|
+
# num_segments = 5 # calculate based on TBL_FILENAME
|
9
|
+
# table_id = 1 # calculate based on TBL_FILENAME
|
10
|
+
# while i < num_segments
|
11
|
+
# # Request a part of the table buffer
|
12
|
+
# cmd("TGT DUMP with TABLE_ID #{table_id}, SEGMENT #{i}")
|
13
|
+
# buffer += tlm("TGT DUMP_PKT DATA")
|
14
|
+
# i += 1
|
15
|
+
# end
|
16
|
+
put_target_file(ENV['TBL_FILENAME'], buffer)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# TBL_FILENAME is set to the name of the table file
|
2
|
+
puts "file:#{ENV['TBL_FILENAME']}"
|
3
|
+
# Open the file
|
4
|
+
file = get_target_file(ENV['TBL_FILENAME'])
|
5
|
+
buffer = file.read
|
6
|
+
# puts buffer.formatted
|
7
|
+
# Implement custom commanding logic to upload the table
|
8
|
+
# Note that buffer is a Ruby string of bytes
|
9
|
+
# You probably want to do something like:
|
10
|
+
# buf_size = 512 # Size of a buffer in the upload command
|
11
|
+
# i = 0
|
12
|
+
# while i < buffer.length
|
13
|
+
# # Send a part of the buffer
|
14
|
+
# # NOTE: triple dots means start index, up to but not including, end index
|
15
|
+
# # while double dots means start index, up to AND including, end index
|
16
|
+
# cmd("TGT", "UPLOAD", "DATA" => buffer[i...(i + buf_size)])
|
17
|
+
# i += buf_size
|
18
|
+
# end
|
19
|
+
file.delete
|