openc3-demo 5.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +727 -0
  3. data/README.md +30 -0
  4. data/Rakefile +42 -0
  5. data/microservices/EXAMPLE/example_target.rb +123 -0
  6. data/microservices/TEMPLATED/scpi_target.rb +79 -0
  7. data/plugin.txt +112 -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 +27 -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 +57 -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 +39 -0
  20. data/targets/INST/lib/sim_inst.rb +354 -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 +13 -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 +15 -0
  37. data/targets/INST/screens/block.txt +6 -0
  38. data/targets/INST/screens/commanding.txt +44 -0
  39. data/targets/INST/screens/graphs.txt +17 -0
  40. data/targets/INST/screens/ground.txt +46 -0
  41. data/targets/INST/screens/hs.txt +42 -0
  42. data/targets/INST/screens/latest.txt +21 -0
  43. data/targets/INST/screens/limits.txt +82 -0
  44. data/targets/INST/screens/other.txt +37 -0
  45. data/targets/INST/screens/params.txt +54 -0
  46. data/targets/INST/screens/simple.txt +6 -0
  47. data/targets/INST/screens/tabs.txt +66 -0
  48. data/targets/INST/screens/web.txt +5 -0
  49. data/targets/INST/tables/bin/ConfigTables.bin +0 -0
  50. data/targets/INST/tables/config/ConfigTables_def.txt +7 -0
  51. data/targets/INST/tables/config/MCConfigurationTable_def.txt +36 -0
  52. data/targets/INST/tables/config/PPSSelectionTable_def.txt +7 -0
  53. data/targets/INST/tables/config/TLMMonitoringTable_def.txt +31 -0
  54. data/targets/INST/tables/procedures/download.rb +16 -0
  55. data/targets/INST/tables/procedures/upload.rb +19 -0
  56. data/targets/INST/target.txt +31 -0
  57. data/targets/SYSTEM/cmd_tlm/limits_groups.txt +6 -0
  58. data/targets/SYSTEM/cmd_tlm/meta_tlm.txt +10 -0
  59. data/targets/SYSTEM/cmd_tlm/system_cmds.txt +41 -0
  60. data/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
  61. data/targets/SYSTEM/lib/example_background_task.rb +66 -0
  62. data/targets/SYSTEM/lib/example_target.rb +112 -0
  63. data/targets/SYSTEM/lib/limits_groups.rb +64 -0
  64. data/targets/SYSTEM/lib/scpi_target.rb +76 -0
  65. data/targets/SYSTEM/procedures/example_test.rb +191 -0
  66. data/targets/SYSTEM/procedures/interactive.rb +38 -0
  67. data/targets/SYSTEM/procedures/openc3_api_test.rb +286 -0
  68. data/targets/SYSTEM/procedures/run_example_test.rb +3 -0
  69. data/targets/SYSTEM/procedures/test.rb +49 -0
  70. data/targets/SYSTEM/screens/status.txt +12 -0
  71. data/targets/SYSTEM/target.txt +12 -0
  72. data/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +13 -0
  73. data/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -0
  74. data/targets/TEMPLATED/lib/templated_interface.rb +69 -0
  75. data/targets/TEMPLATED/target.txt +8 -0
  76. data/tools/widgets/BigWidget/BigWidget.umd.min.js +4 -0
  77. data/tools/widgets/BigWidget/BigWidget.umd.min.js.map +1 -0
  78. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js +2 -0
  79. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js.map +1 -0
  80. metadata +126 -0
