openc3 5.15.1 → 5.15.2

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: e965c2b2463c93d4f1831b6d6cdfc53cae47bac8297e4335be407e420b37545e
4
- data.tar.gz: 1f4a4d4f367daf99411d70d693f511a6550f911787d46f0602e6bc440edc19c5
3
+ metadata.gz: a39dab08bb9810376520e75a7bf3a6c63d30ad54b93566b82a849d780693a366
4
+ data.tar.gz: 65d282829dba0706cbe0e32603e51ad8ab3dfc0fdaf37d9bd400787bb7a1cb03
5
5
  SHA512:
6
- metadata.gz: 37956addc6a7019369e710ea02fcf8c71b114b049e83eeef7b7a0c2e99f17c2f685311db55697cb31a518bea8cc815647d370d0bdb9640259d76df86b79dff9a
7
- data.tar.gz: f90a6beae03680d8fdc256ea2bf4dc937667a4a9d29bc6d3daccd33de02ea485ce808a52ed73a1ce251e0a9a7dc9ef3e9ccf1acdbe5ab8fa360f2dfbfbb104d8
6
+ metadata.gz: 12bffefe104e90e159c16bcc54ab53745e86a97bfb762c7e0e25141d6bd3c91ad6bb8827017d915dfb459b2fc69ea7365c97e7fa22236abb16ff0d73d8d485d7
7
+ data.tar.gz: b2efa2780f97e2aa3392cc483534d949be4fb27032dbc3e52015ebfa89da08d234e5777c50dbfa09e477357d3b5ca67aba847f8f5d723676d2331da84e880f7f
@@ -1302,7 +1302,7 @@ Interactive Widgets:
1302
1302
 
1303
1303
  Button code can get rather complex so remember to use string concatenation
1304
1304
  to make things more readable. If you use `+` newlines are inserted automatically
