openc3 5.17.0 → 5.18.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of openc3 might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/openc3cli +1 -1
- data/data/config/_interfaces.yaml +4 -4
- data/data/config/command_modifiers.yaml +4 -0
- data/data/config/interface_modifiers.yaml +18 -8
- data/data/config/item_modifiers.yaml +34 -26
- data/data/config/microservice.yaml +4 -1
- data/data/config/param_item_modifiers.yaml +16 -0
- data/data/config/parameter_modifiers.yaml +29 -12
- data/data/config/plugins.yaml +3 -3
- data/data/config/screen.yaml +7 -7
- data/data/config/telemetry_modifiers.yaml +9 -4
- data/data/config/widgets.yaml +41 -14
- data/ext/openc3/ext/packet/packet.c +6 -0
- data/lib/openc3/accessors/accessor.rb +1 -0
- data/lib/openc3/accessors/binary_accessor.rb +170 -11
- data/lib/openc3/api/cmd_api.rb +39 -35
- data/lib/openc3/api/config_api.rb +10 -10
- data/lib/openc3/api/interface_api.rb +28 -21
- data/lib/openc3/api/limits_api.rb +29 -29
- data/lib/openc3/api/metrics_api.rb +3 -3
- data/lib/openc3/api/offline_access_api.rb +5 -5
- data/lib/openc3/api/router_api.rb +25 -19
- data/lib/openc3/api/settings_api.rb +10 -10
- data/lib/openc3/api/stash_api.rb +10 -10
- data/lib/openc3/api/target_api.rb +10 -10
- data/lib/openc3/api/tlm_api.rb +44 -44
- data/lib/openc3/conversions/bit_reverse_conversion.rb +60 -0
- data/lib/openc3/conversions/ip_read_conversion.rb +59 -0
- data/lib/openc3/conversions/ip_write_conversion.rb +61 -0
- data/lib/openc3/conversions/object_read_conversion.rb +88 -0
- data/lib/openc3/conversions/object_write_conversion.rb +38 -0
- data/lib/openc3/conversions.rb +6 -1
- data/lib/openc3/io/json_drb.rb +19 -21
- data/lib/openc3/io/json_rpc.rb +14 -13
- data/lib/openc3/microservices/microservice.rb +11 -11
- data/lib/openc3/microservices/scope_cleanup_microservice.rb +1 -1
- data/lib/openc3/microservices/timeline_microservice.rb +76 -51
- data/lib/openc3/models/activity_model.rb +25 -21
- data/lib/openc3/models/scope_model.rb +44 -13
- data/lib/openc3/models/sorted_model.rb +1 -1
- data/lib/openc3/models/target_model.rb +4 -1
- data/lib/openc3/operators/microservice_operator.rb +2 -2
- data/lib/openc3/operators/operator.rb +9 -9
- data/lib/openc3/packets/packet.rb +18 -1
- data/lib/openc3/packets/packet_config.rb +37 -16
- data/lib/openc3/packets/packet_item.rb +5 -0
- data/lib/openc3/packets/structure.rb +67 -3
- data/lib/openc3/packets/structure_item.rb +49 -12
- data/lib/openc3/script/calendar.rb +2 -2
- data/lib/openc3/script/extract.rb +5 -3
- data/lib/openc3/script/web_socket_api.rb +11 -0
- data/lib/openc3/topics/decom_interface_topic.rb +2 -1
- data/lib/openc3/topics/system_events_topic.rb +40 -0
- data/lib/openc3/utilities/authentication.rb +2 -1
- data/lib/openc3/utilities/authorization.rb +2 -2
- data/lib/openc3/version.rb +5 -5
- data/templates/tool_angular/package.json +5 -5
- data/templates/tool_react/package.json +8 -8
- data/templates/tool_svelte/package.json +10 -10
- data/templates/tool_vue/package.json +10 -10
- data/templates/widget/package.json +10 -10
- data/templates/widget/src/Widget.vue +0 -1
- metadata +22 -2
@@ -44,10 +44,20 @@ module OpenC3
|
|
44
44
|
# @return [Integer] 0 based bit offset
|
45
45
|
attr_reader :bit_offset
|
46
46
|
|
47
|
+
# Original bit offset when the structure is first defined
|
48
|
+
# Will reflect the bit offset with all variable sized items at their
|
49
|
+
# minimum size
|
50
|
+
# @return [Integer] 0 based bit offset
|
51
|
+
attr_accessor :original_bit_offset
|
52
|
+
|
47
53
|
# The number of bits which represent this StructureItem in the binary buffer.
|
48
54
|
# @return [Integer] Size in bits
|
49
55
|
attr_reader :bit_size
|
50
56
|
|
57
|
+
# Original bit size when the structure is first defined
|
58
|
+
# @return [Integer] 0 based bit offset
|
59
|
+
attr_reader :original_bit_size
|
60
|
+
|
51
61
|
# The data type is what kind of data this StructureItem
|
52
62
|
# represents when extracted from the binary buffer. :INT and :UINT are
|
53
63
|
# turned into Integers (Ruby Fixnum). :FLOAT are turned into floating point
|
@@ -70,6 +80,10 @@ module OpenC3
|
|
70
80
|
# @return [Integer, nil] Array size of the item in bits
|
71
81
|
attr_reader :array_size
|
72
82
|
|
83
|
+
# Original array size when the structure is first defined
|
84
|
+
# @return [Integer] total array size in bits
|
85
|
+
attr_accessor :original_array_size
|
86
|
+
|
73
87
|
# How to handle overflow for :INT, :UINT, :STRING, and :BLOCK data types
|
74
88
|
# Note: Has no meaning for :FLOAT data types
|
75
89
|
# @return [Symbol] {BinaryAccessor::OVERFLOW_TYPES}
|
@@ -78,6 +92,9 @@ module OpenC3
|
|
78
92
|
# @return [Boolean] Whether this structure item can overlap another item in the same packet
|
79
93
|
attr_accessor :overlap
|
80
94
|
|
95
|
+
# @return [Hash] Variable bit size information
|
96
|
+
attr_reader :variable_bit_size
|
97
|
+
|
81
98
|
# Create a StructureItem by setting all the attributes. It
|
82
99
|
# calls all the setter routines to do the attribute verification and then
|
83
100
|
# verifies the overall integrity.
|
@@ -98,10 +115,14 @@ module OpenC3
|
|
98
115
|
self.endianness = endianness
|
99
116
|
self.data_type = data_type
|
100
117
|
self.bit_offset = bit_offset
|
118
|
+
@original_bit_offset = self.bit_offset
|
101
119
|
self.bit_size = bit_size
|
120
|
+
@original_bit_size = self.bit_size
|
102
121
|
self.array_size = array_size
|
122
|
+
@original_array_size = self.array_size
|
103
123
|
self.overflow = overflow
|
104
124
|
self.overlap = false
|
125
|
+
self.variable_bit_size = nil
|
105
126
|
@create_index = @@create_index
|
106
127
|
@@create_index += 1
|
107
128
|
@structure_item_constructed = true
|
@@ -150,8 +171,8 @@ module OpenC3
|
|
150
171
|
def bit_size=(bit_size)
|
151
172
|
raise ArgumentError, "#{@name}: bit_size must be an Integer" unless Integer === bit_size
|
152
173
|
byte_multiple = ((bit_size % 8) == 0)
|
153
|
-
if bit_size <= 0 and (@data_type == :
|
154
|
-
raise ArgumentError, "#{@name}: bit_size cannot be negative or zero for :
|
174
|
+
if bit_size <= 0 and (@data_type == :FLOAT)
|
175
|
+
raise ArgumentError, "#{@name}: bit_size cannot be negative or zero for :FLOAT items: #{bit_size}"
|
155
176
|
end
|
156
177
|
if (@data_type == :STRING or @data_type == :BLOCK) and !byte_multiple
|
157
178
|
raise ArgumentError, "#{@name}: bit_size for STRING and BLOCK items must be byte multiples"
|
@@ -205,6 +226,18 @@ module OpenC3
|
|
205
226
|
verify_overall() if @structure_item_constructed
|
206
227
|
end
|
207
228
|
|
229
|
+
def variable_bit_size=(variable_bit_size)
|
230
|
+
if variable_bit_size
|
231
|
+
raise ArgumentError, "#{@name}: variable_bit_size must be a Hash" unless Hash === variable_bit_size
|
232
|
+
raise ArgumentError, "#{@name}: variable_bit_size['length_item_name'] must be a String" unless String === variable_bit_size['length_item_name']
|
233
|
+
raise ArgumentError, "#{@name}: variable_bit_size['length_value_bit_offset'] must be an Integer" unless Integer === variable_bit_size['length_value_bit_offset']
|
234
|
+
raise ArgumentError, "#{@name}: variable_bit_size['length_bits_per_count'] must be an Integer" unless Integer === variable_bit_size['length_bits_per_count']
|
235
|
+
end
|
236
|
+
@variable_bit_size = variable_bit_size
|
237
|
+
|
238
|
+
verify_overall() if @structure_item_constructed
|
239
|
+
end
|
240
|
+
|
208
241
|
def create_index
|
209
242
|
@create_index.to_i
|
210
243
|
end
|
@@ -213,11 +246,11 @@ module OpenC3
|
|
213
246
|
# Comparison Operator based on bit_offset. This means that StructureItems
|
214
247
|
# with different names or bit sizes are equal if they have the same bit
|
215
248
|
# offset.
|
216
|
-
def <=>(
|
217
|
-
return nil unless
|
249
|
+
def <=>(other)
|
250
|
+
return nil unless other.kind_of?(StructureItem)
|
218
251
|
|
219
|
-
other_bit_offset =
|
220
|
-
other_bit_size =
|
252
|
+
other_bit_offset = other.bit_offset
|
253
|
+
other_bit_size = other.bit_size
|
221
254
|
|
222
255
|
# Handle same bit offset case
|
223
256
|
if (@bit_offset == 0) && (other_bit_offset == 0)
|
@@ -226,7 +259,7 @@ module OpenC3
|
|
226
259
|
# Compare based on bit size then create index
|
227
260
|
if @bit_size == other_bit_size
|
228
261
|
if @create_index
|
229
|
-
if @create_index <=
|
262
|
+
if @create_index <= other.create_index
|
230
263
|
return -1
|
231
264
|
else
|
232
265
|
return 1
|
@@ -246,7 +279,7 @@ module OpenC3
|
|
246
279
|
# Both Have Same Sign
|
247
280
|
if @bit_offset == other_bit_offset
|
248
281
|
if @create_index
|
249
|
-
if @create_index <=
|
282
|
+
if @create_index <= other.create_index
|
250
283
|
return -1
|
251
284
|
else
|
252
285
|
return 1
|
@@ -263,7 +296,7 @@ module OpenC3
|
|
263
296
|
# Different Signs
|
264
297
|
if @bit_offset == other_bit_offset
|
265
298
|
if @create_index
|
266
|
-
if @create_index <
|
299
|
+
if @create_index < other.create_index
|
267
300
|
return -1
|
268
301
|
else
|
269
302
|
return 1
|
@@ -296,6 +329,7 @@ module OpenC3
|
|
296
329
|
si = StructureItem.new(hash['name'], hash['bit_offset'], hash['bit_size'], data_type,
|
297
330
|
endianness, hash['array_size'], overflow)
|
298
331
|
si.key = hash['key'] || hash['name']
|
332
|
+
si.variable_bit_size = hash['variable_bit_size']
|
299
333
|
si
|
300
334
|
end
|
301
335
|
|
@@ -303,12 +337,15 @@ module OpenC3
|
|
303
337
|
hash = {}
|
304
338
|
hash['name'] = self.name
|
305
339
|
hash['key'] = self.key
|
306
|
-
hash['bit_offset'] = self.
|
307
|
-
hash['bit_size'] = self.
|
340
|
+
hash['bit_offset'] = self.original_bit_offset
|
341
|
+
hash['bit_size'] = self.original_bit_size
|
308
342
|
hash['data_type'] = self.data_type
|
309
343
|
hash['endianness'] = self.endianness
|
310
|
-
hash['array_size'] = self.
|
344
|
+
hash['array_size'] = self.original_array_size
|
311
345
|
hash['overflow'] = self.overflow
|
346
|
+
if @variable_bit_size
|
347
|
+
hash['variable_bit_size'] = @variable_bit_size
|
348
|
+
end
|
312
349
|
hash
|
313
350
|
end
|
314
351
|
|
@@ -67,8 +67,8 @@ module OpenC3
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def create_timeline_activity(name, kind:, start:, stop:, data: {}, scope: $openc3_scope, token: $openc3_token)
|
70
|
-
kind = kind.to_s.
|
71
|
-
kinds = %w(
|
70
|
+
kind = kind.to_s.downcase()
|
71
|
+
kinds = %w(command script reserve)
|
72
72
|
unless kinds.include?(kind)
|
73
73
|
raise "Unknown kind: #{kind}. Must be one of #{kinds.join(', ')}."
|
74
74
|
end
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# GNU Affero General Public License for more details.
|
15
15
|
|
16
16
|
# Modified by OpenC3, Inc.
|
17
|
-
# All changes Copyright
|
17
|
+
# All changes Copyright 2024, OpenC3, Inc.
|
18
18
|
# All Rights Reserved
|
19
19
|
#
|
20
20
|
# This file may also be used under the terms of a commercial license
|
@@ -34,10 +34,12 @@ module OpenC3
|
|
34
34
|
# Split keywords into string keywords (part of our API, e.g. "PARAM" => 123) and
|
35
35
|
# symbol keywords which are meant for the internal methods, e.g. scope:, token:, timeout:
|
36
36
|
# If the user tries to pass symbol keywords then that is an error
|
37
|
-
str, sym = kwargs.partition {|k,
|
37
|
+
str, sym = kwargs.partition {|k, _v| k.is_a?(String) }.map(&:to_h)
|
38
|
+
# We use :manual in all our APIs so we remove it from the check
|
39
|
+
sym.delete(:manual)
|
38
40
|
unless sym.empty?
|
39
41
|
raise ArgumentError, "Unknown symbol keyword(s): #{sym.keys.join(', ')}. "\
|
40
|
-
"COSMOS command parameters must be passed as strings: \"#{sym.to_a[0][0]
|
42
|
+
"COSMOS command parameters must be passed as strings: \"#{sym.to_a[0][0]}\" => ..."
|
41
43
|
end
|
42
44
|
args << str unless str.empty?
|
43
45
|
end
|
@@ -284,6 +284,17 @@ module OpenC3
|
|
284
284
|
end
|
285
285
|
end
|
286
286
|
|
287
|
+
# System Events WebSocket
|
288
|
+
class SystemEventsWebSocketApi < CmdTlmWebSocketApi
|
289
|
+
def initialize(history_count: 0, url: nil, write_timeout: 10.0, read_timeout: 10.0, connect_timeout: 5.0, authentication: nil, scope: $openc3_scope)
|
290
|
+
@identifier = {
|
291
|
+
channel: "SystemEventsChannel",
|
292
|
+
history_count: history_count
|
293
|
+
}
|
294
|
+
super(url: url, write_timeout: write_timeout, read_timeout: read_timeout, connect_timeout: connect_timeout, authentication: authentication, scope: scope)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
287
298
|
# Timeline WebSocket
|
288
299
|
class TimelineEventsWebSocketApi < CmdTlmWebSocketApi
|
289
300
|
def initialize(history_count: 0, url: nil, write_timeout: 10.0, read_timeout: 10.0, connect_timeout: 5.0, authentication: nil, scope: $openc3_scope)
|
@@ -30,10 +30,11 @@ module OpenC3
|
|
30
30
|
# DecomMicroservice is listening to the DECOMINTERFACE topic and is responsible
|
31
31
|
# for actually building the command. This was deliberate to allow this to work
|
32
32
|
# with or without an interface.
|
33
|
+
ack_topic = "{#{scope}__ACKCMD}TARGET__#{target_name}"
|
34
|
+
Topic.update_topic_offsets([ack_topic])
|
33
35
|
decom_id = Topic.write_topic("#{scope}__DECOMINTERFACE__{#{target_name}}",
|
34
36
|
{ 'build_cmd' => JSON.generate(data, allow_nan: true) }, '*', 100)
|
35
37
|
timeout = 5 # Arbitrary 5s timeout
|
36
|
-
ack_topic = "{#{scope}__ACKCMD}TARGET__#{target_name}"
|
37
38
|
time = Time.now
|
38
39
|
while (Time.now - time) < timeout
|
39
40
|
Topic.read_topics([ack_topic]) do |topic, msg_id, msg_hash, redis|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: ascii-8bit
|
2
|
+
|
3
|
+
# Copyright 2024 OpenC3, Inc.
|
4
|
+
# All Rights Reserved.
|
5
|
+
#
|
6
|
+
# This program is free software; you can modify and/or redistribute it
|
7
|
+
# under the terms of the GNU Affero General Public License
|
8
|
+
# as published by the Free Software Foundation; version 3 with
|
9
|
+
# attribution addendums as found in the LICENSE.txt
|
10
|
+
#
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
# GNU Affero General Public License for more details.
|
15
|
+
|
16
|
+
# This file may also be used under the terms of a commercial license
|
17
|
+
# if purchased from OpenC3, Inc.
|
18
|
+
|
19
|
+
require 'openc3/topics/topic'
|
20
|
+
|
21
|
+
module OpenC3
|
22
|
+
class SystemEventsTopic < Topic
|
23
|
+
PRIMARY_KEY = "OPENC3__SYSTEM__EVENTS".freeze
|
24
|
+
|
25
|
+
def self.update_topic_offsets()
|
26
|
+
Topic.update_topic_offsets([PRIMARY_KEY])
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.write(type, event)
|
30
|
+
event['type'] = type
|
31
|
+
Topic.write_topic(PRIMARY_KEY, {event: JSON.generate(event)}, '*', 1000)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.read()
|
35
|
+
Topic.read_topics([PRIMARY_KEY]) do |_topic, _msg_id, msg_hash, _redis|
|
36
|
+
yield JSON.parse(msg_hash['event'])
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -21,6 +21,7 @@
|
|
21
21
|
# if purchased from OpenC3, Inc.
|
22
22
|
|
23
23
|
require 'openc3/version'
|
24
|
+
require 'openc3/io/json_drb'
|
24
25
|
require 'faraday'
|
25
26
|
|
26
27
|
module OpenC3
|
@@ -145,7 +146,7 @@ module OpenC3
|
|
145
146
|
def _make_request(headers, data)
|
146
147
|
realm = ENV['OPENC3_KEYCLOAK_REALM'] || 'openc3'
|
147
148
|
uri = URI("#{@url}/realms/#{realm}/protocol/openid-connect/token")
|
148
|
-
@log[0] = "request uri: #{uri
|
149
|
+
@log[0] = "request uri: #{uri} header: #{headers} body: #{data}"
|
149
150
|
STDOUT.puts @log[0] if JsonDRb.debug?
|
150
151
|
saved_verbose = $VERBOSE; $VERBOSE = nil
|
151
152
|
begin
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# GNU Affero General Public License for more details.
|
15
15
|
|
16
16
|
# Modified by OpenC3, Inc.
|
17
|
-
# All changes Copyright
|
17
|
+
# All changes Copyright 2024, OpenC3, Inc.
|
18
18
|
# All Rights Reserved
|
19
19
|
#
|
20
20
|
# This file may also be used under the terms of a commercial license
|
@@ -37,7 +37,7 @@ rescue LoadError
|
|
37
37
|
private
|
38
38
|
|
39
39
|
# Raises an exception if unauthorized, otherwise does nothing
|
40
|
-
def authorize(permission: nil, target_name: nil, packet_name: nil, interface_name: nil, router_name: nil, scope: nil, token: nil)
|
40
|
+
def authorize(permission: nil, target_name: nil, packet_name: nil, interface_name: nil, router_name: nil, manual: false, scope: nil, token: nil)
|
41
41
|
raise AuthError.new("Scope is required") unless scope
|
42
42
|
|
43
43
|
if $openc3_authorize
|
data/lib/openc3/version.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# encoding: ascii-8bit
|
2
2
|
|
3
|
-
OPENC3_VERSION = '5.
|
3
|
+
OPENC3_VERSION = '5.18.0'
|
4
4
|
module OpenC3
|
5
5
|
module Version
|
6
6
|
MAJOR = '5'
|
7
|
-
MINOR = '
|
7
|
+
MINOR = '18'
|
8
8
|
PATCH = '0'
|
9
9
|
OTHER = ''
|
10
|
-
BUILD = '
|
10
|
+
BUILD = '15e1526c2ad19e88a87fef40bece0867e65f91e0'
|
11
11
|
end
|
12
|
-
VERSION = '5.
|
13
|
-
GEM_VERSION = '5.
|
12
|
+
VERSION = '5.18.0'
|
13
|
+
GEM_VERSION = '5.18.0'
|
14
14
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "<%= tool_name %>",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.18.0",
|
4
4
|
"scripts": {
|
5
5
|
"ng": "ng",
|
6
6
|
"start": "ng serve",
|
@@ -23,12 +23,12 @@
|
|
23
23
|
"@angular/platform-browser-dynamic": "^17.0.8",
|
24
24
|
"@angular/router": "^17.0.8",
|
25
25
|
"@astrouxds/astro-web-components": "7.22.1",
|
26
|
-
"@openc3/tool-common": "5.
|
26
|
+
"@openc3/tool-common": "5.18.0",
|
27
27
|
"rxjs": "~7.8.0",
|
28
28
|
"single-spa": "5.9.5",
|
29
29
|
"single-spa-angular": "^9.0.1",
|
30
30
|
"tslib": "^2.6.2",
|
31
|
-
"zone.js": "~0.14.
|
31
|
+
"zone.js": "~0.14.10"
|
32
32
|
},
|
33
33
|
"devDependencies": {
|
34
34
|
"@angular-builders/custom-webpack": "17.0.2",
|
@@ -36,8 +36,8 @@
|
|
36
36
|
"@angular/cli": "~17.3.6",
|
37
37
|
"@angular/compiler-cli": "^17.0.6",
|
38
38
|
"@types/jasmine": "~5.1.4",
|
39
|
-
"jasmine-core": "~5.
|
40
|
-
"karma": "~6.4.
|
39
|
+
"jasmine-core": "~5.2.0",
|
40
|
+
"karma": "~6.4.4",
|
41
41
|
"karma-chrome-launcher": "~3.2.0",
|
42
42
|
"karma-coverage": "~2.2.0",
|
43
43
|
"karma-jasmine": "~5.1.0",
|
@@ -15,20 +15,20 @@
|
|
15
15
|
"dependencies": {
|
16
16
|
"@emotion/react": "^11.11.3",
|
17
17
|
"@emotion/styled": "^11.11.0",
|
18
|
-
"@mui/material": "^5.
|
18
|
+
"@mui/material": "^5.16.7",
|
19
19
|
"react": "^18.2.0",
|
20
20
|
"react-dom": "^18.2.0",
|
21
21
|
"single-spa-react": "^5.1.4"
|
22
22
|
},
|
23
23
|
"devDependencies": {
|
24
|
-
"@babel/core": "^7.
|
25
|
-
"@babel/eslint-parser": "^7.
|
24
|
+
"@babel/core": "^7.25.2",
|
25
|
+
"@babel/eslint-parser": "^7.25.1",
|
26
26
|
"@babel/plugin-transform-runtime": "^7.23.7",
|
27
|
-
"@babel/preset-env": "^7.
|
27
|
+
"@babel/preset-env": "^7.25.3",
|
28
28
|
"@babel/preset-react": "^7.23.3",
|
29
|
-
"@babel/runtime": "^7.
|
30
|
-
"@testing-library/jest-dom": "^6.
|
31
|
-
"@testing-library/react": "^
|
29
|
+
"@babel/runtime": "^7.25.0",
|
30
|
+
"@testing-library/jest-dom": "^6.4.8",
|
31
|
+
"@testing-library/react": "^16.0.0",
|
32
32
|
"babel-jest": "^29.7.0",
|
33
33
|
"concurrently": "^8.2.2",
|
34
34
|
"cross-env": "^7.0.3",
|
@@ -45,6 +45,6 @@
|
|
45
45
|
"webpack-cli": "^5.1.4",
|
46
46
|
"webpack-config-single-spa-react": "^4.0.5",
|
47
47
|
"webpack-dev-server": "^5.0.4",
|
48
|
-
"webpack-merge": "^
|
48
|
+
"webpack-merge": "^6.0.1"
|
49
49
|
}
|
50
50
|
}
|
@@ -12,36 +12,36 @@
|
|
12
12
|
},
|
13
13
|
"dependencies": {
|
14
14
|
"@astrouxds/astro-web-components": "7.22.1",
|
15
|
-
"@openc3/tool-common": "5.
|
15
|
+
"@openc3/tool-common": "5.18.0",
|
16
16
|
"@smui/button": "^7.0.0-beta.16",
|
17
17
|
"@smui/card": "^7.0.0-beta.16",
|
18
18
|
"@smui/list": "^7.0.0-beta.16",
|
19
19
|
"@smui/menu": "^7.0.0-beta.16",
|
20
|
-
"axios": "1.7.
|
20
|
+
"axios": "1.7.4",
|
21
21
|
"single-spa-svelte": "^2.1.1",
|
22
22
|
"sirv-cli": "^2.0.2",
|
23
23
|
"svelte-portal": "^2.2.0"
|
24
24
|
},
|
25
25
|
"devDependencies": {
|
26
|
-
"@babel/core": "^7.
|
27
|
-
"@babel/preset-env": "^7.
|
28
|
-
"@rollup/plugin-commonjs": "^
|
26
|
+
"@babel/core": "^7.25.2",
|
27
|
+
"@babel/preset-env": "^7.25.3",
|
28
|
+
"@rollup/plugin-commonjs": "^26.0.1",
|
29
29
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
30
|
-
"@testing-library/jest-dom": "^6.
|
31
|
-
"@testing-library/svelte": "^
|
30
|
+
"@testing-library/jest-dom": "^6.4.8",
|
31
|
+
"@testing-library/svelte": "^5.2.1",
|
32
32
|
"babel-jest": "^29.7.0",
|
33
33
|
"concurrently": "^8.2.2",
|
34
34
|
"jest": "^29.7.0",
|
35
|
-
"postcss": "^8.4.
|
35
|
+
"postcss": "^8.4.41",
|
36
36
|
"prettier": "^3.1.1",
|
37
37
|
"prettier-plugin-svelte": "^3.1.2",
|
38
|
-
"rollup": "^4.
|
38
|
+
"rollup": "^4.20.0",
|
39
39
|
"rollup-plugin-livereload": "^2.0.5",
|
40
40
|
"rollup-plugin-postcss": "^4.0.2",
|
41
41
|
"rollup-plugin-svelte": "^7.1.6",
|
42
42
|
"rollup-plugin-terser": "^7.0.2",
|
43
43
|
"smui-theme": "^7.0.0-beta.16",
|
44
44
|
"svelte": "^4.2.8",
|
45
|
-
"svelte-jester": "^
|
45
|
+
"svelte-jester": "^5.0.0"
|
46
46
|
}
|
47
47
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "<%= tool_name %>",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.18.0",
|
4
4
|
"private": true,
|
5
5
|
"scripts": {
|
6
6
|
"serve": "vue-cli-service serve",
|
@@ -12,8 +12,8 @@
|
|
12
12
|
},
|
13
13
|
"dependencies": {
|
14
14
|
"@astrouxds/astro-web-components": "7.22.1",
|
15
|
-
"@openc3/tool-common": "5.
|
16
|
-
"axios": "1.7.
|
15
|
+
"@openc3/tool-common": "5.18.0",
|
16
|
+
"axios": "1.7.4",
|
17
17
|
"date-fns": "3.6.0",
|
18
18
|
"portal-vue": "2.1.7",
|
19
19
|
"single-spa-vue": "2.5.1",
|
@@ -25,7 +25,7 @@
|
|
25
25
|
"vuex": "3.6.2"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
|
-
"@babel/eslint-parser": "7.
|
28
|
+
"@babel/eslint-parser": "7.25.1",
|
29
29
|
"@vue/babel-preset-app": "5.0.8",
|
30
30
|
"@vue/cli": "5.0.8",
|
31
31
|
"@vue/cli-plugin-babel": "5.0.8",
|
@@ -36,18 +36,18 @@
|
|
36
36
|
"@vue/eslint-config-prettier": "9.0.0",
|
37
37
|
"@vue/test-utils": "1.3.0",
|
38
38
|
"babel-loader": "9.1.3",
|
39
|
-
"babel-plugin-istanbul": "
|
39
|
+
"babel-plugin-istanbul": "7.0.0",
|
40
40
|
"eslint": "8.56.0",
|
41
41
|
"eslint-config-prettier": "9.1.0",
|
42
|
-
"eslint-plugin-prettier": "5.1
|
43
|
-
"eslint-plugin-vue": "9.
|
42
|
+
"eslint-plugin-prettier": "5.2.1",
|
43
|
+
"eslint-plugin-vue": "9.27.0",
|
44
44
|
"html-webpack-plugin": "^5.6.0",
|
45
|
-
"prettier": "3.3.
|
46
|
-
"sass": "1.77.
|
45
|
+
"prettier": "3.3.3",
|
46
|
+
"sass": "1.77.8",
|
47
47
|
"sass-loader": "14.2.1",
|
48
48
|
"vue-cli-plugin-single-spa": "3.3.0",
|
49
49
|
"vue-cli-plugin-vuetify": "2.5.8",
|
50
50
|
"vue-template-compiler": "2.7.16",
|
51
|
-
"webpack": "5.
|
51
|
+
"webpack": "5.93.0"
|
52
52
|
}
|
53
53
|
}
|
@@ -1,19 +1,19 @@
|
|
1
1
|
{
|
2
2
|
"name": "widget",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.18.0",
|
4
4
|
"private": true,
|
5
5
|
"scripts": {
|
6
6
|
"build": "vue-cli-service build --target lib --dest tools/widgets/<%= widget_name %> --formats umd-min <%= widget_path %> --name <%= widget_name %>"
|
7
7
|
},
|
8
8
|
"dependencies": {
|
9
9
|
"@astrouxds/astro-web-components": "7.22.1",
|
10
|
-
"@openc3/tool-common": "5.
|
10
|
+
"@openc3/tool-common": "5.18.0",
|
11
11
|
"vue": "2.7.16",
|
12
12
|
"vuetify": "2.7.1"
|
13
13
|
},
|
14
14
|
"devDependencies": {
|
15
|
-
"@babel/eslint-parser": "7.
|
16
|
-
"@rushstack/eslint-patch": "1.10.
|
15
|
+
"@babel/eslint-parser": "7.25.1",
|
16
|
+
"@rushstack/eslint-patch": "1.10.4",
|
17
17
|
"@vue/babel-preset-app": "5.0.8",
|
18
18
|
"@vue/cli": "5.0.8",
|
19
19
|
"@vue/cli-plugin-babel": "5.0.8",
|
@@ -21,16 +21,16 @@
|
|
21
21
|
"@vue/cli-service": "5.0.8",
|
22
22
|
"@vue/eslint-config-prettier": "9.0.0",
|
23
23
|
"babel-loader": "9.1.3",
|
24
|
-
"babel-plugin-istanbul": "
|
24
|
+
"babel-plugin-istanbul": "7.0.0",
|
25
25
|
"eslint": "8.56.0",
|
26
26
|
"eslint-config-prettier": "9.1.0",
|
27
|
-
"eslint-plugin-prettier": "5.1
|
28
|
-
"eslint-plugin-vue": "9.
|
29
|
-
"prettier": "3.3.
|
30
|
-
"sass": "1.77.
|
27
|
+
"eslint-plugin-prettier": "5.2.1",
|
28
|
+
"eslint-plugin-vue": "9.27.0",
|
29
|
+
"prettier": "3.3.3",
|
30
|
+
"sass": "1.77.8",
|
31
31
|
"sass-loader": "14.2.1",
|
32
32
|
"vue-cli-plugin-vuetify": "2.5.8",
|
33
33
|
"vue-template-compiler": "2.7.16",
|
34
|
-
"webpack": "5.
|
34
|
+
"webpack": "5.93.0"
|
35
35
|
}
|
36
36
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openc3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Melton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-08-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -557,6 +557,20 @@ dependencies:
|
|
557
557
|
- - "~>"
|
558
558
|
- !ruby/object:Gem::Version
|
559
559
|
version: '1.0'
|
560
|
+
- !ruby/object:Gem::Dependency
|
561
|
+
name: listen
|
562
|
+
requirement: !ruby/object:Gem::Requirement
|
563
|
+
requirements:
|
564
|
+
- - "~>"
|
565
|
+
- !ruby/object:Gem::Version
|
566
|
+
version: '3.9'
|
567
|
+
type: :runtime
|
568
|
+
prerelease: false
|
569
|
+
version_requirements: !ruby/object:Gem::Requirement
|
570
|
+
requirements:
|
571
|
+
- - "~>"
|
572
|
+
- !ruby/object:Gem::Version
|
573
|
+
version: '3.9'
|
560
574
|
- !ruby/object:Gem::Dependency
|
561
575
|
name: benchmark-ips
|
562
576
|
requirement: !ruby/object:Gem::Requirement
|
@@ -872,8 +886,13 @@ files:
|
|
872
886
|
- lib/openc3/config/config_parser.rb
|
873
887
|
- lib/openc3/config/meta_config_parser.rb
|
874
888
|
- lib/openc3/conversions.rb
|
889
|
+
- lib/openc3/conversions/bit_reverse_conversion.rb
|
875
890
|
- lib/openc3/conversions/conversion.rb
|
876
891
|
- lib/openc3/conversions/generic_conversion.rb
|
892
|
+
- lib/openc3/conversions/ip_read_conversion.rb
|
893
|
+
- lib/openc3/conversions/ip_write_conversion.rb
|
894
|
+
- lib/openc3/conversions/object_read_conversion.rb
|
895
|
+
- lib/openc3/conversions/object_write_conversion.rb
|
877
896
|
- lib/openc3/conversions/packet_time_formatted_conversion.rb
|
878
897
|
- lib/openc3/conversions/packet_time_seconds_conversion.rb
|
879
898
|
- lib/openc3/conversions/polynomial_conversion.rb
|
@@ -1090,6 +1109,7 @@ files:
|
|
1090
1109
|
- lib/openc3/topics/interface_topic.rb
|
1091
1110
|
- lib/openc3/topics/limits_event_topic.rb
|
1092
1111
|
- lib/openc3/topics/router_topic.rb
|
1112
|
+
- lib/openc3/topics/system_events_topic.rb
|
1093
1113
|
- lib/openc3/topics/telemetry_decom_topic.rb
|
1094
1114
|
- lib/openc3/topics/telemetry_reduced_topics.rb
|
1095
1115
|
- lib/openc3/topics/telemetry_topic.rb
|