openc3-cosmos-demo 5.5.0 → 5.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa57472a26d8bb68c57270d8ffc5664aae5e332cd9599fb61d59b5ff1d2e3312
4
- data.tar.gz: aede6a97cea27c5471546e7ef2e9dce7f4112f6125a936ad52f3fd88c1759b6f
3
+ metadata.gz: 375902608394fe2ed9bdf8aa85422c89039e23a702a2c6b97292cc17839f13e5
4
+ data.tar.gz: cf4d41758c383312d3e0eea75e023cdd003cb01ade1b5f51327f3247c2bdac9e
5
5
  SHA512:
6
- metadata.gz: 59f94a1c99266e310955517f7436d5adf1cce7cb8a968201e9ecb63d4498eaa2f4e336ab5ae1e103622c00f2fb149a150927e3ea397545b847dd93cb4ccf9a94
7
- data.tar.gz: ebfb8148bc912313a799566276ec15100d9faee0f71b926c804c6034d76800e0a69a66108cc4eb63334010253b7ea3da5df35224aef406ff5474d2feeafe966f
6
+ metadata.gz: 74cb979d5ceff4abe480c18d49c34183117644f7168c17a8ba67bc40c93672f465876419ac3a102d93d097c81067ce78780c5e1a7f9e173ce46e06c59254a7d2
7
+ data.tar.gz: 279dd234d248d14fa578c8b7a9f0ec7642d71d3b8b7f7dd9b0b77b493a02453472124b1e355b479377bddca16747ce3d7c30602c79e146ce05b123a1ca317a42
data/plugin.txt CHANGED
@@ -15,9 +15,7 @@ VARIABLE templated_int_name TEMPLATED_INT
15
15
  VARIABLE demo_tool_name Demo
16
16
  VARIABLE example_microservice_name openc3-example
17
17
  VARIABLE templated_microservice_name openc3-templated
18
- VARIABLE example_host openc3-operator
19
18
  VARIABLE example_port 9999
20
- VARIABLE templated_host openc3-operator
21
19
  VARIABLE templated_port 5025
22
20
  VARIABLE inst_router_port 7779
23
21
  VARIABLE log_retain_time 172800
@@ -78,6 +76,8 @@ VARIABLE reduced_log_retain_time 2592000
78
76
  <% end %>
79
77
 
80
78
  <% if include_example and include_example_int %>
79
+ # This expression builds the correct hostname for Open Source or Enterprise Edition in Kubernetes
80
+ <% example_host = ENV['KUBERNETES_SERVICE_HOST'] ? "#{scope}-user-#{example_microservice_name.downcase.gsub('__', '-').gsub('_', '-')}-service" : "openc3-operator" %>
81
81
  INTERFACE <%= example_int_name %> example_interface.rb <%= example_host %> <%= example_port %>
82
82
  PROTOCOL WRITE MyRejectProtocol
83
83
  MAP_TARGET <%= example_target_name %>
@@ -86,6 +86,8 @@ VARIABLE reduced_log_retain_time 2592000
86
86
  <% end %>
87
87
 
88
88
  <% if include_templated and include_templated_int %>
89
+ # This expression builds the correct hostname for Open Source or Enterprise Edition in Kubernetes
90
+ <% templated_host = ENV['KUBERNETES_SERVICE_HOST'] ? "#{scope}-user-#{templated_microservice_name.downcase.gsub('__', '-').gsub('_', '-')}-service" : "openc3-operator" %>
89
91
  INTERFACE <%= templated_int_name %> templated_interface.rb <%= templated_host %> <%= templated_port %> <%= templated_port %> 5.0 nil TEMPLATE 0xA 0xA
90
92
  MAP_TARGET <%= templated_target_name %>
91
93
  DONT_CONNECT
@@ -122,9 +122,10 @@ TELEMETRY <%= target_name %> PARAMS BIG_ENDIAN "Params set by SETPARAMS command"
122
122
 
123
123
  TELEMETRY <%= target_name %> IMAGE BIG_ENDIAN "Packet with image data"
124
124
  <%= render "_ccsds_tlm.txt", locals: {apid: 4} %>
