openc3 5.0.6
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 +7 -0
- data/Gemfile +18 -0
- data/Guardfile +35 -0
- data/LICENSE.txt +727 -0
- data/README.md +37 -0
- data/Rakefile +131 -0
- data/bin/cstol_converter +1178 -0
- data/bin/openc3cli +531 -0
- data/bin/rubysloc +139 -0
- data/data/config/_array_params.yaml +23 -0
- data/data/config/_id_items.yaml +24 -0
- data/data/config/_id_params.yaml +58 -0
- data/data/config/_interfaces.yaml +214 -0
- data/data/config/_interfaces.yaml.err +1017 -0
- data/data/config/_items.yaml +20 -0
- data/data/config/_params.yaml +60 -0
- data/data/config/cmd_tlm_server.yaml +136 -0
- data/data/config/command.yaml +44 -0
- data/data/config/command_modifiers.yaml +160 -0
- data/data/config/command_telemetry.yaml +3 -0
- data/data/config/interface_modifiers.yaml +104 -0
- data/data/config/item_modifiers.yaml +221 -0
- data/data/config/microservice.yaml +78 -0
- data/data/config/param_item_modifiers.yaml +52 -0
- data/data/config/parameter_modifiers.yaml +200 -0
- data/data/config/plugins.yaml +80 -0
- data/data/config/protocols.yaml +290 -0
- data/data/config/screen.yaml +147 -0
- data/data/config/table_manager.yaml +89 -0
- data/data/config/table_parameter_modifiers.yaml +9 -0
- data/data/config/target.yaml +142 -0
- data/data/config/target_config.yaml +94 -0
- data/data/config/telemetry.yaml +87 -0
- data/data/config/telemetry_modifiers.yaml +159 -0
- data/data/config/tool.yaml +63 -0
- data/data/config/unknown.yaml +3 -0
- data/data/config/widgets.yaml +1505 -0
- data/ext/mkrf_conf.rb +49 -0
- data/ext/openc3/ext/array/array.c +122 -0
- data/ext/openc3/ext/array/extconf.rb +13 -0
- data/ext/openc3/ext/buffered_file/buffered_file.c +198 -0
- data/ext/openc3/ext/buffered_file/extconf.rb +13 -0
- data/ext/openc3/ext/config_parser/config_parser.c +280 -0
- data/ext/openc3/ext/config_parser/extconf.rb +13 -0
- data/ext/openc3/ext/crc/crc.c +351 -0
- data/ext/openc3/ext/crc/extconf.rb +13 -0
- data/ext/openc3/ext/openc3_io/extconf.rb +13 -0
- data/ext/openc3/ext/openc3_io/openc3_io.c +158 -0
- data/ext/openc3/ext/packet/extconf.rb +13 -0
- data/ext/openc3/ext/packet/packet.c +318 -0
- data/ext/openc3/ext/platform/extconf.rb +13 -0
- data/ext/openc3/ext/platform/platform.c +134 -0
- data/ext/openc3/ext/polynomial_conversion/extconf.rb +13 -0
- data/ext/openc3/ext/polynomial_conversion/polynomial_conversion.c +79 -0
- data/ext/openc3/ext/string/extconf.rb +13 -0
- data/ext/openc3/ext/string/string.c +63 -0
- data/ext/openc3/ext/structure/structure.c +1719 -0
- data/ext/openc3/ext/tabbed_plots_config/extconf.rb +13 -0
- data/ext/openc3/ext/tabbed_plots_config/tabbed_plots_config.c +62 -0
- data/ext/openc3/ext/telemetry/extconf.rb +13 -0
- data/ext/openc3/ext/telemetry/telemetry.c +336 -0
- data/lib/cosmos.rb +20 -0
- data/lib/cosmosc2.rb +20 -0
- data/lib/openc3/api/api.rb +39 -0
- data/lib/openc3/api/authorized_api.rb +30 -0
- data/lib/openc3/api/cmd_api.rb +451 -0
- data/lib/openc3/api/config_api.rb +58 -0
- data/lib/openc3/api/interface_api.rb +117 -0
- data/lib/openc3/api/limits_api.rb +375 -0
- data/lib/openc3/api/router_api.rb +117 -0
- data/lib/openc3/api/settings_api.rb +70 -0
- data/lib/openc3/api/target_api.rb +78 -0
- data/lib/openc3/api/tlm_api.rb +455 -0
- data/lib/openc3/bridge/bridge.rb +54 -0
- data/lib/openc3/bridge/bridge_config.rb +167 -0
- data/lib/openc3/bridge/bridge_interface_thread.rb +42 -0
- data/lib/openc3/bridge/bridge_router_thread.rb +42 -0
- data/lib/openc3/ccsds/ccsds_packet.rb +68 -0
- data/lib/openc3/ccsds/ccsds_parser.rb +148 -0
- data/lib/openc3/config/config_parser.rb +549 -0
- data/lib/openc3/config/meta_config_parser.rb +74 -0
- data/lib/openc3/conversions/conversion.rb +70 -0
- data/lib/openc3/conversions/generic_conversion.rb +83 -0
- data/lib/openc3/conversions/packet_time_formatted_conversion.rb +43 -0
- data/lib/openc3/conversions/packet_time_seconds_conversion.rb +43 -0
- data/lib/openc3/conversions/polynomial_conversion.rb +87 -0
- data/lib/openc3/conversions/processor_conversion.rb +70 -0
- data/lib/openc3/conversions/received_count_conversion.rb +38 -0
- data/lib/openc3/conversions/received_time_formatted_conversion.rb +42 -0
- data/lib/openc3/conversions/received_time_seconds_conversion.rb +42 -0
- data/lib/openc3/conversions/segmented_polynomial_conversion.rb +171 -0
- data/lib/openc3/conversions/unix_time_conversion.rb +68 -0
- data/lib/openc3/conversions/unix_time_formatted_conversion.rb +49 -0
- data/lib/openc3/conversions/unix_time_seconds_conversion.rb +49 -0
- data/lib/openc3/conversions.rb +34 -0
- data/lib/openc3/core_ext/array.rb +416 -0
- data/lib/openc3/core_ext/binding.rb +29 -0
- data/lib/openc3/core_ext/class.rb +72 -0
- data/lib/openc3/core_ext/exception.rb +61 -0
- data/lib/openc3/core_ext/file.rb +83 -0
- data/lib/openc3/core_ext/hash.rb +37 -0
- data/lib/openc3/core_ext/io.rb +134 -0
- data/lib/openc3/core_ext/kernel.rb +42 -0
- data/lib/openc3/core_ext/math.rb +128 -0
- data/lib/openc3/core_ext/matrix.rb +156 -0
- data/lib/openc3/core_ext/objectspace.rb +36 -0
- data/lib/openc3/core_ext/openc3_io.rb +57 -0
- data/lib/openc3/core_ext/range.rb +27 -0
- data/lib/openc3/core_ext/socket.rb +38 -0
- data/lib/openc3/core_ext/string.rb +389 -0
- data/lib/openc3/core_ext/stringio.rb +33 -0
- data/lib/openc3/core_ext/time.rb +508 -0
- data/lib/openc3/core_ext.rb +36 -0
- data/lib/openc3/interfaces/interface.rb +498 -0
- data/lib/openc3/interfaces/linc_interface.rb +475 -0
- data/lib/openc3/interfaces/protocols/burst_protocol.rb +192 -0
- data/lib/openc3/interfaces/protocols/crc_protocol.rb +193 -0
- data/lib/openc3/interfaces/protocols/fixed_protocol.rb +155 -0
- data/lib/openc3/interfaces/protocols/ignore_packet_protocol.rb +56 -0
- data/lib/openc3/interfaces/protocols/length_protocol.rb +165 -0
- data/lib/openc3/interfaces/protocols/override_protocol.rb +60 -0
- data/lib/openc3/interfaces/protocols/preidentified_protocol.rb +206 -0
- data/lib/openc3/interfaces/protocols/protocol.rb +82 -0
- data/lib/openc3/interfaces/protocols/template_protocol.rb +261 -0
- data/lib/openc3/interfaces/protocols/terminated_protocol.rb +93 -0
- data/lib/openc3/interfaces/serial_interface.rb +94 -0
- data/lib/openc3/interfaces/simulated_target_interface.rb +168 -0
- data/lib/openc3/interfaces/stream_interface.rb +81 -0
- data/lib/openc3/interfaces/tcpip_client_interface.rb +69 -0
- data/lib/openc3/interfaces/tcpip_server_interface.rb +629 -0
- data/lib/openc3/interfaces/udp_interface.rb +169 -0
- data/lib/openc3/interfaces.rb +44 -0
- data/lib/openc3/io/buffered_file.rb +109 -0
- data/lib/openc3/io/io_multiplexer.rb +80 -0
- data/lib/openc3/io/json_api_object.rb +208 -0
- data/lib/openc3/io/json_drb.rb +335 -0
- data/lib/openc3/io/json_drb_object.rb +114 -0
- data/lib/openc3/io/json_drb_rack.rb +84 -0
- data/lib/openc3/io/json_rpc.rb +420 -0
- data/lib/openc3/io/openc3_snmp.rb +58 -0
- data/lib/openc3/io/posix_serial_driver.rb +156 -0
- data/lib/openc3/io/raw_logger.rb +167 -0
- data/lib/openc3/io/raw_logger_pair.rb +77 -0
- data/lib/openc3/io/serial_driver.rb +105 -0
- data/lib/openc3/io/stderr.rb +43 -0
- data/lib/openc3/io/stdout.rb +43 -0
- data/lib/openc3/io/udp_sockets.rb +194 -0
- data/lib/openc3/io/win32_serial_driver.rb +196 -0
- data/lib/openc3/logs/log_writer.rb +302 -0
- data/lib/openc3/logs/packet_log_constants.rb +62 -0
- data/lib/openc3/logs/packet_log_reader.rb +345 -0
- data/lib/openc3/logs/packet_log_writer.rb +299 -0
- data/lib/openc3/logs/text_log_writer.rb +68 -0
- data/lib/openc3/logs.rb +25 -0
- data/lib/openc3/microservices/cleanup_microservice.rb +68 -0
- data/lib/openc3/microservices/decom_microservice.rb +136 -0
- data/lib/openc3/microservices/interface_microservice.rb +532 -0
- data/lib/openc3/microservices/log_microservice.rb +108 -0
- data/lib/openc3/microservices/microservice.rb +204 -0
- data/lib/openc3/microservices/plugin_microservice.rb +43 -0
- data/lib/openc3/microservices/reaction_microservice.rb +541 -0
- data/lib/openc3/microservices/reducer_microservice.rb +313 -0
- data/lib/openc3/microservices/router_microservice.rb +44 -0
- data/lib/openc3/microservices/text_log_microservice.rb +84 -0
- data/lib/openc3/microservices/timeline_microservice.rb +363 -0
- data/lib/openc3/microservices/trigger_group_microservice.rb +638 -0
- data/lib/openc3/models/activity_model.rb +319 -0
- data/lib/openc3/models/auth_model.rb +65 -0
- data/lib/openc3/models/cvt_model.rb +185 -0
- data/lib/openc3/models/environment_model.rb +58 -0
- data/lib/openc3/models/gem_model.rb +137 -0
- data/lib/openc3/models/info_model.rb +31 -0
- data/lib/openc3/models/interface_model.rb +281 -0
- data/lib/openc3/models/interface_status_model.rb +117 -0
- data/lib/openc3/models/metadata_model.rb +139 -0
- data/lib/openc3/models/metric_model.rb +59 -0
- data/lib/openc3/models/microservice_model.rb +206 -0
- data/lib/openc3/models/microservice_status_model.rb +74 -0
- data/lib/openc3/models/model.rb +204 -0
- data/lib/openc3/models/note_model.rb +122 -0
- data/lib/openc3/models/notification_model.rb +40 -0
- data/lib/openc3/models/ping_model.rb +35 -0
- data/lib/openc3/models/plugin_model.rb +292 -0
- data/lib/openc3/models/process_status_model.rb +76 -0
- data/lib/openc3/models/reaction_model.rb +322 -0
- data/lib/openc3/models/reducer_model.rb +65 -0
- data/lib/openc3/models/router_model.rb +35 -0
- data/lib/openc3/models/router_status_model.rb +27 -0
- data/lib/openc3/models/scope_model.rb +153 -0
- data/lib/openc3/models/settings_model.rb +55 -0
- data/lib/openc3/models/sorted_model.rb +167 -0
- data/lib/openc3/models/target_model.rb +759 -0
- data/lib/openc3/models/timeline_model.rb +154 -0
- data/lib/openc3/models/tool_config_model.rb +38 -0
- data/lib/openc3/models/tool_model.rb +262 -0
- data/lib/openc3/models/trigger_group_model.rb +186 -0
- data/lib/openc3/models/trigger_model.rb +330 -0
- data/lib/openc3/models/widget_model.rb +138 -0
- data/lib/openc3/operators/microservice_operator.rb +128 -0
- data/lib/openc3/operators/operator.rb +277 -0
- data/lib/openc3/packets/binary_accessor.rb +1207 -0
- data/lib/openc3/packets/commands.rb +373 -0
- data/lib/openc3/packets/json_packet.rb +134 -0
- data/lib/openc3/packets/limits.rb +271 -0
- data/lib/openc3/packets/limits_response.rb +53 -0
- data/lib/openc3/packets/packet.rb +1168 -0
- data/lib/openc3/packets/packet_config.rb +625 -0
- data/lib/openc3/packets/packet_item.rb +586 -0
- data/lib/openc3/packets/packet_item_limits.rb +162 -0
- data/lib/openc3/packets/parsers/format_string_parser.rb +65 -0
- data/lib/openc3/packets/parsers/limits_parser.rb +159 -0
- data/lib/openc3/packets/parsers/limits_response_parser.rb +61 -0
- data/lib/openc3/packets/parsers/packet_item_parser.rb +272 -0
- data/lib/openc3/packets/parsers/packet_parser.rb +134 -0
- data/lib/openc3/packets/parsers/processor_parser.rb +73 -0
- data/lib/openc3/packets/parsers/state_parser.rb +127 -0
- data/lib/openc3/packets/parsers/xtce_converter.rb +442 -0
- data/lib/openc3/packets/parsers/xtce_parser.rb +722 -0
- data/lib/openc3/packets/structure.rb +553 -0
- data/lib/openc3/packets/structure_item.rb +365 -0
- data/lib/openc3/packets/telemetry.rb +487 -0
- data/lib/openc3/processors/processor.rb +86 -0
- data/lib/openc3/processors/statistics_processor.rb +82 -0
- data/lib/openc3/processors/watermark_processor.rb +58 -0
- data/lib/openc3/processors.rb +24 -0
- data/lib/openc3/script/api_shared.rb +828 -0
- data/lib/openc3/script/calendar.rb +89 -0
- data/lib/openc3/script/commands.rb +227 -0
- data/lib/openc3/script/exceptions.rb +29 -0
- data/lib/openc3/script/extract.rb +161 -0
- data/lib/openc3/script/limits.rb +60 -0
- data/lib/openc3/script/script.rb +299 -0
- data/lib/openc3/script/script_runner.rb +238 -0
- data/lib/openc3/script/storage.rb +146 -0
- data/lib/openc3/script/suite.rb +542 -0
- data/lib/openc3/script/suite_results.rb +196 -0
- data/lib/openc3/script/suite_runner.rb +217 -0
- data/lib/openc3/script.rb +21 -0
- data/lib/openc3/streams/serial_stream.rb +167 -0
- data/lib/openc3/streams/stream.rb +63 -0
- data/lib/openc3/streams/tcpip_client_stream.rb +116 -0
- data/lib/openc3/streams/tcpip_socket_stream.rb +195 -0
- data/lib/openc3/system/system.rb +127 -0
- data/lib/openc3/system/system_config.rb +411 -0
- data/lib/openc3/system/target.rb +269 -0
- data/lib/openc3/system.rb +24 -0
- data/lib/openc3/tools/cmd_tlm_server/api.rb +20 -0
- data/lib/openc3/tools/cmd_tlm_server/cmd_tlm_server_config.rb +320 -0
- data/lib/openc3/tools/cmd_tlm_server/interface_thread.rb +294 -0
- data/lib/openc3/tools/table_manager/table.rb +77 -0
- data/lib/openc3/tools/table_manager/table_config.rb +273 -0
- data/lib/openc3/tools/table_manager/table_item.rb +90 -0
- data/lib/openc3/tools/table_manager/table_item_parser.rb +66 -0
- data/lib/openc3/tools/table_manager/table_manager_core.rb +333 -0
- data/lib/openc3/tools/table_manager/table_parser.rb +93 -0
- data/lib/openc3/tools/test_runner/test.rb +67 -0
- data/lib/openc3/top_level.rb +595 -0
- data/lib/openc3/topics/autonomic_topic.rb +52 -0
- data/lib/openc3/topics/calendar_topic.rb +44 -0
- data/lib/openc3/topics/command_decom_topic.rb +76 -0
- data/lib/openc3/topics/command_topic.rb +83 -0
- data/lib/openc3/topics/config_topic.rb +68 -0
- data/lib/openc3/topics/interface_topic.rb +73 -0
- data/lib/openc3/topics/limits_event_topic.rb +109 -0
- data/lib/openc3/topics/notifications_topic.rb +28 -0
- data/lib/openc3/topics/router_topic.rb +85 -0
- data/lib/openc3/topics/telemetry_decom_topic.rb +54 -0
- data/lib/openc3/topics/telemetry_topic.rb +36 -0
- data/lib/openc3/topics/timeline_topic.rb +45 -0
- data/lib/openc3/topics/topic.rb +53 -0
- data/lib/openc3/utilities/authentication.rb +141 -0
- data/lib/openc3/utilities/authorization.rb +51 -0
- data/lib/openc3/utilities/crc.rb +278 -0
- data/lib/openc3/utilities/csv.rb +153 -0
- data/lib/openc3/utilities/logger.rb +187 -0
- data/lib/openc3/utilities/message_log.rb +91 -0
- data/lib/openc3/utilities/metric.rb +141 -0
- data/lib/openc3/utilities/process_manager.rb +139 -0
- data/lib/openc3/utilities/quaternion.rb +257 -0
- data/lib/openc3/utilities/ruby_lex_utils.rb +568 -0
- data/lib/openc3/utilities/s3.rb +202 -0
- data/lib/openc3/utilities/s3_autoload.rb +9 -0
- data/lib/openc3/utilities/s3_file_cache.rb +274 -0
- data/lib/openc3/utilities/simulated_target.rb +117 -0
- data/lib/openc3/utilities/sleeper.rb +51 -0
- data/lib/openc3/utilities/store.rb +23 -0
- data/lib/openc3/utilities/store_autoload.rb +237 -0
- data/lib/openc3/utilities/zip.rb +21 -0
- data/lib/openc3/utilities.rb +35 -0
- data/lib/openc3/version.rb +14 -0
- data/lib/openc3/win32/excel.rb +132 -0
- data/lib/openc3/win32/win32.rb +402 -0
- data/lib/openc3/win32/win32_main.rb +333 -0
- data/lib/openc3.rb +49 -0
- data/tasks/gemfile_stats.rake +113 -0
- data/tasks/spec.rake +30 -0
- data/templates/plugin-template/README.md +15 -0
- data/templates/plugin-template/Rakefile +12 -0
- data/templates/plugin-template/plugin.gemspec +23 -0
- data/templates/plugin-template/plugin.txt +9 -0
- data/templates/plugin-template/targets/TARGET/cmd_tlm/cmd.txt +8 -0
- data/templates/plugin-template/targets/TARGET/cmd_tlm/tlm.txt +8 -0
- data/templates/plugin-template/targets/TARGET/lib/target.rb +10 -0
- data/templates/plugin-template/targets/TARGET/procedures/procedure.rb +3 -0
- data/templates/plugin-template/targets/TARGET/screens/status.txt +9 -0
- data/templates/plugin-template/targets/TARGET/target.txt +5 -0
- metadata +849 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'mkmf'
|
|
2
|
+
|
|
3
|
+
unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3')
|
|
4
|
+
$CFLAGS << ' -O3'
|
|
5
|
+
end
|
|
6
|
+
if /gcc/.match?(CONFIG['CC'])
|
|
7
|
+
$CFLAGS << ' -Wall'
|
|
8
|
+
if $DEBUG && !$CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
|
|
9
|
+
$CFLAGS << ' -O0 -ggdb'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
create_makefile 'openc3/ext/tabbed_plots_config'
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*
|
|
2
|
+
# Copyright 2022 Ball Aerospace & Technologies Corp.
|
|
3
|
+
# All Rights Reserved.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can modify and/or redistribute it
|
|
6
|
+
# under the terms of the GNU Affero General Public License
|
|
7
|
+
# as published by the Free Software Foundation; version 3 with
|
|
8
|
+
# attribution addendums as found in the LICENSE.txt
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU Affero General Public License for more details.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
# Modified by OpenC3, Inc.
|
|
18
|
+
# All changes Copyright 2022, OpenC3, Inc.
|
|
19
|
+
# All Rights Reserved
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include "ruby.h"
|
|
23
|
+
#include "stdio.h"
|
|
24
|
+
|
|
25
|
+
VALUE mOpenC3;
|
|
26
|
+
VALUE cTabbedPlotsConfig;
|
|
27
|
+
|
|
28
|
+
static ID id_method_process_packet = 0;
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
* Optimization method to move each call to C code
|
|
32
|
+
*/
|
|
33
|
+
static VALUE process_packet_in_each_data_object(VALUE self, VALUE data_objects, VALUE packet, VALUE packet_count)
|
|
34
|
+
{
|
|
35
|
+
int index = 0;
|
|
36
|
+
long length = 0;
|
|
37
|
+
volatile VALUE data_object = Qnil;
|
|
38
|
+
|
|
39
|
+
length = RARRAY_LEN(data_objects);
|
|
40
|
+
if (length > 0)
|
|
41
|
+
{
|
|
42
|
+
for (index = 0; index < length; index++)
|
|
43
|
+
{
|
|
44
|
+
data_object = rb_ary_entry(data_objects, index);
|
|
45
|
+
rb_funcall(data_object, id_method_process_packet, 2, packet, packet_count);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return Qnil;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/*
|
|
53
|
+
* Initialize methods for TabbedPlotsConfig
|
|
54
|
+
*/
|
|
55
|
+
void Init_tabbed_plots_config(void)
|
|
56
|
+
{
|
|
57
|
+
id_method_process_packet = rb_intern("process_packet");
|
|
58
|
+
|
|
59
|
+
mOpenC3 = rb_define_module("OpenC3");
|
|
60
|
+
cTabbedPlotsConfig = rb_define_class_under(mOpenC3, "TabbedPlotsConfig", rb_cObject);
|
|
61
|
+
rb_define_method(cTabbedPlotsConfig, "process_packet_in_each_data_object", process_packet_in_each_data_object, 3);
|
|
62
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'mkmf'
|
|
2
|
+
|
|
3
|
+
unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3')
|
|
4
|
+
$CFLAGS << ' -O3'
|
|
5
|
+
end
|
|
6
|
+
if /gcc/.match?(CONFIG['CC'])
|
|
7
|
+
$CFLAGS << ' -Wall'
|
|
8
|
+
if $DEBUG && !$CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
|
|
9
|
+
$CFLAGS << ' -O0 -ggdb'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
create_makefile 'openc3/ext/telemetry'
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/*
|
|
2
|
+
# Copyright 2022 Ball Aerospace & Technologies Corp.
|
|
3
|
+
# All Rights Reserved.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can modify and/or redistribute it
|
|
6
|
+
# under the terms of the GNU Affero General Public License
|
|
7
|
+
# as published by the Free Software Foundation; version 3 with
|
|
8
|
+
# attribution addendums as found in the LICENSE.txt
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU Affero General Public License for more details.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
# Modified by OpenC3, Inc.
|
|
18
|
+
# All changes Copyright 2022, OpenC3, Inc.
|
|
19
|
+
# All Rights Reserved
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include "ruby.h"
|
|
23
|
+
#include "stdio.h"
|
|
24
|
+
|
|
25
|
+
VALUE mOpenC3;
|
|
26
|
+
VALUE cTelemetry;
|
|
27
|
+
VALUE cSystem;
|
|
28
|
+
|
|
29
|
+
static ID id_ivar_config = 0;
|
|
30
|
+
static ID id_method_telemetry = 0;
|
|
31
|
+
static ID id_method_read = 0;
|
|
32
|
+
static ID id_method_to_s = 0;
|
|
33
|
+
static ID id_method_intern = 0;
|
|
34
|
+
static ID id_method_get_item = 0;
|
|
35
|
+
static ID id_method_upcase = 0;
|
|
36
|
+
static ID id_method_newest_packet = 0;
|
|
37
|
+
static ID id_method_limits = 0;
|
|
38
|
+
static ID id_method_state = 0;
|
|
39
|
+
static ID id_method_limits_set = 0;
|
|
40
|
+
static ID id_method_values = 0;
|
|
41
|
+
static VALUE symbol_CONVERTED = Qnil;
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* @param target_name [String] The target name
|
|
45
|
+
*@return [Hash<packet_name=>Packet>] Hash of the telemetry packets for the given
|
|
46
|
+
* target name keyed by the packet name
|
|
47
|
+
*/
|
|
48
|
+
static VALUE packets(VALUE self, VALUE target_name)
|
|
49
|
+
{
|
|
50
|
+
volatile VALUE target_packets = Qnil;
|
|
51
|
+
volatile VALUE upcase_target_name = Qnil;
|
|
52
|
+
volatile VALUE telemetry = Qnil;
|
|
53
|
+
|
|
54
|
+
upcase_target_name = rb_funcall(target_name, id_method_to_s, 0);
|
|
55
|
+
upcase_target_name = rb_funcall(upcase_target_name, id_method_upcase, 0);
|
|
56
|
+
telemetry = rb_funcall(rb_ivar_get(self, id_ivar_config), id_method_telemetry, 0);
|
|
57
|
+
target_packets = rb_hash_aref(telemetry, upcase_target_name);
|
|
58
|
+
|
|
59
|
+
if (!(RTEST(target_packets)))
|
|
60
|
+
{
|
|
61
|
+
rb_raise(rb_eRuntimeError, "Telemetry target '%s' does not exist", RSTRING_PTR(upcase_target_name));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return target_packets;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/*
|
|
68
|
+
* @param target_name [String] The target name
|
|
69
|
+
* @param packet_name [String] The packet name. Must be a defined packet name
|
|
70
|
+
* and not 'LATEST'.
|
|
71
|
+
*@return [Packet] The telemetry packet for the given target and packet name
|
|
72
|
+
*/
|
|
73
|
+
static VALUE packet(VALUE self, VALUE target_name, VALUE packet_name)
|
|
74
|
+
{
|
|
75
|
+
volatile VALUE packet = Qnil;
|
|
76
|
+
volatile VALUE target_packets = Qnil;
|
|
77
|
+
volatile VALUE upcase_target_name = Qnil;
|
|
78
|
+
volatile VALUE upcase_packet_name = Qnil;
|
|
79
|
+
|
|
80
|
+
target_packets = packets(self, target_name);
|
|
81
|
+
|
|
82
|
+
upcase_packet_name = rb_funcall(packet_name, id_method_to_s, 0);
|
|
83
|
+
upcase_packet_name = rb_funcall(upcase_packet_name, id_method_upcase, 0);
|
|
84
|
+
packet = rb_hash_aref(target_packets, upcase_packet_name);
|
|
85
|
+
if (!(RTEST(packet)))
|
|
86
|
+
{
|
|
87
|
+
upcase_target_name = rb_funcall(target_name, id_method_to_s, 0);
|
|
88
|
+
upcase_target_name = rb_funcall(upcase_target_name, id_method_upcase, 0);
|
|
89
|
+
rb_raise(rb_eRuntimeError, "Telemetry packet '%s %s' does not exist", RSTRING_PTR(upcase_target_name), RSTRING_PTR(upcase_packet_name));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return packet;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
* @param target_name (see #packet)
|
|
97
|
+
* @param packet_name [String] The packet name. 'LATEST' can also be given
|
|
98
|
+
* to specify the last received (or defined if no packets have been
|
|
99
|
+
* received) packet within the given target that contains the
|
|
100
|
+
* item_name.
|
|
101
|
+
* @param item_name [String] The item name
|
|
102
|
+
* @return [Packet, PacketItem] The packet and the packet item
|
|
103
|
+
*/
|
|
104
|
+
static VALUE packet_and_item(VALUE self, VALUE target_name, VALUE packet_name, VALUE item_name)
|
|
105
|
+
{
|
|
106
|
+
volatile VALUE upcase_packet_name = Qnil;
|
|
107
|
+
volatile VALUE return_packet = Qnil;
|
|
108
|
+
volatile VALUE item = Qnil;
|
|
109
|
+
volatile VALUE return_value = Qnil;
|
|
110
|
+
char *string_packet_name = NULL;
|
|
111
|
+
|
|
112
|
+
upcase_packet_name = rb_funcall(packet_name, id_method_upcase, 0);
|
|
113
|
+
string_packet_name = RSTRING_PTR(upcase_packet_name);
|
|
114
|
+
if (strcmp(string_packet_name, "LATEST") == 0)
|
|
115
|
+
{
|
|
116
|
+
return_packet = rb_funcall(self, id_method_newest_packet, 2, target_name, item_name);
|
|
117
|
+
}
|
|
118
|
+
else
|
|
119
|
+
{
|
|
120
|
+
return_packet = packet(self, target_name, packet_name);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
item = rb_funcall(return_packet, id_method_get_item, 1, item_name);
|
|
124
|
+
|
|
125
|
+
return_value = rb_ary_new();
|
|
126
|
+
rb_ary_push(return_value, return_packet);
|
|
127
|
+
rb_ary_push(return_value, item);
|
|
128
|
+
return return_value;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/*
|
|
132
|
+
* Return a telemetry value from a packet.
|
|
133
|
+
*
|
|
134
|
+
* @param target_name (see #packet_and_item)
|
|
135
|
+
* @param packet_name (see #packet_and_item)
|
|
136
|
+
* @param item_name (see #packet_and_item)
|
|
137
|
+
* @param value_type [Symbol] How to convert the item before returning.
|
|
138
|
+
* Must be one of {Packet::VALUE_TYPES}
|
|
139
|
+
* @return The value. :FORMATTED and :WITH_UNITS values are always returned
|
|
140
|
+
* as Strings. :RAW values will match their data_type. :CONVERTED values
|
|
141
|
+
* can be any type.
|
|
142
|
+
*/
|
|
143
|
+
static VALUE value(int argc, VALUE *argv, VALUE self)
|
|
144
|
+
{
|
|
145
|
+
volatile VALUE target_name = Qnil;
|
|
146
|
+
volatile VALUE packet_name = Qnil;
|
|
147
|
+
volatile VALUE item_name = Qnil;
|
|
148
|
+
volatile VALUE value_type = Qnil;
|
|
149
|
+
volatile VALUE result = Qnil;
|
|
150
|
+
volatile VALUE packet = Qnil;
|
|
151
|
+
|
|
152
|
+
switch (argc)
|
|
153
|
+
{
|
|
154
|
+
case 3:
|
|
155
|
+
target_name = argv[0];
|
|
156
|
+
packet_name = argv[1];
|
|
157
|
+
item_name = argv[2];
|
|
158
|
+
value_type = symbol_CONVERTED;
|
|
159
|
+
break;
|
|
160
|
+
case 4:
|
|
161
|
+
target_name = argv[0];
|
|
162
|
+
packet_name = argv[1];
|
|
163
|
+
item_name = argv[2];
|
|
164
|
+
value_type = argv[3];
|
|
165
|
+
break;
|
|
166
|
+
default:
|
|
167
|
+
/* Invalid number of arguments given */
|
|
168
|
+
rb_raise(rb_eArgError, "wrong number of arguments (%d for 3..4)", argc);
|
|
169
|
+
break;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
result = packet_and_item(self, target_name, packet_name, item_name);
|
|
173
|
+
packet = rb_ary_entry(result, 0);
|
|
174
|
+
return rb_funcall(packet, id_method_read, 2, item_name, value_type);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/*
|
|
178
|
+
* Reads the specified list of items and returns their values and limits
|
|
179
|
+
* state.
|
|
180
|
+
*
|
|
181
|
+
* @param item_array [Array<Array(String String String)>] An array
|
|
182
|
+
* consisting of [target name, packet name, item name]
|
|
183
|
+
* @param value_types [Symbol|Array<Symbol>] How to convert the items before
|
|
184
|
+
* returning. A single symbol of {Packet::VALUE_TYPES}
|
|
185
|
+
* can be passed which will convert all items the same way. Or
|
|
186
|
+
* an array of symbols can be passed to control how each item is
|
|
187
|
+
* converted.
|
|
188
|
+
* @return [Array, Array, Array] The first array contains the item values, the
|
|
189
|
+
* second their limits state, and the third the limits settings which includes
|
|
190
|
+
* red, yellow, and green (if given) limits values.
|
|
191
|
+
*/
|
|
192
|
+
static VALUE values_and_limits_states(int argc, VALUE *argv, VALUE self)
|
|
193
|
+
{
|
|
194
|
+
volatile VALUE item_array = Qnil;
|
|
195
|
+
volatile VALUE value_types = Qnil;
|
|
196
|
+
volatile VALUE items = Qnil;
|
|
197
|
+
volatile VALUE states = Qnil;
|
|
198
|
+
volatile VALUE settings = Qnil;
|
|
199
|
+
volatile VALUE entry = Qnil;
|
|
200
|
+
volatile VALUE target_name = Qnil;
|
|
201
|
+
volatile VALUE packet_name = Qnil;
|
|
202
|
+
volatile VALUE item_name = Qnil;
|
|
203
|
+
volatile VALUE value_type = Qnil;
|
|
204
|
+
volatile VALUE result = Qnil;
|
|
205
|
+
volatile VALUE return_value = Qnil;
|
|
206
|
+
volatile VALUE limits = Qnil;
|
|
207
|
+
volatile VALUE limits_set = Qnil;
|
|
208
|
+
volatile VALUE limits_values = Qnil;
|
|
209
|
+
volatile VALUE limits_settings = Qnil;
|
|
210
|
+
long length = 0;
|
|
211
|
+
long value_types_length = 0;
|
|
212
|
+
int index = 0;
|
|
213
|
+
|
|
214
|
+
switch (argc)
|
|
215
|
+
{
|
|
216
|
+
case 1:
|
|
217
|
+
item_array = argv[0];
|
|
218
|
+
value_types = symbol_CONVERTED;
|
|
219
|
+
break;
|
|
220
|
+
case 2:
|
|
221
|
+
item_array = argv[0];
|
|
222
|
+
value_types = argv[1];
|
|
223
|
+
break;
|
|
224
|
+
default:
|
|
225
|
+
/* Invalid number of arguments given */
|
|
226
|
+
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1..2)", argc);
|
|
227
|
+
break;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
items = rb_ary_new();
|
|
231
|
+
/* Verify items is a nested array */
|
|
232
|
+
entry = rb_ary_entry(item_array, index);
|
|
233
|
+
if (TYPE(entry) != T_ARRAY)
|
|
234
|
+
{
|
|
235
|
+
rb_raise(rb_eArgError, "item_array must be a nested array consisting of [[tgt,pkt,item],[tgt,pkt,item],...]");
|
|
236
|
+
}
|
|
237
|
+
states = rb_ary_new();
|
|
238
|
+
settings = rb_ary_new();
|
|
239
|
+
limits_set = rb_funcall(cSystem, id_method_limits_set, 0);
|
|
240
|
+
length = RARRAY_LEN(item_array);
|
|
241
|
+
if (TYPE(value_types) == T_ARRAY)
|
|
242
|
+
{
|
|
243
|
+
value_types_length = RARRAY_LEN(value_types);
|
|
244
|
+
if (length != value_types_length)
|
|
245
|
+
{
|
|
246
|
+
rb_raise(rb_eArgError, "Passed %ld items but only %ld value types", length, value_types_length);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
for (index = 0; index < length; index++)
|
|
250
|
+
{
|
|
251
|
+
entry = rb_ary_entry(item_array, index);
|
|
252
|
+
target_name = rb_ary_entry(entry, 0);
|
|
253
|
+
packet_name = rb_ary_entry(entry, 1);
|
|
254
|
+
item_name = rb_ary_entry(entry, 2);
|
|
255
|
+
value_type = rb_ary_entry(value_types, index);
|
|
256
|
+
value_type = rb_funcall(value_type, id_method_intern, 0);
|
|
257
|
+
|
|
258
|
+
result = packet_and_item(self, target_name, packet_name, item_name);
|
|
259
|
+
rb_ary_push(items, rb_funcall(rb_ary_entry(result, 0), id_method_read, 2, item_name, value_type));
|
|
260
|
+
limits = rb_funcall(rb_ary_entry(result, 1), id_method_limits, 0);
|
|
261
|
+
rb_ary_push(states, rb_funcall(limits, id_method_state, 0));
|
|
262
|
+
limits_values = rb_funcall(limits, id_method_values, 0);
|
|
263
|
+
if (RTEST(limits_values))
|
|
264
|
+
{
|
|
265
|
+
limits_settings = rb_hash_aref(limits_values, limits_set);
|
|
266
|
+
}
|
|
267
|
+
else
|
|
268
|
+
{
|
|
269
|
+
limits_settings = Qnil;
|
|
270
|
+
}
|
|
271
|
+
rb_ary_push(settings, limits_settings);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
else
|
|
275
|
+
{
|
|
276
|
+
value_type = rb_funcall(value_types, id_method_intern, 0);
|
|
277
|
+
for (index = 0; index < length; index++)
|
|
278
|
+
{
|
|
279
|
+
entry = rb_ary_entry(item_array, index);
|
|
280
|
+
target_name = rb_ary_entry(entry, 0);
|
|
281
|
+
packet_name = rb_ary_entry(entry, 1);
|
|
282
|
+
item_name = rb_ary_entry(entry, 2);
|
|
283
|
+
|
|
284
|
+
result = packet_and_item(self, target_name, packet_name, item_name);
|
|
285
|
+
rb_ary_push(items, rb_funcall(rb_ary_entry(result, 0), id_method_read, 2, item_name, value_type));
|
|
286
|
+
limits = rb_funcall(rb_ary_entry(result, 1), id_method_limits, 0);
|
|
287
|
+
rb_ary_push(states, rb_funcall(limits, id_method_state, 0));
|
|
288
|
+
limits_values = rb_funcall(limits, id_method_values, 0);
|
|
289
|
+
if (RTEST(limits_values))
|
|
290
|
+
{
|
|
291
|
+
limits_settings = rb_hash_aref(limits_values, limits_set);
|
|
292
|
+
}
|
|
293
|
+
else
|
|
294
|
+
{
|
|
295
|
+
limits_settings = Qnil;
|
|
296
|
+
}
|
|
297
|
+
rb_ary_push(settings, limits_settings);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
return_value = rb_ary_new2(3);
|
|
302
|
+
rb_ary_push(return_value, items);
|
|
303
|
+
rb_ary_push(return_value, states);
|
|
304
|
+
rb_ary_push(return_value, settings);
|
|
305
|
+
return return_value;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/*
|
|
309
|
+
* Initialize methods for Telemetry
|
|
310
|
+
*/
|
|
311
|
+
void Init_telemetry(void)
|
|
312
|
+
{
|
|
313
|
+
id_ivar_config = rb_intern("@config");
|
|
314
|
+
id_method_telemetry = rb_intern("telemetry");
|
|
315
|
+
id_method_read = rb_intern("read");
|
|
316
|
+
id_method_to_s = rb_intern("to_s");
|
|
317
|
+
id_method_intern = rb_intern("intern");
|
|
318
|
+
id_method_get_item = rb_intern("get_item");
|
|
319
|
+
id_method_upcase = rb_intern("upcase");
|
|
320
|
+
id_method_newest_packet = rb_intern("newest_packet");
|
|
321
|
+
id_method_limits = rb_intern("limits");
|
|
322
|
+
id_method_state = rb_intern("state");
|
|
323
|
+
id_method_limits_set = rb_intern("limits_set");
|
|
324
|
+
id_method_values = rb_intern("values");
|
|
325
|
+
symbol_CONVERTED = ID2SYM(rb_intern("CONVERTED"));
|
|
326
|
+
|
|
327
|
+
mOpenC3 = rb_define_module("OpenC3");
|
|
328
|
+
cTelemetry = rb_define_class_under(mOpenC3, "Telemetry", rb_cObject);
|
|
329
|
+
rb_define_method(cTelemetry, "packets", packets, 1);
|
|
330
|
+
rb_define_method(cTelemetry, "packet", packet, 2);
|
|
331
|
+
rb_define_method(cTelemetry, "packet_and_item", packet_and_item, 3);
|
|
332
|
+
rb_define_method(cTelemetry, "value", value, -1);
|
|
333
|
+
rb_define_method(cTelemetry, "values_and_limits_states", values_and_limits_states, -1);
|
|
334
|
+
|
|
335
|
+
cSystem = rb_define_class_under(mOpenC3, "System", rb_cObject);
|
|
336
|
+
}
|
data/lib/cosmos.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2022 Ball Aerospace & Technologies Corp.
|
|
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
|
+
# Modified by OpenC3, Inc.
|
|
17
|
+
# All changes Copyright 2022, OpenC3, Inc.
|
|
18
|
+
# All Rights Reserved
|
|
19
|
+
|
|
20
|
+
require 'openc3'
|
data/lib/cosmosc2.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2022 Ball Aerospace & Technologies Corp.
|
|
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
|
+
# Modified by OpenC3, Inc.
|
|
17
|
+
# All changes Copyright 2022, OpenC3, Inc.
|
|
18
|
+
# All Rights Reserved
|
|
19
|
+
|
|
20
|
+
require 'openc3'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2022 Ball Aerospace & Technologies Corp.
|
|
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
|
+
# Modified by OpenC3, Inc.
|
|
17
|
+
# All changes Copyright 2022, OpenC3, Inc.
|
|
18
|
+
# All Rights Reserved
|
|
19
|
+
|
|
20
|
+
require 'openc3/script/extract'
|
|
21
|
+
require 'openc3/script/api_shared'
|
|
22
|
+
require 'openc3/api/cmd_api'
|
|
23
|
+
require 'openc3/api/config_api'
|
|
24
|
+
require 'openc3/api/interface_api'
|
|
25
|
+
require 'openc3/api/limits_api'
|
|
26
|
+
require 'openc3/api/router_api'
|
|
27
|
+
require 'openc3/api/settings_api'
|
|
28
|
+
require 'openc3/api/target_api'
|
|
29
|
+
require 'openc3/api/tlm_api'
|
|
30
|
+
require 'openc3/utilities/authorization'
|
|
31
|
+
require 'openc3/topics/topic'
|
|
32
|
+
|
|
33
|
+
module OpenC3
|
|
34
|
+
module Api
|
|
35
|
+
include Extract
|
|
36
|
+
include Authorization
|
|
37
|
+
include ApiShared
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2022 Ball Aerospace & Technologies Corp.
|
|
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
|
+
# Modified by OpenC3, Inc.
|
|
17
|
+
# All changes Copyright 2022, OpenC3, Inc.
|
|
18
|
+
# All Rights Reserved
|
|
19
|
+
|
|
20
|
+
require 'openc3/api/api'
|
|
21
|
+
|
|
22
|
+
module OpenC3
|
|
23
|
+
module AuthorizedApi
|
|
24
|
+
include Api
|
|
25
|
+
|
|
26
|
+
def self.included(base)
|
|
27
|
+
$openc3_authorize = true
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|