openc3-cosmos-demo 5.13.0 → 5.14.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.
- checksums.yaml +4 -4
- data/targets/INST/cmd_tlm/inst_cmds.txt +20 -1
- data/targets/INST/lib/sim_inst.rb +1 -0
- data/targets/INST/screens/hs.txt +1 -1
- data/targets/INST2/cmd_tlm/inst_cmds.txt +17 -0
- data/targets/INST2/cmd_tlm/inst_tlm.txt +1 -0
- data/targets/INST2/lib/sim_inst.py +1 -0
- data/targets/INST2/procedures/streaming.py +29 -0
- data/targets/INST2/screens/hs.txt +1 -1
- data/targets/INST2/tables/procedures/{download.rb → download.py} +5 -3
- data/targets/INST2/tables/procedures/{upload.rb → upload.py} +7 -5
- data/targets/SYSTEM/procedures/interactive.rb +2 -2
- data/tools/widgets/BigWidget/BigWidget.umd.min.js +1 -1
- data/tools/widgets/BigWidget/BigWidget.umd.min.js.map +1 -1
- data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js +1 -1
- data/tools/widgets/DataviewerquaternionWidget/DataviewerquaternionWidget.umd.min.js.map +1 -1
- data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js +1 -1
- data/tools/widgets/DataviewertimeWidget/DataviewertimeWidget.umd.min.js.map +1 -1
- data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js +1 -1
- data/tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js.map +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 253bb085bd444fe9db87ba5f189390c4558bd8cb7dd2bcbe349f8cce236b102a
|
4
|
+
data.tar.gz: b3a09a1463c5b79fe63c4681545bea40cc9c6853c3fab5d4eb84f54eadaed617
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e9608b065308071fee91fd6e0d8b0f1333f1edc7122ffae434f5afa285afe56adf397dc0f2c746583932987df233aa366fdb142075186e6cac522fa3743d009
|
7
|
+
data.tar.gz: 529a869b47ea5fda4c55399bc107be720e2191a110d44fc3c2b69a512a544fde97fa19c411942a67c260946fc314a8a7d0a7147a38196e65834371eca6e9581d
|
@@ -9,6 +9,9 @@ COMMAND <%= target_name %> COLLECT BIG_ENDIAN "Starts a collect on the <%= targe
|
|
9
9
|
FORMAT_STRING "0x%0X"
|
10
10
|
PARAMETER TEMP 120 32 FLOAT 0.0 25.0 0.0 "Collect temperature"
|
11
11
|
UNITS Celsius C
|
12
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS COLLECTS
|
13
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS DURATION
|
14
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS COLLECT_TYPE
|
12
15
|
|
13
16
|
COMMAND <%= target_name %> ABORT BIG_ENDIAN "Aborts a collect on the <%= target_name %> instrument"
|
14
17
|
<%= render "_ccsds_cmd.txt", locals: {id: 2} %>
|
@@ -16,13 +19,17 @@ COMMAND <%= target_name %> ABORT BIG_ENDIAN "Aborts a collect on the <%= target_
|
|
16
19
|
COMMAND <%= target_name %> CLEAR BIG_ENDIAN "Clears counters on the <%= target_name %> instrument"
|
17
20
|
HAZARDOUS "Clearing counters may lose valuable information."
|
18
21
|
<%= render "_ccsds_cmd.txt", locals: {id: 3} %>
|
22
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS COLLECTS
|
19
23
|
|
20
24
|
COMMAND <%= target_name %> SETPARAMS BIG_ENDIAN "Sets numbered parameters"
|
21
25
|
<%= render "_ccsds_cmd.txt", locals: {id: 4} %>
|
22
26
|
# ERB syntax:
|
23
27
|
<% (1..5).each do |i| %>
|
24
|
-
|
28
|
+
# The packet is BIG_ENDIAN (CCSDS) but these fields are LITTLE_ENDIAN
|
29
|
+
APPEND_PARAMETER VALUE<%= i %> 16 UINT 0 5 1 "Value <%= i %> setting" LITTLE_ENDIAN
|
30
|
+
RELATED_ITEM <%= target_name %> PARAMS VALUE<%= i %>
|
25
31
|
<% end %>
|
32
|
+
SCREEN <%= target_name %> PARAMS
|
26
33
|
|
27
34
|
SELECT_PARAMETER VALUE5
|
28
35
|
POLY_WRITE_CONVERSION 0 2
|
@@ -35,6 +42,7 @@ COMMAND <%= target_name %> ASCIICMD BIG_ENDIAN "Enumerated ASCII command"
|
|
35
42
|
STATE "NOOP" "NOOP" DISABLE_MESSAGES
|
36
43
|
APPEND_PARAMETER BINARY 32 STRING 0xDEADBEEF "Binary string"
|
37
44
|
APPEND_PARAMETER ASCII 80 STRING "0xDEADBEEF" "ASCII string"
|
45
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS ASCIICMD
|
38
46
|
|
39
47
|
COMMAND <%= target_name %> FLTCMD BIG_ENDIAN "Command with float parameters"
|
40
48
|
<%= render "_ccsds_cmd.txt", locals: {id: 6} %>
|
@@ -48,14 +56,25 @@ COMMAND <%= target_name %> ARYCMD BIG_ENDIAN "Command with array parameter"
|
|
48
56
|
|
49
57
|
COMMAND <%= target_name %> SLRPNLDEPLOY BIG_ENDIAN "Deploy solar array panels"
|
50
58
|
<%= render "_ccsds_cmd.txt", locals: {id: 8} %>
|
59
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL1
|
60
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL2
|
61
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL3
|
62
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL4
|
63
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL5
|
51
64
|
|
52
65
|
COMMAND <%= target_name %> SLRPNLRESET BIG_ENDIAN "Reset solar array panels"
|
53
66
|
<%= render "_ccsds_cmd.txt", locals: {id: 9} %>
|
67
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL1
|
68
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL2
|
69
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL3
|
70
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL4
|
71
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL5
|
54
72
|
|
55
73
|
COMMAND <%= target_name %> MEMLOAD BIG_ENDIAN "Load memory"
|
56
74
|
DISABLE_MESSAGES # Disable messages on a command that could be sent many many times
|
57
75
|
<%= render "_ccsds_cmd.txt", locals: {id: 10} %>
|
58
76
|
APPEND_PARAMETER DATA 80 BLOCK "" "Block of data"
|
77
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS BLOCKTEST
|
59
78
|
|
60
79
|
COMMAND <%= target_name %> QUIET BIG_ENDIAN "Enable/disable no out of limits in the demo"
|
61
80
|
<%= render "_ccsds_cmd.txt", locals: {id: 11} %>
|
@@ -178,6 +178,7 @@ module OpenC3
|
|
178
178
|
when 'TIME_OFFSET'
|
179
179
|
@time_offset = packet.read('seconds')
|
180
180
|
when 'SETPARAMS'
|
181
|
+
# puts "SETPARAMS packet: #{packet.buffer.formatted}"
|
181
182
|
params_packet.value1 = packet.read('value1')
|
182
183
|
params_packet.value2 = packet.read('value2')
|
183
184
|
params_packet.value3 = packet.read('value3')
|
data/targets/INST/screens/hs.txt
CHANGED
@@ -14,7 +14,7 @@ VERTICAL
|
|
14
14
|
END
|
15
15
|
|
16
16
|
VERTICALBOX "Temperatures"
|
17
|
-
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS
|
17
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS
|
18
18
|
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
|
19
19
|
# LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
|
20
20
|
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
|
@@ -9,6 +9,9 @@ COMMAND <%= target_name %> COLLECT BIG_ENDIAN "Starts a collect on the <%= targe
|
|
9
9
|
FORMAT_STRING "0x%0X"
|
10
10
|
PARAMETER TEMP 120 32 FLOAT 0.0 25.0 0.0 "Collect temperature"
|
11
11
|
UNITS Celsius C
|
12
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS COLLECTS
|
13
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS DURATION
|
14
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS COLLECT_TYPE
|
12
15
|
|
13
16
|
COMMAND <%= target_name %> ABORT BIG_ENDIAN "Aborts a collect on the <%= target_name %> instrument"
|
14
17
|
<%= render "_ccsds_cmd.txt", locals: {id: 2} %>
|
@@ -16,12 +19,14 @@ COMMAND <%= target_name %> ABORT BIG_ENDIAN "Aborts a collect on the <%= target_
|
|
16
19
|
COMMAND <%= target_name %> CLEAR BIG_ENDIAN "Clears counters on the <%= target_name %> instrument"
|
17
20
|
HAZARDOUS "Clearing counters may lose valuable information."
|
18
21
|
<%= render "_ccsds_cmd.txt", locals: {id: 3} %>
|
22
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS COLLECTS
|
19
23
|
|
20
24
|
COMMAND <%= target_name %> SETPARAMS BIG_ENDIAN "Sets numbered parameters"
|
21
25
|
<%= render "_ccsds_cmd.txt", locals: {id: 4} %>
|
22
26
|
# ERB syntax:
|
23
27
|
<% (1..5).each do |i| %>
|
24
28
|
APPEND_PARAMETER VALUE<%= i %> 16 UINT 0 5 1 "Value <%= i %> setting"
|
29
|
+
RELATED_ITEM <%= target_name %> PARAMS VALUE<%= i %>
|
25
30
|
<% end %>
|
26
31
|
|
27
32
|
SELECT_PARAMETER VALUE5
|
@@ -35,6 +40,7 @@ COMMAND <%= target_name %> ASCIICMD BIG_ENDIAN "Enumerated ASCII command"
|
|
35
40
|
STATE "NOOP" "NOOP" DISABLE_MESSAGES
|
36
41
|
APPEND_PARAMETER BINARY 32 STRING 0xDEADBEEF "Binary string"
|
37
42
|
APPEND_PARAMETER ASCII 80 STRING "0xDEADBEEF" "ASCII string"
|
43
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS ASCIICMD
|
38
44
|
|
39
45
|
COMMAND <%= target_name %> FLTCMD BIG_ENDIAN "Command with float parameters"
|
40
46
|
<%= render "_ccsds_cmd.txt", locals: {id: 6} %>
|
@@ -48,14 +54,25 @@ COMMAND <%= target_name %> ARYCMD BIG_ENDIAN "Command with array parameter"
|
|
48
54
|
|
49
55
|
COMMAND <%= target_name %> SLRPNLDEPLOY BIG_ENDIAN "Deploy solar array panels"
|
50
56
|
<%= render "_ccsds_cmd.txt", locals: {id: 8} %>
|
57
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL1
|
58
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL2
|
59
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL3
|
60
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL4
|
61
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL5
|
51
62
|
|
52
63
|
COMMAND <%= target_name %> SLRPNLRESET BIG_ENDIAN "Reset solar array panels"
|
53
64
|
<%= render "_ccsds_cmd.txt", locals: {id: 9} %>
|
65
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL1
|
66
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL2
|
67
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL3
|
68
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL4
|
69
|
+
RELATED_ITEM <%= target_name %> MECH SLRPNL5
|
54
70
|
|
55
71
|
COMMAND <%= target_name %> MEMLOAD BIG_ENDIAN "Load memory"
|
56
72
|
DISABLE_MESSAGES # Disable messages on a command that could be sent many many times
|
57
73
|
<%= render "_ccsds_cmd.txt", locals: {id: 10} %>
|
58
74
|
APPEND_PARAMETER DATA 80 BLOCK "" "Block of data"
|
75
|
+
RELATED_ITEM <%= target_name %> HEALTH_STATUS BLOCKTEST
|
59
76
|
|
60
77
|
COMMAND <%= target_name %> QUIET BIG_ENDIAN "Enable/disable no out of limits in the demo"
|
61
78
|
<%= render "_ccsds_cmd.txt", locals: {id: 11} %>
|
@@ -145,5 +145,6 @@ TELEMETRY <%= target_name %> MECH BIG_ENDIAN "Mechanism status"
|
|
145
145
|
UNITS DEGREES DEG
|
146
146
|
APPEND_ITEM CURRENT 32 FLOAT "Device current"
|
147
147
|
UNITS micro-Ampères µA
|
148
|
+
APPEND_ITEM STRING 0 STRING "String"
|
148
149
|
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
149
150
|
READ_CONVERSION openc3/conversions/unix_time_conversion.py TIMESEC TIMEUS
|
@@ -373,6 +373,7 @@ class SimInst(SimulatedTarget):
|
|
373
373
|
packet.write("slrpnl4", self.solar_panel_positions[3])
|
374
374
|
packet.write("slrpnl5", self.solar_panel_positions[4])
|
375
375
|
packet.write("current", 0.5)
|
376
|
+
packet.write("string", f"Time is {time}")
|
376
377
|
|
377
378
|
# Every 10s throw an unknown packet at the server just to demo that
|
378
379
|
if count_100hz % 1000 == 900:
|
@@ -0,0 +1,29 @@
|
|
1
|
+
from datetime import datetime, timezone, timedelta
|
2
|
+
from openc3.script.web_socket_api import StreamingWebSocketApi
|
3
|
+
|
4
|
+
|
5
|
+
with StreamingWebSocketApi() as api:
|
6
|
+
api.add(
|
7
|
+
# Get a list of individual telemetry items
|
8
|
+
items=[
|
9
|
+
"DECOM__TLM__INST__HEALTH_STATUS__TEMP1__CONVERTED",
|
10
|
+
"DECOM__TLM__INST__HEALTH_STATUS__TEMP2__CONVERTED",
|
11
|
+
]
|
12
|
+
)
|
13
|
+
for _ in range(5):
|
14
|
+
print(api.read())
|
15
|
+
api.remove(items=["DECOM__TLM__INST__HEALTH_STATUS__TEMP1__CONVERTED"])
|
16
|
+
for _ in range(5):
|
17
|
+
print(api.read())
|
18
|
+
|
19
|
+
# Warning this saves all data to RAM. Do not use for large queries
|
20
|
+
now = datetime.now(timezone.utc)
|
21
|
+
data = StreamingWebSocketApi.read_all(
|
22
|
+
items=[
|
23
|
+
"DECOM__TLM__INST__HEALTH_STATUS__TEMP1__CONVERTED",
|
24
|
+
"DECOM__TLM__INST__HEALTH_STATUS__TEMP2__CONVERTED",
|
25
|
+
],
|
26
|
+
start_time=now - timedelta(seconds=30),
|
27
|
+
end_time=now + timedelta(seconds=5),
|
28
|
+
)
|
29
|
+
print(data)
|
@@ -14,7 +14,7 @@ VERTICAL
|
|
14
14
|
END
|
15
15
|
|
16
16
|
VERTICALBOX "Temperatures"
|
17
|
-
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS
|
17
|
+
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS
|
18
18
|
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
|
19
19
|
# LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
|
20
20
|
LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 FORMATTED
|
@@ -1,9 +1,11 @@
|
|
1
|
+
import os
|
2
|
+
|
1
3
|
# TBL_FILENAME is set to the name of the table file to overwrite
|
2
|
-
|
4
|
+
print(f"file:{os.environ['TBL_FILENAME']}")
|
3
5
|
# Download the file
|
4
6
|
# Implement custom commanding logic to download the table
|
5
7
|
# You probably want to do something like:
|
6
|
-
buffer =
|
8
|
+
buffer = ""
|
7
9
|
# i = 1
|
8
10
|
# num_segments = 5 # calculate based on TBL_FILENAME
|
9
11
|
# table_id = 1 # calculate based on TBL_FILENAME
|
@@ -13,4 +15,4 @@ buffer = ''
|
|
13
15
|
# buffer += tlm("TGT DUMP_PKT DATA")
|
14
16
|
# i += 1
|
15
17
|
# end
|
16
|
-
put_target_file(
|
18
|
+
put_target_file(os.environ["TBL_FILENAME"], buffer)
|
@@ -1,9 +1,11 @@
|
|
1
|
+
import os
|
2
|
+
from openc3.utilities.string import formatted
|
3
|
+
|
1
4
|
# TBL_FILENAME is set to the name of the table file
|
2
|
-
|
5
|
+
print(f"file:{os.environ['TBL_FILENAME']}")
|
3
6
|
# Open the file
|
4
|
-
file = get_target_file(
|
5
|
-
buffer = file.read
|
6
|
-
# puts buffer.formatted
|
7
|
+
file = get_target_file(os.environ["TBL_FILENAME"])
|
8
|
+
buffer = file.read()
|
7
9
|
# Implement custom commanding logic to upload the table
|
8
10
|
# Note that buffer is a Ruby string of bytes
|
9
11
|
# You probably want to do something like:
|
@@ -16,4 +18,4 @@ buffer = file.read
|
|
16
18
|
# cmd("TGT", "UPLOAD", "DATA" => buffer[i...(i + buf_size)])
|
17
19
|
# i += buf_size
|
18
20
|
# end
|
19
|
-
file.
|
21
|
+
file.close()
|
@@ -12,9 +12,9 @@ answer = combo_box("This is a combo box", 'one', 'two', 'three', text_color: 'bl
|
|
12
12
|
puts "answer:#{answer}"
|
13
13
|
answer = combo_box("This is a multi-select combo box", 'one', 'two', 'three', multiple: true)
|
14
14
|
puts "answer:#{answer} len:#{answer.length} [0]:#{answer[0]}"
|
15
|
-
answer = prompt("This is a test", text_color: 'blue', background_color: 'grey', font_size: 20, font_family: 'courier',
|
15
|
+
answer = prompt("This is a test", text_color: 'blue', background_color: 'grey', font_size: 20, font_family: 'courier', details: "Some more stuff")
|
16
16
|
puts "answer:#{answer}"
|
17
|
-
answer = prompt("This is a test", font_size: 30, details: "Some more stuff"
|
17
|
+
answer = prompt("This is a test", font_size: 30, details: "Some more stuff")
|
18
18
|
puts "answer:#{answer}"
|
19
19
|
answer = message_box('This is a message box', 'one', 'two', 'three', text_color: 'blue', background_color: 'grey', font_size: 20, font_family: 'courier', informative: "Informative stuff", details: "Some more stuff")
|
20
20
|
puts "answer:#{answer}"
|