openc3-cosmos-demo 5.19.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/requirements.txt +1 -0
  3. data/targets/INST/cmd_tlm/inst_tlm.txt +5 -0
  4. data/targets/INST/lib/sim_inst.rb +5 -0
  5. data/targets/INST/procedures/my_test_suite.rb +2 -2
  6. data/targets/INST/screens/commanding.txt +23 -9
  7. data/targets/INST/screens/hs.txt +1 -0
  8. data/targets/INST/screens/params.txt +11 -4
  9. data/targets/INST/screens/rollup.txt +1 -1
  10. data/targets/INST2/cmd_tlm/inst_tlm.txt +5 -0
  11. data/targets/INST2/lib/helper.py +1 -1
  12. data/targets/INST2/lib/sim_inst.py +5 -0
  13. data/targets/INST2/procedures/calendar.py +1 -1
  14. data/targets/INST2/procedures/collect.py +1 -1
  15. data/targets/INST2/procedures/my_script_suite.py +4 -4
  16. data/targets/INST2/procedures/my_test_suite.py +2 -2
  17. data/targets/INST2/procedures/numpy.py +11 -0
  18. data/targets/INST2/screens/commanding.txt +24 -10
  19. data/targets/INST2/screens/hs.txt +1 -0
  20. data/targets/INST2/screens/params.txt +11 -4
  21. data/targets/INST2/screens/rollup.txt +1 -1
  22. data/targets/SYSTEM/procedures/test.rb +0 -6
  23. data/tools/widgets/BigWidget/BigWidget.umd.min.js +1417 -2
  24. data/tools/widgets/BigWidget/BigWidget.umd.min.js.map +1 -1
  25. data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js +1428 -3
  26. data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js.map +1 -1
  27. data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js +1417 -2
  28. data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js.map +1 -1
  29. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js +1417 -2
  30. data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js.map +1 -1
  31. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b81293bb997165f1b8c35dbd8cc4ec5a4de4b5810a6c746047662a89149e3950
4
- data.tar.gz: 70e36acc62a6be36a5c02dc6261a66da19069cc18cae3c1dfa9ff460587a8f4e
3
+ metadata.gz: 62e1ef14a867f3ee7d668f830576f2ec2fcbd87272e64ea525a3437bd347c53c
4
+ data.tar.gz: 5e99baf15bad60d6c3bd3d51476ebcdb1b63ee713c8abd67ae4cc1498f6c3228
5
5
  SHA512:
6
- metadata.gz: 611c47f8a6ca07d7b7cb6064681d3a1732b08016136dc37d8ae4dea36bae37c451974b1048d4c1fc29336bfd8e794f7f11c28d134822ff76e4153b59418e8bae
7
- data.tar.gz: 9e078e3e96fb62130dcbcd4daf4fc0c53f903ed82fb8161be8279e361812a851e18d603bf60efa66be29bd336a9bc832386bddb053d7279d5e380f3c39cb66c9
6
+ metadata.gz: 9fde26bd82bbb8f150ffca7f4e1272a82b44a741722ffc99e6d09acfa045fb984e161987e759673a5051bbf2076bc99187e71788b83b341644f4cc0fb13c9cc1
7
+ data.tar.gz: 39d85398ec9374fc2973c8d66ed82ff31b736b22921a57ca39c332038cce8ff9ed9d2ef8d8bd3c1018a296ff07b8d8916e9d20cbb80e0d8ff5f9113ef21a0a30
data/requirements.txt ADDED
@@ -0,0 +1 @@
1
+ numpy==2.1.1
@@ -127,6 +127,11 @@ TELEMETRY <%= target_name %> PARAMS BIG_ENDIAN "Params set by SETPARAMS command"
127
127
  STATE GOOD 0 GREEN
128
128
  STATE BAD 1 RED
129
129
  <% end %>
130
+ APPEND_ITEM P_2.2,2 32 UINT "Test weird characters"
131
+ APPEND_ITEM P-3+3=3 32 UINT "Test weird characters"
132
+ APPEND_ITEM P4!@#$%^&*? 32 UINT "Test weird characters"
133
+ APPEND_ITEM P</5|\> 32 UINT "Test weird characters"
134
+ APPEND_ITEM P(:6;) 32 UINT "Test weird characters"
130
135
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
131
136
  READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
