openc3-cosmos-demo 5.11.2 → 5.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/plugin.txt +2 -2
  3. data/targets/INST/lib/example_limits_response.rb +4 -10
  4. data/targets/INST/procedures/calendar.rb +43 -0
  5. data/targets/INST/target.txt +2 -0
  6. data/targets/INST2/cmd_tlm/_ccsds_cmd.txt +9 -0
  7. data/targets/INST2/cmd_tlm/_ccsds_tlm.txt +19 -0
  8. data/targets/INST2/cmd_tlm/inst_cmds.txt +68 -0
  9. data/targets/INST2/cmd_tlm/inst_tlm.txt +149 -0
  10. data/targets/INST2/cmd_tlm/inst_tlm_override.txt +12 -0
  11. data/targets/INST2/data/attitude.bin +0 -0
  12. data/targets/INST2/data/position.bin +0 -0
  13. data/targets/INST2/lib/example_limits_response.py +27 -0
  14. data/targets/INST2/lib/helper.py +3 -0
  15. data/targets/INST2/lib/sim_inst.py +383 -0
  16. data/targets/INST2/procedures/calendar.py +57 -0
  17. data/targets/{INST/procedures_py → INST2/procedures}/checks.py +0 -1
  18. data/targets/{INST/procedures_py → INST2/procedures}/collect.py +7 -3
  19. data/targets/{INST/procedures_py → INST2/procedures}/disconnect.py +0 -2
  20. data/targets/{INST/procedures_py → INST2/procedures}/file_dialog.py +0 -2
  21. data/targets/{INST/procedures_py → INST2/procedures}/metadata.py +0 -2
  22. data/targets/INST2/procedures/my_script_suite.py +50 -0
  23. data/targets/INST2/procedures/my_test_suite.py +43 -0
  24. data/targets/{INST/procedures_py → INST2/procedures}/screens.py +0 -2
  25. data/targets/{INST/procedures_py → INST2/procedures}/stash.py +0 -2
  26. data/targets/{INST/procedures_py → INST2/procedures}/target_file.py +0 -1
  27. data/targets/{INST/procedures_py → INST2/procedures}/utilities/clear.py +0 -3
  28. data/targets/{INST/procedures_py → INST2/procedures}/utilities/collect.py +1 -3
  29. data/targets/INST2/public/ground_error.png +0 -0
  30. data/targets/INST2/public/ground_off.png +0 -0
  31. data/targets/INST2/public/ground_on.png +0 -0
  32. data/targets/INST2/public/satellite.png +0 -0
  33. data/targets/INST2/public/spiral.jpg +0 -0
  34. data/targets/INST2/screens/_footer.txt +1 -0
  35. data/targets/INST2/screens/adcs.txt +65 -0
  36. data/targets/INST2/screens/array.txt +16 -0
  37. data/targets/INST2/screens/block.txt +7 -0
  38. data/targets/INST2/screens/commanding.txt +57 -0
  39. data/targets/INST2/screens/graphs.txt +27 -0
  40. data/targets/INST2/screens/ground.txt +48 -0
  41. data/targets/INST2/screens/hs.txt +41 -0
  42. data/targets/INST2/screens/image.txt +3 -0
  43. data/targets/INST2/screens/latest.txt +20 -0
  44. data/targets/INST2/screens/launcher.txt +10 -0
  45. data/targets/INST2/screens/limits.txt +77 -0
  46. data/targets/INST2/screens/other.txt +22 -0
  47. data/targets/INST2/screens/params.txt +69 -0
  48. data/targets/INST2/screens/simple.txt +6 -0
  49. data/targets/INST2/screens/tabs.txt +56 -0
  50. data/targets/INST2/screens/web.txt +5 -0
  51. data/targets/INST2/tables/bin/ConfigTables.bin +0 -0
  52. data/targets/INST2/tables/config/ConfigTables_def.txt +7 -0
  53. data/targets/INST2/tables/config/MCConfigurationTable_def.txt +36 -0
  54. data/targets/INST2/tables/config/PPSSelectionTable_def.txt +7 -0
  55. data/targets/INST2/tables/config/TLMMonitoringTable_def.txt +31 -0
  56. data/targets/INST2/tables/procedures/download.rb +16 -0
  57. data/targets/INST2/tables/procedures/upload.rb +19 -0
  58. data/targets/INST2/target.txt +27 -0
  59. data/targets/SYSTEM/procedures/example_test.rb +0 -5
  60. data/tools/widgets/BigWidget/BigWidget.umd.min.js +1 -3
  61. data/tools/widgets/BigWidget/BigWidget.umd.min.js.map +1 -1
  62. data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js +2 -2
  63. data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js.map +1 -1
  64. data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js +1 -1
  65. data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js.map +1 -1
  66. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js +1 -1
  67. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js.map +1 -1
  68. 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
+ LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 22 CENTER
11
+ LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 24 CENTER
12
+ LABELVALUE <%= target_name %> ADCS VELX WITH_UNITS 20
13
+ LABELVALUE <%= target_name %> ADCS VELY WITH_UNITS 22
14
+ LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 24
15
+ END
16
+
17
+ VERTICALBOX "Attitude"
18
+ LABELVALUE <%= target_name %> ADCS Q1 WITH_UNITS 12 RIGHT
19
+ SETTING TEXTALIGN LEFT
20
+ SETTING TEXTCOLOR RED
21
+ LABELVALUE <%= target_name %> ADCS Q2 WITH_UNITS 12 RIGHT
22
+ SETTING TEXTALIGN LEFT
23
+ SUBSETTING 0 TEXTCOLOR BLUE
24
+ SUBSETTING 1 TEXTCOLOR GREEN
25
+ LABELVALUE <%= target_name %> ADCS Q3 WITH_UNITS 12 RIGHT
26
+ SETTING TEXTALIGN LEFT
27
+ SETTING BACKCOLOR PURPLE
28
+ LABELVALUE <%= target_name %> ADCS Q4 WITH_UNITS 12 RIGHT
29
+ SETTING TEXTALIGN LEFT
30
+ SUBSETTING 0 BACKCOLOR ORANGE
31
+ LABELVALUE <%= target_name %> ADCS BIASX WITH_UNITS 12 RIGHT
32
+ SETTING TEXTALIGN LEFT
33
+ LABELVALUE <%= target_name %> ADCS BIASY WITH_UNITS 12 RIGHT
34
+ SETTING TEXTALIGN LEFT
35
+ LABELVALUE <%= target_name %> ADCS BIASZ WITH_UNITS 12 RIGHT
36
+ SETTING TEXTALIGN LEFT
37
+ END
38
+
39
+ VERTICALBOX "File Progress"
40
+ LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS
41
+ LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
42
+ LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS 2 60 RAW # scale by 2
43
+
44
+ LABEL ""
45
+ LABEL "LEFT"
46
+ SETTING PADDING 5
47
+ SETTING TEXTALIGN LEFT
48
+ SETTING BACKCOLOR RED
49
+ LABEL "CENTER"
50
+ SETTING PADDING 5
51
+ SETTING TEXTALIGN CENTER
52
+ SETTING TEXTCOLOR BLACK
53
+ SETTING BACKCOLOR WHITE
54
+ LABEL "RIGHT"
55
+ SETTING PADDING 5
56
+ SETTING TEXTALIGN RIGHT
57
+ SETTING TEXTCOLOR WHITE
58
+ SETTING BACKCOLOR BLUE
59
+ END
60
+ END
61
+
62
+ VERTICALBOX
63
+ LABELVALUE <%= target_name %> ADCS PACKET_TIMEFORMATTED WITH_UNITS 30
64
+ END
65
+ END
@@ -0,0 +1,16 @@
1
+ SCREEN AUTO AUTO 1.0
2
+ GLOBAL_SETTING ARRAY COLORBLIND TRUE
3
+ GLOBAL_SETTING TEXTBOX COLORBLIND TRUE
4
+
5
+ VERTICAL
6
+ TITLE "<%= target_name %> Instrument Array Data"
7
+ ARRAY <%= target_name %> HEALTH_STATUS ARY
8
+ ARRAY <%= target_name %> HEALTH_STATUS ARY 300 50 nil 8 FORMATTED
9
+ ARRAY <%= target_name %> HEALTH_STATUS ARY2 300 50 nil 5 WITH_UNITS
10
+ TEXTBOX <%= target_name %> HEALTH_STATUS ARY 200 50
11
+ TEXTBOX <%= target_name %> HEALTH_STATUS ARY2 300 200
12
+ ARRAY <%= target_name %> HEALTH_STATUS GROUND1STATUS 300 50 nil 8 FORMATTED
13
+ ARRAY <%= target_name %> HEALTH_STATUS GROUND2STATUS 300 50 nil 5 WITH_UNITS
14
+ TEXTBOX <%= target_name %> HEALTH_STATUS GROUND1STATUS 300 50
15
+ TEXTBOX <%= target_name %> HEALTH_STATUS GROUND2STATUS 300 100
16
+ END
@@ -0,0 +1,7 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ TITLE "<%= target_name %> Instrument Block Data"
5
+ BLOCK <%= target_name %> IMAGE BLOCK
6
+ BLOCK <%= target_name %> IMAGE BLOCK 680 200 "%02X" 4 6 "0x%08X: "
7
+ 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,48 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ TITLE "<%= target_name %> Instrument Ground Station Status"
5
+
6
+ CANVAS 650 600
7
+ # Just demonstrate 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
+ CANVASLINE 10 10 640 10 blue 3
21
+ CANVASIMAGE "satellite.png" 90 130 200 200
22
+ # If the image is clicked the "<%= target_name %> ADCS" screen will popup
23
+ SETTING SCREEN <%= target_name %> ADCS
24
+ # We're using the converted value and specifing a default of "ground_error.png"
25
+ # if none of the IMAGE settings match the value
26
+ CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED "ground_error.png" 400 100 180 180
27
+ SETTING IMAGE CONNECTED "ground_on.png" 400 100
28
+ SETTING IMAGE UNAVAILABLE "ground_off.png" 400 100
29
+ # If the image is clicked the "<%= target_name %> HS" screen will popup
30
+ SETTING SCREEN <%= target_name %> HS
31
+ CANVASLABEL 380 300 "Ground Station #1"
32
+ CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 520 300
33
+ # The default type is RAW and no default means anything over 10 will be blank
34
+ CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS RAW "ground_error.png" 400 350 180 180
35
+ SETTING IMAGE 1 "ground_on.png" 400 350
36
+ SETTING IMAGE 0 "ground_off.png" 400 350
37
+ # This is an example of using a range of values with a particular image
38
+ SETTING IMAGE 2..10 "ground_error.png" 400 350
39
+ CANVASLABEL 380 550 "Ground Station #2"
40
+ CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 520 550
41
+ CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 420 135 240 330 3 RAW
42
+ SETTING VALUE_EQ 0 WHITE
43
+ SETTING VALUE_EQ 1 GREEN
44
+ CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 420 385 240 330 3
45
+ SETTING VALUE_EQ UNAVAILABLE WHITE
46
+ SETTING VALUE_EQ CONNECTED GREEN
47
+ END
48
+ END
@@ -0,0 +1,41 @@
1
+ SCREEN AUTO AUTO 0.5
2
+ GLOBAL_SETTING LABELVALUELIMITSBAR COLORBLIND TRUE
3
+ GLOBAL_SETTING LABELVALUELIMITSBAR TEXTCOLOR BLACK
4
+ GLOBAL_SETTING LABELVALUE TEXTCOLOR BLACK
5
+ GLOBAL_SETTING VERTICALBOX TEXTCOLOR BLACK
6
+
7
+ VERTICAL
8
+
9
+ TITLE "<%= target_name %> Instrument Health and Status"
10
+ SETTING BACKCOLOR 162 181 205
11
+ SETTING TEXTCOLOR black
12
+
13
+ VERTICALBOX "General Telemetry"
14
+ BUTTON 'Start Collect' 'api.cmd("<%= target_name %> COLLECT with TYPE NORMAL, DURATION 5")'
15
+ FORMATVALUE <%= target_name %> HEALTH_STATUS COLLECTS "0x%08X" CONVERTED 16
16
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
17
+ LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
18
+ LABELVALUE <%= target_name %> HEALTH_STATUS ASCIICMD WITH_UNITS 40
19
+ END
20
+ SETTING BACKCOLOR 163 185 163
21
+
22
+ VERTICALBOX "Temperatures"
23
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS 7
24
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
25
+ # LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
26
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
27
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS
28
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3
29
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP4
30
+ END
31
+ SETTING BACKCOLOR 203 173 158
32
+
33
+ VERTICALBOX "Ground Station"
34
+ LABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 18
35
+ LABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS CONVERTED 18
36
+ END
37
+ SETTING BACKCOLOR 207 171 175
38
+
39
+ <%= render "_footer.txt" %>
40
+ END
41
+ SETTING BACKCOLOR 162 181 205
@@ -0,0 +1,3 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ IMAGEVIEWER INST IMAGE IMAGE png
@@ -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,6 @@
1
+ SCREEN AUTO AUTO 0.5
2
+
3
+ LABELVALUE <%= target_name %> HEALTH_STATUS CCSDSSEQCNT
4
+
5
+ HELLOWORLD
6
+ BIG <%= target_name %> HEALTH_STATUS TEMP1
@@ -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
@@ -0,0 +1,5 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ IFRAME https://openc3.com 900 450
5
+ END
@@ -0,0 +1,7 @@
1
+ # This file references table definitions contained in stand alone
2
+ # files. The syntax is:
3
+ # TABLEFILE "FileName_def.txt"
4
+
5
+ TABLEFILE "MCConfigurationTable_def.txt"
6
+ TABLEFILE "TLMMonitoringTable_def.txt"
7
+ TABLEFILE "PPSSelectionTable_def.txt"
@@ -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)