cosmos 4.3.0-java → 4.4.0-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|