openc3-cosmos-demo 5.19.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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