125
- ITEM BYTES 128 32 UINT "First bytes"
125
+ APPEND_ITEM BYTES 32 UINT "First bytes"
126
126
  FORMAT_STRING '0x%08x'
127
- ITEM IMAGE 128 131072 BLOCK "10x10 Image Data"
127
+ APPEND_ITEM BLOCK 8000 BLOCK "Raw Data"
128
+ APPEND_ITEM IMAGE 0 BLOCK "Image Data"
128
129
  OVERLAP # Notify OpenC3 that this is intentionally overlapping the BYTES field
129
130
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
130
131
  READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
@@ -24,6 +24,7 @@
24
24
 
25
25
  require 'openc3'
26
26
  require 'stringio'
27
+ require 'base64'
27
28
 
28
29
  module OpenC3
29
30
  # Simulated instrument for the demo. Populates several packets and cycles
@@ -46,6 +47,9 @@ module OpenC3
46
47
  @position_file_bytes_read = 0
47
48
  @attitude_file_bytes_read = 0
48
49
 
50
+ data = File.read(File.join(@target.dir, 'public', 'spiral.jpg'), mode: "rb")
51
+ @image = Base64.encode64(data)
52
+
49
53
  @pos_packet = Structure.new(:BIG_ENDIAN)
50
54
  @pos_packet.append_item('DAY', 16, :UINT)
51
55
  @pos_packet.append_item('MSOD', 32, :UINT)
@@ -347,11 +351,11 @@ module OpenC3
347
351
  when 'IMAGE'
348
352
  packet.timesec = time.tv_sec - @time_offset
349
353
  packet.timeus = time.tv_usec
350
- # Create an Array the size of the packet and then initialize
354
+ packet.image = @image
355
+ # Create an Array and then initialize
351
356
  # using a sample of all possible hex values (0..15)
352
357
  # finally pack it into binary using the Character 'C' specifier
353
- data = Array.new(packet.image.length) { Array(0..15).sample }.pack("C*")
354
- packet.image = data
358
+ packet.block = Array.new(1000) { Array(0..15).sample }.pack("C*")
355
359
  packet.ccsdsseqcnt += 1
356
360
 
357
361
  when 'MECH'
Binary file
@@ -1,3 +1 @@
1
- VERTICALBOX
2
- LABELVALUE <%= target_name %> HEALTH_STATUS PACKET_TIMEFORMATTED WITH_UNITS 30
3
- END
1
+ LABELVALUE <%= target_name %> HEALTH_STATUS PACKET_TIMEFORMATTED WITH_UNITS 30
@@ -5,9 +5,7 @@ VERTICAL
5
5
  # Note @original_target_name is also available
6
6
 
7
7
  HORIZONTAL
8
- VERTICALBOX
9
- SECTIONHEADER "Position and Velocity"
10
-
8
+ VERTICALBOX "Position and Velocity"
11
9
  LABELVALUE <%= target_name %> ADCS POSX WITH_UNITS 20 CENTER
12
10
  LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 22 CENTER
13
11
  LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 24 CENTER
@@ -16,9 +14,7 @@ VERTICAL
16
14
  LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 24
17
15
  END
18
16
 
19
- VERTICALBOX
20
- SECTIONHEADER "Attitude"
21
-
17
+ VERTICALBOX "Attitude"
22
18
  LABELVALUE <%= target_name %> ADCS Q1 WITH_UNITS 12 RIGHT
23
19
  SETTING TEXTALIGN LEFT
24
20
  SETTING TEXTCOLOR RED
@@ -40,9 +36,7 @@ VERTICAL
40
36
  SETTING TEXTALIGN LEFT
41
37
  END
42
38
 
43
- VERTICALBOX
44
- SECTIONHEADER "File Progress"
45
-
39
+ VERTICALBOX "File Progress"
46
40
  LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS
47
41
  LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
48
42
  LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS 2 60 RAW # scale by 2
@@ -7,8 +7,7 @@ VERTICAL
7
7
  LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
8
8
  LABELVALUE <%= target_name %> HEALTH_STATUS DURATION
9
9
 
10
- VERTICALBOX
11
- SECTIONHEADER "Send Collect Command:"
10
+ VERTICALBOX "Send Collect Command:"
12
11
  HORIZONTAL