@@ -0,0 +1,46 @@
1
+ load 'openc3/script/suite.rb'
2
+ require 'INST/procedures/utilities/collect' # Test requiring files from s3 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 FIXED
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,15 @@
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 300 50 nil 8 FORMATTED
8
+ ARRAY <%= target_name %> HEALTH_STATUS ARY2 300 50 nil 5 WITH_UNITS
9
+ TEXTBOX <%= target_name %> HEALTH_STATUS ARY 300 50
10
+ TEXTBOX <%= target_name %> HEALTH_STATUS ARY2 300 50
11
+ ARRAY <%= target_name %> HEALTH_STATUS GROUND1STATUS 300 50 nil 8 FORMATTED
12
+ ARRAY <%= target_name %> HEALTH_STATUS GROUND2STATUS 300 50 nil 5 WITH_UNITS
13
+ TEXTBOX <%= target_name %> HEALTH_STATUS GROUND1STATUS 300 50
14
+ TEXTBOX <%= target_name %> HEALTH_STATUS GROUND2STATUS 300 50
15
+ END
@@ -0,0 +1,6 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ TITLE "<%= target_name %> Instrument Block Data"
5
+ BLOCK <%= target_name %> IMAGE IMAGE 500 600 "%02X" 4 4 "0x%08X:"
6
+ END
@@ -0,0 +1,44 @@
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 newlines '\n'. All code separated by semicolons is evaluated together.
22
+ BUTTON 'Start Collect' "var type=screen.get_named_widget('COLLECT_TYPE').text(); api.cmd('<%= target_name %> COLLECT with TYPE '+type+', DURATION '+screen.get_named_widget('DURATION').text())"
23
+ END
24
+ SETTING BACKCOLOR 163 185 163
25
+
26
+ VERTICALBOX
27
+ SECTIONHEADER "Parameter-less Commands:"
28
+ NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
29
+ RADIOBUTTON 'Abort'
30
+ RADIOBUTTON 'Clear'
31
+ END
32
+ NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
33
+ BUTTON 'Send' "screen.get_named_widget('GROUP').selected() === 0 ? api.cmd('<%= target_name %> ABORT') : (screen.get_named_widget('CHECK').checked() ? api.cmd_no_hazardous_check('<%= target_name %> CLEAR') : api.cmd('<%= target_name %> CLEAR'))"
34
+ END
35
+ SETTING BACKCOLOR 163 185 163
36
+
37
+ VERTICALBOX
38
+ SECTIONHEADER "Run Script:"
39
+ NAMED_WIDGET SCRIPTNAME COMBOBOX collect.rb checks.rb
40
+ NAMED_WIDGET BG CHECKBUTTON 'Background'
41
+ BUTTON 'Run Script' "var script=screen.get_named_widget('SCRIPTNAME').text(); run_script('INST/procedures/'+script, !screen.get_named_widget('BG').checked())"
42
+ END
43
+ SETTING BACKCOLOR 163 185 163
44
+ END
@@ -0,0 +1,17 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ VERTICAL
4
+ TITLE "<%= target_name %> Instrument Graphs"
5
+
6
+ MATRIXBYCOLUMNS 2
7
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP1
8
+ SETTING ITEM <%= target_name %> ADCS Q1
9
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP2
10
+ SETTING SECONDSGRAPHED 60
11
+ SETTING POINTSSAVED 600
12
+ SETTING POINTSGRAPHED 60
13
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP3
14
+ SETTING SIZE 600 500 # width height
15
+ LINEGRAPH <%= target_name %> HEALTH_STATUS TEMP4
16
+ END
17
+ END
@@ -0,0 +1,46 @@
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 700
10
+ # The code inside <% %> is just ruby
11
+ <% 11.times do |x| %>
12
+ # Create a dot at various y locations. The <%= %> adds the expression to the file
13
+ CANVASDOT 5 <%= 50 * x + 50 %> BLUE 5
14
+ <% end %> # Close our block from above
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
+ CANVASLINE 10 584 640 584 blue 3
45
+ END
46
+ 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"
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 5
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
36
+ LABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS
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,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,37 @@
1
+ SCREEN 800 700 1.0
2
+
3
+ SCROLLWINDOW
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
+ VERTICALBOX
20
+ HORIZONTAL
21
+ SETTING LAYOUT_FILL_X
22
+ LABEL TIMESEC
23
+ FORMATFONTVALUE <%= target_name %> LATEST TIMESEC %012u CONVERTED 12 arial 15
24
+ SETTING LAYOUT_RIGHT
25
+ END
26
+
27
+ HORIZONTAL
28
+ TEXTBOX <%= target_name %> ADCS TIMEFORMATTED 200 300
29
+ TIMEGRAPH <%= target_name %> ADCS Q1 100 500 500 3
30
+ END
31
+
32
+ LABELVALUEDESC <%= target_name %> HEALTH_STATUS TEMP1
33
+ LABELFORMATVALUE <%= target_name %> HEALTH_STATUS TEMP1 %0.6f
34
+
35
+ BUTTON 'Open ADCS Screen' "self.$emit('add-new-screen', ['INST', 'ADCS'])"
36
+ END
37
+ 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
@@ -0,0 +1,66 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ TABBOOK
4
+ TABITEM ADCS
5
+ TITLE "<%= target_name %> Instrument ADCS Information"
6
+
7
+ HORIZONTAL
8
+ VERTICALBOX
9
+ SECTIONHEADER "Position and Velocity"
10
+
11
+ LABELVALUE <%= target_name %> ADCS POSX WITH_UNITS 20
12
+ LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 20
13
+ LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 20
14
+ LABELVALUE <%= target_name %> ADCS VELX WITH_UNITS 20
15
+ LABELVALUE <%= target_name %> ADCS VELY WITH_UNITS 20
16
+ LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 20
17
+ END
18
+
19
+ VERTICALBOX
20
+ SECTIONHEADER "Attitude"
21
+
22
+ LABELVALUE <%= target_name %> ADCS Q1
23
+ LABELVALUE <%= target_name %> ADCS Q2
24
+ LABELVALUE <%= target_name %> ADCS Q3
25
+ LABELVALUE <%= target_name %> ADCS Q4
26
+ LABELVALUE <%= target_name %> ADCS BIASX
27
+ LABELVALUE <%= target_name %> ADCS BIASY
28
+ LABELVALUE <%= target_name %> ADCS BIASZ
29
+ END
30
+
31
+ VERTICALBOX
32
+ SECTIONHEADER "File Progress"
33
+
34
+ LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS
35
+ LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
36
+ END
37
+ END
38
+
39
+ VERTICALBOX
40
+ LABELVALUE <%= target_name %> ADCS TIMEFORMATTED WITH_UNITS 30
41
+ END
42
+ END
43
+
44
+ TABITEM HS
45
+ TITLE "Instrument Health and Status"
46
+
47
+ VERTICALBOX
48
+ SECTIONHEADER "General Telemetry"
49
+
50
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
51
+ END
52
+
53
+ VERTICALBOX
54
+ SECTIONHEADER "Temperatures"
55
+
56
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
57
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2
58
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3
59
+ LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP4
60
+ END
61
+
62
+ VERTICALBOX
63
+ LABELVALUE <%= target_name %> HEALTH_STATUS TIMEFORMATTED WITH_UNITS 30
64
+ END
65
+ END
66
+ END