1305
- during string concatenation. If you use `\` you'll need to separate lines with a
1305
+ during string concatenation. If you use `\\` you'll need to separate lines with a
1306
1306
  single semicolon `;`. COSMOS uses double semicolon `;;` to indicate lines should
1307
1307
  be evaluated separately. Note that all OpenC3 commands (using api.cmd) must be
1308
1308
  separated by `;;`.
@@ -18,8 +18,16 @@
18
18
 
19
19
  require 'json'
20
20
  require 'jsonpath'
21
+ require 'openc3/io/json_rpc'
21
22
  require 'openc3/accessors/accessor'
22
23
 
24
+ # Monkey patch JsonPath to enable create_additions and allow_nan to support binary strings, and NaN, Infinity, -Infinity
25
+ class JsonPath
26
+ def self.process_object(obj_or_str, opts = {})
27
+ obj_or_str.is_a?(String) ? MultiJson.decode(obj_or_str, max_nesting: opts[:max_nesting], create_additions: true, allow_nan: true) : obj_or_str
28
+ end
29
+ end
30
+
23
31
  module OpenC3
24
32
  class JsonAccessor < Accessor
25
33
  def self.read_item(item, buffer)
@@ -33,7 +41,7 @@ module OpenC3
33
41
 
34
42
  # Convert to ruby objects
35
43
  if String === buffer
36
- decoded = JSON.parse(buffer, :allow_nan => true)
44
+ decoded = JSON.parse(buffer, :allow_nan => true, :create_additions => true)
37
45
  else
38
46
  decoded = buffer
39
47
  end
@@ -43,7 +51,7 @@ module OpenC3
43
51
 
44
52
  # Update buffer
45
53
  if String === buffer
46
- buffer.replace(JSON.generate(decoded, :allow_nan => true))
54
+ buffer.replace(JSON.generate(decoded.as_json, :allow_nan => true))
47
55
  end
48
56
 
49
57
  return value
@@ -52,7 +60,7 @@ module OpenC3
52
60
  def self.read_items(items, buffer)
53
61
  # Prevent JsonPath from decoding every call
54
62
  if String === buffer
55
- decoded = JSON.parse(buffer, :allow_nan => true)
63
+ decoded = JSON.parse(buffer, :allow_nan => true, :create_additions => true)
56
64
  else
57
65
  decoded = buffer
58
66
  end
@@ -14,10 +14,10 @@
14
14
  # GNU Affero General Public License for more details.
15
15
 
16
16
  # Modified by OpenC3, Inc.
17
- # All changes Copyright 2022, OpenC3, Inc.
17
+ # All changes Copyright 2024, OpenC3, Inc.
18
18
  # All Rights Reserved
19
19
  #
20
- # This file may also be used under the terms of a commercial license
20
+ # This file may also be used under the terms of a commercial license
21
21
  # if purchased from OpenC3, Inc.
22
22
 
23
23
  require 'fcntl'
@@ -82,12 +82,17 @@ module OpenC3
82
82
  tio.ospeed = baud_rate
83
83
  @handle.tcflush(Termios::TCIOFLUSH)
84
84
  @handle.tcsetattr(Termios::TCSANOW, tio)
85
+
86
+ @pipe_reader, @pipe_writer = IO.pipe
87
+ @readers = [@handle, @pipe_reader]
85
88
  end
86
89
 
87
90
  # (see SerialDriver#close)
88
91
  def close
89
92
  if @handle
90
93
  # Close the serial Port
94
+ @pipe_writer.write('.')
95
+ @pipe_writer.close
91
96
  @handle.close
92
97
  @handle = nil
93
98
  end
@@ -132,9 +137,19 @@ module OpenC3
132
137
  begin
133
138
  data = @handle.read_nonblock(65535)
134
139
  rescue Errno::EAGAIN, Errno::EWOULDBLOCK
135
- result = IO.fast_select([@handle], nil, nil, @read_timeout)
136
- if result
137
- retry
140
+ begin
141
+ read_ready, _ = IO.fast_select(@readers, nil, nil, @read_timeout)
142
+ rescue IOError
143
+ @pipe_reader.close unless @pipe_reader.closed?
144
+ return ""
145
+ end
146
+ if read_ready
147
+ if read_ready.include?(@pipe_reader)
148
+ @pipe_reader.close unless @pipe_reader.closed?
149
+ return ""
150
+ else
151
+ retry
152
+ end
138
153
  else
139
154
  raise Timeout::Error, "Read Timeout"
140
155
  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 2022, OpenC3, Inc.
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
@@ -175,9 +175,8 @@ module OpenC3
175
175
  if $openc3_in_cluster
176
176
  case ENV['OPENC3_CLOUD']
177
177
  when 'local'
178
- bucket_url = ENV["OPENC3_BUCKET_URL"] || "openc3-minio:9000"
179
- # TODO: Bucket schema for http vs https
180
- URI.parse("http://#{bucket_url}#{url}")
178
+ bucket_url = ENV["OPENC3_BUCKET_URL"] || "http://openc3-minio:9000"
179
+ URI.parse("#{bucket_url}#{url}")
181
180
  when 'aws'
182
181
  URI.parse("https://s3.#{ENV['AWS_REGION']}.amazonaws.com" + url)
183
182
  when 'gcp'
@@ -215,6 +215,16 @@ module OpenC3
215
215
  end
216
216
  end
217
217
 
218
+ # All Scripts WebSocket
219
+ class AllScriptsWebSocketApi < ScriptWebSocketApi
220
+ def initialize(url: nil, write_timeout: 10.0, read_timeout: 10.0, connect_timeout: 5.0, authentication: nil, scope: $openc3_scope)
221
+ @identifier = {
222
+ channel: "AllScriptsChannel",
223
+ }
224
+ super(url: url, write_timeout: write_timeout, read_timeout: read_timeout, connect_timeout: connect_timeout, authentication: authentication, scope: scope)
225
+ end
226
+ end
227
+
218
228
  # Log Messages WebSocket
219
229
  class MessagesWebSocketApi < CmdTlmWebSocketApi
220
230
  def initialize(history_count: 0, start_time: nil, end_time: nil, level: nil, types: nil, url: nil, write_timeout: 10.0, read_timeout: 10.0, connect_timeout: 5.0, authentication: nil, scope: $openc3_scope)
@@ -1,14 +1,14 @@
1
1
  # encoding: ascii-8bit
2
2
 
3
- OPENC3_VERSION = '5.15.1'
3
+ OPENC3_VERSION = '5.15.2'
4
4
  module OpenC3
5
5
  module Version
6
6
  MAJOR = '5'
7
7
  MINOR = '15'
8
- PATCH = '1'
8
+ PATCH = '2'
9
9
  OTHER = ''
10
- BUILD = 'e825c03f698ac51170218e43cec3c3cecefe58fa'
10
+ BUILD = '460e13eadf313640ad089597bee233ecdafd2ffa'
11
11
  end
12
- VERSION = '5.15.1'
13
- GEM_VERSION = '5.15.1'
12
+ VERSION = '5.15.2'
13
+ GEM_VERSION = '5.15.2'
14
14
  end
@@ -4,6 +4,8 @@
4
4
  # <%= target_object %>.utility()
5
5
  # For more information see the OpenC3 scripting guide
6
6
 
7
+ from openc3.script import *
8
+
7
9
  class <%= target_class %>:
8
10
  def utility(self):
9
11
  pass
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "<%= tool_name %>",
3
- "version": "5.15.1",
3
+ "version": "5.15.2",
4
4
  "scripts": {
5
5
  "ng": "ng",
6
6
  "start": "ng serve",
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "private": true,
14
14
  "dependencies": {
15
- "@openc3/tool-common": "5.15.1",
15
+ "@openc3/tool-common": "5.15.2",
16
16
  "@angular/animations": "^17.0.8",
17
17
  "@angular/cdk": "^17.0.4",
18
18
  "@angular/common": "^17.0.8",
@@ -11,7 +11,7 @@
11
11
  "smui-theme": "smui-theme compile build/smui.css -i src/theme"
12
12
  },
13
13
  "dependencies": {
14
- "@openc3/tool-common": "5.15.1",
14
+ "@openc3/tool-common": "5.15.2",
15
15
  "@astrouxds/astro-web-components": "7.20.0",
16
16
  "@smui/button": "^7.0.0-beta.16",
17
17
  "@smui/card": "^7.0.0-beta.16",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "<%= tool_name %>",
3
- "version": "5.15.1",
3
+ "version": "5.15.2",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -11,7 +11,7 @@
11
11
  "test:components": "vue-cli-service test:components"
12
12
  },
13
13
  "dependencies": {
14
- "@openc3/tool-common": "5.15.1",
14
+ "@openc3/tool-common": "5.15.2",
15
15
  "@astrouxds/astro-web-components": "7.20.0",
16
16
  "axios": "1.6.5",
17
17
  "date-fns": "2.30.0",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "widget",
3
- "version": "5.15.1",
3
+ "version": "5.15.2",
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
- "@openc3/tool-common": "5.15.1",
9
+ "@openc3/tool-common": "5.15.2",
10
10
  "@astrouxds/astro-web-components": "7.20.0",
11
11
  "vue": "2.7.16",
12
12
  "vuetify": "2.7.1"
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.15.1
4
+ version: 5.15.2
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-03-15 00:00:00.000000000 Z
12
+ date: 2024-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler