openc3-cosmos-demo 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +729 -0
  3. data/README.md +30 -0
  4. data/Rakefile +45 -0
  5. data/microservices/EXAMPLE/example_target.rb +126 -0
  6. data/microservices/TEMPLATED/scpi_target.rb +82 -0
  7. data/plugin.txt +117 -0
  8. data/targets/EXAMPLE/cmd_tlm/example_cmds.txt +2 -0
  9. data/targets/EXAMPLE/cmd_tlm/example_tlm.txt +5 -0
  10. data/targets/EXAMPLE/lib/example_interface.rb +30 -0
  11. data/targets/EXAMPLE/target.txt +9 -0
  12. data/targets/INST/cmd_tlm/_ccsds_cmd.txt +9 -0
  13. data/targets/INST/cmd_tlm/_ccsds_tlm.txt +19 -0
  14. data/targets/INST/cmd_tlm/inst_cmds.txt +63 -0
  15. data/targets/INST/cmd_tlm/inst_tlm.txt +162 -0
  16. data/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
  17. data/targets/INST/data/attitude.bin +0 -0
  18. data/targets/INST/data/position.bin +0 -0
  19. data/targets/INST/lib/example_limits_response.rb +42 -0
  20. data/targets/INST/lib/sim_inst.rb +376 -0
  21. data/targets/INST/procedures/checks.rb +11 -0
  22. data/targets/INST/procedures/collect.rb +18 -0
  23. data/targets/INST/procedures/disconnect.rb +29 -0
  24. data/targets/INST/procedures/file_dialog.rb +15 -0
  25. data/targets/INST/procedures/my_script_suite.rb +46 -0
  26. data/targets/INST/procedures/my_test_suite.rb +45 -0
  27. data/targets/INST/procedures/target_file.rb +21 -0
  28. data/targets/INST/procedures/utilities/clear.rb +7 -0
  29. data/targets/INST/procedures/utilities/collect.rb +14 -0
  30. data/targets/INST/public/ground_error.png +0 -0
  31. data/targets/INST/public/ground_off.png +0 -0
  32. data/targets/INST/public/ground_on.png +0 -0
  33. data/targets/INST/public/satellite.png +0 -0
  34. data/targets/INST/screens/_footer.txt +3 -0
  35. data/targets/INST/screens/adcs.txt +71 -0
  36. data/targets/INST/screens/array.txt +16 -0
  37. data/targets/INST/screens/block.txt +7 -0
  38. data/targets/INST/screens/commanding.txt +47 -0
  39. data/targets/INST/screens/graphs.txt +23 -0
  40. data/targets/INST/screens/ground.txt +45 -0
  41. data/targets/INST/screens/hs.txt +42 -0
  42. data/targets/INST/screens/latest.txt +21 -0
  43. data/targets/INST/screens/launcher.txt +10 -0
  44. data/targets/INST/screens/limits.txt +82 -0
  45. data/targets/INST/screens/other.txt +22 -0
  46. data/targets/INST/screens/params.txt +54 -0
  47. data/targets/INST/screens/simple.txt +6 -0
  48. data/targets/INST/screens/tabs.txt +66 -0
  49. data/targets/INST/screens/web.txt +5 -0
  50. data/targets/INST/tables/bin/ConfigTables.bin +0 -0
  51. data/targets/INST/tables/config/ConfigTables_def.txt +7 -0
  52. data/targets/INST/tables/config/MCConfigurationTable_def.txt +36 -0
  53. data/targets/INST/tables/config/PPSSelectionTable_def.txt +7 -0
  54. data/targets/INST/tables/config/TLMMonitoringTable_def.txt +31 -0
  55. data/targets/INST/tables/procedures/download.rb +16 -0
  56. data/targets/INST/tables/procedures/upload.rb +19 -0
  57. data/targets/INST/target.txt +31 -0
  58. data/targets/SYSTEM/cmd_tlm/limits_groups.txt +6 -0
  59. data/targets/SYSTEM/cmd_tlm/meta_tlm.txt +10 -0
  60. data/targets/SYSTEM/cmd_tlm/system_cmds.txt +41 -0
  61. data/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
  62. data/targets/SYSTEM/lib/example_background_task.rb +69 -0
  63. data/targets/SYSTEM/lib/example_target.rb +115 -0
  64. data/targets/SYSTEM/lib/limits_groups.rb +67 -0
  65. data/targets/SYSTEM/lib/scpi_target.rb +79 -0
  66. data/targets/SYSTEM/procedures/example_test.rb +191 -0
  67. data/targets/SYSTEM/procedures/interactive.rb +38 -0
  68. data/targets/SYSTEM/procedures/limits_api_test.rb +89 -0
  69. data/targets/SYSTEM/procedures/openc3_api_test.rb +286 -0
  70. data/targets/SYSTEM/procedures/run_example_test.rb +3 -0
  71. data/targets/SYSTEM/procedures/test.rb +49 -0
  72. data/targets/SYSTEM/screens/status.txt +12 -0
  73. data/targets/SYSTEM/target.txt +12 -0
  74. data/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +13 -0
  75. data/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -0
  76. data/targets/TEMPLATED/lib/templated_interface.rb +72 -0
  77. data/targets/TEMPLATED/target.txt +8 -0
  78. data/tools/widgets/BigWidget/BigWidget.umd.min.js +4 -0
  79. data/tools/widgets/BigWidget/BigWidget.umd.min.js.map +1 -0
  80. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js +2 -0
  81. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js.map +1 -0
  82. metadata +128 -0
