openc3 7.2.1 → 7.4.0
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 +4 -4
- data/Gemfile +1 -1
- data/Guardfile +0 -0
- data/LICENSE.md +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/bin/openc3cli +235 -6
- data/bin/pipinstall +5 -4
- data/bin/pipuninstall +5 -1
- data/bin/uvinstall +156 -0
- data/data/config/_array_params.yaml +0 -0
- data/data/config/_canvas_values.yaml +0 -0
- data/data/config/_graph_params.yaml +0 -0
- data/data/config/_id_items.yaml +0 -0
- data/data/config/_id_params.yaml +0 -0
- data/data/config/_interfaces.yaml +0 -0
- data/data/config/_items.yaml +0 -0
- data/data/config/_params.yaml +0 -0
- data/data/config/command.yaml +0 -0
- data/data/config/command_modifiers.yaml +2 -0
- data/data/config/command_telemetry.yaml +0 -0
- data/data/config/conversions.yaml +0 -0
- data/data/config/graph_settings.yaml +0 -0
- data/data/config/interface_modifiers.yaml +103 -1
- data/data/config/item_modifiers.yaml +2 -1
- data/data/config/microservice.yaml +9 -2
- data/data/config/param_item_modifiers.yaml +0 -0
- data/data/config/parameter_modifiers.yaml +0 -0
- data/data/config/plugins.yaml +0 -0
- data/data/config/processors.yaml +0 -0
- data/data/config/protocols.yaml +0 -0
- data/data/config/screen.yaml +2 -1
- data/data/config/settings.yaml +0 -0
- data/data/config/table_manager.yaml +0 -0
- data/data/config/table_parameter_modifiers.yaml +0 -0
- data/data/config/target.yaml +21 -0
- data/data/config/target_config.yaml +0 -0
- data/data/config/telemetry.yaml +0 -0
- data/data/config/telemetry_modifiers.yaml +2 -0
- data/data/config/tool.yaml +3 -1
- data/data/config/unknown.yaml +0 -0
- data/data/config/widgets.yaml +22 -3
- data/data/xtce_schemas/SpaceSystem_20180204.xsd +5918 -0
- data/data/xtce_schemas/xml.xsd +116 -0
- data/ext/openc3/ext/array/array.c +0 -0
- data/ext/openc3/ext/array/extconf.rb +0 -0
- data/ext/openc3/ext/buffered_file/buffered_file.c +0 -0
- data/ext/openc3/ext/buffered_file/extconf.rb +0 -0
- data/ext/openc3/ext/burst_protocol/burst_protocol.c +6 -0
- data/ext/openc3/ext/burst_protocol/extconf.rb +0 -0
- data/ext/openc3/ext/config_parser/config_parser.c +0 -0
- data/ext/openc3/ext/config_parser/extconf.rb +0 -0
- data/ext/openc3/ext/crc/crc.c +0 -0
- data/ext/openc3/ext/crc/extconf.rb +0 -0
- data/ext/openc3/ext/openc3_io/extconf.rb +0 -0
- data/ext/openc3/ext/openc3_io/openc3_io.c +0 -0
- data/ext/openc3/ext/packet/extconf.rb +0 -0
- data/ext/openc3/ext/packet/packet.c +0 -0
- data/ext/openc3/ext/platform/extconf.rb +0 -0
- data/ext/openc3/ext/platform/platform.c +4 -1
- data/ext/openc3/ext/polynomial_conversion/extconf.rb +0 -0
- data/ext/openc3/ext/polynomial_conversion/polynomial_conversion.c +0 -0
- data/ext/openc3/ext/string/extconf.rb +0 -0
- data/ext/openc3/ext/string/string.c +0 -0
- data/ext/openc3/ext/structure/structure.c +49 -17
- data/ext/openc3/ext/tabbed_plots_config/extconf.rb +0 -0
- data/ext/openc3/ext/tabbed_plots_config/tabbed_plots_config.c +0 -0
- data/ext/openc3/ext/telemetry/extconf.rb +0 -0
- data/ext/openc3/ext/telemetry/telemetry.c +1 -1
- data/lib/cosmos.rb +0 -0
- data/lib/cosmosc2.rb +0 -0
- data/lib/openc3/accessors/accessor.rb +0 -0
- data/lib/openc3/accessors/binary_accessor.rb +63 -9
- data/lib/openc3/accessors/cbor_accessor.rb +0 -0
- data/lib/openc3/accessors/form_accessor.rb +0 -0
- data/lib/openc3/accessors/html_accessor.rb +0 -0
- data/lib/openc3/accessors/http_accessor.rb +0 -0
- data/lib/openc3/accessors/json_accessor.rb +0 -0
- data/lib/openc3/accessors/template_accessor.rb +2 -2
- data/lib/openc3/accessors/xml_accessor.rb +0 -0
- data/lib/openc3/accessors.rb +0 -0
- data/lib/openc3/api/README.md +0 -0
- data/lib/openc3/api/api.rb +0 -0
- data/lib/openc3/api/authorized_api.rb +0 -0
- data/lib/openc3/api/calendar_api.rb +0 -0
- data/lib/openc3/api/cmd_api.rb +1 -1
- data/lib/openc3/api/config_api.rb +0 -0
- data/lib/openc3/api/interface_api.rb +2 -2
- data/lib/openc3/api/limits_api.rb +27 -13
- data/lib/openc3/api/metrics_api.rb +1 -1
- data/lib/openc3/api/offline_access_api.rb +1 -1
- data/lib/openc3/api/router_api.rb +3 -3
- data/lib/openc3/api/settings_api.rb +22 -18
- data/lib/openc3/api/stash_api.rb +1 -1
- data/lib/openc3/api/target_api.rb +0 -0
- data/lib/openc3/api/tlm_api.rb +5 -4
- data/lib/openc3/bridge/bridge.rb +0 -0
- data/lib/openc3/bridge/bridge_config.rb +0 -0
- data/lib/openc3/bridge/bridge_interface_thread.rb +0 -0
- data/lib/openc3/bridge/bridge_router_thread.rb +0 -0
- data/lib/openc3/ccsds/ccsds_packet.rb +0 -0
- data/lib/openc3/ccsds/ccsds_parser.rb +0 -0
- data/lib/openc3/config/config_parser.rb +78 -17
- data/lib/openc3/config/meta_config_parser.rb +0 -0
- data/lib/openc3/conversions/bit_reverse_conversion.rb +0 -0
- data/lib/openc3/conversions/conversion.rb +0 -0
- data/lib/openc3/conversions/generic_conversion.rb +0 -0
- data/lib/openc3/conversions/ip_read_conversion.rb +0 -0
- data/lib/openc3/conversions/ip_write_conversion.rb +0 -0
- data/lib/openc3/conversions/object_read_conversion.rb +0 -0
- data/lib/openc3/conversions/object_write_conversion.rb +0 -0
- data/lib/openc3/conversions/packet_time_formatted_conversion.rb +0 -0
- data/lib/openc3/conversions/packet_time_seconds_conversion.rb +0 -0
- data/lib/openc3/conversions/polynomial_conversion.rb +0 -0
- data/lib/openc3/conversions/processor_conversion.rb +0 -0
- data/lib/openc3/conversions/received_count_conversion.rb +0 -0
- data/lib/openc3/conversions/received_time_formatted_conversion.rb +0 -0
- data/lib/openc3/conversions/received_time_seconds_conversion.rb +0 -0
- data/lib/openc3/conversions/segmented_polynomial_conversion.rb +0 -0
- data/lib/openc3/conversions/unix_time_conversion.rb +0 -0
- data/lib/openc3/conversions/unix_time_formatted_conversion.rb +0 -0
- data/lib/openc3/conversions/unix_time_seconds_conversion.rb +0 -0
- data/lib/openc3/conversions.rb +0 -0
- data/lib/openc3/core_ext/array.rb +0 -0
- data/lib/openc3/core_ext/binding.rb +0 -0
- data/lib/openc3/core_ext/class.rb +0 -0
- data/lib/openc3/core_ext/exception.rb +0 -0
- data/lib/openc3/core_ext/faraday.rb +0 -0
- data/lib/openc3/core_ext/file.rb +0 -0
- data/lib/openc3/core_ext/io.rb +0 -0
- data/lib/openc3/core_ext/kernel.rb +0 -0
- data/lib/openc3/core_ext/math.rb +0 -0
- data/lib/openc3/core_ext/matrix.rb +0 -0
- data/lib/openc3/core_ext/objectspace.rb +0 -0
- data/lib/openc3/core_ext/openc3_io.rb +0 -0
- data/lib/openc3/core_ext/range.rb +0 -0
- data/lib/openc3/core_ext/socket.rb +0 -0
- data/lib/openc3/core_ext/string.rb +0 -0
- data/lib/openc3/core_ext/stringio.rb +0 -0
- data/lib/openc3/core_ext/tempfile.rb +0 -0
- data/lib/openc3/core_ext/time.rb +0 -0
- data/lib/openc3/core_ext.rb +0 -0
- data/lib/openc3/ext/.keep +0 -0
- data/lib/openc3/interfaces/file_interface.rb +0 -0
- data/lib/openc3/interfaces/http_client_interface.rb +1 -1
- data/lib/openc3/interfaces/http_server_interface.rb +0 -0
- data/lib/openc3/interfaces/interface.rb +5 -4
- data/lib/openc3/interfaces/mqtt_interface.rb +0 -0
- data/lib/openc3/interfaces/mqtt_stream_interface.rb +2 -0
- data/lib/openc3/interfaces/protocols/burst_protocol.rb +27 -0
- data/lib/openc3/interfaces/protocols/cmd_response_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/cobs_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/crc_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/fixed_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/ignore_packet_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/length_protocol.rb +7 -0
- data/lib/openc3/interfaces/protocols/preidentified_protocol.rb +7 -0
- data/lib/openc3/interfaces/protocols/protocol.rb +4 -4
- data/lib/openc3/interfaces/protocols/slip_protocol.rb +0 -0
- data/lib/openc3/interfaces/protocols/template_protocol.rb +2 -2
- data/lib/openc3/interfaces/protocols/terminated_protocol.rb +0 -0
- data/lib/openc3/interfaces/serial_interface.rb +2 -0
- data/lib/openc3/interfaces/simulated_target_interface.rb +0 -0
- data/lib/openc3/interfaces/stream_interface.rb +0 -0
- data/lib/openc3/interfaces/tcpip_client_interface.rb +2 -0
- data/lib/openc3/interfaces/tcpip_server_interface.rb +0 -0
- data/lib/openc3/interfaces/udp_interface.rb +16 -5
- data/lib/openc3/interfaces.rb +0 -0
- data/lib/openc3/io/buffered_file.rb +0 -0
- data/lib/openc3/io/io_multiplexer.rb +0 -0
- data/lib/openc3/io/json_api.rb +3 -2
- data/lib/openc3/io/json_api_object.rb +0 -0
- data/lib/openc3/io/json_drb.rb +44 -12
- data/lib/openc3/io/json_drb_object.rb +0 -0
- data/lib/openc3/io/json_drb_rack.rb +0 -0
- data/lib/openc3/io/json_rpc.rb +0 -2
- data/lib/openc3/io/posix_serial_driver.rb +0 -0
- data/lib/openc3/io/serial_driver.rb +0 -0
- data/lib/openc3/io/stderr.rb +0 -0
- data/lib/openc3/io/stdout.rb +0 -0
- data/lib/openc3/io/udp_sockets.rb +38 -8
- data/lib/openc3/io/win32_serial_driver.rb +1 -0
- data/lib/openc3/logs/buffered_packet_log_reader.rb +0 -0
- data/lib/openc3/logs/buffered_packet_log_writer.rb +0 -0
- data/lib/openc3/logs/log_writer.rb +43 -7
- data/lib/openc3/logs/packet_log_constants.rb +0 -0
- data/lib/openc3/logs/packet_log_reader.rb +23 -2
- data/lib/openc3/logs/packet_log_writer.rb +6 -2
- data/lib/openc3/logs/stream_log.rb +1 -1
- data/lib/openc3/logs/stream_log_pair.rb +0 -0
- data/lib/openc3/logs/text_log_writer.rb +0 -0
- data/lib/openc3/logs.rb +0 -0
- data/lib/openc3/microservices/cleanup_microservice.rb +0 -0
- data/lib/openc3/microservices/decom_common.rb +0 -0
- data/lib/openc3/microservices/decom_microservice.rb +0 -0
- data/lib/openc3/microservices/interface_decom_common.rb +2 -1
- data/lib/openc3/microservices/interface_microservice.rb +73 -26
- data/lib/openc3/microservices/log_microservice.rb +0 -0
- data/lib/openc3/microservices/microservice.rb +3 -3
- data/lib/openc3/microservices/multi_microservice.rb +1 -1
- data/lib/openc3/microservices/periodic_microservice.rb +2 -2
- data/lib/openc3/microservices/plugin_microservice.rb +0 -0
- data/lib/openc3/microservices/queue_microservice.rb +0 -0
- data/lib/openc3/microservices/router_microservice.rb +0 -0
- data/lib/openc3/microservices/scope_cleanup_microservice.rb +0 -0
- data/lib/openc3/microservices/text_log_microservice.rb +0 -0
- data/lib/openc3/migrations/20220420190000_log_stuff.rb +0 -0
- data/lib/openc3/migrations/20221202214600_add_target_names.rb +0 -0
- data/lib/openc3/migrations/20221210174900_convert_to_multi.rb +0 -0
- data/lib/openc3/migrations/20230915000002_no_scope_log_messages.rb +0 -0
- data/lib/openc3/migrations/20231022000000_tlm_viewer_config.rb +0 -0
- data/lib/openc3/migrations/20241208080000_no_critical_cmd.rb +0 -0
- data/lib/openc3/migrations/20241208080001_no_trigger_group.rb +0 -0
- data/lib/openc3/migrations/20250108060000_news_feed.rb +0 -0
- data/lib/openc3/migrations/20250402000000_periodic_only_default.rb +0 -0
- data/lib/openc3/migrations/20260203000000_remove_store_id.rb +0 -0
- data/lib/openc3/migrations/20260204000000_remove_decom_reducer.rb +0 -0
- data/lib/openc3/migrations/20260701000000_updated_at_to_int.rb +0 -0
- data/lib/openc3/migrations/20260704000000_default_bridge.rb +38 -0
- data/lib/openc3/migrations/20260731000000_system_health_json.rb +52 -0
- data/lib/openc3/models/activity_model.rb +0 -0
- data/lib/openc3/models/auth_model.rb +35 -7
- data/lib/openc3/models/bridge_model.rb +133 -0
- data/lib/openc3/models/config_keyword_model.rb +63 -0
- data/lib/openc3/models/cvt_model.rb +5 -5
- data/lib/openc3/models/db_sharded_model.rb +0 -0
- data/lib/openc3/models/environment_model.rb +0 -0
- data/lib/openc3/models/gem_model.rb +13 -10
- data/lib/openc3/models/host_interface_microservice_model.rb +114 -0
- data/lib/openc3/models/info_model.rb +0 -0
- data/lib/openc3/models/interface_model.rb +179 -20
- data/lib/openc3/models/interface_status_model.rb +0 -0
- data/lib/openc3/models/metadata_model.rb +0 -0
- data/lib/openc3/models/metric_model.rb +0 -0
- data/lib/openc3/models/microservice_model.rb +26 -18
- data/lib/openc3/models/microservice_status_model.rb +0 -0
- data/lib/openc3/models/migration_model.rb +0 -0
- data/lib/openc3/models/model.rb +0 -0
- data/lib/openc3/models/news_model.rb +0 -0
- data/lib/openc3/models/note_model.rb +0 -0
- data/lib/openc3/models/offline_access_model.rb +0 -0
- data/lib/openc3/models/ping_model.rb +0 -0
- data/lib/openc3/models/plugin_model.rb +211 -50
- data/lib/openc3/models/plugin_store_model.rb +0 -0
- data/lib/openc3/models/process_status_model.rb +0 -0
- data/lib/openc3/models/python_package_model.rb +211 -15
- data/lib/openc3/models/queue_model.rb +0 -0
- data/lib/openc3/models/reaction_model.rb +0 -0
- data/lib/openc3/models/reingest_job_model.rb +0 -0
- data/lib/openc3/models/router_model.rb +0 -0
- data/lib/openc3/models/router_status_model.rb +0 -0
- data/lib/openc3/models/scope_model.rb +85 -56
- data/lib/openc3/models/script_engine_model.rb +0 -0
- data/lib/openc3/models/script_status_model.rb +0 -0
- data/lib/openc3/models/secret_model.rb +0 -0
- data/lib/openc3/models/setting_model.rb +546 -3
- data/lib/openc3/models/sorted_model.rb +0 -0
- data/lib/openc3/models/stash_model.rb +0 -0
- data/lib/openc3/models/target_model.rb +210 -31
- data/lib/openc3/models/timeline_model.rb +0 -0
- data/lib/openc3/models/tool_config_model.rb +0 -0
- data/lib/openc3/models/tool_model.rb +34 -20
- data/lib/openc3/models/trigger_group_model.rb +0 -0
- data/lib/openc3/models/trigger_model.rb +20 -0
- data/lib/openc3/models/widget_model.rb +0 -0
- data/lib/openc3/operators/microservice_operator.rb +79 -8
- data/lib/openc3/operators/operator.rb +4 -4
- data/lib/openc3/packets/binary_accessor.rb +0 -0
- data/lib/openc3/packets/command_validator.rb +0 -0
- data/lib/openc3/packets/commands.rb +4 -4
- data/lib/openc3/packets/json_packet.rb +0 -0
- data/lib/openc3/packets/limits.rb +15 -7
- data/lib/openc3/packets/limits_response.rb +0 -0
- data/lib/openc3/packets/packet.rb +5 -1
- data/lib/openc3/packets/packet_config.rb +0 -0
- data/lib/openc3/packets/packet_item.rb +0 -0
- data/lib/openc3/packets/packet_item_limits.rb +0 -0
- data/lib/openc3/packets/parsers/format_string_parser.rb +0 -0
- data/lib/openc3/packets/parsers/limits_parser.rb +0 -0
- data/lib/openc3/packets/parsers/limits_response_parser.rb +0 -0
- data/lib/openc3/packets/parsers/packet_item_parser.rb +0 -0
- data/lib/openc3/packets/parsers/packet_parser.rb +0 -0
- data/lib/openc3/packets/parsers/processor_parser.rb +0 -0
- data/lib/openc3/packets/parsers/state_parser.rb +1 -1
- data/lib/openc3/packets/parsers/xtce_converter.rb +183 -103
- data/lib/openc3/packets/parsers/xtce_parser.rb +71 -23
- data/lib/openc3/packets/structure.rb +9 -3
- data/lib/openc3/packets/structure_item.rb +0 -0
- data/lib/openc3/packets/telemetry.rb +3 -3
- data/lib/openc3/processors/processor.rb +2 -0
- data/lib/openc3/processors/statistics_processor.rb +0 -0
- data/lib/openc3/processors/watermark_processor.rb +0 -0
- data/lib/openc3/processors.rb +0 -0
- data/lib/openc3/script/api_shared.rb +0 -0
- data/lib/openc3/script/autonomic.rb +12 -12
- data/lib/openc3/script/calendar.rb +0 -0
- data/lib/openc3/script/commands.rb +1 -1
- data/lib/openc3/script/critical_cmd.rb +0 -0
- data/lib/openc3/script/exceptions.rb +0 -0
- data/lib/openc3/script/extract.rb +20 -25
- data/lib/openc3/script/limits.rb +0 -0
- data/lib/openc3/script/metadata.rb +0 -0
- data/lib/openc3/script/packages.rb +0 -0
- data/lib/openc3/script/plugins.rb +0 -0
- data/lib/openc3/script/queue.rb +0 -0
- data/lib/openc3/script/screen.rb +0 -0
- data/lib/openc3/script/script.rb +2 -2
- data/lib/openc3/script/script_runner.rb +0 -0
- data/lib/openc3/script/storage.rb +4 -4
- data/lib/openc3/script/suite.rb +0 -0
- data/lib/openc3/script/suite_results.rb +0 -0
- data/lib/openc3/script/suite_runner.rb +26 -0
- data/lib/openc3/script/tables.rb +0 -0
- data/lib/openc3/script/telemetry.rb +9 -3
- data/lib/openc3/script/web_socket_api.rb +247 -134
- data/lib/openc3/script.rb +0 -0
- data/lib/openc3/script_engines/script_engine.rb +0 -0
- data/lib/openc3/streams/mqtt_stream.rb +0 -0
- data/lib/openc3/streams/serial_stream.rb +0 -0
- data/lib/openc3/streams/stream.rb +0 -0
- data/lib/openc3/streams/tcpip_client_stream.rb +0 -0
- data/lib/openc3/streams/tcpip_socket_stream.rb +0 -0
- data/lib/openc3/streams/web_socket_client_stream.rb +0 -0
- data/lib/openc3/subpacketizers/subpacketizer.rb +0 -0
- data/lib/openc3/system/system.rb +0 -0
- data/lib/openc3/system/target.rb +0 -0
- data/lib/openc3/system.rb +0 -0
- data/lib/openc3/tools/cmd_tlm_server/api.rb +0 -0
- data/lib/openc3/tools/cmd_tlm_server/interface_thread.rb +7 -0
- data/lib/openc3/tools/table_manager/table.rb +0 -0
- data/lib/openc3/tools/table_manager/table_config.rb +0 -0
- data/lib/openc3/tools/table_manager/table_item.rb +0 -0
- data/lib/openc3/tools/table_manager/table_item_parser.rb +0 -0
- data/lib/openc3/tools/table_manager/table_manager_core.rb +0 -0
- data/lib/openc3/tools/table_manager/table_parser.rb +0 -0
- data/lib/openc3/tools/test_runner/test.rb +0 -0
- data/lib/openc3/top_level.rb +1 -1
- data/lib/openc3/topics/autonomic_topic.rb +0 -0
- data/lib/openc3/topics/calendar_topic.rb +0 -0
- data/lib/openc3/topics/command_decom_topic.rb +16 -1
- data/lib/openc3/topics/command_topic.rb +0 -0
- data/lib/openc3/topics/config_topic.rb +0 -0
- data/lib/openc3/topics/decom_interface_topic.rb +2 -1
- data/lib/openc3/topics/interface_topic.rb +8 -2
- data/lib/openc3/topics/limits_event_topic.rb +1 -1
- data/lib/openc3/topics/notebook_topic.rb +0 -0
- data/lib/openc3/topics/queue_topic.rb +0 -0
- data/lib/openc3/topics/router_topic.rb +6 -1
- data/lib/openc3/topics/system_events_topic.rb +0 -0
- data/lib/openc3/topics/telemetry_decom_topic.rb +0 -0
- data/lib/openc3/topics/telemetry_topic.rb +0 -0
- data/lib/openc3/topics/timeline_topic.rb +0 -0
- data/lib/openc3/topics/topic.rb +0 -0
- data/lib/openc3/utilities/authentication.rb +4 -4
- data/lib/openc3/utilities/authorization.rb +0 -0
- data/lib/openc3/utilities/aws_bucket.rb +12 -4
- data/lib/openc3/utilities/bucket.rb +1 -1
- data/lib/openc3/utilities/bucket_file_cache.rb +55 -22
- data/lib/openc3/utilities/bucket_require.rb +0 -0
- data/lib/openc3/utilities/bucket_utilities.rb +3 -4
- data/lib/openc3/utilities/cli_generator.rb +0 -0
- data/lib/openc3/utilities/cmd_log.rb +0 -0
- data/lib/openc3/utilities/config_overlay.rb +75 -0
- data/lib/openc3/utilities/cosmos_rails_formatter.rb +0 -0
- data/lib/openc3/utilities/crc.rb +59 -32
- data/lib/openc3/utilities/csv.rb +5 -5
- data/lib/openc3/utilities/ctrf.rb +0 -0
- data/lib/openc3/utilities/env_helper.rb +0 -0
- data/lib/openc3/utilities/local_bucket.rb +0 -0
- data/lib/openc3/utilities/local_mode.rb +36 -7
- data/lib/openc3/utilities/logger.rb +30 -8
- data/lib/openc3/utilities/message_log.rb +0 -0
- data/lib/openc3/utilities/metric.rb +0 -0
- data/lib/openc3/utilities/migration.rb +0 -0
- data/lib/openc3/utilities/open_telemetry.rb +0 -0
- data/lib/openc3/utilities/process_manager.rb +0 -0
- data/lib/openc3/utilities/pypi_url.rb +0 -0
- data/lib/openc3/utilities/python_proxy.rb +0 -0
- data/lib/openc3/utilities/python_venv.rb +135 -0
- data/lib/openc3/utilities/quaternion.rb +0 -0
- data/lib/openc3/utilities/questdb_client.rb +0 -0
- data/lib/openc3/utilities/redis_secrets.rb +0 -0
- data/lib/openc3/utilities/reingest_job.rb +0 -0
- data/lib/openc3/utilities/ruby_lex_utils.rb +5 -1
- data/lib/openc3/utilities/rubygems_url.rb +39 -0
- data/lib/openc3/utilities/running_script.rb +119 -95
- data/lib/openc3/utilities/s3_autoload.rb +5 -5
- data/lib/openc3/utilities/script.rb +52 -12
- data/lib/openc3/utilities/secrets.rb +48 -3
- data/lib/openc3/utilities/simulated_target.rb +0 -0
- data/lib/openc3/utilities/sleeper.rb +0 -0
- data/lib/openc3/utilities/store.rb +0 -0
- data/lib/openc3/utilities/store_autoload.rb +2 -2
- data/lib/openc3/utilities/store_queued.rb +0 -0
- data/lib/openc3/utilities/target_file.rb +18 -1
- data/lib/openc3/utilities/thread_manager.rb +0 -0
- data/lib/openc3/utilities/throttle.rb +0 -0
- data/lib/openc3/utilities/zip.rb +0 -0
- data/lib/openc3/utilities.rb +0 -0
- data/lib/openc3/version.rb +6 -6
- data/lib/openc3/win32/excel.rb +0 -0
- data/lib/openc3/win32/win32.rb +0 -0
- data/lib/openc3/win32/win32_main.rb +0 -0
- data/lib/openc3.rb +2 -2
- data/tasks/gemfile_stats.rake +0 -0
- data/tasks/spec.rake +0 -0
- data/templates/command_validator/command_validator.py +0 -0
- data/templates/command_validator/command_validator.rb +0 -0
- data/templates/conversion/conversion.py +0 -0
- data/templates/conversion/conversion.rb +0 -0
- data/templates/limits_response/response.py +0 -0
- data/templates/limits_response/response.rb +0 -0
- data/templates/microservice/microservices/TEMPLATE/microservice.py +0 -0
- data/templates/microservice/microservices/TEMPLATE/microservice.rb +0 -0
- data/templates/plugin/.gitignore +0 -0
- data/templates/plugin/LICENSE.md +0 -0
- data/templates/plugin/README.md +0 -0
- data/templates/plugin/Rakefile +0 -0
- data/templates/plugin/plugin.gemspec +1 -1
- data/templates/plugin/plugin.txt +0 -0
- data/templates/processor/processor.py +1 -1
- data/templates/processor/processor.rb +0 -0
- data/templates/target/targets/TARGET/cmd_tlm/cmd.txt +0 -0
- data/templates/target/targets/TARGET/cmd_tlm/tlm.txt +0 -0
- data/templates/target/targets/TARGET/lib/target.py +0 -0
- data/templates/target/targets/TARGET/lib/target.rb +0 -0
- data/templates/target/targets/TARGET/procedures/procedure.py +0 -0
- data/templates/target/targets/TARGET/procedures/procedure.rb +0 -0
- data/templates/target/targets/TARGET/public/README.txt +0 -0
- data/templates/target/targets/TARGET/screens/status.txt +0 -0
- data/templates/target/targets/TARGET/target.txt +0 -0
- data/templates/tool_angular/.editorconfig +0 -0
- data/templates/tool_angular/.gitignore +0 -0
- data/templates/tool_angular/.vscode/extensions.json +0 -0
- data/templates/tool_angular/.vscode/launch.json +0 -0
- data/templates/tool_angular/.vscode/tasks.json +0 -0
- data/templates/tool_angular/angular.json +0 -0
- data/templates/tool_angular/extra-webpack.config.js +0 -0
- data/templates/tool_angular/package.json +2 -2
- data/templates/tool_angular/src/app/app-routing.module.ts +0 -0
- data/templates/tool_angular/src/app/app.component.html +0 -0
- data/templates/tool_angular/src/app/app.component.scss +0 -0
- data/templates/tool_angular/src/app/app.component.spec.ts +0 -0
- data/templates/tool_angular/src/app/app.component.ts +0 -0
- data/templates/tool_angular/src/app/app.module.ts +0 -0
- data/templates/tool_angular/src/app/custom-overlay-container.ts +0 -0
- data/templates/tool_angular/src/app/empty-route/empty-route.component.ts +0 -0
- data/templates/tool_angular/src/app/openc3-api.d.ts +0 -0
- data/templates/tool_angular/src/assets/.gitkeep +0 -0
- data/templates/tool_angular/src/environments/environment.prod.ts +0 -0
- data/templates/tool_angular/src/environments/environment.ts +0 -0
- data/templates/tool_angular/src/favicon.ico +0 -0
- data/templates/tool_angular/src/index.html +0 -0
- data/templates/tool_angular/src/main.single-spa.ts +0 -0
- data/templates/tool_angular/src/single-spa/asset-url.ts +0 -0
- data/templates/tool_angular/src/single-spa/single-spa-props.ts +0 -0
- data/templates/tool_angular/src/styles.scss +0 -0
- data/templates/tool_angular/tsconfig.app.json +0 -0
- data/templates/tool_angular/tsconfig.json +0 -0
- data/templates/tool_angular/tsconfig.spec.json +0 -0
- data/templates/tool_react/.eslintrc +0 -0
- data/templates/tool_react/.gitignore +0 -0
- data/templates/tool_react/.prettierignore +0 -0
- data/templates/tool_react/babel.config.json +0 -0
- data/templates/tool_react/jest.config.js +0 -0
- data/templates/tool_react/package.json +1 -1
- data/templates/tool_react/src/openc3-tool_name.js +0 -0
- data/templates/tool_react/src/root.component.js +0 -0
- data/templates/tool_react/src/root.component.test.js +0 -0
- data/templates/tool_react/webpack.config.js +0 -0
- data/templates/tool_svelte/.gitignore +0 -0
- data/templates/tool_svelte/.prettierignore +0 -0
- data/templates/tool_svelte/.prettierrc.js +0 -0
- data/templates/tool_svelte/babel.config.js +0 -0
- data/templates/tool_svelte/build/smui.css +0 -0
- data/templates/tool_svelte/jest.config.js +0 -0
- data/templates/tool_svelte/package.json +1 -1
- data/templates/tool_svelte/rollup.config.js +0 -0
- data/templates/tool_svelte/src/App.svelte +0 -0
- data/templates/tool_svelte/src/App.test.js +0 -0
- data/templates/tool_svelte/src/theme/_smui-theme.scss +0 -0
- data/templates/tool_svelte/src/tool_name.js +0 -0
- data/templates/tool_vue/.env.standalone +0 -0
- data/templates/tool_vue/.gitignore +0 -0
- data/templates/tool_vue/.prettierrc.cjs +0 -0
- data/templates/tool_vue/eslint.config.mjs +0 -0
- data/templates/tool_vue/jsconfig.json +0 -0
- data/templates/tool_vue/package.json +3 -3
- data/templates/tool_vue/src/App.vue +0 -0
- data/templates/tool_vue/src/main.js +0 -0
- data/templates/tool_vue/src/router.js +0 -0
- data/templates/tool_vue/src/tools/tool_name/tool_name.vue +0 -0
- data/templates/tool_vue/vite.config.js +1 -1
- data/templates/widget/.prettierrc.cjs +0 -0
- data/templates/widget/LICENSE.md +0 -0
- data/templates/widget/Rakefile +0 -0
- data/templates/widget/package.json +2 -2
- data/templates/widget/src/Widget.vue +0 -0
- data/templates/widget/vite.config.js +0 -0
- metadata +40 -11
- data/templates/tool_vue/.nycrc +0 -3
- data/templates/widget/.nycrc +0 -3
|
@@ -59,7 +59,7 @@ module OpenC3
|
|
|
59
59
|
def packets(target_name)
|
|
60
60
|
upcase_target_name = target_name.to_s.upcase
|
|
61
61
|
target_packets = @config.telemetry[upcase_target_name]
|
|
62
|
-
raise "Telemetry target '#{upcase_target_name}' does not exist" unless target_packets
|
|
62
|
+
raise "Telemetry target '#{upcase_target_name}' does not exist (packets lookup)" unless target_packets
|
|
63
63
|
|
|
64
64
|
target_packets
|
|
65
65
|
end
|
|
@@ -177,7 +177,7 @@ module OpenC3
|
|
|
177
177
|
if LATEST_PACKET_NAME.casecmp(packet_name).zero?
|
|
178
178
|
target_upcase = target_name.to_s.upcase
|
|
179
179
|
target_latest_data = @config.latest_data[target_upcase]
|
|
180
|
-
raise "Telemetry
|
|
180
|
+
raise "Telemetry target '#{target_upcase}' does not exist (item_names lookup)" unless target_latest_data
|
|
181
181
|
|
|
182
182
|
item_names = target_latest_data.keys
|
|
183
183
|
else
|
|
@@ -208,7 +208,7 @@ module OpenC3
|
|
|
208
208
|
target_upcase = target_name.to_s.upcase
|
|
209
209
|
item_upcase = item_name.to_s.upcase
|
|
210
210
|
target_latest_data = @config.latest_data[target_upcase]
|
|
211
|
-
raise "Telemetry target '#{target_upcase}' does not exist" unless target_latest_data
|
|
211
|
+
raise "Telemetry target '#{target_upcase}' does not exist (latest_packets lookup)" unless target_latest_data
|
|
212
212
|
|
|
213
213
|
packets = @config.latest_data[target_upcase][item_upcase]
|
|
214
214
|
raise "Telemetry item '#{target_upcase} #{LATEST_PACKET_NAME} #{item_upcase}' does not exist" unless packets
|
|
File without changes
|
|
File without changes
|
data/lib/openc3/processors.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -67,7 +67,7 @@ module OpenC3
|
|
|
67
67
|
if response.nil? || response.status != 200
|
|
68
68
|
if response
|
|
69
69
|
parsed = JSON.parse(response.body)
|
|
70
|
-
raise "autonomic_group_destroy error: #{parsed['
|
|
70
|
+
raise "autonomic_group_destroy error: #{parsed['message']}"
|
|
71
71
|
else
|
|
72
72
|
raise "autonomic_group_destroy failed"
|
|
73
73
|
end
|
|
@@ -105,7 +105,7 @@ module OpenC3
|
|
|
105
105
|
if response.nil? || response.status != 201
|
|
106
106
|
if response
|
|
107
107
|
parsed = JSON.parse(response.body)
|
|
108
|
-
raise "autonomic_trigger_create error: #{parsed['
|
|
108
|
+
raise "autonomic_trigger_create error: #{parsed['message']}"
|
|
109
109
|
else
|
|
110
110
|
raise "autonomic_trigger_create failed"
|
|
111
111
|
end
|
|
@@ -136,7 +136,7 @@ module OpenC3
|
|
|
136
136
|
if response.nil? || response.status != 200
|
|
137
137
|
if response
|
|
138
138
|
parsed = JSON.parse(response.body)
|
|
139
|
-
raise "autonomic_trigger_enable error: #{parsed['
|
|
139
|
+
raise "autonomic_trigger_enable error: #{parsed['message']}"
|
|
140
140
|
else
|
|
141
141
|
raise "autonomic_trigger_enable failed"
|
|
142
142
|
end
|
|
@@ -154,7 +154,7 @@ module OpenC3
|
|
|
154
154
|
if response.nil? || response.status != 200
|
|
155
155
|
if response
|
|
156
156
|
parsed = JSON.parse(response.body)
|
|
157
|
-
raise "autonomic_trigger_disable error: #{parsed['
|
|
157
|
+
raise "autonomic_trigger_disable error: #{parsed['message']}"
|
|
158
158
|
else
|
|
159
159
|
raise "autonomic_trigger_disable failed"
|
|
160
160
|
end
|
|
@@ -176,7 +176,7 @@ module OpenC3
|
|
|
176
176
|
if response.nil? || response.status != 200
|
|
177
177
|
if response
|
|
178
178
|
parsed = JSON.parse(response.body)
|
|
179
|
-
raise "autonomic_trigger_update error: #{parsed['
|
|
179
|
+
raise "autonomic_trigger_update error: #{parsed['message']}"
|
|
180
180
|
else
|
|
181
181
|
raise "autonomic_trigger_update failed"
|
|
182
182
|
end
|
|
@@ -194,7 +194,7 @@ module OpenC3
|
|
|
194
194
|
if response.nil? || response.status != 200
|
|
195
195
|
if response
|
|
196
196
|
parsed = JSON.parse(response.body)
|
|
197
|
-
raise "autonomic_trigger_destroy error: #{parsed['
|
|
197
|
+
raise "autonomic_trigger_destroy error: #{parsed['message']}"
|
|
198
198
|
else
|
|
199
199
|
raise "autonomic_trigger_destroy failed"
|
|
200
200
|
end
|
|
@@ -232,7 +232,7 @@ module OpenC3
|
|
|
232
232
|
if response.nil? || response.status != 201
|
|
233
233
|
if response
|
|
234
234
|
parsed = JSON.parse(response.body)
|
|
235
|
-
raise "autonomic_reaction_create error: #{parsed['
|
|
235
|
+
raise "autonomic_reaction_create error: #{parsed['message']}"
|
|
236
236
|
else
|
|
237
237
|
raise "autonomic_reaction_create failed"
|
|
238
238
|
end
|
|
@@ -263,7 +263,7 @@ module OpenC3
|
|
|
263
263
|
if response.nil? || response.status != 200
|
|
264
264
|
if response
|
|
265
265
|
parsed = JSON.parse(response.body)
|
|
266
|
-
raise "autonomic_reaction_enable error: #{parsed['
|
|
266
|
+
raise "autonomic_reaction_enable error: #{parsed['message']}"
|
|
267
267
|
else
|
|
268
268
|
raise "autonomic_reaction_enable failed"
|
|
269
269
|
end
|
|
@@ -281,7 +281,7 @@ module OpenC3
|
|
|
281
281
|
if response.nil? || response.status != 200
|
|
282
282
|
if response
|
|
283
283
|
parsed = JSON.parse(response.body)
|
|
284
|
-
raise "autonomic_reaction_disable error: #{parsed['
|
|
284
|
+
raise "autonomic_reaction_disable error: #{parsed['message']}"
|
|
285
285
|
else
|
|
286
286
|
raise "autonomic_reaction_disable failed"
|
|
287
287
|
end
|
|
@@ -299,7 +299,7 @@ module OpenC3
|
|
|
299
299
|
if response.nil? || response.status != 200
|
|
300
300
|
if response
|
|
301
301
|
parsed = JSON.parse(response.body)
|
|
302
|
-
raise "autonomic_reaction_execute error: #{parsed['
|
|
302
|
+
raise "autonomic_reaction_execute error: #{parsed['message']}"
|
|
303
303
|
else
|
|
304
304
|
raise "autonomic_reaction_execute failed"
|
|
305
305
|
end
|
|
@@ -322,7 +322,7 @@ module OpenC3
|
|
|
322
322
|
if response.nil? || response.status != 200
|
|
323
323
|
if response
|
|
324
324
|
parsed = JSON.parse(response.body)
|
|
325
|
-
raise "autonomic_reaction_update error: #{parsed['
|
|
325
|
+
raise "autonomic_reaction_update error: #{parsed['message']}"
|
|
326
326
|
else
|
|
327
327
|
raise "autonomic_reaction_update failed"
|
|
328
328
|
end
|
|
@@ -340,7 +340,7 @@ module OpenC3
|
|
|
340
340
|
if response.nil? || response.status != 200
|
|
341
341
|
if response
|
|
342
342
|
parsed = JSON.parse(response.body)
|
|
343
|
-
raise "autonomic_reaction_destroy error: #{parsed['
|
|
343
|
+
raise "autonomic_reaction_destroy error: #{parsed['message']}"
|
|
344
344
|
else
|
|
345
345
|
raise "autonomic_reaction_destroy failed"
|
|
346
346
|
end
|
|
File without changes
|
|
@@ -106,7 +106,7 @@ module OpenC3
|
|
|
106
106
|
cmd_params.each do |param_name, _param_value|
|
|
107
107
|
param = command['items'].find { |item| item['name'] == param_name }
|
|
108
108
|
unless param
|
|
109
|
-
raise "
|
|
109
|
+
raise "Item '#{target_name} #{cmd_name} #{param_name}' does not exist (command parameter validation)"
|
|
110
110
|
end
|
|
111
111
|
end
|
|
112
112
|
_log_cmd(command, raw, no_range, no_hazardous)
|
|
File without changes
|
|
File without changes
|
|
@@ -20,7 +20,11 @@ require 'openc3/utilities/store'
|
|
|
20
20
|
|
|
21
21
|
module OpenC3
|
|
22
22
|
module Extract
|
|
23
|
-
|
|
23
|
+
# Tokenizer for command parameters: matches double quoted strings, single quoted strings,
|
|
24
|
+
# bracket delimited arrays (one level of nesting), a bare comma delimiter, or bare words
|
|
25
|
+
# (runs of non-whitespace, non-comma characters). Commas are tokenized separately so
|
|
26
|
+
# whitespace around them is optional.
|
|
27
|
+
SCANNING_REGULAR_EXPRESSION = %r{ (?:"(?:[^\\"]|\\.)*") | (?:'(?:[^\\']|\\.)*') | (?:\[(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*\]) | , | [^\s,]+ }x # "
|
|
24
28
|
|
|
25
29
|
private
|
|
26
30
|
|
|
@@ -88,35 +92,26 @@ module OpenC3
|
|
|
88
92
|
second_half = split_string[1].scan(SCANNING_REGULAR_EXPRESSION)
|
|
89
93
|
keyword = nil
|
|
90
94
|
value = nil
|
|
91
|
-
comma = nil
|
|
92
95
|
second_half.each do |item|
|
|
93
|
-
|
|
96
|
+
if item == ','
|
|
97
|
+
# A comma completes the current keyword / value pair.
|
|
98
|
+
# A comma with nothing pending is a leading or duplicated comma.
|
|
99
|
+
raise "Missing command parameter before comma: #{text}" unless keyword
|
|
100
|
+
raise "Missing value for last command parameter: #{text}" unless value
|
|
101
|
+
add_cmd_parameter(keyword, value, packet, cmd_params)
|
|
102
|
+
keyword = nil
|
|
103
|
+
value = nil
|
|
104
|
+
elsif keyword.nil?
|
|
94
105
|
keyword = item
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
value = item[0..-2]
|
|
100
|
-
comma = true
|
|
101
|
-
else
|
|
102
|
-
value = item
|
|
103
|
-
next
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
unless comma
|
|
107
|
-
raise "Missing comma in command parameters: #{text}" if item != ','
|
|
106
|
+
elsif value.nil?
|
|
107
|
+
value = item
|
|
108
|
+
else
|
|
109
|
+
raise "Missing comma in command parameters: #{text}"
|
|
108
110
|
end
|
|
109
|
-
add_cmd_parameter(keyword, value, packet, cmd_params)
|
|
110
|
-
keyword = nil
|
|
111
|
-
value = nil
|
|
112
|
-
comma = nil
|
|
113
111
|
end
|
|
114
112
|
if keyword
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
else
|
|
118
|
-
raise "Missing value for last command parameter: #{text}"
|
|
119
|
-
end
|
|
113
|
+
raise "Missing value for last command parameter: #{text}" unless value
|
|
114
|
+
add_cmd_parameter(keyword, value, packet, cmd_params)
|
|
120
115
|
end
|
|
121
116
|
end
|
|
122
117
|
|
data/lib/openc3/script/limits.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/openc3/script/queue.rb
CHANGED
|
File without changes
|
data/lib/openc3/script/screen.rb
CHANGED
|
File without changes
|
data/lib/openc3/script/script.rb
CHANGED
|
@@ -241,7 +241,7 @@ module OpenC3
|
|
|
241
241
|
# script_run("INST/procedures/collect.rb")
|
|
242
242
|
#
|
|
243
243
|
def initialize_offline_access
|
|
244
|
-
keycloak_url = ENV
|
|
244
|
+
keycloak_url = ENV.fetch('OPENC3_KEYCLOAK_URL', nil)
|
|
245
245
|
if keycloak_url.nil? or keycloak_url.empty?
|
|
246
246
|
raise "initialize_offline_access only valid in COSMOS Enterprise. OPENC3_KEYCLOAK_URL environment variable must be set."
|
|
247
247
|
end
|
|
@@ -383,4 +383,4 @@ module OpenC3
|
|
|
383
383
|
end
|
|
384
384
|
end
|
|
385
385
|
|
|
386
|
-
$VERBOSE = saved_verbose
|
|
386
|
+
$VERBOSE = saved_verbose
|
|
File without changes
|
|
@@ -169,17 +169,17 @@ module OpenC3
|
|
|
169
169
|
|
|
170
170
|
def _get_uri(url)
|
|
171
171
|
if $openc3_in_cluster
|
|
172
|
-
case ENV
|
|
172
|
+
case ENV.fetch('OPENC3_CLOUD', nil)
|
|
173
173
|
when 'local'
|
|
174
|
-
bucket_url = ENV
|
|
174
|
+
bucket_url = ENV.fetch("OPENC3_BUCKET_URL", "http://openc3-buckets:9000")
|
|
175
175
|
URI.parse("#{bucket_url}#{url}")
|
|
176
176
|
when 'aws'
|
|
177
|
-
URI.parse("https://s3.#{ENV
|
|
177
|
+
URI.parse("https://s3.#{ENV.fetch('AWS_REGION')}.amazonaws.com" + url)
|
|
178
178
|
when 'gcp'
|
|
179
179
|
URI.parse("https://storage.googleapis.com" + url)
|
|
180
180
|
# when 'azure'
|
|
181
181
|
else
|
|
182
|
-
raise "Unknown cloud #{ENV
|
|
182
|
+
raise "Unknown cloud #{ENV.fetch('OPENC3_CLOUD', nil)}"
|
|
183
183
|
end
|
|
184
184
|
else
|
|
185
185
|
URI.parse($api_server.generate_url + url)
|
data/lib/openc3/script/suite.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -30,6 +30,12 @@ module OpenC3
|
|
|
30
30
|
# the values stay consistent in one place.
|
|
31
31
|
DEFAULT_METHOD = 'start'
|
|
32
32
|
DEFAULT_OPTIONS = ['continueAfterError'].freeze
|
|
33
|
+
# The only SuiteRunner entry points a client may request
|
|
34
|
+
ALLOWED_METHODS = ['start', 'setup', 'teardown'].freeze
|
|
35
|
+
# Suite and Group are Ruby constant (class) names, optionally namespaced
|
|
36
|
+
CLASS_NAME_REGEX = /\A[A-Z]\w*(::[A-Z]\w*)*\z/
|
|
37
|
+
# Script is a Ruby method name on the Group
|
|
38
|
+
METHOD_NAME_REGEX = /\A[a-z_]\w*[?!]?\z/
|
|
33
39
|
|
|
34
40
|
@@suites = []
|
|
35
41
|
@@settings = {}
|
|
@@ -55,12 +61,32 @@ module OpenC3
|
|
|
55
61
|
raise ArgumentError, "Script #{script} requires a Group" if script and not group
|
|
56
62
|
end
|
|
57
63
|
|
|
64
|
+
# Validate that the raw (client supplied) suite_runner values are plain
|
|
65
|
+
# identifiers. These values are interpolated into the Ruby snippet the
|
|
66
|
+
# running script evaluates, so anything other than a bare class / method
|
|
67
|
+
# name must be rejected before it reaches the interpreter.
|
|
68
|
+
def self.validate_identifiers(suite:, group: nil, script: nil, method: nil)
|
|
69
|
+
unless suite.is_a?(String) and CLASS_NAME_REGEX.match?(suite)
|
|
70
|
+
raise ArgumentError, "Invalid Suite name: #{suite.inspect}"
|
|
71
|
+
end
|
|
72
|
+
if group && !(group.is_a?(String) and CLASS_NAME_REGEX.match?(group))
|
|
73
|
+
raise ArgumentError, "Invalid Group name: #{group.inspect}"
|
|
74
|
+
end
|
|
75
|
+
if script && !(script.is_a?(String) and METHOD_NAME_REGEX.match?(script))
|
|
76
|
+
raise ArgumentError, "Invalid Script name: #{script.inspect}"
|
|
77
|
+
end
|
|
78
|
+
if method && !ALLOWED_METHODS.include?(method.to_s)
|
|
79
|
+
raise ArgumentError, "Invalid method: #{method.inspect}"
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
58
83
|
# Build the canonical, validated suite_runner hash from raw values,
|
|
59
84
|
# applying defaults. Shared by openc3cli (constructing from CLI flags) and
|
|
60
85
|
# the running script (normalizing a received hash before dispatch) so the
|
|
61
86
|
# hash shape, defaults, and validation live in one place.
|
|
62
87
|
def self.build_options(suite:, group: nil, script: nil, method: nil, options: nil)
|
|
63
88
|
validate_options(group: group, script: script)
|
|
89
|
+
validate_identifiers(suite: suite, group: group, script: script, method: method)
|
|
64
90
|
suite_runner = { 'suite' => suite }
|
|
65
91
|
if group
|
|
66
92
|
suite_runner['group'] = group
|
data/lib/openc3/script/tables.rb
CHANGED
|
File without changes
|
|
@@ -40,9 +40,15 @@ module OpenC3
|
|
|
40
40
|
# inject_tlm, set_tlm, override_tlm, and normalize_tlm are implemented here simply to add a puts
|
|
41
41
|
# these methods modify the telemetry so the user should be notified in the Script Runner log messages
|
|
42
42
|
|
|
43
|
-
def inject_tlm(target_name, packet_name, item_hash = nil, type: :CONVERTED, stored: false, scope: $openc3_scope, token: $openc3_token)
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
def inject_tlm(target_name, packet_name, item_hash = nil, type: :CONVERTED, stored: false, received_time: nil, scope: $openc3_scope, token: $openc3_token)
|
|
44
|
+
message = "inject_tlm(\"#{target_name}\", \"#{packet_name}\", #{item_hash}, type: #{type}, stored: #{stored}"
|
|
45
|
+
kwargs = { type: type, stored: stored, scope: scope, token: token }
|
|
46
|
+
unless received_time.nil?
|
|
47
|
+
message << ", received_time: #{received_time}"
|
|
48
|
+
kwargs[:received_time] = received_time
|
|
49
|
+
end
|
|
50
|
+
puts "#{message})"
|
|
51
|
+
$api_server.method_missing(:inject_tlm, target_name, packet_name, item_hash, **kwargs)
|
|
46
52
|
end
|
|
47
53
|
|
|
48
54
|
def set_tlm(*args, type: :ALL, scope: $openc3_scope, token: $openc3_token)
|