cosmos 4.2.4-java → 4.3.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/.travis.yml +1 -1
- data/Gemfile +1 -1
- data/Manifest.txt +12 -0
- data/autohotkey/tools/cmd_sequence.ahk +21 -20
- data/autohotkey/tools/cmd_sequence2.ahk +1 -1
- data/autohotkey/tools/config_editor.ahk +1 -1
- data/autohotkey/tools/launcher.ahk +1 -0
- data/autohotkey/tools/packet_viewer.ahk +6 -5
- data/autohotkey/tools/test_runner.ahk +8 -8
- data/bin/cosmos +37 -0
- data/bin/dart_util +0 -0
- data/data/config/item_modifiers.yaml +9 -0
- data/data/crc.txt +91 -86
- data/demo/Rakefile +2 -0
- data/demo/config/dart/Gemfile +1 -1
- data/demo/config/data/crc.txt +8 -5
- data/demo/config/system/system.txt +28 -0
- data/demo/config/system/system2.txt +21 -3
- data/demo/config/system/system_alt_ports.txt +69 -0
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +1 -0
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server_chain.txt +18 -0
- data/demo/procedures/cosmos_api_test.rb +18 -14
- data/demo/procedures/local_screen_example.rb +51 -0
- data/ext/cosmos/ext/cosmos_io/cosmos_io.c +32 -4
- data/ext/cosmos/ext/packet/packet.c +6 -0
- data/ext/mkrf_conf.rb +2 -2
- data/install/config/dart/Gemfile +1 -1
- data/install/config/data/crc.txt +2 -2
- data/install/config/system/system.txt +23 -1
- data/lib/cosmos/conversions.rb +2 -0
- data/lib/cosmos/conversions/packet_time_formatted_conversion.rb +38 -0
- data/lib/cosmos/conversions/packet_time_seconds_conversion.rb +38 -0
- data/lib/cosmos/core_ext/cosmos_io.rb +2 -1
- data/lib/cosmos/dart/Gemfile +1 -1
- data/lib/cosmos/dart/examples/dart_stream_client.rb +6 -2
- data/lib/cosmos/dart/lib/dart_common.rb +1 -1
- data/lib/cosmos/dart/lib/dart_database_cleaner.rb +2 -2
- data/lib/cosmos/dart/lib/dart_decommutator.rb +4 -4
- data/lib/cosmos/dart/lib/dart_importer.rb +3 -3
- data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +2 -2
- data/lib/cosmos/dart/processes/dart_ingester.rb +2 -0
- data/lib/cosmos/dart/processes/dart_util.rb +4 -4
- data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +3 -3
- data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +9 -5
- data/lib/cosmos/gui/dialogs/details_dialog.rb +29 -29
- data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +3 -3
- data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +2 -2
- data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +10 -10
- data/lib/cosmos/gui/qt.rb +10 -1
- data/lib/cosmos/gui/qt_tool.rb +17 -10
- data/lib/cosmos/gui/text/ruby_editor.rb +47 -8
- data/lib/cosmos/gui/utilities/classification_banner.rb +60 -0
- data/lib/cosmos/gui/utilities/script_module_gui.rb +26 -0
- data/lib/cosmos/interfaces.rb +1 -0
- data/lib/cosmos/interfaces/interface.rb +4 -0
- data/lib/cosmos/interfaces/protocols/ignore_packet_protocol.rb +46 -0
- data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +68 -23
- data/lib/cosmos/packet_logs/packet_log_reader.rb +69 -26
- data/lib/cosmos/packet_logs/packet_log_writer.rb +13 -1
- data/lib/cosmos/packets/commands.rb +5 -1
- data/lib/cosmos/packets/packet.rb +36 -2
- data/lib/cosmos/packets/packet_config.rb +0 -1
- data/lib/cosmos/packets/parsers/format_string_parser.rb +0 -1
- data/lib/cosmos/packets/parsers/xtce_parser.rb +1 -1
- data/lib/cosmos/packets/telemetry.rb +4 -0
- data/lib/cosmos/script/api_shared.rb +2 -0
- data/lib/cosmos/script/limits.rb +4 -0
- data/lib/cosmos/script/script.rb +27 -11
- data/lib/cosmos/script/telemetry.rb +3 -1
- data/lib/cosmos/script/tools.rb +18 -8
- data/lib/cosmos/system/system.rb +21 -0
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +26 -24
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +29 -29
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +65 -40
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +6 -6
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +13 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +12 -9
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +7 -1
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +8 -8
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +13 -2
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +2 -2
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +13 -13
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +4 -4
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +8 -8
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +5 -5
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +35 -20
- data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +15 -11
- data/lib/cosmos/tools/config_editor/config_editor.rb +69 -69
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +42 -38
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +1 -0
- data/lib/cosmos/tools/data_viewer/dump_component.rb +1 -0
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +4 -4
- data/lib/cosmos/tools/launcher/launcher.rb +1 -1
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +28 -24
- data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +42 -42
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +56 -53
- data/lib/cosmos/tools/script_runner/script_runner.rb +112 -95
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +48 -30
- data/lib/cosmos/tools/table_manager/table_manager.rb +42 -42
- data/lib/cosmos/tools/test_runner/test_runner.rb +45 -27
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +3 -3
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +45 -45
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +4 -4
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +3 -3
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +7 -7
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +10 -10
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +10 -3
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +6 -6
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +14 -14
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +83 -83
- data/lib/cosmos/tools/tlm_viewer/screen.rb +73 -13
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +15 -15
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +40 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +6 -1
- data/lib/cosmos/top_level.rb +14 -1
- data/lib/cosmos/version.rb +5 -5
- data/lib/cosmos/win32/excel.rb +63 -12
- data/make_gems.sh +10 -0
- data/spec/conversions/packet_time_formatted_conversion_spec.rb +58 -0
- data/spec/conversions/packet_time_seconds_conversion_spec.rb +60 -0
- data/spec/interfaces/protocols/ignore_packet_protocol_spec.rb +243 -0
- data/spec/interfaces/protocols/preidentified_protocol_spec.rb +227 -4
- data/spec/io/serial_driver_spec.rb +15 -13
- data/spec/packet_logs/packet_log_reader_spec.rb +72 -17
- data/spec/packets/packet_config_spec.rb +5 -16
- data/spec/packets/parsers/format_string_parser_spec.rb +0 -11
- data/spec/packets/parsers/macro_parser_spec.rb +36 -36
- data/spec/packets/parsers/state_parser_spec.rb +36 -0
- data/spec/packets/telemetry_spec.rb +11 -9
- data/spec/script/script_spec.rb +2 -3
- data/spec/script/scripting_spec.rb +2 -1
- data/spec/script/tools_spec.rb +0 -1
- data/spec/tools/cmd_tlm_server/api_spec.rb +28 -20
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +33 -0
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +25 -1
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +15 -0
- data/tasks/gemfile_stats.rake +3 -2
- metadata +14 -2
|
@@ -12,9 +12,9 @@ require 'cosmos'
|
|
|
12
12
|
Cosmos.catch_fatal_exception do
|
|
13
13
|
require 'cosmos/gui/qt_tool'
|
|
14
14
|
require 'cosmos/gui/dialogs/progress_dialog'
|
|
15
|
+
require 'cosmos/gui/dialogs/tlm_details_dialog'
|
|
15
16
|
require 'cosmos/tools/table_manager/table_config'
|
|
16
17
|
require 'cosmos/tools/table_manager/table_manager_core'
|
|
17
|
-
require 'cosmos/gui/dialogs/tlm_details_dialog'
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
class Qt::ComboBox
|
|
@@ -279,7 +279,7 @@ module Cosmos
|
|
|
279
279
|
complete_initialize()
|
|
280
280
|
setMinimumSize(400, 250)
|
|
281
281
|
|
|
282
|
-
statusBar.showMessage(
|
|
282
|
+
statusBar.showMessage("Ready") # Show message to initialize status bar
|
|
283
283
|
end
|
|
284
284
|
|
|
285
285
|
def initialize_actions(no_tables = false)
|
|
@@ -296,79 +296,79 @@ module Cosmos
|
|
|
296
296
|
open_action.connect(SIGNAL('triggered()')) { file_open(@bin_path) }
|
|
297
297
|
self.addAction(open_action) # Add it to the application
|
|
298
298
|
|
|
299
|
-
@file_open_both = Qt::Action.new(Cosmos.get_icon('open.png'),
|
|
300
|
-
@file_open_both.statusTip =
|
|
299
|
+
@file_open_both = Qt::Action.new(Cosmos.get_icon('open.png'), 'Open &Both', self)
|
|
300
|
+
@file_open_both.statusTip = 'Specify both the binary file and the definition file to open'
|
|
301
301
|
@file_open_both.connect(SIGNAL('triggered()')) { file_open_both() }
|
|
302
302
|
|
|
303
|
-
@file_save = Qt::Action.new(Cosmos.get_icon('save.png'),
|
|
303
|
+
@file_save = Qt::Action.new(Cosmos.get_icon('save.png'), '&Save File', self)
|
|
304
304
|
@file_save_keyseq = Qt::KeySequence.new(Qt::KeySequence::Save)
|
|
305
305
|
@file_save.shortcut = @file_save_keyseq
|
|
306
|
-
@file_save.statusTip =
|
|
306
|
+
@file_save.statusTip = 'Save the displayed data back to the binary file'
|
|
307
307
|
@file_save.connect(SIGNAL('triggered()')) { file_save() }
|
|
308
308
|
|
|
309
|
-
@file_save_as = Qt::Action.new(Cosmos.get_icon('save_as.png'),
|
|
309
|
+
@file_save_as = Qt::Action.new(Cosmos.get_icon('save_as.png'), 'Save File &As', self)
|
|
310
310
|
@file_save_as_keyseq = Qt::KeySequence.new(Qt::KeySequence::SaveAs)
|
|
311
311
|
@file_save_as.shortcut = @file_save_as_keyseq
|
|
312
|
-
@file_save_as.statusTip =
|
|
312
|
+
@file_save_as.statusTip = 'Save the displayed data to a new binary file'
|
|
313
313
|
@file_save_as.connect(SIGNAL('triggered()')) { file_save(true) }
|
|
314
314
|
|
|
315
|
-
@file_close = Qt::Action.new(Cosmos.get_icon('close.png'),
|
|
316
|
-
@file_close_keyseq = Qt::KeySequence.new(
|
|
315
|
+
@file_close = Qt::Action.new(Cosmos.get_icon('close.png'), '&Close File', self)
|
|
316
|
+
@file_close_keyseq = Qt::KeySequence.new("Ctrl+W") # Qt::KeySequence::Close is Alt-F4 on Windows
|
|
317
317
|
@file_close.shortcut = @file_close_keyseq
|
|
318
|
-
@file_close.statusTip =
|
|
318
|
+
@file_close.statusTip = 'Close the current file'
|
|
319
319
|
@file_close.connect(SIGNAL('triggered()')) { file_close() }
|
|
320
320
|
|
|
321
|
-
@file_check = Qt::Action.new(Cosmos.get_icon('checkmark.png'),
|
|
322
|
-
@file_check_keyseq = Qt::KeySequence.new(
|
|
321
|
+
@file_check = Qt::Action.new(Cosmos.get_icon('checkmark.png'), '&Check All', self)
|
|
322
|
+
@file_check_keyseq = Qt::KeySequence.new('Ctrl+K')
|
|
323
323
|
@file_check.shortcut = @file_check_keyseq
|
|
324
|
-
@file_check.statusTip =
|
|
324
|
+
@file_check.statusTip = 'Check each data value against verification criteria'
|
|
325
325
|
@file_check.connect(SIGNAL('triggered()')) { file_check() }
|
|
326
326
|
|
|
327
|
-
@file_hex = Qt::Action.new(
|
|
328
|
-
@file_hex_keyseq = Qt::KeySequence.new(
|
|
327
|
+
@file_hex = Qt::Action.new('&Hex Dump', self)
|
|
328
|
+
@file_hex_keyseq = Qt::KeySequence.new('Ctrl+H')
|
|
329
329
|
@file_hex.shortcut = @file_hex_keyseq
|
|
330
|
-
@file_hex.statusTip =
|
|
330
|
+
@file_hex.statusTip = 'Display a hex representation of the binary file'
|
|
331
331
|
@file_hex.connect(SIGNAL('triggered()')) { display_hex(:file) }
|
|
332
332
|
|
|
333
|
-
@file_report = Qt::Action.new(
|
|
334
|
-
@file_report_keyseq = Qt::KeySequence.new(
|
|
333
|
+
@file_report = Qt::Action.new('Create &Report', self)
|
|
334
|
+
@file_report_keyseq = Qt::KeySequence.new('Ctrl+R')
|
|
335
335
|
@file_report.shortcut = @file_report_keyseq
|
|
336
|
-
@file_report.statusTip =
|
|
336
|
+
@file_report.statusTip = 'Create a text file report describing the binary data'
|
|
337
337
|
@file_report.connect(SIGNAL('triggered()')) { file_report() }
|
|
338
338
|
|
|
339
339
|
unless no_tables
|
|
340
340
|
# Table Menu Actions
|
|
341
|
-
@table_check = Qt::Action.new(Cosmos.get_icon('checkmark.png'),
|
|
342
|
-
@table_check.statusTip =
|
|
341
|
+
@table_check = Qt::Action.new(Cosmos.get_icon('checkmark.png'), '&Check', self)
|
|
342
|
+
@table_check.statusTip = 'Check each data value against verification criteria'
|
|
343
343
|
@table_check.connect(SIGNAL('triggered()')) { table_check() }
|
|
344
344
|
|
|
345
|
-
@table_default = Qt::Action.new(
|
|
346
|
-
@table_default_keyseq = Qt::KeySequence.new(
|
|
345
|
+
@table_default = Qt::Action.new('&Default', self)
|
|
346
|
+
@table_default_keyseq = Qt::KeySequence.new('Ctrl+D')
|
|
347
347
|
@table_default.shortcut = @table_default_keyseq
|
|
348
|
-
@table_default.statusTip =
|
|
348
|
+
@table_default.statusTip = 'Revert all data values to their defaults'
|
|
349
349
|
@table_default.connect(SIGNAL('triggered()')) { table_default() }
|
|
350
350
|
|
|
351
|
-
@table_hex = Qt::Action.new(
|
|
352
|
-
@table_hex.statusTip =
|
|
351
|
+
@table_hex = Qt::Action.new('&Hex Dump', self)
|
|
352
|
+
@table_hex.statusTip = 'Display a hex representation of the table'
|
|
353
353
|
@table_hex.connect(SIGNAL('triggered()')) { display_hex(:table) }
|
|
354
354
|
|
|
355
|
-
@table_save = Qt::Action.new(
|
|
356
|
-
@table_save.statusTip =
|
|
355
|
+
@table_save = Qt::Action.new('&Save Table Binary', self)
|
|
356
|
+
@table_save.statusTip = 'Save the current table to a stand alone binary file'
|
|
357
357
|
@table_save.connect(SIGNAL('triggered()')) { table_save() }
|
|
358
358
|
|
|
359
|
-
@table_commit = Qt::Action.new(
|
|
360
|
-
@table_commit.statusTip =
|
|
359
|
+
@table_commit = Qt::Action.new('Commit to Existing &File', self)
|
|
360
|
+
@table_commit.statusTip = 'Incorporate the current table data into a binary file which already contains the table'
|
|
361
361
|
@table_commit.connect(SIGNAL('triggered()')) { table_commit() }
|
|
362
362
|
end
|
|
363
363
|
end
|
|
364
364
|
|
|
365
365
|
def initialize_menus(no_tables = false)
|
|
366
|
-
file_menu = menuBar.addMenu(
|
|
366
|
+
file_menu = menuBar.addMenu('&File')
|
|
367
367
|
|
|
368
|
-
file_new = file_menu.addMenu(Cosmos.get_icon('file.png'),
|
|
368
|
+
file_new = file_menu.addMenu(Cosmos.get_icon('file.png'), "&New File") # \tCtrl-N displays shortcut
|
|
369
369
|
target_dirs_action(file_new, @system_def_path, 'tools/table_manager', method(:file_new))
|
|
370
370
|
|
|
371
|
-
file_open = file_menu.addMenu(Cosmos.get_icon('open.png'),
|
|
371
|
+
file_open = file_menu.addMenu(Cosmos.get_icon('open.png'), "&Open") # \tCtrl-O displays shortcut
|
|
372
372
|
target_dirs_action(file_open, @system_bin_path, 'tables', method(:file_open))
|
|
373
373
|
|
|
374
374
|
file_menu.addAction(@file_open_both)
|
|
@@ -383,7 +383,7 @@ module Cosmos
|
|
|
383
383
|
file_menu.addAction(@exit_action)
|
|
384
384
|
|
|
385
385
|
unless no_tables
|
|
386
|
-
table_menu = menuBar.addMenu(
|
|
386
|
+
table_menu = menuBar.addMenu('&Table')
|
|
387
387
|
table_menu.addAction(@table_check)
|
|
388
388
|
table_menu.addAction(@table_default)
|
|
389
389
|
table_menu.addAction(@table_hex)
|
|
@@ -409,9 +409,9 @@ module Cosmos
|
|
|
409
409
|
# Create the information pane with the filenames
|
|
410
410
|
filename_layout = Qt::FormLayout.new
|
|
411
411
|
@table_def_label = Qt::Label.new("")
|
|
412
|
-
filename_layout.addRow(
|
|
412
|
+
filename_layout.addRow("Definition File:", @table_def_label)
|
|
413
413
|
@table_bin_label = Qt::Label.new("")
|
|
414
|
-
filename_layout.addRow(
|
|
414
|
+
filename_layout.addRow("Binary File:", @table_bin_label)
|
|
415
415
|
@top_layout.addLayout(filename_layout)
|
|
416
416
|
|
|
417
417
|
# Separator before editor
|
|
@@ -556,7 +556,7 @@ module Cosmos
|
|
|
556
556
|
|
|
557
557
|
display_all_gui_data()
|
|
558
558
|
@table_bin_label.text = filename
|
|
559
|
-
statusBar.showMessage(
|
|
559
|
+
statusBar.showMessage("File Saved Successfully")
|
|
560
560
|
rescue TableManagerCore::CoreError, SaveError => err
|
|
561
561
|
Qt::MessageBox.warning(self, "File Save Errors", err.message)
|
|
562
562
|
rescue => err
|
|
@@ -1073,8 +1073,8 @@ module Cosmos
|
|
|
1073
1073
|
else
|
|
1074
1074
|
item_name = gui_table.verticalHeaderItem(table_item.row).text
|
|
1075
1075
|
end
|
|
1076
|
-
details_action = Qt::Action.new(
|
|
1077
|
-
details_action.statusTip =
|
|
1076
|
+
details_action = Qt::Action.new("Details", self)
|
|
1077
|
+
details_action.statusTip = "Popup details about #{current_table_name} #{item_name}"
|
|
1078
1078
|
details_action.connect(SIGNAL('triggered()')) do
|
|
1079
1079
|
TlmDetailsDialog.new(nil,
|
|
1080
1080
|
'TABLE',
|
|
@@ -1084,8 +1084,8 @@ module Cosmos
|
|
|
1084
1084
|
end
|
|
1085
1085
|
menu.addAction(details_action)
|
|
1086
1086
|
|
|
1087
|
-
default_action = Qt::Action.new(
|
|
1088
|
-
default_action.statusTip =
|
|
1087
|
+
default_action = Qt::Action.new("Default", self)
|
|
1088
|
+
default_action.statusTip = "Set item to default value"
|
|
1089
1089
|
default_action.connect(SIGNAL('triggered()')) do
|
|
1090
1090
|
item = table.get_item(item_name)
|
|
1091
1091
|
table.write(item.name, item.default)
|
|
@@ -93,59 +93,71 @@ module Cosmos
|
|
|
93
93
|
super()
|
|
94
94
|
|
|
95
95
|
# File Actions
|
|
96
|
-
@show_last = Qt::Action.new(
|
|
97
|
-
@show_last_keyseq = Qt::KeySequence.new(
|
|
96
|
+
@show_last = Qt::Action.new('Show &Results', self)
|
|
97
|
+
@show_last_keyseq = Qt::KeySequence.new('Ctrl+R')
|
|
98
98
|
@show_last.shortcut = @show_last_keyseq
|
|
99
|
-
@show_last.statusTip =
|
|
99
|
+
@show_last.statusTip = 'Show the Results dialog from the last run'
|
|
100
100
|
@show_last.connect(SIGNAL('triggered()')) { show_results }
|
|
101
101
|
|
|
102
|
-
@select = Qt::Action.new(
|
|
103
|
-
@select_keyseq = Qt::KeySequence.new(
|
|
102
|
+
@select = Qt::Action.new('Test &Selection', self)
|
|
103
|
+
@select_keyseq = Qt::KeySequence.new('Ctrl+S')
|
|
104
104
|
@select.shortcut = @select_keyseq
|
|
105
|
-
@select.statusTip =
|
|
105
|
+
@select.statusTip = 'Select Test Suites/Groups/Cases'
|
|
106
106
|
@select.connect(SIGNAL('triggered()')) { show_select }
|
|
107
107
|
|
|
108
|
-
@file_options = Qt::Action.new(
|
|
109
|
-
@file_options.statusTip =
|
|
108
|
+
@file_options = Qt::Action.new('O&ptions', self)
|
|
109
|
+
@file_options.statusTip = 'Application Options'
|
|
110
110
|
@file_options.connect(SIGNAL('triggered()')) { file_options() }
|
|
111
111
|
|
|
112
|
+
# Edit Actions
|
|
113
|
+
@edit_zoom_in = Qt::Action.new('&Increase Font Size', self)
|
|
114
|
+
@edit_zoom_in_keyseq = Qt::KeySequence.new(Qt::KeySequence::ZoomIn)
|
|
115
|
+
@edit_zoom_in.shortcut = @edit_zoom_in_keyseq
|
|
116
|
+
@edit_zoom_in.connect(SIGNAL('triggered()')) { @script_runner_frame.zoom_in }
|
|
117
|
+
@edit_zoom_out = Qt::Action.new('&Decrease Font Size', self)
|
|
118
|
+
@edit_zoom_out_keyseq = Qt::KeySequence.new(Qt::KeySequence::ZoomOut)
|
|
119
|
+
@edit_zoom_out.shortcut = @edit_zoom_out_keyseq
|
|
120
|
+
@edit_zoom_out.connect(SIGNAL('triggered()')) { @script_runner_frame.zoom_out }
|
|
121
|
+
@edit_zoom_default = Qt::Action.new('Restore &Font Size', self)
|
|
122
|
+
@edit_zoom_default.connect(SIGNAL('triggered()')) { @script_runner_frame.zoom_default }
|
|
123
|
+
|
|
112
124
|
# Script Actions
|
|
113
|
-
@test_results_log_message = Qt::Action.new(
|
|
114
|
-
@test_results_log_message.statusTip =
|
|
125
|
+
@test_results_log_message = Qt::Action.new('Log Message to Test Results', self)
|
|
126
|
+
@test_results_log_message.statusTip = 'Log Message to Test Results'
|
|
115
127
|
@test_results_log_message.connect(SIGNAL('triggered()')) { on_test_results_log_message() }
|
|
116
128
|
@test_results_log_message.setEnabled(false)
|
|
117
129
|
|
|
118
|
-
@script_log_message = Qt::Action.new(
|
|
119
|
-
@script_log_message.statusTip =
|
|
130
|
+
@script_log_message = Qt::Action.new('Log Message to Script Log', self)
|
|
131
|
+
@script_log_message.statusTip = 'Log Message to Script Log'
|
|
120
132
|
@script_log_message.connect(SIGNAL('triggered()')) { on_script_log_message() }
|
|
121
133
|
@script_log_message.setEnabled(false)
|
|
122
134
|
|
|
123
|
-
@show_call_stack = Qt::Action.new(
|
|
124
|
-
@show_call_stack.statusTip =
|
|
135
|
+
@show_call_stack = Qt::Action.new('Show Call Stack', self)
|
|
136
|
+
@show_call_stack.statusTip = 'Show Call Stack'
|
|
125
137
|
@show_call_stack.connect(SIGNAL('triggered()')) { on_script_call_stack }
|
|
126
138
|
@show_call_stack.setEnabled(false)
|
|
127
139
|
|
|
128
|
-
@toggle_debug = Qt::Action.new(Cosmos.get_icon('bug.png'),
|
|
129
|
-
@toggle_debug_keyseq = Qt::KeySequence.new(
|
|
140
|
+
@toggle_debug = Qt::Action.new(Cosmos.get_icon('bug.png'), '&Toggle Debug', self)
|
|
141
|
+
@toggle_debug_keyseq = Qt::KeySequence.new('Ctrl+D')
|
|
130
142
|
@toggle_debug.shortcut = @toggle_debug_keyseq
|
|
131
|
-
@toggle_debug.statusTip =
|
|
143
|
+
@toggle_debug.statusTip = 'Toggle Debug'
|
|
132
144
|
@toggle_debug.connect(SIGNAL('triggered()')) { on_script_toggle_debug }
|
|
133
145
|
@toggle_debug.setEnabled(false)
|
|
134
146
|
|
|
135
|
-
@script_disconnect = Qt::Action.new(Cosmos.get_icon('disconnected.png'),
|
|
136
|
-
@script_disconnect_keyseq = Qt::KeySequence.new(
|
|
147
|
+
@script_disconnect = Qt::Action.new(Cosmos.get_icon('disconnected.png'), '&Toggle Disconnect', self)
|
|
148
|
+
@script_disconnect_keyseq = Qt::KeySequence.new('Ctrl+T')
|
|
137
149
|
@script_disconnect.shortcut = @script_disconnect_keyseq
|
|
138
|
-
@script_disconnect.statusTip =
|
|
150
|
+
@script_disconnect.statusTip = 'Toggle disconnect from the server'
|
|
139
151
|
@script_disconnect.connect(SIGNAL('triggered()')) { on_script_toggle_disconnect() }
|
|
140
152
|
|
|
141
|
-
@script_audit = Qt::Action.new(
|
|
142
|
-
@script_audit.statusTip =
|
|
153
|
+
@script_audit = Qt::Action.new('&Generate Cmd/Tlm Audit', self)
|
|
154
|
+
@script_audit.statusTip = 'Generate audit about commands sent and telemetry checked'
|
|
143
155
|
@script_audit.connect(SIGNAL('triggered()')) { script_audit() }
|
|
144
156
|
end
|
|
145
157
|
|
|
146
158
|
def initialize_menus
|
|
147
159
|
# File Menu
|
|
148
|
-
file_menu = menuBar.addMenu(
|
|
160
|
+
file_menu = menuBar.addMenu('&File')
|
|
149
161
|
file_menu.addAction(@show_last)
|
|
150
162
|
file_menu.addAction(@select)
|
|
151
163
|
file_menu.addSeparator()
|
|
@@ -153,8 +165,14 @@ module Cosmos
|
|
|
153
165
|
file_menu.addSeparator()
|
|
154
166
|
file_menu.addAction(@exit_action)
|
|
155
167
|
|
|
168
|
+
# Edit Menu (to match Script Runner)
|
|
169
|
+
edit_menu = menuBar.addMenu('&Edit')
|
|
170
|
+
edit_menu.addAction(@edit_zoom_in)
|
|
171
|
+
edit_menu.addAction(@edit_zoom_out)
|
|
172
|
+
edit_menu.addAction(@edit_zoom_default)
|
|
173
|
+
|
|
156
174
|
# Script Menu
|
|
157
|
-
script_menu = menuBar.addMenu(
|
|
175
|
+
script_menu = menuBar.addMenu('&Script')
|
|
158
176
|
script_menu.addAction(@test_results_log_message)
|
|
159
177
|
script_menu.addAction(@script_log_message)
|
|
160
178
|
script_menu.addAction(@show_call_stack)
|
|
@@ -924,11 +942,11 @@ module Cosmos
|
|
|
924
942
|
box = Qt::DoubleSpinBox.new
|
|
925
943
|
box.setRange(0, 60)
|
|
926
944
|
box.setValue(ScriptRunnerFrame.line_delay)
|
|
927
|
-
form.addRow(
|
|
945
|
+
form.addRow("&Delay between each script line:", box)
|
|
928
946
|
monitor = Qt::CheckBox.new
|
|
929
|
-
form.addRow(
|
|
947
|
+
form.addRow("&Monitor limits:", monitor)
|
|
930
948
|
pause_on_red = Qt::CheckBox.new
|
|
931
|
-
form.addRow(
|
|
949
|
+
form.addRow("Pause on &red limit:", pause_on_red)
|
|
932
950
|
if ScriptRunnerFrame.monitor_limits
|
|
933
951
|
monitor.setCheckState(Qt::Checked)
|
|
934
952
|
pause_on_red.setCheckState(Qt::Checked) if ScriptRunnerFrame.pause_on_red
|
|
@@ -77,7 +77,7 @@ module Cosmos
|
|
|
77
77
|
@test_suite_setup_button.setFixedWidth(setup_button_width)
|
|
78
78
|
@test_suite_teardown_button = Qt::PushButton.new('Teardown')
|
|
79
79
|
@test_suite_teardown_button.setFixedWidth(teardown_button_width)
|
|
80
|
-
@test_suite_label = Qt::Label.new(
|
|
80
|
+
@test_suite_label = Qt::Label.new("Test Suite:")
|
|
81
81
|
@overall.addWidget(@test_suite_label, 0, 0)
|
|
82
82
|
@overall.addWidget(@test_suite_combobox, 0, 1)
|
|
83
83
|
@overall.addWidget(@test_suite_start_button, 0, 2)
|
|
@@ -96,7 +96,7 @@ module Cosmos
|
|
|
96
96
|
@test_setup_button.setFixedWidth(setup_button_width)
|
|
97
97
|
@test_teardown_button = Qt::PushButton.new('Teardown')
|
|
98
98
|
@test_teardown_button.setFixedWidth(teardown_button_width)
|
|
99
|
-
@test_label = Qt::Label.new(
|
|
99
|
+
@test_label = Qt::Label.new("Test Group:")
|
|
100
100
|
@overall.addWidget(@test_label, 1, 0)
|
|
101
101
|
@overall.addWidget(@test_combobox, 1, 1)
|
|
102
102
|
@overall.addWidget(@test_start_button, 1, 2)
|
|
@@ -111,7 +111,7 @@ module Cosmos
|
|
|
111
111
|
@test_case_combobox.setCompleter(@test_case_completion)
|
|
112
112
|
@test_case_start_button = Qt::PushButton.new('Start')
|
|
113
113
|
@test_case_start_button.setFixedWidth(start_button_width)
|
|
114
|
-
@test_case_label = Qt::Label.new(
|
|
114
|
+
@test_case_label = Qt::Label.new("Test Case:")
|
|
115
115
|
@overall.addWidget(@test_case_label, 2, 0)
|
|
116
116
|
@overall.addWidget(@test_case_combobox, 2, 1)
|
|
117
117
|
@overall.addWidget(@test_case_start_button, 2, 2)
|
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
|
|
11
11
|
require 'cosmos'
|
|
12
12
|
Cosmos.catch_fatal_exception do
|
|
13
|
-
require 'cosmos/tools/tlm_extractor/tlm_extractor_processor'
|
|
14
|
-
require 'cosmos/tools/tlm_extractor/text_item_chooser'
|
|
15
13
|
require 'cosmos/gui/qt_tool'
|
|
16
14
|
require 'cosmos/gui/choosers/telemetry_chooser'
|
|
17
15
|
require 'cosmos/gui/choosers/float_chooser'
|
|
@@ -21,6 +19,8 @@ Cosmos.catch_fatal_exception do
|
|
|
21
19
|
require 'cosmos/gui/dialogs/progress_dialog'
|
|
22
20
|
require 'cosmos/gui/widgets/full_text_search_line_edit'
|
|
23
21
|
require 'cosmos/gui/utilities/analyze_log'
|
|
22
|
+
require 'cosmos/tools/tlm_extractor/tlm_extractor_processor'
|
|
23
|
+
require 'cosmos/tools/tlm_extractor/text_item_chooser'
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
module Cosmos
|
|
@@ -109,68 +109,68 @@ module Cosmos
|
|
|
109
109
|
super()
|
|
110
110
|
|
|
111
111
|
# File Menu Actions
|
|
112
|
-
@open_config = Qt::Action.new(
|
|
113
|
-
@open_config.statusTip =
|
|
112
|
+
@open_config = Qt::Action.new('Open &Config', self)
|
|
113
|
+
@open_config.statusTip = 'Open configuration file'
|
|
114
114
|
@open_config.connect(SIGNAL('triggered()')) { handle_browse_button() }
|
|
115
115
|
|
|
116
|
-
@save_config = Qt::Action.new(
|
|
117
|
-
@save_config_keyseq = Qt::KeySequence.new(
|
|
116
|
+
@save_config = Qt::Action.new('&Save Config', self)
|
|
117
|
+
@save_config_keyseq = Qt::KeySequence.new('Ctrl+S')
|
|
118
118
|
@save_config.shortcut = @save_config_keyseq
|
|
119
|
-
@save_config.statusTip =
|
|
119
|
+
@save_config.statusTip = 'Save current configuration'
|
|
120
120
|
@save_config.connect(SIGNAL('triggered()')) { handle_save_button() }
|
|
121
121
|
|
|
122
|
-
@file_options = Qt::Action.new(
|
|
123
|
-
@file_options.statusTip =
|
|
122
|
+
@file_options = Qt::Action.new('O&ptions', self)
|
|
123
|
+
@file_options.statusTip = 'Open the options dialog'
|
|
124
124
|
@file_options.connect(SIGNAL('triggered()')) { handle_options() }
|
|
125
125
|
|
|
126
|
-
@analyze_log = Qt::Action.new(
|
|
127
|
-
@analyze_log.statusTip =
|
|
126
|
+
@analyze_log = Qt::Action.new('&Analyze Logs', self)
|
|
127
|
+
@analyze_log.statusTip = 'Analyze log file packet counts'
|
|
128
128
|
@analyze_log.connect(SIGNAL('triggered()')) { analyze_log_files() }
|
|
129
129
|
|
|
130
130
|
# Mode Menu Actions
|
|
131
|
-
@fill_down_check = Qt::Action.new(
|
|
132
|
-
@fill_down_check_keyseq = Qt::KeySequence.new(
|
|
131
|
+
@fill_down_check = Qt::Action.new('&Fill Down', self)
|
|
132
|
+
@fill_down_check_keyseq = Qt::KeySequence.new('Ctrl+F')
|
|
133
133
|
@fill_down_check.shortcut = @fill_down_check_keyseq
|
|
134
|
-
@fill_down_check.statusTip =
|
|
134
|
+
@fill_down_check.statusTip = 'Fill Down'
|
|
135
135
|
@fill_down_check.setCheckable(true)
|
|
136
136
|
|
|
137
|
-
@matlab_header_check = Qt::Action.new(
|
|
138
|
-
@matlab_header_check_keyseq = Qt::KeySequence.new(
|
|
137
|
+
@matlab_header_check = Qt::Action.new('&Matlab Header', self)
|
|
138
|
+
@matlab_header_check_keyseq = Qt::KeySequence.new('Ctrl+M')
|
|
139
139
|
@matlab_header_check.shortcut = @matlab_header_check_keyseq
|
|
140
|
-
@matlab_header_check.statusTip =
|
|
140
|
+
@matlab_header_check.statusTip = 'Add a Matlab header to the output data'
|
|
141
141
|
@matlab_header_check.setCheckable(true)
|
|
142
142
|
|
|
143
|
-
@unique_only_check = Qt::Action.new(
|
|
144
|
-
@unique_only_check_keyseq = Qt::KeySequence.new(
|
|
143
|
+
@unique_only_check = Qt::Action.new('&Unique Only', self)
|
|
144
|
+
@unique_only_check_keyseq = Qt::KeySequence.new('Ctrl+U')
|
|
145
145
|
@unique_only_check.shortcut = @unique_only_check_keyseq
|
|
146
|
-
@unique_only_check.statusTip =
|
|
146
|
+
@unique_only_check.statusTip = 'Only output rows where data has changed'
|
|
147
147
|
@unique_only_check.setCheckable(true)
|
|
148
148
|
|
|
149
|
-
@batch_mode_check = Qt::Action.new(
|
|
150
|
-
@batch_mode_check_keyseq = Qt::KeySequence.new(
|
|
149
|
+
@batch_mode_check = Qt::Action.new('&Batch Mode', self)
|
|
150
|
+
@batch_mode_check_keyseq = Qt::KeySequence.new('Ctrl+B')
|
|
151
151
|
@batch_mode_check.shortcut = @batch_mode_check_keyseq
|
|
152
|
-
@batch_mode_check.statusTip =
|
|
152
|
+
@batch_mode_check.statusTip = 'Process multiple config files with the same input files'
|
|
153
153
|
@batch_mode_check.setCheckable(true)
|
|
154
154
|
@batch_mode_check.connect(SIGNAL('triggered()')) { batch_mode_changed() }
|
|
155
155
|
|
|
156
|
-
@normal_columns_check = Qt::Action.new(
|
|
157
|
-
@normal_columns_check.statusTip =
|
|
156
|
+
@normal_columns_check = Qt::Action.new('&Normal Columns', self)
|
|
157
|
+
@normal_columns_check.statusTip = 'Normal Columns'
|
|
158
158
|
@normal_columns_check.setCheckable(true)
|
|
159
159
|
@normal_columns_check.setChecked(true)
|
|
160
160
|
@normal_columns_check.connect(SIGNAL('triggered()')) { column_mode_changed() }
|
|
161
161
|
|
|
162
|
-
@share_columns_check = Qt::Action.new(
|
|
163
|
-
@share_columns_check.statusTip =
|
|
162
|
+
@share_columns_check = Qt::Action.new('Share Columns (&All)', self)
|
|
163
|
+
@share_columns_check.statusTip = 'Share columns for all items with the same name'
|
|
164
164
|
@share_columns_check.setCheckable(true)
|
|
165
165
|
@share_columns_check.connect(SIGNAL('triggered()')) { column_mode_changed() }
|
|
166
166
|
|
|
167
|
-
@share_indiv_columns_check = Qt::Action.new(
|
|
168
|
-
@share_indiv_columns_check.statusTip =
|
|
167
|
+
@share_indiv_columns_check = Qt::Action.new('Share Columns (&Selected)', self)
|
|
168
|
+
@share_indiv_columns_check.statusTip = 'Share columns for selected items with the same name'
|
|
169
169
|
@share_indiv_columns_check.setCheckable(true)
|
|
170
170
|
@share_indiv_columns_check.connect(SIGNAL('triggered()')) { column_mode_changed() }
|
|
171
171
|
|
|
172
|
-
@full_column_names_check = Qt::Action.new(
|
|
173
|
-
@full_column_names_check.statusTip =
|
|
172
|
+
@full_column_names_check = Qt::Action.new('Full &Column Names', self)
|
|
173
|
+
@full_column_names_check.statusTip = 'Use full item names in each column'
|
|
174
174
|
@full_column_names_check.setCheckable(true)
|
|
175
175
|
@full_column_names_check.connect(SIGNAL('triggered()')) { column_mode_changed() }
|
|
176
176
|
|
|
@@ -182,26 +182,26 @@ module Cosmos
|
|
|
182
182
|
column_group.addAction(@full_column_names_check)
|
|
183
183
|
|
|
184
184
|
@shared_columns = []
|
|
185
|
-
@shared_columns_edit = Qt::Action.new(
|
|
186
|
-
@shared_columns_edit.statusTip =
|
|
185
|
+
@shared_columns_edit = Qt::Action.new('S&elect Shared Columns', self)
|
|
186
|
+
@shared_columns_edit.statusTip = 'Select which columns are shared'
|
|
187
187
|
@shared_columns_edit.setEnabled(false)
|
|
188
188
|
@shared_columns_edit.connect(SIGNAL('triggered()')) { shared_columns_edit() }
|
|
189
189
|
|
|
190
190
|
# Item Menu Actions
|
|
191
|
-
@item_edit = Qt::Action.new(
|
|
192
|
-
@item_edit_keyseq = Qt::KeySequence.new(
|
|
191
|
+
@item_edit = Qt::Action.new('&Edit Items', self)
|
|
192
|
+
@item_edit_keyseq = Qt::KeySequence.new('Ctrl+E')
|
|
193
193
|
@item_edit.shortcut = @item_edit_keyseq
|
|
194
|
-
@item_edit.statusTip =
|
|
194
|
+
@item_edit.statusTip = 'Options'
|
|
195
195
|
@item_edit.connect(SIGNAL('triggered()')) { item_edit() }
|
|
196
196
|
|
|
197
|
-
@item_delete = Qt::Action.new(
|
|
198
|
-
@item_delete.statusTip =
|
|
197
|
+
@item_delete = Qt::Action.new('&Delete Items', self)
|
|
198
|
+
@item_delete.statusTip = 'Options'
|
|
199
199
|
@item_delete.connect(SIGNAL('triggered()')) { item_delete() }
|
|
200
200
|
end
|
|
201
201
|
|
|
202
202
|
def initialize_menus
|
|
203
203
|
# File Menu
|
|
204
|
-
@file_menu = menuBar.addMenu(
|
|
204
|
+
@file_menu = menuBar.addMenu('&File')
|
|
205
205
|
@file_menu.addAction(@open_config)
|
|
206
206
|
@file_menu.addAction(@save_config)
|
|
207
207
|
@file_menu.addSeparator()
|
|
@@ -211,7 +211,7 @@ module Cosmos
|
|
|
211
211
|
@file_menu.addAction(@exit_action)
|
|
212
212
|
|
|
213
213
|
# Mode Menu
|
|
214
|
-
@mode_menu = menuBar.addMenu(
|
|
214
|
+
@mode_menu = menuBar.addMenu('&Mode')
|
|
215
215
|
@mode_menu.addAction(@fill_down_check)
|
|
216
216
|
@mode_menu.addAction(@matlab_header_check)
|
|
217
217
|
@mode_menu.addAction(@unique_only_check)
|
|
@@ -225,7 +225,7 @@ module Cosmos
|
|
|
225
225
|
@mode_menu.addAction(@shared_columns_edit)
|
|
226
226
|
|
|
227
227
|
# Item Menu
|
|
228
|
-
@item_menu = menuBar.addMenu(
|
|
228
|
+
@item_menu = menuBar.addMenu('&Item')
|
|
229
229
|
@item_menu.addAction(@item_edit)
|
|
230
230
|
@item_menu.addAction(@item_delete)
|
|
231
231
|
|
|
@@ -402,7 +402,7 @@ module Cosmos
|
|
|
402
402
|
@data_source_layout.addWidget(label)
|
|
403
403
|
@log_file_radio = Qt::RadioButton.new("Log File", self)
|
|
404
404
|
@log_file_radio.setChecked(true)
|
|
405
|
-
@log_file_radio.connect(SIGNAL('clicked()')) do
|
|
405
|
+
@log_file_radio.connect(SIGNAL('clicked()')) do
|
|
406
406
|
@packet_log_frame.show_log_fields(true)
|
|
407
407
|
@packet_log_frame.output_filename = ""
|
|
408
408
|
@dart_meta_frame.hide
|
|
@@ -410,12 +410,12 @@ module Cosmos
|
|
|
410
410
|
end
|
|
411
411
|
@data_source_layout.addWidget(@log_file_radio)
|
|
412
412
|
@dart_radio = Qt::RadioButton.new("DART Database", self)
|
|
413
|
-
@dart_radio.connect(SIGNAL('clicked()')) do
|
|
413
|
+
@dart_radio.connect(SIGNAL('clicked()')) do
|
|
414
414
|
@packet_log_frame.show_log_fields(false)
|
|
415
415
|
@packet_log_frame.output_filename = ""
|
|
416
416
|
@dart_meta_frame.show
|
|
417
417
|
@resize_timer.start(100)
|
|
418
|
-
end
|
|
418
|
+
end
|
|
419
419
|
@data_source_layout.addWidget(@dart_radio)
|
|
420
420
|
@data_source_layout.addStretch()
|
|
421
421
|
@top_layout.addLayout(@data_source_layout)
|
|
@@ -609,7 +609,7 @@ module Cosmos
|
|
|
609
609
|
clear_config_item_list()
|
|
610
610
|
@tlm_extractor_config.items.each do |item_type, target_name_or_column_name, packet_name_or_text, item_name, value_type, dart_reduction, dart_reduced_type|
|
|
611
611
|
if item_type == 'ITEM'
|
|
612
|
-
if dart_reduction == :NONE
|
|
612
|
+
if dart_reduction == :NONE
|
|
613
613
|
if value_type == :CONVERTED
|
|
614
614
|
@config_item_list.addItem("#{item_type} #{target_name_or_column_name} #{packet_name_or_text} #{item_name}")
|
|
615
615
|
else
|