13
12
  LABEL "Type: "
14
13
  # The ampersand '&' indicates a line continuation
@@ -31,10 +30,8 @@ VERTICAL
31
30
  # You can have comments between string concatenations
32
31
  "api.cmd('<%= target_name %> COLLECT with TYPE '+type+', DURATION '+dur)"
33
32
  END
34
- SETTING BACKCOLOR 163 185 163
35
33
 
36
- VERTICALBOX
37
- SECTIONHEADER "Parameter-less Commands:"
34
+ VERTICALBOX "Parameter-less Commands:"
38
35
  NAMED_WIDGET GROUP RADIOGROUP 1 # Select 'Clear' initially, 0-based index
39
36
  RADIOBUTTON 'Abort'
40
37
  RADIOBUTTON 'Clear'
@@ -44,10 +41,8 @@ VERTICAL
44
41
  "api.cmd('<%= target_name %> ABORT') : (screen.getNamedWidget('CHECK').checked() ? " +
45
42
  "api.cmd_no_hazardous_check('<%= target_name %> CLEAR') : api.cmd('<%= target_name %> CLEAR'))"
46
43
  END
47
- SETTING BACKCOLOR 163 185 163
48
44
 
49
- VERTICALBOX
50
- SECTIONHEADER "Run Script:"
45
+ VERTICALBOX "Run Script:"
51
46
  NAMED_WIDGET SCRIPTNAME COMBOBOX collect.rb checks.rb
52
47
  NAMED_WIDGET BG CHECKBUTTON 'Background'
53
48
  # The backslash '\' character indicates string concatenation without newlines.
@@ -58,5 +53,4 @@ VERTICAL
58
53
  "var env = {}; env['TYPE'] = ctype;" \
59
54
  "runScript('INST/procedures/'+script, !screen.getNamedWidget('BG').checked(), env)"
60
55
  END
61
- SETTING BACKCOLOR 163 185 163
62
56
  END
@@ -1,16 +1,13 @@
1
1
  SCREEN AUTO AUTO 1.0
2
2
 
3
3
  VERTICAL
4
- # TODO: This causes an error because layout widgets don't have settings
5
- # SETTING BACKCOLOR white
6
4
  TITLE "<%= target_name %> Instrument Ground Station Status"
7
- SETTING BACKCOLOR white
8
5
 
9
6
  CANVAS 650 600
10
7
  # Just demonstrate lines and circles
11
8
  CANVASLINE 0 3 650 3 blue 3
12
- CANVASDOT 10 15 BLUE 5
13
- CANVASLABEL 200 20 "Ground Contact Status"
9
+ # CANVASDOT 10 15 BLUE 5
10
+ CANVASLABEL 200 30 "Ground Contact Status"
14
11
 
15
12
  # This is an example of using TLM_AND to && together different logical values
16
13
  # Note you must use RAW for the base value and use SETTING IMAGE true / false
@@ -22,13 +19,15 @@ VERTICAL
22
19
  # SETTING IMAGE false "ground_off.png" 100 200
23
20
  CANVASLINE 10 10 640 10 blue 3
24
21
  CANVASIMAGE "satellite.png" 90 130 200 200
22
+ # If the image is clicked the "<%= target_name %> ADCS" screen will popup
23
+ SETTING SCREEN <%= target_name %> ADCS
25
24
  # We're using the converted value and specifing a default of "ground_error.png"
26
25
  # if none of the IMAGE settings match the value
27
26
  CANVASIMAGEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED "ground_error.png" 400 100 180 180
28
27
  SETTING IMAGE CONNECTED "ground_on.png" 400 100
29
28
  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
29
+ # If the image is clicked the "<%= target_name %> HS" screen will popup
30
+ SETTING SCREEN <%= target_name %> HS
32
31
  CANVASLABEL 380 300 "Ground Station #1"
33
32
  CANVASLABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 520 300
34
33
  # The default type is RAW and no default means anything over 10 will be blank
@@ -39,7 +38,11 @@ VERTICAL
39
38
  SETTING IMAGE 2..10 "ground_error.png" 400 350
40
39
  CANVASLABEL 380 550 "Ground Station #2"
41
40
  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