@@ -0,0 +1,46 @@
1
+ load 'openc3/script/suite.rb'
2
+ require 'INST/procedures/utilities/collect' # Test requiring files from buckets in suite analysis
3
+
4
+ class ExampleGroup < OpenC3::Group
5
+ def setup
6
+ puts "Setup"
7
+ end
8
+
9
+ def script_run_method_with_long_name
10
+ puts "Running #{OpenC3::Group.current_suite}:#{OpenC3::Group.current_group}:#{OpenC3::Group.current_script}"
11
+ OpenC3::Group.puts "This test verifies requirement 1"
12
+ raise "error"
13
+ puts "continue past raise"
14
+ end
15
+
16
+ def script_2
17
+ puts "Running #{OpenC3::Group.current_suite}:#{OpenC3::Group.current_group}:#{OpenC3::Group.current_script}"
18
+ OpenC3::Group.puts "This test verifies requirement 2"
19
+ helper()
20
+ wait(2)
21
+ end
22
+
23
+ def script_3
24
+ puts "Running #{OpenC3::Group.current_suite}:#{OpenC3::Group.current_group}:#{OpenC3::Group.current_script}"
25
+ raise SkipScript
26
+ end
27
+
28
+ def helper
29
+ if $manual
30
+ answer = ask "Are you sure?"
31
+ else
32
+ answer = 'y'
33
+ end
34
+ end
35
+
36
+ def teardown
37
+ puts "teardown"
38
+ end
39
+ end
40
+
41
+ class MySuite < OpenC3::Suite
42
+ def initialize
43
+ super()
44
+ add_group('ExampleGroup')
45
+ end
46
+ end
@@ -0,0 +1,45 @@
1
+ load 'openc3/tools/test_runner/test.rb'
2
+
3
+ class ExampleTest < OpenC3::Test
4
+ def setup
5
+ puts "Setup"
6
+ end
7
+
8
+ def test_case_with_long_name
9
+ puts "Running #{OpenC3::Test.current_test_suite}:#{OpenC3::Test.current_test}:#{OpenC3::Test.current_test_case}"
10
+ OpenC3::Test.puts "This test verifies requirement 1"
11
+ raise "error"
12
+ puts "continue past raise"
13
+ end
14
+
15
+ def test_2
16
+ puts "Running #{OpenC3::Test.current_test_suite}:#{OpenC3::Test.current_test}:#{OpenC3::Test.current_test_case}"
17
+ OpenC3::Test.puts "This test verifies requirement 2"
18
+ helper()
19
+ wait(2)
20
+ end
21
+
22
+ def test_3
23
+ puts "Running #{OpenC3::Test.current_test_suite}:#{OpenC3::Test.current_test}:#{OpenC3::Test.current_test_case}"
24
+ raise SkipTestCase
25
+ end
26
+
27
+ def helper
28
+ if $manual
29
+ answer = ask "Are you sure?"
30
+ else
31
+ answer = 'y'
32
+ end
33
+ end
34
+
35
+ def teardown
36
+ puts "teardown"
37
+ end
38
+ end
39
+
40
+ class MyTestSuite < OpenC3::TestSuite
41
+ def initialize
42
+ super()
43
+ add_test('ExampleTest')
44
+ end
45
+ end
@@ -0,0 +1,21 @@
1
+ put_target_file("INST/test.txt", "this is a string test")
2
+ file = get_target_file("INST/test.txt")
3
+ puts file.read
4
+ file.delete
5
+ delete_target_file("INST/test.txt")
6
+
7
+ save_file = Tempfile.new('test')
8
+ save_file.write("this is a Io test")
9
+ save_file.rewind
10
+ put_target_file("INST/test.txt", save_file)
11
+ save_file.delete
12
+ file = get_target_file("INST/test.txt")
13
+ puts file.read
14
+ file.delete
15
+ delete_target_file("INST/test.txt")
16
+
17
+ put_target_file("INST/test.bin", "\x00\x01\x02\x03\xFF\xEE\xDD\xCC")
18
+ file = get_target_file("INST/test.bin")
19
+ puts file.read.formatted
20
+ file.delete
21
+ delete_target_file("INST/test.bin")
@@ -0,0 +1,7 @@
1
+ def clear
2
+ # Command the collect
3
+ cmd("<%= target_name %> CLEAR")
4
+
5
+ # Wait for telemetry to update
6
+ wait_check("<%= target_name %> HEALTH_STATUS COLLECTS == 0", 10)
7
+ end
@@ -0,0 +1,14 @@
1
+ load_utility '<%= target_name %>/procedures/utilities/clear.rb'
2
+
3
+ def collect(type, duration, call_clear = false)
4
+ # Get the current collects telemetry point
5
+ collects = tlm('<%= target_name %> HEALTH_STATUS COLLECTS')
6
+
7
+ # Command the collect
8
+ cmd("<%= target_name %> COLLECT with TYPE #{type}, DURATION #{duration}")
9
+
10
+ # Wait for telemetry to update
11
+ wait_check("<%= target_name %> HEALTH_STATUS COLLECTS == #{collects + 1}", 10)
12
+
13
+ clear() if call_clear
14
+ end
Binary file
Binary file
Binary file
@@ -0,0 +1,3 @@
1
+ VERTICALBOX
2
+ LABELVALUE <%= target_name %> HEALTH_STATUS TIMEFORMATTED WITH_UNITS 30
3
+ END
@@ -0,0 +1,71 @@
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
9
+ SECTIONHEADER "Position and Velocity"
10
+
11
+ LABELVALUE <%= target_name %> ADCS POSX WITH_UNITS 20 CENTER
12
+ LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 22 CENTER
13
+ LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 24 CENTER
14
+ LABELVALUE <%= target_name %> ADCS VELX WITH_UNITS 20
15
+ LABELVALUE <%= target_name %> ADCS VELY WITH_UNITS 22
16
+ LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 24
17
+ END
18
+
19
+ VERTICALBOX
20
+ SECTIONHEADER "Attitude"
21
+
22
+ LABELVALUE <%= target_name %> ADCS Q1 WITH_UNITS 12 RIGHT
23
+ SETTING TEXTALIGN LEFT
24
+ SETTING TEXTCOLOR RED
25
+ LABELVALUE <%= target_name %> ADCS Q2 WITH_UNITS 12 RIGHT
26
+ SETTING TEXTALIGN LEFT
27
+ SUBSETTING 0 TEXTCOLOR BLUE
28
+ SUBSETTING 1 TEXTCOLOR GREEN
29
+ LABELVALUE <%= target_name %> ADCS Q3 WITH_UNITS 12 RIGHT
30
+ SETTING TEXTALIGN LEFT
31
+ SETTING BACKCOLOR PURPLE
32
+ LABELVALUE <%= target_name %> ADCS Q4 WITH_UNITS 12 RIGHT
33
+ SETTING TEXTALIGN LEFT
34
+ SUBSETTING 0 BACKCOLOR ORANGE
35
+ LABELVALUE <%= target_name %> ADCS BIASX WITH_UNITS 12 RIGHT
36
+ SETTING TEXTALIGN LEFT
37
+ LABELVALUE <%= target_name %> ADCS BIASY WITH_UNITS 12 RIGHT
38
+ SETTING TEXTALIGN LEFT
39
+ LABELVALUE <%= target_name %> ADCS BIASZ WITH_UNITS 12 RIGHT
40
+ SETTING TEXTALIGN LEFT
41
+ END
42
+
43
+ VERTICALBOX
44
+ SECTIONHEADER "File Progress"
45
+
46
+ LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS
47
+ LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
48
+ LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS 2 60 RAW # scale by 2
49
+
50
+ LABEL ""
51
+ LABEL "LEFT"
52
+ SETTING PADDING 5
53
+ SETTING TEXTALIGN LEFT
54
+ SETTING BACKCOLOR RED
55
+ LABEL "CENTER"
56
+ SETTING PADDING 5
57
+ SETTING TEXTALIGN CENTER
58
+ SETTING TEXTCOLOR BLACK
59
+ SETTING BACKCOLOR WHITE
60
+ LABEL "RIGHT"
61
+ SETTING PADDING 5
62
+ SETTING TEXTALIGN RIGHT
63
+ SETTING TEXTCOLOR WHITE
64
+ SETTING BACKCOLOR BLUE
65
+ END
66
+ END
67
+
68
+ VERTICALBOX
69
+ LABELVALUE <%= target_name %> ADCS TIMEFORMATTED WITH_UNITS 30
70
+ END
71
+ 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 IMAGE
6
+ BLOCK <%= target_name %> IMAGE IMAGE 600 200 "%02X" 4 6 "0x%08X:"
7
+ END
@@ -0,0 +1,47 @@
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
11
+ SECTIONHEADER "Send Collect Command:"
12
+ HORIZONTAL
13
+ LABEL "Type: "
14
+ NAMED_WIDGET COLLECT_TYPE COMBOBOX NORMAL SPECIAL
15
+ END
16
+ HORIZONTAL
17
+ LABEL " Duration: "
18
+ NAMED_WIDGET DURATION TEXTFIELD 12 "10.0"
19
+ END
20
+ # This is an example of using a varible named 'type'. You can operate on variables with Javascript code.
21
+ # All OpenC3 commands (api.cmd) must be separated by double semicolons ';;'. All code separated by semicolons is evaluated together.
22
+ # Note: you can also request and use telemetry in screens using Javascript Promises, e.g.
23
+ # api.tlm('INST PARAMS VALUE3', 'RAW').then(dur => api.cmd('INST COLLECT with TYPE '+type+', DURATION '+dur))"
24
+ # The tlm() function returns a Promise which is resolved with then() at which point we send the command with the parameter
25
+ BUTTON 'Start Collect' "var type=screen.getNamedWidget('COLLECT_TYPE').text(); api.cmd('<%= target_name %> COLLECT with TYPE '+type+', DURATION '+screen.getNamedWidget('DURATION').text())"
26
+ END
27
+ SETTING BACKCOLOR 163 185 163
28
+
29
+ VERTICALBOX
30
+ SECTIONHEADER "Parameter-less Commands:"
31
+ NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
32
+ RADIOBUTTON 'Abort'
33
+ RADIOBUTTON 'Clear'
34
+ END
35
+ NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
36
+ BUTTON 'Send' "screen.getNamedWidget('GROUP').selected() === 0 ? api.cmd('<%= target_name %> ABORT') : (screen.getNamedWidget('CHECK').checked() ? api.cmd_no_hazardous_check('<%= target_name %> CLEAR') : api.cmd('<%= target_name %> CLEAR'))"
37
+ END
38
+ SETTING BACKCOLOR 163 185 163
39
+
40
+ VERTICALBOX
41
+ SECTIONHEADER "Run Script:"
42
+ NAMED_WIDGET SCRIPTNAME COMBOBOX collect.rb checks.rb
43
+ NAMED_WIDGET BG CHECKBUTTON 'Background'
44
+ BUTTON 'Run Script' "var script=screen.getNamedWidget('SCRIPTNAME').text(); runScript('INST/procedures/'+script, !screen.getNamedWidget('BG').checked())"
45
+ END
46
+ SETTING BACKCOLOR 163 185 163
47
+ END
@@ -0,0 +1,23 @@
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
+ SPARKLINE <%= target_name %> HEALTH_STATUS TEMP2
10
+ SETTING SIZE 400 50
11
+ LABELSPARKLINE <%= target_name %> HEALTH_STATUS TEMP3
12
+ LABELSPARKLINE <%= target_name %> HEALTH_STATUS TEMP4
13
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP1
14
+ SETTING ITEM <%= target_name %> ADCS Q1
15
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP2
16
+ SETTING SECONDSGRAPHED 60
17
+ SETTING POINTSSAVED 600
18
+ SETTING POINTSGRAPHED 60
19
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP3
20
+ SETTING SIZE 600 500 # width height
21
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP4
22
+ END
23
+ END
@@ -0,0 +1,45 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ # TODO: This causes an error because layout widgets don't have settings
5
+ # SETTING BACKCOLOR white
6
+ TITLE "<%= target_name %> Instrument Ground Station Status"
7
+ SETTING BACKCOLOR white
8
+
9
+ CANVAS 650 600
10
+ # Just demonstrate lines and circles
11
+ CANVASLINE 0 3 650 3 blue 3
12
+ CANVASDOT 10 15 BLUE 5
13
+ CANVASLABEL 200 20 "Ground Contact Status"
14
+
15
+ # This is an example of using TLM_AND to && together different logical values
16
+ # Note you must use RAW for the base value and use SETTING IMAGE true / false
17
+ # for the two values you wish to display
18
+ #CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS
19
+ # SETTING TLM_AND <%= target_name %> HEALTH_STATUS GROUND2STATUS VALUE_EQ 1
20
+ # SETTING TLM_AND <%= target_name %> HEALTH_STATUS COLLECTS VALUE_EQ 0
21
+ # SETTING IMAGE true "ground_on.png" 100 200
22
+ # SETTING IMAGE false "ground_off.png" 100 200
23
+ CANVASLINE 10 10 640 10 blue 3
24
+ CANVASIMAGE "satellite.png" 90 130 200 200
25
+ # We're using the converted value and specifing a default of "ground_error.png"
26
+ # if none of the IMAGE settings match the value
27
+ CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED "ground_error.png" 400 100 180 180
28
+ SETTING IMAGE CONNECTED "ground_on.png" 400 100
29
+ SETTING IMAGE UNAVAILABLE "ground_off.png" 400 100
30
+ # If the image is clicked the "<%= target_name %> HS" screen will popup at 100, 100
31
+ SETTING SCREEN "<%= target_name %> HS" 100 100
32
+ CANVASLABEL 380 300 "Ground Station #1"
33
+ CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 520 300
34
+ # The default type is RAW and no default means anything over 10 will be blank
35
+ CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS RAW "ground_error.png" 400 350 180 180
36
+ SETTING IMAGE 1 "ground_on.png" 400 350
37
+ SETTING IMAGE 0 "ground_off.png" 400 350
38
+ # This is an example of using a range of values with a particular image
39
+ SETTING IMAGE 2..10 "ground_error.png" 400 350
40
+ CANVASLABEL 380 550 "Ground Station #2"
41
+ CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 520 550
42
+ CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 420 135 240 330 green white 3
43
+ CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 420 385 240 330 green white 3
44
+ END
45
+ END
@@ -0,0 +1,42 @@
1
+ SCREEN AUTO AUTO 0.5
2
+ GLOBAL_SETTING LABELVALUELIMITSBAR COLORBLIND TRUE
3
+
4
+ VERTICAL
5
+
6
+ TITLE "<%= target_name %> Instrument Health and Status"
7
+ SETTING BACKCOLOR 162 181 205
8
+ SETTING TEXTCOLOR black
9
+
10
+ VERTICALBOX
11
+ SECTIONHEADER "General Telemetry"
12
+ BUTTON 'Start Collect' 'api.cmd("<%= target_name %> COLLECT with TYPE NORMAL, DURATION 5")'
13
+ FORMATVALUE <%= target_name %> HEALTH_STATUS COLLECTS "0x%08X" CONVERTED 14
14
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
15
+ LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
16
+ LABELVALUE <%= target_name %> HEALTH_STATUS ASCIICMD WITH_UNITS 30
17
+ END
18
+ SETTING BACKCOLOR 163 185 163
19
+
20
+ VERTICALBOX
21
+ SECTIONHEADER "Temperatures"
22
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS 7
23
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
24
+ # LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
25
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
26
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS
27
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3
28
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP4
29
+ SETTING GRAY_TOLERANCE 0.1
30
+ END
31
+ SETTING BACKCOLOR 203 173 158
32
+
33
+ VERTICALBOX
34
+ SECTIONHEADER "Ground Station"
35
+ LABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 18
36
+ LABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS CONVERTED 18
37
+ END
38
+
39
+ <%= render "_footer.txt" %>
40
+ SETTING BACKCOLOR 207 171 169
41
+ END
42
+ SETTING BACKCOLOR 162 181 205
@@ -0,0 +1,21 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+
5
+ TITLE "<%= @target_name %> Instrument Latest Header"
6
+
7
+ VERTICALBOX
8
+ SECTIONHEADER "Header"
9
+ LABELVALUE INST LATEST CCSDSVER
10
+ LABELVALUE INST LATEST CCSDSTYPE
11
+ LABELVALUE INST LATEST CCSDSSHF
12
+ LABELVALUE INST LATEST CCSDSAPID
13
+ LABELVALUE INST LATEST CCSDSSEQFLAGS
14
+ LABELVALUE INST LATEST CCSDSSEQCNT
15
+ LABELVALUE INST LATEST CCSDSLENGTH
16
+ LABELVALUE INST LATEST TIMESEC
17
+ LABELVALUE INST LATEST TIMEUS
18
+ LABELVALUE INST LATEST PKTID
19
+ END
20
+
21
+ 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,82 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ TITLE "<%= target_name %> Instrument Limits"
4
+
5
+ HORIZONTAL
6
+ VERTICALBOX
7
+ SECTIONHEADER "Limits Bars"
8
+ LIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
9
+ VALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
10
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
11
+ # The TEMP1 limits are defined as follow:
12
+ # LIMITS DEFAULT 1 ENABLED -80.0 -70.0 60.0 80.0 -20.0 20.0
13
+ # Thus the following are examples of limiting the limitsbar
14
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
15
+ SUBSETTING 1 MIN_VALUE -80
16
+ SUBSETTING 1 MAX_VALUE 80
17
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
18
+ SUBSETTING 1 MIN_VALUE -75
19
+ SUBSETTING 1 MAX_VALUE 70
20
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
21
+ SUBSETTING 1 MIN_VALUE -70
22
+ SUBSETTING 1 MAX_VALUE 60
23
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
24
+ SUBSETTING 1 MIN_VALUE -50
25
+ SUBSETTING 1 MAX_VALUE 50
26
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
27
+ SUBSETTING 1 MIN_VALUE -20
28
+ SUBSETTING 1 MAX_VALUE 20
29
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
30
+ SUBSETTING 1 MIN_VALUE -10
31
+ SUBSETTING 1 MAX_VALUE 10
32
+ END
33
+ VERTICAL
34
+ VERTICALBOX
35
+ SECTIONHEADER "Range Bars 0-100"
36
+ RANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
37
+ VALUERANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
38
+ LABELVALUERANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
39
+ END
40
+ VERTICALBOX
41
+ SECTIONHEADER "Limits Colors"
42
+ LIMITSCOLOR <%= target_name %> HEALTH_STATUS TEMP1 CONVERTED 5 NIL # No label
43
+ LIMITSCOLOR <%= target_name %> HEALTH_STATUS TEMP2 # Default is label with just item name
44
+ LIMITSCOLOR <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 5 TRUE # Full TGT/PKT/ITEM label
45
+ END
46
+ END
47
+ END
48
+
49
+ HORIZONTAL
50
+ VERTICALBOX
51
+ SECTIONHEADER "Limits Columns"
52
+ HORIZONTAL
53
+ LIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2
54
+ VALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2
55
+ LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
56
+ # The TEMP2 limits are defined as follow:
57
+ # LIMITS DEFAULT 1 ENABLED -60.0 -55.0 30.0 35.0
58
+ # Thus the following are examples of limiting the limitscolumn
59
+ LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
60
+ SUBSETTING 1 MIN_VALUE -60
61
+ SUBSETTING 1 MAX_VALUE 35
62
+ LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
63
+ SUBSETTING 1 MIN_VALUE -55
64
+ SUBSETTING 1 MAX_VALUE 30
65
+ LABELVALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS 8
66
+ SUBSETTING 1 MIN_VALUE -20
67
+ SUBSETTING 1 MAX_VALUE 10
68
+ END
69
+ END
70
+
71
+ # TODO: Not yet implemented
72
+ #VERTICALBOX
73
+ # SECTIONHEADER "Range Columns 0-100"
74
+ # HORIZONTAL
75
+ # RANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
76
+ # VALUERANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
77
+ # LABELVALUERANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
78
+ # END
79
+ #END
80
+ END
81
+
82
+ <%= 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 TIMEFORMATTED 400 100
22
+ END
@@ -0,0 +1,54 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ TITLE Params
5
+
6
+ HORIZONTAL
7
+ VERTICALBOX
8
+ LABELVALUE <%= target_name %> PARAMS VALUE5
9
+ LABELVALUE <%= target_name %> PARAMS VALUE4
10
+ LABELVALUE <%= target_name %> PARAMS VALUE3
11
+ LABELVALUE <%= target_name %> PARAMS VALUE2
12
+ LABELVALUE <%= target_name %> PARAMS VALUE1
13
+ END
14
+ VERTICALBOX
15
+ LED <%= target_name %> PARAMS VALUE5 RAW 25 20 # Ellipse
16
+ SETTING LED_COLOR 0 GREEN
17
+ SETTING LED_COLOR 1 RED
18
+ LED <%= target_name %> PARAMS VALUE4 RAW 20 25 # Ellipse
19
+ SETTING LED_COLOR 0 YELLOW
20
+ SETTING LED_COLOR 1 BLUE
21
+ LED <%= target_name %> PARAMS VALUE3 RAW 20 20
22
+ SETTING LED_COLOR 0 GREEN
23
+ SETTING LED_COLOR 1 RED
24
+ SETTING LED_COLOR ANY ORANGE # All other values are ORANGE
25
+ LED <%= target_name %> PARAMS VALUE2 # Default is WITH_UNITS 15 15
26
+ SETTING LED_COLOR GOOD GREEN
27
+ SETTING LED_COLOR BAD RED
28
+ LED <%= target_name %> PARAMS VALUE1 CONVERTED 10 10
29
+ SETTING LED_COLOR GOOD GREEN
30
+ SETTING LED_COLOR BAD RED
31
+ END
32
+ VERTICALBOX
33
+ LABELLED <%= target_name %> PARAMS VALUE5
34
+ SETTING LED_COLOR GOOD GREEN
35
+ SETTING LED_COLOR BAD RED
36
+ LABELLED <%= target_name %> PARAMS VALUE4
37
+ SETTING LED_COLOR GOOD GREEN
38
+ SETTING LED_COLOR BAD RED
39
+ LABELLED <%= target_name %> PARAMS VALUE3
40
+ SETTING LED_COLOR GOOD GREEN
41
+ SETTING LED_COLOR BAD RED
42
+ LABELLED <%= target_name %> PARAMS VALUE2
43
+ SETTING LED_COLOR GOOD GREEN
44
+ SETTING LED_COLOR BAD RED
45
+ LABELLED <%= target_name %> PARAMS VALUE1
46
+ SETTING LED_COLOR GOOD GREEN
47
+ SETTING LED_COLOR BAD RED
48
+ END
49
+ END
50
+
51
+ VERTICALBOX
52
+ LABELVALUE <%= target_name %> PARAMS TIMEFORMATTED WITH_UNITS 20
53
+ END
54
+ 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