132
137
 
@@ -111,6 +111,11 @@ module OpenC3
111
111
  packet.value3 = 2
112
112
  packet.value4 = 1
113
113
  packet.value5 = 0
114
+ packet.write('P_2.2,2', 2)
115
+ packet.write('P-3+3=3', 3)
116
+ packet.write('P4!@#$%^&*?', 4)
117
+ packet.write('P</5|\>', 5)
118
+ packet.write('P(:6;)', 6)
114
119
 
115
120
  packet = @tlm_packets['IMAGE']
116
121
  packet.enable_method_missing
@@ -12,14 +12,14 @@ class ExampleTest < OpenC3::Test
12
12
  puts "continue past raise"
13
13
  end
14
14
 
15
- def test_2
15
+ def test_req2
16
16
  puts "Running #{OpenC3::Test.current_test_suite}:#{OpenC3::Test.current_test}:#{OpenC3::Test.current_test_case}"
17
17
  OpenC3::Test.puts "This test verifies requirement 2"
18
18
  helper()
19
19
  wait(2)
20
20
  end
21
21
 
22
- def test_3
22
+ def test_req3
23
23
  puts "Running #{OpenC3::Test.current_test_suite}:#{OpenC3::Test.current_test}:#{OpenC3::Test.current_test_case}"
24
24
  raise SkipTestCase
25
25
  end
@@ -1,12 +1,12 @@
1
1
  SCREEN AUTO AUTO 0.5
2
2
 
3
- VERTICAL
4
- TITLE "<%= target_name %> Commanding Examples"
3
+ TITLE "<%= target_name %> Commanding Examples"
5
4
 
6
- LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
7
- LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
8
- LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
5
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
6
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
7
+ LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
9
8
 
9
+ MATRIXBYCOLUMNS 2
10
10
  VERTICALBOX "Send Collect Command:"
11
11
  HORIZONTAL
12
12
  LABEL "Type: "
@@ -32,11 +32,13 @@ VERTICAL
32
32
  END
33
33
 
34
34
  VERTICALBOX "Parameter-less Commands:"
35
- NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
36
- RADIOBUTTON 'Abort'
37
- RADIOBUTTON 'Clear'
35
+ HORIZONTAL
36
+ NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
37
+ RADIOBUTTON 'Abort'
38
+ RADIOBUTTON 'Clear'
39
+ END
40
+ NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
38
41
  END
39
- NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
40
42
  BUTTON 'Send' "screen.getNamedWidget('GROUP').selected() === 0 ? " +
41
43
  "api.cmd('<%= target_name %> ABORT') : (screen.getNamedWidget('CHECK').checked() ? " +
42
44
  "api.cmd_no_hazardous_check('<%= target_name %> CLEAR') : api.cmd('<%= target_name %> CLEAR'))"
@@ -54,4 +56,16 @@ VERTICAL
54
56
  "var env = {}; env['TYPE'] = ctype;" \
55
57
  "runScript('<%= target_name %>/procedures/'+script, !screen.getNamedWidget('BG').checked(), env)"
56
58
  END
59
+
60
+ VERTICALBOX "Date / Time Chooser"
61
+ HORIZONTAL 5
62
+ NAMED_WIDGET DATE Date "Input Date"
63
+ NAMED_WIDGET TIME Time
64
+ END
65
+
66
+ BUTTON 'Alert' "var date=screen.getNamedWidget('DATE').text();" +
67
+ "var time=screen.getNamedWidget('TIME').text();" +
68
+ # You can have comments between string concatenations
69
+ "alert('DATE:'+date+' TIME:'+time)"
70
+ END
57
71
  END
@@ -16,6 +16,7 @@ VERTICAL
16
16
  VERTICALBOX "Temperatures"
17
17
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS
18
18
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
19
+ SUBSETTING 2 WIDTH 160
19
20
  # LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
20
21
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
21
22
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS
@@ -3,7 +3,7 @@ SCREEN AUTO AUTO 1.0
3
3
  VERTICAL