41
+ CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS 420 135 240 330 3 RAW
42
+ SETTING VALUE_EQ 0 WHITE
43
+ SETTING VALUE_EQ 1 GREEN
44
+ CANVASLINEVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS 420 385 240 330 3
45
+ SETTING VALUE_EQ UNAVAILABLE WHITE
46
+ SETTING VALUE_EQ CONNECTED GREEN
44
47
  END
45
48
  END
@@ -1,5 +1,8 @@
1
1
  SCREEN AUTO AUTO 0.5
2
2
  GLOBAL_SETTING LABELVALUELIMITSBAR COLORBLIND TRUE
3
+ GLOBAL_SETTING LABELVALUELIMITSBAR TEXTCOLOR BLACK
4
+ GLOBAL_SETTING LABELVALUE TEXTCOLOR BLACK
5
+ GLOBAL_SETTING VERTICALBOX TEXTCOLOR BLACK
3
6
 
4
7
  VERTICAL
5
8
 
@@ -7,8 +10,7 @@ VERTICAL
7
10
  SETTING BACKCOLOR 162 181 205
8
11
  SETTING TEXTCOLOR black
9
12
 
10
- VERTICALBOX
11
- SECTIONHEADER "General Telemetry"
13
+ VERTICALBOX "General Telemetry"
12
14
  BUTTON 'Start Collect' 'api.cmd("<%= target_name %> COLLECT with TYPE NORMAL, DURATION 5")'
13
15
  FORMATVALUE <%= target_name %> HEALTH_STATUS COLLECTS "0x%08X" CONVERTED 14
14
16
  LABELVALUE <%= target_name %> HEALTH_STATUS COLLECT_TYPE
@@ -17,8 +19,7 @@ VERTICAL
17
19
  END
18
20
  SETTING BACKCOLOR 163 185 163
19
21
 
20
- VERTICALBOX
21
- SECTIONHEADER "Temperatures"
22
+ VERTICALBOX "Temperatures"
22
23
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1 WITH_UNITS 7
23
24
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 CONVERTED 25
24
25
  # LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
@@ -26,17 +27,15 @@ VERTICAL
26
27
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2 WITH_UNITS
27
28
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3
28
29
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP4
29
- SETTING GRAY_TOLERANCE 0.1
30
30
  END
31
31
  SETTING BACKCOLOR 203 173 158
32
32
 
33
- VERTICALBOX
34
- SECTIONHEADER "Ground Station"
33
+ VERTICALBOX "Ground Station"
35
34
  LABELVALUE <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 18
36
35
  LABELVALUE <%= target_name %> HEALTH_STATUS GROUND2STATUS CONVERTED 18
37
36
  END
37
+ SETTING BACKCOLOR 207 171 175
38
38
 
39
39
  <%= render "_footer.txt" %>
40
- SETTING BACKCOLOR 207 171 169
41
40
  END
42
41
  SETTING BACKCOLOR 162 181 205
@@ -0,0 +1,3 @@
1
+ SCREEN AUTO AUTO 1.0
2
+
3
+ IMAGEVIEWER INST IMAGE IMAGE png
@@ -4,8 +4,7 @@ VERTICAL
4
4
 
5
5
  TITLE "<%= @target_name %> Instrument Latest Header"
6
6
 
7
- VERTICALBOX
8
- SECTIONHEADER "Header"
7
+ VERTICALBOX "Header"
9
8
  LABELVALUE INST LATEST CCSDSVER
10
9
  LABELVALUE INST LATEST CCSDSTYPE
11
10
  LABELVALUE INST LATEST CCSDSSHF
@@ -3,8 +3,7 @@ SCREEN AUTO AUTO 1.0
3
3
  TITLE "<%= target_name %> Instrument Limits"
4
4
 
5
5
  HORIZONTAL
6
- VERTICALBOX
7
- SECTIONHEADER "Limits Bars"
6
+ VERTICALBOX "Limits Bars"
8
7
  LIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
9
8
  VALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
10
9
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
@@ -31,14 +30,12 @@ HORIZONTAL
31
30
  SUBSETTING 1 MAX_VALUE 10
32
31
  END
33
32
  VERTICAL
