cosmos 4.3.0-java → 4.4.0-java
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/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- data/.github/ISSUE_TEMPLATE/help---usage---general-question.md +12 -0
- data/.gitignore +1 -0
- data/.travis.yml +5 -5
- data/Manifest.txt +81 -44
- data/Rakefile +9 -0
- data/appveyor.yml +2 -1
- data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
- data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
- data/autohotkey/config/targets/INST/lib/sim_inst.rb +3 -1
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +2 -4
- data/autohotkey/config/tools/table_manager/SubTables/OneDimensionalSubTable_def.txt +31 -0
- data/autohotkey/config/tools/table_manager/SubTables/TwoDimensionalSubTable_def.txt +28 -0
- data/autohotkey/config/tools/test_runner/test_runner.txt +1 -1
- data/autohotkey/config/tools/test_runner/test_runner2.txt +1 -1
- data/autohotkey/config/tools/test_runner/test_runner3.txt +1 -1
- data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
- data/autohotkey/tools/limits_monitor.ahk +1 -1
- data/autohotkey/tools/packet_viewer.ahk +1 -1
- data/autohotkey/tools/script_runner.ahk +16 -4
- data/bin/cosmos +1 -1
- data/bin/xtce_converter +1 -1
- data/cosmos.gemspec +5 -7
- data/data/config/_interfaces.yaml +4 -0
- data/data/config/cmd_sequence.yaml +14 -0
- data/data/config/housekeeping_params.yaml +14 -0
- data/data/config/interface_modifiers.yaml +11 -0
- data/data/config/item_modifiers.yaml +2 -1
- data/data/config/launcher.yaml +12 -2
- data/data/config/param_item_modifiers.yaml +2 -2
- data/data/config/parameter_modifiers.yaml +20 -0
- data/data/config/screen.yaml +2 -0
- data/data/config/script_runner.yaml +9 -0
- data/data/config/system.yaml +47 -10
- data/data/config/table_manager.yaml +7 -0
- data/data/config/target.yaml +12 -0
- data/data/config/telemetry_modifiers.yaml +3 -1
- data/data/config/test_runner.yaml +10 -9
- data/data/config/widgets.yaml +174 -11
- data/data/crc.txt +128 -125
- data/demo/Gemfile +1 -1
- data/demo/Launcher.bat +1 -9
- data/demo/Launcher2.bat +1 -0
- data/demo/LauncherMini.bat +1 -0
- data/demo/config/data/crc.txt +40 -20
- data/demo/config/system/system.txt +1 -1
- data/demo/config/system/system_alt_ports.txt +1 -1
- data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +1 -0
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +2 -1
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +7 -7
- data/demo/config/targets/INST/cmd_tlm_server.txt +2 -0
- data/demo/config/targets/INST/lib/sim_inst.rb +15 -3
- data/demo/config/targets/INST/screens/adcs.txt +2 -2
- data/demo/config/targets/INST/screens/block.txt +1 -1
- data/demo/config/targets/INST/screens/commanding.txt +1 -1
- data/demo/config/targets/INST/screens/ground.txt +27 -5
- data/demo/config/targets/INST/screens/ground_error.gif +0 -0
- data/demo/config/{data/groundoff.gif → targets/INST/screens/ground_off.gif} +0 -0
- data/demo/config/{data/groundon.gif → targets/INST/screens/ground_on.gif} +0 -0
- data/demo/config/targets/INST/screens/limits.txt +69 -31
- data/demo/config/targets/INST/screens/other.txt +13 -3
- data/demo/config/targets/INST/screens/params.txt +54 -0
- data/demo/config/targets/INST/screens/satellite.gif +0 -0
- data/demo/config/tools/data_viewer/data_viewer.txt +3 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/demo/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
- data/demo/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
- data/demo/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
- data/demo/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/demo/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/demo/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
- data/demo/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
- data/demo/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
- data/demo/config/tools/script_runner/script_runner.txt +1 -2
- data/demo/config/tools/test_runner/test_runner.txt +3 -1
- data/demo/lib/example_background_task.rb +1 -0
- data/demo/procedures/cosmos_api_test.rb +1 -1
- data/demo/procedures/interactive.rb +22 -0
- data/ext/cosmos/ext/packet/packet.c +0 -77
- data/install/Gemfile +1 -1
- data/install/Launcher.bat +1 -9
- data/install/config/data/crc.txt +17 -1
- data/install/config/system/system.txt +1 -1
- data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/install/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/install/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/install/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
- data/install/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
- data/install/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
- data/install/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/install/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/install/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
- data/install/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
- data/install/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
- data/lib/cosmos/config/config_parser.rb +4 -5
- data/lib/cosmos/dart/lib/dart_common.rb +1 -1
- data/lib/cosmos/gui/dialogs/details_dialog.rb +16 -1
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +1 -0
- data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +4 -2
- data/lib/cosmos/gui/opengl/earth_model.rb +1 -1
- data/lib/cosmos/gui/qt.rb +3 -1
- data/lib/cosmos/gui/qt_tool.rb +46 -23
- data/lib/cosmos/gui/text/ruby_editor.rb +44 -41
- data/lib/cosmos/gui/utilities/screenshot.rb +1 -1
- data/lib/cosmos/gui/utilities/script_module_gui.rb +92 -92
- data/lib/cosmos/interfaces.rb +1 -0
- data/lib/cosmos/interfaces/interface.rb +5 -1
- data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +40 -18
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +6 -1
- data/lib/cosmos/interfaces/simulated_target_interface.rb +14 -5
- data/lib/cosmos/io/json_drb.rb +11 -7
- data/lib/cosmos/packets/commands.rb +28 -11
- data/lib/cosmos/packets/packet.rb +69 -32
- data/lib/cosmos/packets/packet_config.rb +34 -1
- data/lib/cosmos/packets/parsers/state_parser.rb +0 -1
- data/lib/cosmos/packets/parsers/xtce_converter.rb +2 -0
- data/lib/cosmos/packets/parsers/xtce_parser.rb +4 -3
- data/lib/cosmos/packets/structure.rb +4 -2
- data/lib/cosmos/packets/telemetry.rb +19 -3
- data/lib/cosmos/script/api_shared.rb +12 -9
- data/lib/cosmos/script/scripting.rb +16 -14
- data/lib/cosmos/system/system.rb +39 -20
- data/lib/cosmos/system/target.rb +39 -9
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +94 -35
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +3 -0
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +2 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +30 -4
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +1 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +9 -12
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +5 -2
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +2 -0
- data/lib/cosmos/tools/config_editor/config_editor.rb +80 -24
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +2 -0
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +15 -9
- data/lib/cosmos/tools/data_viewer/dump_component.rb +2 -9
- data/lib/cosmos/tools/data_viewer/text_component.rb +77 -0
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +64 -38
- data/lib/cosmos/tools/launcher/launcher.rb +1 -0
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +31 -17
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +8 -6
- data/lib/cosmos/tools/script_runner/script_runner.rb +87 -29
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +14 -0
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +41 -7
- data/lib/cosmos/tools/table_manager/table_config.rb +5 -3
- data/lib/cosmos/tools/table_manager/table_manager.rb +6 -3
- data/lib/cosmos/tools/test_runner/test_runner.rb +14 -9
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +21 -9
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +5 -8
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +11 -8
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +9 -15
- data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -1
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +19 -13
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +2 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +4 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +4 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +16 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +17 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +1 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +12 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +79 -29
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +2 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +2 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +4 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +33 -25
- data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +5 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +5 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +4 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +5 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +6 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +2 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +10 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelled_widget.rb +58 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +2 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +2 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +3 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitscolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +3 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/led_widget.rb +108 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +60 -10
- data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +22 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb +19 -13
- data/lib/cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb +22 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +4 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +1 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +10 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +7 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +4 -6
- data/lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb +3 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +4 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +4 -6
- data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +13 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +2 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +6 -12
- data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +5 -10
- data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +5 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +4 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitscolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangecolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +8 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +9 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +54 -46
- data/lib/cosmos/top_level.rb +23 -12
- data/lib/cosmos/version.rb +4 -4
- data/spec/gui/utilities/script_module_gui_spec.rb +44 -63
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
- data/spec/install/yaml_docs_spec.rb +112 -0
- data/spec/interfaces/protocols/fixed_protocol_spec.rb +20 -9
- data/spec/interfaces/protocols/template_protocol_spec.rb +78 -25
- data/spec/packets/commands_spec.rb +22 -0
- data/spec/packets/packet_config_spec.rb +24 -0
- data/spec/packets/packet_item_spec.rb +2 -2
- data/spec/packets/packet_spec.rb +39 -6
- data/spec/packets/parsers/state_parser_spec.rb +33 -11
- data/spec/packets/structure_spec.rb +41 -0
- data/spec/packets/telemetry_spec.rb +23 -0
- data/spec/streams/tcpip_socket_stream_spec.rb +32 -27
- data/spec/system/system_spec.rb +77 -2
- data/spec/system/target_spec.rb +62 -1
- data/spec/tools/cmd_tlm_server/api_spec.rb +1 -1
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -7
- data/spec/top_level/top_level_spec.rb +29 -5
- data/tasks/gemfile_stats.rake +28 -14
- data/test/performance/config/system/system.txt +0 -0
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +5 -5
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
- data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
- data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
- data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/test/performance/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
- data/test/performance/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
- data/test/performance/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
- data/test/performance/config/tools/test_runner/test_runner.txt +1 -1
- data/test/performance/procedures/cosmos_api_test.rb +1 -1
- data/test/performance/tools/identify_performance.rb +82 -0
- metadata +92 -55
|
@@ -85,9 +85,9 @@ module Cosmos
|
|
|
85
85
|
when 'TABLEFILE'
|
|
86
86
|
usage = "#{keyword} <File name>"
|
|
87
87
|
parser.verify_num_parameters(1, 1, usage)
|
|
88
|
-
|
|
89
|
-
raise parser.error("Table file #{
|
|
90
|
-
process_file(
|
|
88
|
+
table_filename = File.join(File.dirname(filename), params[0])
|
|
89
|
+
raise parser.error("Table file #{table_filename} not found", usage) unless File.exist?(table_filename)
|
|
90
|
+
process_file(table_filename)
|
|
91
91
|
|
|
92
92
|
when 'TABLE'
|
|
93
93
|
finish_packet()
|
|
@@ -172,6 +172,8 @@ module Cosmos
|
|
|
172
172
|
# duplicated until the specified number of rows are created.
|
|
173
173
|
def finish_packet
|
|
174
174
|
if @current_packet
|
|
175
|
+
warnings = @current_packet.check_bit_offsets
|
|
176
|
+
raise "Overlapping items not allowed in tables.\n#{warnings}" if warnings.length > 0
|
|
175
177
|
if @current_packet.type == :TWO_DIMENSIONAL
|
|
176
178
|
items = @current_packet.sorted_items.clone
|
|
177
179
|
(@current_packet.num_rows - 1).times do |row|
|
|
@@ -192,7 +192,7 @@ module Cosmos
|
|
|
192
192
|
option_parser.on("-c", "--create FILE", "Use the specified definition file to create the table") do |arg|
|
|
193
193
|
options.create = arg
|
|
194
194
|
end
|
|
195
|
-
option_parser.on("-o", "--output DIRECTORY", "Create files in the specified directory") do |arg|
|
|
195
|
+
option_parser.on("-o", "--output DIRECTORY", "Create files in the specified directory (required with --create)") do |arg|
|
|
196
196
|
options.output_dir = File.expand_path(arg)
|
|
197
197
|
end
|
|
198
198
|
option_parser.on("--convert FILE", "Convert the specified configuration file to the new format") do |arg|
|
|
@@ -211,12 +211,15 @@ module Cosmos
|
|
|
211
211
|
# command line
|
|
212
212
|
# @return [Boolean] Whether to contine running the application
|
|
213
213
|
def self.post_options_parsed_hook(options)
|
|
214
|
-
if options.create
|
|
214
|
+
if options.create and options.output_dir
|
|
215
|
+
normalize_config_options(options)
|
|
215
216
|
core = TableManagerCore.new
|
|
216
|
-
|
|
217
|
+
create_path = self.config_path(options, options.create, ".txt", "table_manager")
|
|
218
|
+
core.file_new(create_path, options.output_dir)
|
|
217
219
|
return false
|
|
218
220
|
end
|
|
219
221
|
if options.convert
|
|
222
|
+
normalize_config_options(options)
|
|
220
223
|
if options.convert.include?("/")
|
|
221
224
|
parts = options.convert.split("/")
|
|
222
225
|
else
|
|
@@ -995,8 +995,9 @@ module Cosmos
|
|
|
995
995
|
parser = ConfigParser.new("http://cosmosrb.com/docs/tools/#test-runner-configuration")
|
|
996
996
|
parser.parse_file(filename) do |keyword, params|
|
|
997
997
|
case keyword
|
|
998
|
-
|
|
999
|
-
|
|
998
|
+
# REQUIRE_UTILITY was deprecated > 4.3.0 but left for compatibility purposes
|
|
999
|
+
when 'LOAD_UTILITY', 'REQUIRE_UTILITY'
|
|
1000
|
+
parser.verify_num_parameters(1, 1, "LOAD_UTILITY <filename>")
|
|
1000
1001
|
begin
|
|
1001
1002
|
require_utility params[0]
|
|
1002
1003
|
@utilities << params[0]
|
|
@@ -1096,6 +1097,14 @@ module Cosmos
|
|
|
1096
1097
|
parser.verify_num_parameters(0, 0, "#{keyword}")
|
|
1097
1098
|
@@results_writer.metadata = true
|
|
1098
1099
|
|
|
1100
|
+
when 'DISABLE_TEST_SUITE_START'
|
|
1101
|
+
parser.verify_num_parameters(0, 0, "#{keyword}")
|
|
1102
|
+
Qt.execute_in_main_thread { @test_runner_chooser.test_suite_start_disabled = true }
|
|
1103
|
+
|
|
1104
|
+
when 'DISABLE_TEST_GROUP_START'
|
|
1105
|
+
parser.verify_num_parameters(0, 0, "#{keyword}")
|
|
1106
|
+
Qt.execute_in_main_thread { @test_runner_chooser.test_group_start_disabled = true }
|
|
1107
|
+
|
|
1099
1108
|
else
|
|
1100
1109
|
raise "Unhandled keyword: #{keyword}" if keyword
|
|
1101
1110
|
end
|
|
@@ -1261,12 +1270,9 @@ module Cosmos
|
|
|
1261
1270
|
options.height = 700
|
|
1262
1271
|
options.title = "Test Runner"
|
|
1263
1272
|
options.auto_size = false
|
|
1264
|
-
options.config_file = File.join(Cosmos::USERPATH, 'config', 'tools', 'test_runner', 'test_runner.txt')
|
|
1265
1273
|
options.server_config_file = CmdTlmServer::DEFAULT_CONFIG_FILE
|
|
1274
|
+
options.config_file = true # config_file is required
|
|
1266
1275
|
option_parser.separator "Test Runner Specific Options:"
|
|
1267
|
-
option_parser.on("-c", "--config FILE", "Use the specified configuration file") do |arg|
|
|
1268
|
-
options.config_file = File.join(Cosmos::USERPATH, 'config', 'tools', 'test_runner', arg)
|
|
1269
|
-
end
|
|
1270
1276
|
option_parser.on("-s", "--server FILE", "Use the specified server configuration file for disconnect mode") do |arg|
|
|
1271
1277
|
options.server_config_file = arg
|
|
1272
1278
|
end
|
|
@@ -1292,6 +1298,5 @@ module Cosmos
|
|
|
1292
1298
|
super(option_parser, options)
|
|
1293
1299
|
end
|
|
1294
1300
|
end
|
|
1295
|
-
end
|
|
1296
|
-
|
|
1297
|
-
end # module Cosmos
|
|
1301
|
+
end
|
|
1302
|
+
end
|
|
@@ -54,6 +54,9 @@ module Cosmos
|
|
|
54
54
|
# Callback called when the test teardown button is pressed - call(test_suite, test)
|
|
55
55
|
attr_accessor :test_teardown_callback
|
|
56
56
|
|
|
57
|
+
# Whether the suite and group start button is disabled
|
|
58
|
+
attr_reader :test_suite_start_disabled, :test_group_start_disabled
|
|
59
|
+
|
|
57
60
|
# Constructor
|
|
58
61
|
def initialize(parent)
|
|
59
62
|
super(parent)
|
|
@@ -65,6 +68,9 @@ module Cosmos
|
|
|
65
68
|
setup_button_width = 60
|
|
66
69
|
teardown_button_width = 60
|
|
67
70
|
|
|
71
|
+
@test_suite_start_disabled = false
|
|
72
|
+
@test_group_start_disabled = false
|
|
73
|
+
|
|
68
74
|
# Test Suite Selection
|
|
69
75
|
@test_suite_combobox = Qt::ComboBox.new
|
|
70
76
|
@test_suite_combobox.setSizePolicy(Qt::SizePolicy::Minimum, Qt::SizePolicy::Minimum)
|
|
@@ -154,14 +160,20 @@ module Cosmos
|
|
|
154
160
|
@test_setup_callback = nil
|
|
155
161
|
@test_suite_teardown_callback = nil
|
|
156
162
|
@test_teardown_callback = nil
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def test_suite_start_disabled=(bool)
|
|
166
|
+
@test_suite_start_disabled = bool
|
|
167
|
+
if @test_suite_start_disabled
|
|
168
|
+
@test_suite_start_button.setEnabled(false)
|
|
169
|
+
end
|
|
170
|
+
end
|
|
157
171
|
|
|
158
|
-
|
|
159
|
-
@
|
|
160
|
-
@
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
@test_teardown_enabled = false
|
|
164
|
-
@test_case_start_enabled = false
|
|
172
|
+
def test_group_start_disabled=(bool)
|
|
173
|
+
@test_group_start_disabled = bool
|
|
174
|
+
if @test_group_start_disabled
|
|
175
|
+
@test_start_button.setEnabled(false)
|
|
176
|
+
end
|
|
165
177
|
end
|
|
166
178
|
|
|
167
179
|
def select_suite(test_suite)
|
|
@@ -282,7 +294,7 @@ module Cosmos
|
|
|
282
294
|
@test_suite_teardown_button.setEnabled(false)
|
|
283
295
|
end
|
|
284
296
|
end
|
|
285
|
-
if @test_suites.keys.empty?
|
|
297
|
+
if @test_suites.keys.empty? || @test_suite_start_disabled
|
|
286
298
|
@test_suite_start_button.setEnabled(false)
|
|
287
299
|
else
|
|
288
300
|
@test_suite_start_button.setEnabled(true)
|
|
@@ -311,7 +323,7 @@ module Cosmos
|
|
|
311
323
|
@test_teardown_button.setEnabled(false)
|
|
312
324
|
end
|
|
313
325
|
end
|
|
314
|
-
@test_start_button.setEnabled(true)
|
|
326
|
+
@test_start_button.setEnabled(true) unless @test_group_start_disabled
|
|
315
327
|
else
|
|
316
328
|
@test_start_button.setEnabled(false)
|
|
317
329
|
end
|
|
@@ -93,6 +93,7 @@ module Cosmos
|
|
|
93
93
|
|
|
94
94
|
System.telemetry
|
|
95
95
|
@search_box.completion_list = System.telemetry.all_item_strings(true, splash)
|
|
96
|
+
# Always create the TlmExtractorConfig but note that it's optional to pass a config file
|
|
96
97
|
@tlm_extractor_config = TlmExtractorConfig.new(options.config_file)
|
|
97
98
|
@tlm_extractor_processor = TlmExtractorProcessor.new
|
|
98
99
|
Qt.execute_in_main_thread(true) do
|
|
@@ -453,6 +454,8 @@ module Cosmos
|
|
|
453
454
|
|
|
454
455
|
def self.post_options_parsed_hook(options)
|
|
455
456
|
if options.input_files or options.dart
|
|
457
|
+
normalize_config_options(options)
|
|
458
|
+
|
|
456
459
|
# Process config file
|
|
457
460
|
raise "Configuration File must be specified for command line processing" unless options.config_file
|
|
458
461
|
|
|
@@ -500,9 +503,6 @@ module Cosmos
|
|
|
500
503
|
options.title = "Telemetry Extractor"
|
|
501
504
|
options.dart = false
|
|
502
505
|
option_parser.separator "Telemetry Extractor Specific Options:"
|
|
503
|
-
option_parser.on("-c", "--config FILE", "Use the specified configuration file") do |arg|
|
|
504
|
-
options.config_file = File.join(Cosmos::USERPATH, 'config', 'tools', 'tlm_extractor', arg)
|
|
505
|
-
end
|
|
506
506
|
option_parser.on("-i", "--input FILE", "Process the specified input file") do |arg|
|
|
507
507
|
options.input_files ||= []
|
|
508
508
|
if arg[0..0] != '/' and arg[1..1] != ':'
|
|
@@ -16,11 +16,10 @@ module Cosmos
|
|
|
16
16
|
|
|
17
17
|
# Thread used to gather telemetry in realtime and process it using a TabbedPlotsDefinition
|
|
18
18
|
class TabbedPlotsRealtimeThread < InterfaceThread
|
|
19
|
-
|
|
20
19
|
# Create a new TabbedPlotsRealtimeThread
|
|
21
20
|
def initialize(tabbed_plots_config, connection_success_callback = nil, connection_failed_callback = nil, connection_lost_callback = nil, fatal_exception_callback = nil, replay_mode = false)
|
|
22
21
|
if replay_mode
|
|
23
|
-
interface = TcpipClientInterface.new(System.connect_hosts['REPLAY_PREIDENTIFIED'], nil, System.ports['REPLAY_PREIDENTIFIED'], nil,
|
|
22
|
+
interface = TcpipClientInterface.new(System.connect_hosts['REPLAY_PREIDENTIFIED'], nil, System.ports['REPLAY_PREIDENTIFIED'], nil, nil, 'PREIDENTIFIED')
|
|
24
23
|
else
|
|
25
24
|
interface = TcpipClientInterface.new(System.connect_hosts['CTS_PREIDENTIFIED'], nil, System.ports['CTS_PREIDENTIFIED'], nil, tabbed_plots_config.cts_timeout, 'PREIDENTIFIED')
|
|
26
25
|
end
|
|
@@ -52,7 +51,7 @@ module Cosmos
|
|
|
52
51
|
|
|
53
52
|
# Start interface thread
|
|
54
53
|
start()
|
|
55
|
-
end
|
|
54
|
+
end
|
|
56
55
|
|
|
57
56
|
# Callback to the system definition when a packet is received
|
|
58
57
|
def received_packet_callback(packet)
|
|
@@ -65,7 +64,7 @@ module Cosmos
|
|
|
65
64
|
stop()
|
|
66
65
|
Cosmos.kill_thread(self, @process_thread)
|
|
67
66
|
@process_thread = nil
|
|
68
|
-
end
|
|
67
|
+
end
|
|
69
68
|
|
|
70
69
|
def graceful_kill
|
|
71
70
|
# Allow the callbacks a chance to update the GUI so that they can die gracefully
|
|
@@ -76,7 +75,5 @@ module Cosmos
|
|
|
76
75
|
end
|
|
77
76
|
end
|
|
78
77
|
end
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
end # module Cosmos
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -24,15 +24,14 @@ require 'cosmos/gui/dialogs/dart_dialog'
|
|
|
24
24
|
require 'cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots'
|
|
25
25
|
|
|
26
26
|
module Cosmos
|
|
27
|
-
|
|
28
27
|
# Displays multiple plots that perform various analysis on data.
|
|
29
28
|
class TabbedPlotsTool < QtTool
|
|
30
|
-
|
|
31
29
|
MINIMUM_LEFT_PANEL_WIDTH = 200
|
|
32
30
|
DEFAULT_LEFT_PANEL_WIDTH = 250
|
|
33
31
|
|
|
34
32
|
def initialize(options)
|
|
35
33
|
super(options) # MUST BE FIRST - All code before super is executed twice in RubyQt Based classes
|
|
34
|
+
@options = options
|
|
36
35
|
@base_title = self.windowTitle
|
|
37
36
|
Cosmos.load_cosmos_icon("tlm_grapher.png")
|
|
38
37
|
|
|
@@ -77,9 +76,10 @@ module Cosmos
|
|
|
77
76
|
System.telemetry
|
|
78
77
|
|
|
79
78
|
# Create tabbed plots definition
|
|
80
|
-
@config_filename =
|
|
79
|
+
@config_filename = options.config_file ? options.config_file : ''
|
|
81
80
|
Qt.execute_in_main_thread(true) do
|
|
82
81
|
load_configuration()
|
|
82
|
+
toggle_replay_mode() if options.replay
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
# Unconfigure CosmosConfig to interact with splash screen
|
|
@@ -590,9 +590,14 @@ module Cosmos
|
|
|
590
590
|
@tabbed_plots.pause
|
|
591
591
|
|
|
592
592
|
if prompt_for_save_if_needed()
|
|
593
|
+
if @config_filename.empty?
|
|
594
|
+
load_filename = @options.config_dir
|
|
595
|
+
else
|
|
596
|
+
load_filename = @config_filename
|
|
597
|
+
end
|
|
593
598
|
filename = Qt::FileDialog.getOpenFileName(self,
|
|
594
599
|
"Load Configuration",
|
|
595
|
-
|
|
600
|
+
load_filename,
|
|
596
601
|
"Config File (*.txt);;All Files (*)")
|
|
597
602
|
if filename and not filename.empty?
|
|
598
603
|
@config_filename = filename
|
|
@@ -1070,7 +1075,5 @@ module Cosmos
|
|
|
1070
1075
|
def realtime_thread_fatal_exception_callback(error)
|
|
1071
1076
|
Cosmos.handle_fatal_exception(error)
|
|
1072
1077
|
end # def realtime_thread_fatal_exception_callback
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
end # module Cosmos
|
|
1078
|
+
end
|
|
1079
|
+
end
|
|
@@ -16,15 +16,12 @@ end
|
|
|
16
16
|
|
|
17
17
|
module Cosmos
|
|
18
18
|
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
# This class implements the TlmGrapher Application. This application displays multiple line graphs
|
|
22
|
-
# that perform various analysis on housekeeping telemetry.
|
|
23
|
-
#
|
|
19
|
+
# Telemetry Grapher displays multiple line graphs that perform various
|
|
20
|
+
# analysis on housekeeping telemetry.
|
|
24
21
|
class TlmGrapher < TabbedPlotsTool
|
|
25
22
|
|
|
26
23
|
# Runs the application
|
|
27
|
-
def self.run
|
|
24
|
+
def self.run(opts = nil, options = nil)
|
|
28
25
|
Cosmos.catch_fatal_exception do
|
|
29
26
|
unless options
|
|
30
27
|
opts, options = create_default_options()
|
|
@@ -32,8 +29,6 @@ module Cosmos
|
|
|
32
29
|
options.width = 1000
|
|
33
30
|
options.height = 800
|
|
34
31
|
options.title = "Telemetry Grapher"
|
|
35
|
-
options.config_dir = 'tlm_grapher'
|
|
36
|
-
options.config_file = 'tlm_grapher.txt'
|
|
37
32
|
options.tool_short_name = 'tlmgrapher'
|
|
38
33
|
options.tabbed_plots_type = 'overview'
|
|
39
34
|
options.data_object_types = ['HOUSEKEEPING', 'XY','SINGLEXY']
|
|
@@ -43,12 +38,10 @@ module Cosmos
|
|
|
43
38
|
options.adder_orientation = Qt::Horizontal
|
|
44
39
|
options.items = []
|
|
45
40
|
options.start = false
|
|
41
|
+
options.replay = false
|
|
46
42
|
options.about_string = "TlmGrapher provides realtime and log file graphing abilities to the COSMOS system."
|
|
47
43
|
|
|
48
44
|
opts.separator "Telemetry Grapher Specific Options:"
|
|
49
|
-
opts.on("-c", "--config FILE", "Use the specified configuration file") do |arg|
|
|
50
|
-
options.config_file = arg
|
|
51
|
-
end
|
|
52
45
|
opts.on("-s", "--start", "Start graphing immediately") do |arg|
|
|
53
46
|
options.start = true
|
|
54
47
|
end
|
|
@@ -60,6 +53,9 @@ module Cosmos
|
|
|
60
53
|
end
|
|
61
54
|
options.items << split
|
|
62
55
|
end
|
|
56
|
+
opts.on("--replay", "Start Telemetry Grapher in Replay mode") do
|
|
57
|
+
options.replay = true
|
|
58
|
+
end
|
|
63
59
|
end
|
|
64
60
|
|
|
65
61
|
super(opts, options)
|
|
@@ -97,7 +93,5 @@ module Cosmos
|
|
|
97
93
|
plot_index += 1
|
|
98
94
|
end
|
|
99
95
|
end
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
end # module Cosmos
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -23,7 +23,7 @@ module Cosmos
|
|
|
23
23
|
# close_all_screens is called
|
|
24
24
|
@@open_screens = []
|
|
25
25
|
|
|
26
|
-
attr_accessor :full_name, :width, :height, :window, :replay_flag
|
|
26
|
+
attr_accessor :full_name, :width, :height, :window, :replay_flag, :original_target_name
|
|
27
27
|
|
|
28
28
|
include ClassificationBanner
|
|
29
29
|
|
|
@@ -340,6 +340,7 @@ module Cosmos
|
|
|
340
340
|
# to the stack and that class doesn't have a complete method.
|
|
341
341
|
current_widget.complete() if current_widget.respond_to? :complete
|
|
342
342
|
when 'SETTING'
|
|
343
|
+
next unless current_widget
|
|
343
344
|
parser.verify_num_parameters(1, nil, "#{keyword} <Setting Name> <Setting Values... (optional)>")
|
|
344
345
|
if parameters.length > 1
|
|
345
346
|
current_widget.set_setting(parameters[0], parameters[1..-1])
|
|
@@ -347,6 +348,7 @@ module Cosmos
|
|
|
347
348
|
current_widget.set_setting(parameters[0], [])
|
|
348
349
|
end
|
|
349
350
|
when 'SUBSETTING'
|
|
351
|
+
next unless current_widget
|
|
350
352
|
parser.verify_num_parameters(2, nil, "#{keyword} <Widget Index (0..?)> <Setting Name> <Setting Values... (optional)>")
|
|
351
353
|
if parameters.length > 2
|
|
352
354
|
current_widget.set_subsetting(parameters[0], parameters[1], parameters[2..-1])
|
|
@@ -59,7 +59,7 @@ module Cosmos
|
|
|
59
59
|
def self.load_config(filename)
|
|
60
60
|
raise "Configuration file #{filename} does not exist." unless filename && File.exist?(filename)
|
|
61
61
|
|
|
62
|
-
# Find all screen files so we can calculate
|
|
62
|
+
# Find all screen files so we can calculate hashing sum
|
|
63
63
|
tlmviewer_files = [filename, System.initial_filename]
|
|
64
64
|
additional_data = ''
|
|
65
65
|
System.targets.each do |target_name, target|
|
|
@@ -79,9 +79,13 @@ module Cosmos
|
|
|
79
79
|
end
|
|
80
80
|
end
|
|
81
81
|
end
|
|
82
|
-
# Calculate
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
# Calculate the hashing sum and attempt to load marshal file
|
|
83
|
+
hashing_result = Cosmos.hash_files(tlmviewer_files, additional_data, System.hashing_algorithm)
|
|
84
|
+
# Only use at most, 32 characters of the hex
|
|
85
|
+
hash_string = hashing_result.hexdigest
|
|
86
|
+
hash_string = hash_string[-32..-1] if hash_string.length >= 32
|
|
87
|
+
|
|
88
|
+
marshal_filename = File.join(System.paths['TMP'], "tlmviewer_#{hash_string}.bin")
|
|
85
89
|
config = Cosmos.marshal_load(marshal_filename)
|
|
86
90
|
unless config
|
|
87
91
|
# Marshal file load failed - Manually load configuration
|
|
@@ -145,6 +149,7 @@ module Cosmos
|
|
|
145
149
|
@all_telemetry = System.telemetry.all_item_strings(false, splash)
|
|
146
150
|
|
|
147
151
|
Qt.execute_in_main_thread(true) do
|
|
152
|
+
toggle_replay_mode() if options.replay
|
|
148
153
|
@search_box.completion_list = @tlm_viewer_config.completion_list
|
|
149
154
|
@search_box.callback = lambda do |tlm|
|
|
150
155
|
mapping = @tlm_viewer_config.tlm_to_screen_mapping[tlm]
|
|
@@ -546,36 +551,35 @@ module Cosmos
|
|
|
546
551
|
options.title = 'Telemetry Viewer'
|
|
547
552
|
options.screen = nil
|
|
548
553
|
options.listen = true
|
|
549
|
-
options.config_file = nil
|
|
550
554
|
options.restore_size = false
|
|
551
555
|
options.production = false
|
|
556
|
+
options.replay = false
|
|
557
|
+
options.config_file = true # config_file is required
|
|
552
558
|
|
|
553
559
|
option_parser.separator "Telemetry Viewer Specific Options:"
|
|
554
|
-
option_parser.on("-c", "--config FILE", "Use the specified config file") { |arg| options.config_file = arg }
|
|
555
560
|
option_parser.on("-s", "--screen SCREEN_NAME", "Start up the specified screen") { |arg| options.screen = arg }
|
|
556
561
|
option_parser.on("-n", "--nolisten", "Don't listen for requests") do
|
|
557
562
|
options.listen = false
|
|
558
563
|
options.title << ' : Not Listening'
|
|
559
564
|
end
|
|
560
|
-
option_parser.on("-p", "--production", "Run
|
|
565
|
+
option_parser.on("-p", "--production", "Run Telemetry Viewer in production mode which disables the edit buttons.") do |arg|
|
|
561
566
|
options.production = true
|
|
562
567
|
end
|
|
568
|
+
option_parser.on("--replay", "Run Telemetry Viewer in Replay mode") do
|
|
569
|
+
options.replay = true
|
|
570
|
+
end
|
|
563
571
|
option_parser.parse!(ARGV)
|
|
564
572
|
end
|
|
565
573
|
|
|
566
574
|
if options.screen
|
|
575
|
+
normalize_config_options(options)
|
|
567
576
|
application = nil
|
|
568
577
|
begin
|
|
569
578
|
QtTool.redirect_io
|
|
570
579
|
System.telemetry
|
|
571
580
|
application = Qt::Application.new(ARGV)
|
|
572
581
|
application.addLibraryPath(Qt::PLUGIN_PATH) if Kernel.is_windows?
|
|
573
|
-
|
|
574
|
-
filename = File.join(::Cosmos::USERPATH, 'config', 'tools', 'tlm_viewer', options.config_file)
|
|
575
|
-
else
|
|
576
|
-
filename = File.join(::Cosmos::USERPATH, 'config', 'tools', 'tlm_viewer', 'tlm_viewer.txt')
|
|
577
|
-
end
|
|
578
|
-
tlm_viewer_config = load_config(filename)
|
|
582
|
+
tlm_viewer_config = load_config(options.config_file)
|
|
579
583
|
screen_info = tlm_viewer_config.screen_infos[options.screen.upcase]
|
|
580
584
|
raise "Unknown screen: #{options.screen.upcase}" unless screen_info
|
|
581
585
|
if not options.auto_position
|
|
@@ -583,6 +587,8 @@ module Cosmos
|
|
|
583
587
|
else
|
|
584
588
|
screen_info.screen = Screen.new(screen_info.full_name, screen_info.filename, nil, :REALTIME, screen_info.x_pos, screen_info.y_pos, screen_info.original_target_name, screen_info.substitute, screen_info.force_substitute, true)
|
|
585
589
|
end
|
|
590
|
+
set_replay_mode(true) if options.replay
|
|
591
|
+
Screen.update_replay_mode
|
|
586
592
|
application.exec
|
|
587
593
|
rescue Exception => error
|
|
588
594
|
unless error.class == SystemExit or error.class == Interrupt
|