4
4
  TITLE Params
5
5
 
6
- HORIZONTAL
6
+ HORIZONTAL 20
7
7
  MATRIXBYCOLUMNS 3
8
8
  LABEL VALUE5
9
9
  SETTING WIDTH 100 # Only need width on the first row
@@ -60,10 +60,17 @@ VERTICAL
60
60
  SETTING LED_COLOR GOOD GREEN
61
61
  SETTING LED_COLOR BAD RED
62
62
  END
63
- SETTING RAW margin-left 20px
63
+ VERTICAL
64
+ LABELVALUE <%= target_name %> PARAMS P_2.2,2
65
+ LABELVALUE <%= target_name %> PARAMS P-3+3=3
66
+ LABELVALUE <%= target_name %> PARAMS P4!@#$%^&*?
67
+ LABELVALUE <%= target_name %> PARAMS P</5|\>
68
+ LABELVALUE <%= target_name %> PARAMS P(:6;)
69
+ END
64
70
  END
65
71
 
66
- VERTICAL
67
- LABELVALUE <%= target_name %> PARAMS PACKET_TIMEFORMATTED WITH_UNITS 20
72
+ HORIZONTAL
73
+ LABEL "Packet Time"
74
+ VALUE <%= target_name %> PARAMS PACKET_TIMEFORMATTED WITH_UNITS 25
68
75
  END
69
76
  END
@@ -11,7 +11,7 @@ HORIZONTAL
11
11
  SETTING SCREEN <%= target_name %> LIMITS
12
12
  SETTING TLM <%= target_name %> HEALTH_STATUS TEMP1
13
13
  ROLLUP equipment "Processor" "CPU"
14
- SETTING SCREEN <%= target_name %> ADCS
14
+ # No SCREEN should display without pointer cursor
15
15
  SETTING TLM <%= target_name %> HEALTH_STATUS TEMP4
16
16
  ROLLUP satellite-transmit "Satellite" "all temps"
17
17
  SETTING SCREEN <%= target_name %> HS
@@ -119,6 +119,11 @@ TELEMETRY <%= target_name %> PARAMS BIG_ENDIAN "Params set by SETPARAMS command"
119
119
  STATE GOOD 0 GREEN
120
120
  STATE BAD 1 RED
121
121
  <% end %>
122
+ APPEND_ITEM P_2.2,2 32 UINT "Test weird characters"
123
+ APPEND_ITEM P-3+3=3 32 UINT "Test weird characters"
124
+ APPEND_ITEM P4!@#$%^&*? 32 UINT "Test weird characters"
125
+ APPEND_ITEM P</5|\> 32 UINT "Test weird characters"
126
+ APPEND_ITEM P(:6;) 32 UINT "Test weird characters"
122
127
  ITEM PACKET_TIME 0 0 DERIVED "Python time based on TIMESEC and TIMEUS"
123
128
  READ_CONVERSION openc3/conversions/unix_time_conversion.py TIMESEC TIMEUS
124
129
 
@@ -1,3 +1,3 @@
1
1
  class Helper:
2
- def help(self):
2
+ def print_help(self):
3
3
  print("help")
@@ -114,6 +114,11 @@ class SimInst(SimulatedTarget):
114
114
  packet.write("value3", 2)
115
115
  packet.write("value4", 1)
116
116
  packet.write("value5", 0)
117
+ packet.write('P_2.2,2', 2)
118
+ packet.write('P-3+3=3', 3)
119
+ packet.write('P4!@#$%^&*?', 4)
120
+ packet.write('P</5|\>', 5)
121
+ packet.write('P(:6;)', 6)
117
122
 
118
123
  packet = self.tlm_packets["IMAGE"]
119
124
  packet.write("CcsdsSeqFlags", "NOGROUP")
@@ -21,7 +21,7 @@ print(
21
21
  ) # => {"name":"Mine", "color":"#4287f5", "scope":"DEFAULT", "updated_at":1698763720728596964}
22
22
 
23
23
  now = datetime.now(timezone.utc)