34
- VERTICALBOX
35
- SECTIONHEADER "Range Bars 0-100"
33
+ VERTICALBOX "Range Bars 0-100"
36
34
  RANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
37
35
  VALUERANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
38
36
  LABELVALUERANGEBAR <%= target_name %> HEALTH_STATUS TEMP2 0 100
39
37
  END
40
- VERTICALBOX
41
- SECTIONHEADER "Limits Colors"
38
+ VERTICALBOX "Limits Colors"
42
39
  LIMITSCOLOR <%= target_name %> HEALTH_STATUS TEMP1 CONVERTED 5 NIL # No label
43
40
  LIMITSCOLOR <%= target_name %> HEALTH_STATUS TEMP2 # Default is label with just item name
44
41
  LIMITSCOLOR <%= target_name %> HEALTH_STATUS GROUND1STATUS CONVERTED 5 TRUE # Full TGT/PKT/ITEM label
@@ -47,8 +44,7 @@ HORIZONTAL
47
44
  END
48
45
 
49
46
  HORIZONTAL
50
- VERTICALBOX
51
- SECTIONHEADER "Limits Columns"
47
+ VERTICALBOX "Limits Columns"
52
48
  HORIZONTAL
53
49
  LIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2
54
50
  VALUELIMITSCOLUMN <%= target_name %> HEALTH_STATUS TEMP2
@@ -69,8 +65,7 @@ HORIZONTAL
69
65
  END
70
66
 
71
67
  # TODO: Not yet implemented
72
- #VERTICALBOX
73
- # SECTIONHEADER "Range Columns 0-100"
68
+ #VERTICALBOX "Range Columns 0-100"
74
69
  # HORIZONTAL
75
70
  # RANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
76
71
  # VALUERANGECOLUMN <%= target_name %> HEALTH_STATUS TEMP2 0 100
@@ -5,9 +5,7 @@ TABBOOK
5
5
  TITLE "<%= target_name %> Instrument ADCS Information"
6
6
 
7
7
  HORIZONTAL
8
- VERTICALBOX
9
- SECTIONHEADER "Position and Velocity"
10
-
8
+ VERTICALBOX "Position and Velocity"
11
9
  LABELVALUE <%= target_name %> ADCS POSX WITH_UNITS 20
12
10
  LABELVALUE <%= target_name %> ADCS POSY WITH_UNITS 20
13
11
  LABELVALUE <%= target_name %> ADCS POSZ WITH_UNITS 20
@@ -16,9 +14,7 @@ TABBOOK
16
14
  LABELVALUE <%= target_name %> ADCS VELZ WITH_UNITS 20
17
15
  END
18
16
 
19
- VERTICALBOX
20
- SECTIONHEADER "Attitude"
21
-
17
+ VERTICALBOX "Attitude"
22
18
  LABELVALUE <%= target_name %> ADCS Q1
23
19
  LABELVALUE <%= target_name %> ADCS Q2
24
20
  LABELVALUE <%= target_name %> ADCS Q3
@@ -28,9 +24,7 @@ TABBOOK
28
24
  LABELVALUE <%= target_name %> ADCS BIASZ
29
25
  END
30
26
 
31
- VERTICALBOX
32
- SECTIONHEADER "File Progress"
33
-
27
+ VERTICALBOX "File Progress"
34
28
  LABELPROGRESSBAR <%= target_name %> ADCS POSPROGRESS
35
29
  LABELPROGRESSBAR <%= target_name %> ADCS ATTPROGRESS
36
30
  END
@@ -44,15 +38,11 @@ TABBOOK
44
38
  TABITEM HS
45
39
  TITLE "Instrument Health and Status"
46
40
 
47
- VERTICALBOX
48
- SECTIONHEADER "General Telemetry"
49
-
41
+ VERTICALBOX "General Telemetry"
50
42
  LABELVALUE <%= target_name %> HEALTH_STATUS COLLECTS
51
43
  END
52
44
 
53
- VERTICALBOX
54
- SECTIONHEADER "Temperatures"
55
-
45
+ VERTICALBOX "Temperatures"
56
46
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP1
57
47
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP2
58
48
  LABELVALUELIMITSBAR <%= target_name %> HEALTH_STATUS TEMP3