openc3 5.11.3 → 5.13.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/Gemfile +2 -2
- data/bin/openc3cli +29 -15
- data/data/config/_id_items.yaml +6 -4
- data/data/config/_id_params.yaml +9 -6
- data/data/config/_items.yaml +6 -4
- data/data/config/_params.yaml +3 -2
- data/data/config/graph_settings.yaml +1 -1
- data/data/config/interface_modifiers.yaml +1 -1
- data/data/config/item_modifiers.yaml +1 -2
- data/data/config/microservice.yaml +10 -1
- data/data/config/parameter_modifiers.yaml +13 -14
- data/data/config/plugins.yaml +13 -3
- data/data/config/screen.yaml +1 -2
- data/data/config/target.yaml +9 -0
- data/data/config/target_config.yaml +14 -6
- data/data/config/tool.yaml +12 -3
- data/lib/openc3/api/api.rb +1 -1
- data/lib/openc3/api/cmd_api.rb +123 -59
- data/lib/openc3/api/config_api.rb +12 -12
- data/lib/openc3/api/limits_api.rb +4 -3
- data/lib/openc3/api/settings_api.rb +5 -2
- data/lib/openc3/api/tlm_api.rb +70 -34
- data/lib/openc3/conversions/unix_time_conversion.rb +8 -6
- data/lib/openc3/interfaces/mqtt_interface.rb +11 -9
- data/lib/openc3/interfaces/mqtt_stream_interface.rb +78 -0
- data/lib/openc3/interfaces/tcpip_server_interface.rb +0 -7
- data/lib/openc3/io/json_drb.rb +3 -2
- data/lib/openc3/io/json_rpc.rb +6 -6
- data/lib/openc3/logs/buffered_packet_log_writer.rb +4 -2
- data/lib/openc3/logs/packet_log_reader.rb +2 -2
- data/lib/openc3/logs/packet_log_writer.rb +22 -7
- data/lib/openc3/logs/text_log_writer.rb +3 -2
- data/lib/openc3/microservices/cleanup_microservice.rb +8 -1
- data/lib/openc3/microservices/decom_microservice.rb +1 -1
- data/lib/openc3/microservices/interface_microservice.rb +2 -2
- data/lib/openc3/microservices/microservice.rb +5 -2
- data/lib/openc3/microservices/reaction_microservice.rb +1 -0
- data/lib/openc3/microservices/timeline_microservice.rb +7 -5
- data/lib/openc3/microservices/trigger_group_microservice.rb +2 -1
- data/lib/openc3/migrations/20231022000000_tlm_viewer_config.rb +22 -0
- data/lib/openc3/models/activity_model.rb +21 -3
- data/lib/openc3/models/cvt_model.rb +2 -1
- data/lib/openc3/models/gem_model.rb +4 -1
- data/lib/openc3/models/interface_model.rb +11 -5
- data/lib/openc3/models/metadata_model.rb +11 -0
- data/lib/openc3/models/microservice_model.rb +16 -3
- data/lib/openc3/models/model.rb +18 -0
- data/lib/openc3/models/note_model.rb +11 -0
- data/lib/openc3/models/plugin_model.rb +56 -4
- data/lib/openc3/models/python_package_model.rb +104 -0
- data/lib/openc3/models/scope_model.rb +2 -0
- data/lib/openc3/models/sorted_model.rb +17 -8
- data/lib/openc3/models/target_model.rb +53 -18
- data/lib/openc3/models/tool_config_model.rb +9 -3
- data/lib/openc3/models/tool_model.rb +22 -7
- data/lib/openc3/models/widget_model.rb +19 -3
- data/lib/openc3/operators/microservice_operator.rb +2 -0
- data/lib/openc3/packets/json_packet.rb +46 -15
- data/lib/openc3/packets/limits.rb +6 -18
- data/lib/openc3/packets/packet.rb +1 -0
- data/lib/openc3/packets/packet_config.rb +2 -1
- data/lib/openc3/packets/parsers/format_string_parser.rb +4 -4
- data/lib/openc3/packets/parsers/limits_parser.rb +4 -4
- data/lib/openc3/packets/parsers/limits_response_parser.rb +5 -5
- data/lib/openc3/packets/parsers/processor_parser.rb +4 -4
- data/lib/openc3/packets/parsers/state_parser.rb +3 -3
- data/lib/openc3/packets/parsers/xtce_parser.rb +5 -1
- data/lib/openc3/script/api_shared.rb +81 -63
- data/lib/openc3/script/calendar.rb +109 -0
- data/lib/openc3/script/commands.rb +18 -19
- data/lib/openc3/script/limits.rb +1 -1
- data/lib/openc3/script/{gems.rb → packages.rb} +20 -16
- data/lib/openc3/script/script.rb +49 -38
- data/lib/openc3/script/storage.rb +4 -4
- data/lib/openc3/script/web_socket_api.rb +2 -2
- data/lib/openc3/streams/mqtt_stream.rb +109 -0
- data/lib/openc3/system/system.rb +2 -0
- data/lib/openc3/system/target.rb +10 -1
- data/lib/openc3/top_level.rb +2 -2
- data/lib/openc3/utilities/aws_bucket.rb +3 -2
- data/lib/openc3/utilities/bucket_file_cache.rb +1 -1
- data/lib/openc3/utilities/cli_generator.rb +33 -20
- data/lib/openc3/utilities/local_mode.rb +5 -3
- data/lib/openc3/utilities/logger.rb +18 -17
- data/lib/openc3/utilities/process_manager.rb +1 -1
- data/lib/openc3/utilities/ruby_lex_utils.rb +0 -8
- data/lib/openc3/version.rb +6 -6
- data/templates/conversion/conversion.py +28 -0
- data/templates/conversion/conversion.rb +1 -18
- data/templates/limits_response/response.py +37 -0
- data/templates/limits_response/response.rb +0 -17
- data/templates/microservice/microservices/TEMPLATE/microservice.py +54 -0
- data/templates/microservice/microservices/TEMPLATE/microservice.rb +0 -7
- data/templates/plugin/.gitignore +1 -0
- data/templates/target/targets/TARGET/lib/target.py +9 -0
- data/templates/target/targets/TARGET/procedures/procedure.py +3 -0
- data/templates/tool_angular/package.json +22 -21
- data/templates/tool_angular/yarn.lock +2319 -3156
- data/templates/tool_react/package.json +16 -16
- data/templates/tool_react/yarn.lock +763 -645
- data/templates/tool_svelte/package.json +15 -14
- data/templates/tool_svelte/src/services/openc3-api.js +33 -82
- data/templates/tool_svelte/yarn.lock +748 -538
- data/templates/tool_vue/package.json +15 -14
- data/templates/tool_vue/yarn.lock +150 -64
- data/templates/widget/package.json +14 -13
- data/templates/widget/yarn.lock +133 -58
- metadata +60 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70d4819352855e3fdb8b4c4d39331968e3e60af59beb0555743b42669d5b4b4a
|
4
|
+
data.tar.gz: c906a678c11f68b8751000875fe5cfdfdbbe98880e182edc572791246d625491
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2adcf16c91e84be3d1ef2b412ffc57eda1e7ed87e2d808519f9502c2cd937dcc06e766fad4f74b346daa0122a08745442decdbeb9185990206d7098c0331bf51
|
7
|
+
data.tar.gz: 413edafbcaebcb868c68f1e0ddfeadc4ef32e4950be652a2520858060efd2274d28e9f15f85d944ae48058c1c52cc72ad768f097f5a7830217ae71345869044d
|
data/Gemfile
CHANGED
@@ -7,11 +7,11 @@ gem 'ruby-termios', '>= 0.9' if RbConfig::CONFIG['target_os'] !~ /mswin|mingw|cy
|
|
7
7
|
gemspec :name => 'openc3'
|
8
8
|
|
9
9
|
# Include the rails gems for the convenience of custom microservice plugins
|
10
|
-
gem 'rails', '~> 7.
|
10
|
+
gem 'rails', '~> 7.1.0'
|
11
11
|
gem 'bootsnap', '>= 1.9.3', require: false
|
12
12
|
gem 'rack-cors', '~> 2.0'
|
13
13
|
gem 'tzinfo-data'
|
14
14
|
gem 'rspec-rails', '~> 6.0'
|
15
15
|
gem 'simplecov', '~> 0.20'
|
16
16
|
gem 'simplecov-cobertura', '~> 2.1'
|
17
|
-
gem 'mock_redis', '0.
|
17
|
+
gem 'mock_redis', '0.40'
|
data/bin/openc3cli
CHANGED
@@ -42,9 +42,8 @@ require 'find'
|
|
42
42
|
require 'json'
|
43
43
|
require 'redis'
|
44
44
|
require 'erb'
|
45
|
-
require '
|
46
|
-
require
|
47
|
-
require "irb/completion"
|
45
|
+
require 'irb'
|
46
|
+
require 'irb/completion'
|
48
47
|
|
49
48
|
$redis_url = "redis://#{ENV['OPENC3_REDIS_HOSTNAME']}:#{ENV['OPENC3_REDIS_PORT']}"
|
50
49
|
|
@@ -68,11 +67,13 @@ def print_usage
|
|
68
67
|
puts " cli validate /PATH/FILENAME.gem SCOPE variables.txt # Validate a COSMOS plugin gem file"
|
69
68
|
puts " cli load /PATH/FILENAME.gem SCOPE variables.txt # Loads a COSMOS plugin gem file"
|
70
69
|
puts " cli generate TYPE OPTIONS # Generate various COSMOS entities"
|
70
|
+
puts " OPTIONS includes either --ruby or --python to specify the language in the generated code"
|
71
71
|
puts " #{MIGRATE_PARSER}"
|
72
72
|
puts " cli bridge CONFIG_FILENAME # Run COSMOS host bridge"
|
73
73
|
puts " cli bridgegem gem_name variable1=value1 variable2=value2 # Runs bridge using gem bridge.txt"
|
74
74
|
puts " cli bridgesetup CONFIG_FILENAME # Create a default config file"
|
75
|
-
puts " cli
|
75
|
+
puts " cli pkginstall PKGFILENAME SCOPE # Install loaded package (Ruby gem or python package)"
|
76
|
+
puts " cli pkguninstall PKGFILENAME SCOPE # Uninstall loaded package (Ruby gem or python package)"
|
76
77
|
puts " cli rubysloc # Counts Ruby SLOC recursively. Run with --help for more info."
|
77
78
|
puts " cli xtce_converter # Convert to and from the XTCE format. Run with --help for more info."
|
78
79
|
puts " cli cstol_converter # Converts CSTOL files (.prc) to COSMOS. Run with --help for more info."
|
@@ -507,30 +508,43 @@ def unload_plugin(plugin_name, scope:)
|
|
507
508
|
end
|
508
509
|
end
|
509
510
|
|
510
|
-
def
|
511
|
+
def cli_pkg_install(filename, scope:)
|
511
512
|
scope ||= 'DEFAULT'
|
512
513
|
check_environment()
|
513
514
|
if $openc3_in_cluster
|
514
|
-
|
515
|
+
if File.extname(filename) == '.gem'
|
516
|
+
OpenC3::GemModel.install(filename, scope: scope)
|
517
|
+
else
|
518
|
+
OpenC3::PythonPackageModel.install(filename, scope: scope)
|
519
|
+
end
|
515
520
|
else
|
516
521
|
# Outside Cluster
|
517
522
|
require 'openc3/script'
|
518
|
-
process_name =
|
523
|
+
process_name = package_install(filename, scope: scope)
|
519
524
|
print "Installing..."
|
520
525
|
wait_process_complete(process_name)
|
521
526
|
end
|
522
527
|
end
|
523
528
|
|
524
|
-
def
|
529
|
+
def cli_pkg_uninstall(filename, scope:)
|
525
530
|
scope ||= 'DEFAULT'
|
526
531
|
check_environment()
|
527
532
|
if $openc3_in_cluster
|
528
|
-
|
533
|
+
if File.extname(filename) == '.rb'
|
534
|
+
OpenC3::GemModel.destroy(filename)
|
535
|
+
else
|
536
|
+
OpenC3::PythonPackageModel.destroy(filename, scope: scope)
|
537
|
+
end
|
529
538
|
else
|
530
539
|
# Outside Cluster
|
531
540
|
require 'openc3/script'
|
532
|
-
|
533
|
-
|
541
|
+
process_name = package_uninstall(filename, scope: scope)
|
542
|
+
if File.extname(filename) == '.rb'
|
543
|
+
puts "Uninstalled"
|
544
|
+
else
|
545
|
+
print "Uninstalling..."
|
546
|
+
wait_process_complete(process_name)
|
547
|
+
end
|
534
548
|
end
|
535
549
|
end
|
536
550
|
|
@@ -637,11 +651,11 @@ if not ARGV[0].nil? # argument(s) given
|
|
637
651
|
when 'unload'
|
638
652
|
unload_plugin(ARGV[1], scope: ARGV[2])
|
639
653
|
|
640
|
-
when 'geminstall'
|
641
|
-
|
654
|
+
when 'pkginstall', 'geminstall'
|
655
|
+
cli_pkg_install(ARGV[1], scope: ARGV[2])
|
642
656
|
|
643
|
-
when 'gemuninstall'
|
644
|
-
|
657
|
+
when 'pkguninstall', 'gemuninstall'
|
658
|
+
cli_pkg_uninstall(ARGV[1], scope: ARGV[2])
|
645
659
|
|
646
660
|
when 'generate'
|
647
661
|
OpenC3::CliGenerator.generate(ARGV[1..-1])
|
data/data/config/_id_items.yaml
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
---
|
2
2
|
- name: Bit Size
|
3
3
|
required: true
|
4
|
-
description:
|
4
|
+
description:
|
5
|
+
Bit size of this telemetry item. Zero or Negative values may be used
|
5
6
|
to indicate that a string fills the packet up to the offset from the end of
|
6
7
|
the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then
|
7
8
|
this is a derived parameter and the Data Type must be set to 'DERIVED'.
|
@@ -17,9 +18,10 @@
|
|
17
18
|
- name: Description
|
18
19
|
required: false
|
19
20
|
description: Description for this telemetry item which must be enclosed with quotes
|
20
|
-
values:
|
21
|
+
values: '[''"].*[''"]'
|
21
22
|
- name: Endianness
|
22
23
|
required: false
|
23
|
-
description:
|
24
|
-
|
24
|
+
description:
|
25
|
+
Indicates if the item is to be interpreted in Big Endian or Little Endian format.
|
26
|
+
See guide on [Little Endian Bitfields](../guides/little-endian-bitfields.md).
|
25
27
|
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
data/data/config/_id_params.yaml
CHANGED
@@ -22,17 +22,19 @@
|
|
22
22
|
values: .*
|
23
23
|
- name: ID Value
|
24
24
|
required: true
|
25
|
-
description:
|
25
|
+
description:
|
26
|
+
Identification value for this parameter. The binary data must
|
26
27
|
match this value for the buffer to be identified as this packet.
|
27
28
|
values: .*
|
28
29
|
- name: Description
|
29
30
|
required: false
|
30
31
|
description: Description for this parameter which must be enclosed with quotes
|
31
|
-
values:
|
32
|
+
values: '[''"].*[''"]'
|
32
33
|
- name: Endianness
|
33
34
|
required: false
|
34
|
-
description:
|
35
|
-
|
35
|
+
description:
|
36
|
+
Indicates if the data in this command is to be sent in Big Endian or Little Endian format.
|
37
|
+
See guide on [Little Endian Bitfields](../guides/little-endian-bitfields.md).
|
36
38
|
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
37
39
|
UINT:
|
38
40
|
parameters: *params
|
@@ -44,13 +46,14 @@
|
|
44
46
|
parameters: &sparams
|
45
47
|
- name: Default Value
|
46
48
|
required: true
|
47
|
-
description:
|
49
|
+
description:
|
50
|
+
Default value for this parameter. You must provide a default
|
48
51
|
but if you mark the parameter REQUIRED then scripts will be forced to specify a value.
|
49
52
|
values: .*
|
50
53
|
- name: Description
|
51
54
|
required: false
|
52
55
|
description: Description for this parameter which must be enclosed with quotes
|
53
|
-
values:
|
56
|
+
values: '[''"].*[''"]'
|
54
57
|
- name: Endianness
|
55
58
|
required: false
|
56
59
|
description: Indicates if the data in this command is to be sent in Big Endian or Little Endian format
|
data/data/config/_items.yaml
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
---
|
2
2
|
- name: Bit Size
|
3
3
|
required: true
|
4
|
-
description:
|
4
|
+
description:
|
5
|
+
Bit size of this telemetry item. Zero or Negative values may be used
|
5
6
|
to indicate that a string fills the packet up to the offset from the end of
|
6
7
|
the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then
|
7
8
|
this is a derived parameter and the Data Type must be set to 'DERIVED'.
|
@@ -13,9 +14,10 @@
|
|
13
14
|
- name: Description
|
14
15
|
required: false
|
15
16
|
description: Description for this telemetry item which must be enclosed with quotes
|
16
|
-
values:
|
17
|
+
values: '[''"].*[''"]'
|
17
18
|
- name: Endianness
|
18
19
|
required: false
|
19
|
-
description:
|
20
|
-
|
20
|
+
description:
|
21
|
+
Indicates if the item is to be interpreted in Big Endian or Little Endian format.
|
22
|
+
See guide on [Little Endian Bitfields](../guides/little-endian-bitfields.md).
|
21
23
|
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
data/data/config/_params.yaml
CHANGED
@@ -32,8 +32,9 @@
|
|
32
32
|
values: '[''"].*[''"]'
|
33
33
|
- name: Endianness
|
34
34
|
required: false
|
35
|
-
description:
|
36
|
-
|
35
|
+
description:
|
36
|
+
Indicates if the data in this command is to be sent in Big Endian or Little Endian format.
|
37
|
+
See guide on [Little Endian Bitfields](../guides/little-endian-bitfields.md).
|
37
38
|
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
38
39
|
UINT:
|
39
40
|
parameters: *params
|
@@ -18,7 +18,7 @@ HISTORY:
|
|
18
18
|
parameters:
|
19
19
|
- name: Value
|
20
20
|
required: true
|
21
|
-
description: Value
|
21
|
+
description: Value(d,h,m,s). For example 1d, 2h, 30m, 15s
|
22
22
|
values: .+
|
23
23
|
SECONDSGRAPHED:
|
24
24
|
summary: Display the specified number of seconds in the graph
|
@@ -93,7 +93,7 @@ PROTOCOL:
|
|
93
93
|
Protocols can be either READ, WRITE, or READ_WRITE. READ protocols act on the data
|
94
94
|
received by the interface while write acts on the data before it is sent out. READ_WRITE applies
|
95
95
|
the protocol to both reading and writing.<br/><br/>
|
96
|
-
For information on creating your own custom protocol please see
|
96
|
+
For information on creating your own custom protocol please see [Protocols](../configuration/protocols.md)
|
97
97
|
since: 4.0.0
|
98
98
|
parameters:
|
99
99
|
- name: Type
|
@@ -32,8 +32,7 @@ STATE:
|
|
32
32
|
READ_CONVERSION:
|
33
33
|
summary: Applies a conversion to the current telemetry item
|
34
34
|
description: Conversions are implemented in a custom Ruby file which should be
|
35
|
-
located in the target's lib folder
|
36
|
-
file (see REQUIRE). The class must require 'openc3/conversions/conversion'
|
35
|
+
located in the target's lib folder. The class must require 'openc3/conversions/conversion'
|
37
36
|
and inherit from Conversion. It must implement the initialize method if it
|
38
37
|
takes extra parameters and must always implement the call method. The conversion
|
39
38
|
factor is applied to the raw value in the telemetry packet before it is displayed
|
@@ -4,7 +4,7 @@ MICROSERVICE:
|
|
4
4
|
description: Defines a microservice that the plugin adds to the OpenC3 system. Microservices are background software processes that perform persistent processing.
|
5
5
|
parameters:
|
6
6
|
- name: Microservice Folder Name
|
7
|
-
description: The exact name of the microservice folder in the plugin. ie. microservices
|
7
|
+
description: The exact name of the microservice folder in the plugin. ie. microservices/MicroserviceFolderName
|
8
8
|
required: true
|
9
9
|
values: .+
|
10
10
|
- name: Microservice Name
|
@@ -148,3 +148,12 @@ MICROSERVICE:
|
|
148
148
|
example: |
|
149
149
|
MICROSERVICE CFDP CFDP
|
150
150
|
ROUTE_PREFIX /cfdp
|
151
|
+
DISABLE_ERB:
|
152
|
+
summary: Disable ERB processing
|
153
|
+
description: Disable ERB processing for the entire microservice or a set of regular expressions over its filenames
|
154
|
+
since: 5.12.0
|
155
|
+
parameters:
|
156
|
+
- name: Regex
|
157
|
+
required: false
|
158
|
+
description: Regex to match against filenames. If match, then no ERB processing
|
159
|
+
values: .+
|
@@ -63,23 +63,22 @@ STATE:
|
|
63
63
|
values: "['\"].*['\"]"
|
64
64
|
WRITE_CONVERSION:
|
65
65
|
summary: Applies a conversion when writing the current command parameter
|
66
|
-
description:
|
67
|
-
|
68
|
-
|
66
|
+
description: |
|
67
|
+
Conversions are implemented in a custom Ruby file which should be
|
68
|
+
located in the target's lib folder. The class must require 'openc3/conversions/conversion'
|
69
69
|
and inherit from Conversion. It must implement the initialize method if it
|
70
70
|
takes extra parameters and must always implement the call method. The conversion
|
71
71
|
factor is applied to the value entered by the user before it is written into
|
72
72
|
the binary command packet and sent.
|
73
73
|
|
74
|
-
|
75
|
-
|
76
|
-
<p>When a command is built, each item gets written (and write conversions are run)
|
74
|
+
:::info Multiple write conversions on command parameters
|
75
|
+
When a command is built, each item gets written (and write conversions are run)
|
77
76
|
to set the default value. Then items are written (again write conversions are run)
|
78
77
|
with user provided values. Thus write conversions can be run twice. Also there are
|
79
78
|
no guarantees which parameters have already been written. The packet itself has a
|
80
79
|
given_values() method which can be used to retrieve a hash of the user provided
|
81
|
-
values to the command. That can be used to check parameter values passed in
|
82
|
-
|
80
|
+
values to the command. That can be used to check parameter values passed in.
|
81
|
+
:::
|
83
82
|
example: |
|
84
83
|
WRITE_CONVERSION the_great_conversion.rb 1000
|
85
84
|
|
@@ -154,7 +153,8 @@ SEG_POLY_WRITE_CONVERSION:
|
|
154
153
|
values: .*
|
155
154
|
GENERIC_WRITE_CONVERSION_START:
|
156
155
|
summary: Start a generic write conversion
|
157
|
-
description:
|
156
|
+
description: |
|
157
|
+
Adds a generic conversion function to the current command parameter.
|
158
158
|
This conversion factor is applied to the value entered by the user before it
|
159
159
|
is written into the binary command packet and sent. The conversion is specified
|
160
160
|
as ruby code that receives two implied parameters. 'value' which is the raw
|
@@ -164,15 +164,14 @@ GENERIC_WRITE_CONVERSION_START:
|
|
164
164
|
value. The GENERIC_WRITE_CONVERSION_END keyword specifies that all lines of
|
165
165
|
ruby code for the conversion have been given.
|
166
166
|
|
167
|
-
|
168
|
-
|
169
|
-
<p>When a command is built, each item gets written (and write conversions are run)
|
167
|
+
:::info Multiple write conversions on command parameters
|
168
|
+
When a command is built, each item gets written (and write conversions are run)
|
170
169
|
to set the default value. Then items are written (again write conversions are run)
|
171
170
|
with user provided values. Thus write conversions can be run twice. Also there are
|
172
171
|
no guarantees which parameters have already been written. The packet itself has a
|
173
172
|
given_values() method which can be used to retrieve a hash of the user provided
|
174
|
-
values to the command. That can be used to check parameter values passed in
|
175
|
-
|
173
|
+
values to the command. That can be used to check parameter values passed in.
|
174
|
+
:::
|
176
175
|
warning: Generic conversions are not a good long term solution. Consider creating
|
177
176
|
a conversion class and using WRITE_CONVERSION instead. WRITE_CONVERSION is easier
|
178
177
|
to debug and higher performance.
|
data/data/config/plugins.yaml
CHANGED
@@ -40,7 +40,7 @@ INTERFACE:
|
|
40
40
|
description: Ruby file to use when instantiating the interface.
|
41
41
|
values:
|
42
42
|
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
|
43
|
-
documentation: Additional parameters are required. Please see the [Interfaces](/
|
43
|
+
documentation: Additional parameters are required. Please see the [Interfaces](../configuration/interfaces.md)
|
44
44
|
documentation for more details.
|
45
45
|
ROUTER:
|
46
46
|
modifiers:
|
@@ -60,7 +60,7 @@ ROUTER:
|
|
60
60
|
description: Ruby file to use when instantiating the interface.
|
61
61
|
values:
|
62
62
|
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
|
63
|
-
documentation: Additional parameters are required. Please see the [Interfaces](/
|
63
|
+
documentation: Additional parameters are required. Please see the [Interfaces](../configuration/interfaces.md)
|
64
64
|
documentation for more details.
|
65
65
|
<%= MetaConfigParser.load('target.yaml').to_meta_config_yaml() %>
|
66
66
|
<%= MetaConfigParser.load('microservice.yaml').to_meta_config_yaml() %>
|
@@ -71,7 +71,17 @@ WIDGET:
|
|
71
71
|
description: Defines a custom widget that can be used in Telemetry Viewer screens.
|
72
72
|
parameters:
|
73
73
|
- name: Widget Name
|
74
|
-
description: The name of the widget wil be used to build a path to the widget implementation. For example, `WIDGET HELLOWORLD` will find the as-built file tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js. See the [Custom Widgets](/
|
74
|
+
description: The name of the widget wil be used to build a path to the widget implementation. For example, `WIDGET HELLOWORLD` will find the as-built file tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js. See the [Custom Widgets](../guides/custom-widgets.md)
|
75
75
|
guide for more details.
|
76
76
|
required: true
|
77
77
|
values: .+
|
78
|
+
modifiers:
|
79
|
+
DISABLE_ERB:
|
80
|
+
summary: Disable ERB processing
|
81
|
+
description: Disable ERB processing for the entire widget or a set of regular expressions over its filenames
|
82
|
+
since: 5.12.0
|
83
|
+
parameters:
|
84
|
+
- name: Regex
|
85
|
+
required: false
|
86
|
+
description: Regex to match against filenames. If match, then no ERB processing
|
87
|
+
values: .+
|
data/data/config/screen.yaml
CHANGED
@@ -53,7 +53,7 @@ GLOBAL_SETTING:
|
|
53
53
|
description: See SETTING for details.
|
54
54
|
values: .*
|
55
55
|
example: |
|
56
|
-
GLOBAL_SETTING LABELVALUELIMITSBAR
|
56
|
+
GLOBAL_SETTING LABELVALUELIMITSBAR TEXTCOLOR BLACK
|
57
57
|
GLOBAL_SUBSETTING:
|
58
58
|
summary: Applies a widget subsetting to all widgets of a certain type
|
59
59
|
description: Subsettings are only valid for widgets that are
|
@@ -81,7 +81,6 @@ GLOBAL_SUBSETTING:
|
|
81
81
|
description: See SETTING for details.
|
82
82
|
values: .*
|
83
83
|
example: |
|
84
|
-
GLOBAL_SUBSETTING LABELVALUELIMITSBAR 1 COLORBLIND TRUE
|
85
84
|
# Set all text color to white for labelvaluelimitsbars
|
86
85
|
GLOBAL_SUBSETTING LABELVALUELIMITSBAR 0:0 TEXTCOLOR white
|
87
86
|
SETTING:
|
data/data/config/target.yaml
CHANGED
@@ -187,3 +187,12 @@ TARGET:
|
|
187
187
|
description: The packet name. Does not apply to
|
188
188
|
REDUCER or CLEANUP target microservice types.
|
189
189
|
values: .*
|
190
|
+
DISABLE_ERB:
|
191
|
+
summary: Disable ERB processing
|
192
|
+
description: Disable ERB processing for the entire target or a set of regular expressions over its filenames
|
193
|
+
since: 5.12.0
|
194
|
+
parameters:
|
195
|
+
- name: Regex
|
196
|
+
required: false
|
197
|
+
description: Regex to match against filenames. If match, then no ERB processing
|
198
|
+
values: .+
|
@@ -1,10 +1,19 @@
|
|
1
1
|
---
|
2
|
+
LANGUAGE:
|
3
|
+
summary: Programming language of the target interfaces and microservices
|
4
|
+
description: The target language must be either Ruby or Python. The language
|
5
|
+
determines how the target's interfaces and microservices are run. Note that
|
6
|
+
both Ruby and Python still use ERB to perform templating.
|
7
|
+
example: LANGUAGE python
|
8
|
+
parameters:
|
9
|
+
- language: Programming language
|
10
|
+
required: true
|
11
|
+
description: Ruby or Python
|
12
|
+
values: ["ruby", "python"]
|
13
|
+
since: 5.11.1
|
2
14
|
REQUIRE:
|
3
15
|
summary: Requires a Ruby file
|
4
|
-
description:
|
5
|
-
Ruby files must be required to be available to call in other code.
|
6
|
-
Files are first required from the target's lib folder. If no file is found the
|
7
|
-
Ruby system path is checked which includes the base openc3/lib folder.
|
16
|
+
description: Ruby files optionally be required to explicitly declare dependencies.
|
8
17
|
example: REQUIRE limits_response.rb
|
9
18
|
parameters:
|
10
19
|
- name: Filename
|
@@ -13,8 +22,7 @@ REQUIRE:
|
|
13
22
|
simply supply the filename, e.g. "REQUIRE my_file". Files in the base OpenC3
|
14
23
|
lib directory also should just list the filename. If a file is in a folder
|
15
24
|
under the lib directory then you must specify the folder name, e.g. "REQUIRE
|
16
|
-
folder/my_file".
|
17
|
-
common. Note the ".rb" extension is optional when specifying the filename.
|
25
|
+
folder/my_file". Note the ".rb" extension is optional when specifying the filename.
|
18
26
|
values: .+
|
19
27
|
IGNORE_PARAMETER:
|
20
28
|
summary: Ignore the given command parameter
|
data/data/config/tool.yaml
CHANGED
@@ -5,7 +5,7 @@ TOOL:
|
|
5
5
|
description: Defines a tool that the plugin adds to the OpenC3 system. Tools are web based applications that make use of the Single-SPA javascript library that allows them to by dynamically added to the running system as independent frontend microservices.
|
6
6
|
parameters:
|
7
7
|
- name: Tool Folder Name
|
8
|
-
description: The exact name of the tool folder in the plugin. ie. tools
|
8
|
+
description: The exact name of the tool folder in the plugin. ie. tools/ToolFolderName
|
9
9
|
required: true
|
10
10
|
values: .+
|
11
11
|
- name: Tool Name
|
@@ -15,11 +15,11 @@ TOOL:
|
|
15
15
|
modifiers:
|
16
16
|
URL:
|
17
17
|
summary: Url used to access the tool
|
18
|
-
description: The relative url used to access the tool. Defaults to "/tools
|
18
|
+
description: The relative url used to access the tool. Defaults to "/tools/ToolFolderName".
|
19
19
|
parameters:
|
20
20
|
- name: Url
|
21
21
|
required: true
|
22
|
-
description: The url. If not given defaults to tools
|
22
|
+
description: The url. If not given defaults to tools/ToolFolderName. Generally should not be given unless linking to external tools.
|
23
23
|
values: .+
|
24
24
|
INLINE_URL:
|
25
25
|
summary: Internal url to load a tool
|
@@ -70,3 +70,12 @@ TOOL:
|
|
70
70
|
required: true
|
71
71
|
description: Numerical position
|
72
72
|
values: \d+
|
73
|
+
DISABLE_ERB:
|
74
|
+
summary: Disable ERB processing
|
75
|
+
description: Disable ERB processing for the entire tool or a set of regular expressions over its filenames
|
76
|
+
since: 5.12.0
|
77
|
+
parameters:
|
78
|
+
- name: Regex
|
79
|
+
required: false
|
80
|
+
description: Regex to match against filenames. If match, then no ERB processing
|
81
|
+
values: .+
|
data/lib/openc3/api/api.rb
CHANGED
@@ -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 2023, OpenC3, Inc.
|
18
18
|
# All Rights Reserved
|
19
19
|
#
|
20
20
|
# This file may also be used under the terms of a commercial license
|