24
- start = datetime(now.year, now.month, now.day, now.hour + 1, 30, 00, 00, timezone.utc)
24
+ start = now + timedelta(hours=1)
25
25
  stop = start + timedelta(hours=1) # Stop plus 1hr
26
26
  act = create_timeline_activity("Mine", kind="reserve", start=start, stop=stop)
27
27
  print(act) # =>
@@ -5,7 +5,7 @@ load_utility("<%= target_name %>/procedures/utilities/clear.py")
5
5
  from INST2.lib.helper import Helper
6
6
 
7
7
  helper = Helper()
8
- helper.help()
8
+ helper.print_help()
9
9
 
10
10
  number = ask("Enter a number.")
11
11
  if not isinstance(number, (int, float)):
@@ -1,6 +1,8 @@
1
1
  from openc3.script.suite import Group, Suite
2
2
 
3
3
  load_utility("INST2/procedures/utilities/clear.py")
4
+ # Load a target file library (not instrumented)
5
+ from INST2.lib.helper import Helper
4
6
 
5
7
 
6
8
  class ExampleGroup(Group):
@@ -30,6 +32,8 @@ class ExampleGroup(Group):
30
32
  raise SkipScript
31
33
 
32
34
  def helper(self):
35
+ helper = Helper()
36
+ helper.print_help()
33
37
  if RunningScript.manual:
34
38
  answer = ask("Are you sure?")
35
39
  else:
@@ -43,7 +47,3 @@ class MySuite(Suite):
43
47
  def __init__(self):
44
48
  super().__init__()
45
49
  self.add_group(ExampleGroup)
46
-
47
-
48
- print("Running")
49
- MySuite().run()
@@ -13,7 +13,7 @@ class ExampleTest(Test):
13
13
  raise RuntimeError("error")
14
14
  print("continue past raise") # NOSONAR
15
15
 
16
- def test_2(self):
16
+ def test_req2(self):
17
17
  print(
18
18
  f"Running {Test.current_test_suite()}:{Test.current_test()}:{Test.current_test_case()}"
19
19
  )
@@ -21,7 +21,7 @@ class ExampleTest(Test):
21
21
  self.helper()
22
22
  wait(2)
23
23
 
24
- def test_3(self):
24
+ def test_req3(self):
25
25
  print(
26
26
  f"Running {Test.current_test_suite()}:{Test.current_test()}:{Test.current_test_case()}"
27
27
  )
@@ -0,0 +1,11 @@
1
+ # The standard way to import NumPy:
2
+ import numpy as np
3
+
4
+ # Create a 2-D array, set every second element in
5
+ # some rows and find max per row:
6
+ x = np.arange(15, dtype=np.int64).reshape(3, 5)
7
+ x[1:, ::2] = -99
8
+ print(x)
9
+ # array([[ 0, 1, 2, 3, 4],
10
+ # [-99, 6, -99, 8, -99],
11
+ # [-99, 11, -99, 13, -99]])
@@ -1,12 +1,12 @@
1
1
  SCREEN AUTO AUTO 0.5
2
2
 
3
- VERTICAL
4
- TITLE "<%= target_name %> Commanding Examples"
3
+ TITLE "<%= target_name %> Commanding Examples"
5
4
 
6
- LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
7
- LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
8
- LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
5
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
6
+ LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
7
+ LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
9
8
 
9
+ MATRIXBYCOLUMNS 2
10
10
  VERTICALBOX "Send Collect Command:"
11
11
  HORIZONTAL
12
12
  LABEL "Type: "
@@ -32,11 +32,13 @@ VERTICAL
32
32
  END
33
33
 
34
34
  VERTICALBOX "Parameter-less Commands:"
35
- NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
36
- RADIOBUTTON 'Abort'
37
- RADIOBUTTON 'Clear'
35
+ HORIZONTAL
36
+ NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
37
+ RADIOBUTTON 'Abort'
38
+ RADIOBUTTON 'Clear'
39
+ END
40
+ NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
38
41
  END
39
- NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks' # No option is by default UNCHECKED
40
42
  BUTTON 'Send' "screen.getNamedWidget('GROUP').selected() === 0 ? " +
41
43
  "api.cmd('<%= target_name %> ABORT') : (screen.getNamedWidget('CHECK').checked() ? " +
42
44
  "api.cmd_no_hazardous_check('<%= target_name %> CLEAR') : api.cmd('<%= target_name %> CLEAR'))"
@@ -50,8 +52,20 @@ VERTICAL
50
52
  BUTTON 'Run Script' "var script=screen.getNamedWidget('SCRIPTNAME').text();" \
51
53
  "var ctype=screen.getNamedWidget('COLLECT_TYPE').text();" \
52
54
  # Set some environment variables to be used by the script as ENV['TYPE']
53
- # See INST2/procedures/checks.rb for an example of usage
55
+ # See INST2/procedures/checks.py for an example of usage
54
56
  "var env = {}; env['TYPE'] = ctype;" \
55
57
  "runScript('<%= target_name %>/procedures/'+script, !screen.getNamedWidget('BG').checked(), env)"
56
58
  END
59
+
60
+ VERTICALBOX "Date / Time Chooser"
61
+ HORIZONTAL 5
62
+ NAMED_WIDGET DATE Date "Input Date"
63
+ NAMED_WIDGET TIME Time
64
+ END
65
+
66
+ BUTTON 'Alert' "var date=screen.getNamedWidget('DATE').text();" +
67
+ "var time=screen.getNamedWidget('TIME').text();" +
68
+ # You can have comments between string concatenations
69
+ "alert('DATE:'+date+' TIME:'+time)"
70
+ END
57
71
  END
@@ -16,6 +16,7 @@ VERTICAL
16
16
  VERTICALBOX "Temperatures"
17
17
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS
18
18
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
19
+ SUBSETTING 2 WIDTH 160
19
20
  # LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
20
21
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
21
22
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS
@@ -3,7 +3,7 @@ SCREEN AUTO AUTO 1.0
3
3
  VERTICAL
4
4
  TITLE Params
5
5
 
6
- HORIZONTAL
6
+ HORIZONTAL 20
7
7
  MATRIXBYCOLUMNS 3
8
8
  LABEL VALUE5
9
9
  SETTING WIDTH 100 # Only need width on the first row
@@ -60,10 +60,17 @@ VERTICAL
60
60
  SETTING LED_COLOR GOOD GREEN
61
61
  SETTING LED_COLOR BAD RED
62
62
  END
63
- SETTING RAW margin-left 20px
63
+ VERTICAL
64
+ LABELVALUE <%= target_name %> PARAMS P_2.2,2
65
+ LABELVALUE <%= target_name %> PARAMS P-3+3=3
66
+ LABELVALUE <%= target_name %> PARAMS P4!@#$%^&*?
67
+ LABELVALUE <%= target_name %> PARAMS P</5|\>
68
+ LABELVALUE <%= target_name %> PARAMS P(:6;)
69
+ END
64
70
  END
65
71
 
66
- VERTICAL
67
- LABELVALUE <%= target_name %> PARAMS PACKET_TIMEFORMATTED WITH_UNITS 20
72
+ HORIZONTAL
73
+ LABEL "Packet Time"
74
+ VALUE <%= target_name %> PARAMS PACKET_TIMEFORMATTED WITH_UNITS 25
68
75
  END
69
76
  END
@@ -11,7 +11,7 @@ HORIZONTAL
11
11
  SETTING SCREEN <%= target_name %> LIMITS
12
12
  SETTING TLM <%= target_name %> HEALTH_STATUS TEMP1
13
13
  ROLLUP equipment "Processor" "CPU"
14
- SETTING SCREEN <%= target_name %> ADCS
14
+ # No SCREEN should display without pointer cursor
15
15
  SETTING TLM <%= target_name %> HEALTH_STATUS TEMP4
16
16
  ROLLUP satellite-transmit "Satellite" "all temps"
17
17
  SETTING SCREEN <%= target_name %> HS
@@ -17,12 +17,6 @@ cmd("INST CLEAR")
17
17
  puts index
18
18
  end
19
19
 
20
- if false
21
- puts false
22
- else
23
- puts true
24
- end
25
-
26
20
  wait_expression('false', 10)
27
21
  wait(10)
28
22