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.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/Gemfile +1 -1
  4. data/Manifest.txt +12 -0
  5. data/autohotkey/tools/cmd_sequence.ahk +21 -20
  6. data/autohotkey/tools/cmd_sequence2.ahk +1 -1
  7. data/autohotkey/tools/config_editor.ahk +1 -1
  8. data/autohotkey/tools/launcher.ahk +1 -0
  9. data/autohotkey/tools/packet_viewer.ahk +6 -5
  10. data/autohotkey/tools/test_runner.ahk +8 -8
  11. data/bin/cosmos +37 -0
  12. data/bin/dart_util +0 -0
  13. data/data/config/item_modifiers.yaml +9 -0
  14. data/data/crc.txt +91 -86
  15. data/demo/Rakefile +2 -0
  16. data/demo/config/dart/Gemfile +1 -1
  17. data/demo/config/data/crc.txt +8 -5
  18. data/demo/config/system/system.txt +28 -0
  19. data/demo/config/system/system2.txt +21 -3
  20. data/demo/config/system/system_alt_ports.txt +69 -0
  21. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +1 -0
  22. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server_chain.txt +18 -0
  23. data/demo/procedures/cosmos_api_test.rb +18 -14
  24. data/demo/procedures/local_screen_example.rb +51 -0
  25. data/ext/cosmos/ext/cosmos_io/cosmos_io.c +32 -4
  26. data/ext/cosmos/ext/packet/packet.c +6 -0
  27. data/ext/mkrf_conf.rb +2 -2
  28. data/install/config/dart/Gemfile +1 -1
  29. data/install/config/data/crc.txt +2 -2
  30. data/install/config/system/system.txt +23 -1
  31. data/lib/cosmos/conversions.rb +2 -0
  32. data/lib/cosmos/conversions/packet_time_formatted_conversion.rb +38 -0
  33. data/lib/cosmos/conversions/packet_time_seconds_conversion.rb +38 -0
  34. data/lib/cosmos/core_ext/cosmos_io.rb +2 -1
  35. data/lib/cosmos/dart/Gemfile +1 -1
  36. data/lib/cosmos/dart/examples/dart_stream_client.rb +6 -2
  37. data/lib/cosmos/dart/lib/dart_common.rb +1 -1
  38. data/lib/cosmos/dart/lib/dart_database_cleaner.rb +2 -2
  39. data/lib/cosmos/dart/lib/dart_decommutator.rb +4 -4
  40. data/lib/cosmos/dart/lib/dart_importer.rb +3 -3
  41. data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +2 -2
  42. data/lib/cosmos/dart/processes/dart_ingester.rb +2 -0
  43. data/lib/cosmos/dart/processes/dart_util.rb +4 -4
  44. data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +3 -3
  45. data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +9 -5
  46. data/lib/cosmos/gui/dialogs/details_dialog.rb +29 -29
  47. data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +1 -1
  48. data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +3 -3
  49. data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +2 -2
  50. data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +1 -1
  51. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +10 -10
  52. data/lib/cosmos/gui/qt.rb +10 -1
  53. data/lib/cosmos/gui/qt_tool.rb +17 -10
  54. data/lib/cosmos/gui/text/ruby_editor.rb +47 -8
  55. data/lib/cosmos/gui/utilities/classification_banner.rb +60 -0
  56. data/lib/cosmos/gui/utilities/script_module_gui.rb +26 -0
  57. data/lib/cosmos/interfaces.rb +1 -0
  58. data/lib/cosmos/interfaces/interface.rb +4 -0
  59. data/lib/cosmos/interfaces/protocols/ignore_packet_protocol.rb +46 -0
  60. data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +68 -23
  61. data/lib/cosmos/packet_logs/packet_log_reader.rb +69 -26
  62. data/lib/cosmos/packet_logs/packet_log_writer.rb +13 -1
  63. data/lib/cosmos/packets/commands.rb +5 -1
  64. data/lib/cosmos/packets/packet.rb +36 -2
  65. data/lib/cosmos/packets/packet_config.rb +0 -1
  66. data/lib/cosmos/packets/parsers/format_string_parser.rb +0 -1
  67. data/lib/cosmos/packets/parsers/xtce_parser.rb +1 -1
  68. data/lib/cosmos/packets/telemetry.rb +4 -0
  69. data/lib/cosmos/script/api_shared.rb +2 -0
  70. data/lib/cosmos/script/limits.rb +4 -0
  71. data/lib/cosmos/script/script.rb +27 -11
  72. data/lib/cosmos/script/telemetry.rb +3 -1
  73. data/lib/cosmos/script/tools.rb +18 -8
  74. data/lib/cosmos/system/system.rb +21 -0
  75. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +26 -24
  76. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +29 -29
  77. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +65 -40
  78. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +6 -6
  79. data/lib/cosmos/tools/cmd_tlm_server/api.rb +13 -0
  80. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +12 -9
  81. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +7 -1
  82. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +8 -8
  83. data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +13 -2
  84. data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +2 -2
  85. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +13 -13
  86. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +4 -4
  87. data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +8 -8
  88. data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +5 -5
  89. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +35 -20
  90. data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +15 -11
  91. data/lib/cosmos/tools/config_editor/config_editor.rb +69 -69
  92. data/lib/cosmos/tools/data_viewer/data_viewer.rb +42 -38
  93. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +1 -0
  94. data/lib/cosmos/tools/data_viewer/dump_component.rb +1 -0
  95. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +4 -4
  96. data/lib/cosmos/tools/launcher/launcher.rb +1 -1
  97. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +28 -24
  98. data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +42 -42
  99. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +56 -53
  100. data/lib/cosmos/tools/script_runner/script_runner.rb +112 -95
  101. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +48 -30
  102. data/lib/cosmos/tools/table_manager/table_manager.rb +42 -42
  103. data/lib/cosmos/tools/test_runner/test_runner.rb +45 -27
  104. data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +3 -3
  105. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +45 -45
  106. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +4 -4
  107. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +3 -3
  108. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +7 -7
  109. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +10 -10
  110. data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +10 -3
  111. data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +6 -6
  112. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +14 -14
  113. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +83 -83
  114. data/lib/cosmos/tools/tlm_viewer/screen.rb +73 -13
  115. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +15 -15
  116. data/lib/cosmos/tools/tlm_viewer/widgets.rb +1 -0
  117. data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +40 -0
  118. data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +1 -1
  119. data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +6 -1
  120. data/lib/cosmos/top_level.rb +14 -1
  121. data/lib/cosmos/version.rb +5 -5
  122. data/lib/cosmos/win32/excel.rb +63 -12
  123. data/make_gems.sh +10 -0
  124. data/spec/conversions/packet_time_formatted_conversion_spec.rb +58 -0
  125. data/spec/conversions/packet_time_seconds_conversion_spec.rb +60 -0
  126. data/spec/interfaces/protocols/ignore_packet_protocol_spec.rb +243 -0
  127. data/spec/interfaces/protocols/preidentified_protocol_spec.rb +227 -4
  128. data/spec/io/serial_driver_spec.rb +15 -13
  129. data/spec/packet_logs/packet_log_reader_spec.rb +72 -17
  130. data/spec/packets/packet_config_spec.rb +5 -16
  131. data/spec/packets/parsers/format_string_parser_spec.rb +0 -11
  132. data/spec/packets/parsers/macro_parser_spec.rb +36 -36
  133. data/spec/packets/parsers/state_parser_spec.rb +36 -0
  134. data/spec/packets/telemetry_spec.rb +11 -9
  135. data/spec/script/script_spec.rb +2 -3
  136. data/spec/script/scripting_spec.rb +2 -1
  137. data/spec/script/tools_spec.rb +0 -1
  138. data/spec/tools/cmd_tlm_server/api_spec.rb +28 -20
  139. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +33 -0
  140. data/spec/tools/cmd_tlm_server/commanding_spec.rb +25 -1
  141. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +15 -0
  142. data/tasks/gemfile_stats.rake +3 -2
  143. 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(tr("Ready")) # Show message to initialize status bar
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'), tr('Open &Both'), self)
300
- @file_open_both.statusTip = tr('Specify both the binary file and the definition file to open')
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'), tr('&Save File'), self)
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 = tr('Save the displayed data back to the binary file')
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'), tr('Save File &As'), self)
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 = tr('Save the displayed data to a new binary file')
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'), tr('&Close File'), self)
316
- @file_close_keyseq = Qt::KeySequence.new(tr("Ctrl+W")) # Qt::KeySequence::Close is Alt-F4 on Windows
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 = tr('Close the current file')
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'), tr('&Check All'), self)
322
- @file_check_keyseq = Qt::KeySequence.new(tr('Ctrl+K'))
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 = tr('Check each data value against verification criteria')
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(tr('&Hex Dump'), self)
328
- @file_hex_keyseq = Qt::KeySequence.new(tr('Ctrl+H'))
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 = tr('Display a hex representation of the binary file')
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(tr('Create &Report'), self)
334
- @file_report_keyseq = Qt::KeySequence.new(tr('Ctrl+R'))
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 = tr('Create a text file report describing the binary data')
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'), tr('&Check'), self)
342
- @table_check.statusTip = tr('Check each data value against verification criteria')
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(tr('&Default'), self)
346
- @table_default_keyseq = Qt::KeySequence.new(tr('Ctrl+D'))
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 = tr('Revert all data values to their defaults')
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(tr('&Hex Dump'), self)
352
- @table_hex.statusTip = tr('Display a hex representation of the table')
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(tr('&Save Table Binary'), self)
356
- @table_save.statusTip = tr('Save the current table to a stand alone binary file')
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(tr('Commit to Existing &File'), self)
360
- @table_commit.statusTip = tr('Incorporate the current table data into a binary file which already contains the table')
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(tr('&File'))
366
+ file_menu = menuBar.addMenu('&File')
367
367
 
368
- file_new = file_menu.addMenu(Cosmos.get_icon('file.png'), tr("&New File")) # \tCtrl-N displays shortcut
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'), tr("&Open")) # \tCtrl-O displays shortcut
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(tr('&Table'))
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(tr("Definition File:"), @table_def_label)
412
+ filename_layout.addRow("Definition File:", @table_def_label)
413
413
  @table_bin_label = Qt::Label.new("")
414
- filename_layout.addRow(tr("Binary File:"), @table_bin_label)
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(tr("File Saved Successfully"))
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(tr("Details"), self)
1077
- details_action.statusTip = tr("Popup details about #{current_table_name} #{item_name}")
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(tr("Default"), self)
1088
- default_action.statusTip = tr("Set item to default value")
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(tr('Show &Results'), self)
97
- @show_last_keyseq = Qt::KeySequence.new(tr('Ctrl+R'))
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 = tr('Show the Results dialog from the last run')
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(tr('Test &Selection'), self)
103
- @select_keyseq = Qt::KeySequence.new(tr('Ctrl+S'))
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 = tr('Select Test Suites/Groups/Cases')
105
+ @select.statusTip = 'Select Test Suites/Groups/Cases'
106
106
  @select.connect(SIGNAL('triggered()')) { show_select }
107
107
 
108
- @file_options = Qt::Action.new(tr('O&ptions'), self)
109
- @file_options.statusTip = tr('Application Options')
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(tr('Log Message to Test Results'), self)
114
- @test_results_log_message.statusTip = tr('Log Message to Test Results')
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(tr('Log Message to Script Log'), self)
119
- @script_log_message.statusTip = tr('Log Message to Script Log')
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(tr('Show Call Stack'), self)
124
- @show_call_stack.statusTip = tr('Show Call Stack')
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'), tr('&Toggle Debug'), self)
129
- @toggle_debug_keyseq = Qt::KeySequence.new(tr('Ctrl+D'))
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 = tr('Toggle Debug')
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'), tr('&Toggle Disconnect'), self)
136
- @script_disconnect_keyseq = Qt::KeySequence.new(tr('Ctrl+T'))
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 = tr('Toggle disconnect from the server')
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(tr('&Generate Cmd/Tlm Audit'), self)
142
- @script_audit.statusTip = tr('Generate audit about commands sent and telemetry checked')
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(tr('&File'))
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(tr('&Script'))
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(tr("&Delay between each script line:"), box)
945
+ form.addRow("&Delay between each script line:", box)
928
946
  monitor = Qt::CheckBox.new
929
- form.addRow(tr("&Monitor limits:"), monitor)
947
+ form.addRow("&Monitor limits:", monitor)
930
948
  pause_on_red = Qt::CheckBox.new
931
- form.addRow(tr("Pause on &red limit:"), pause_on_red)
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(tr("Test Suite:"))
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(tr("Test Group:"))
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(tr("Test Case:"))
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(tr('Open &Config'), self)
113
- @open_config.statusTip = tr('Open configuration file')
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(tr('&Save Config'), self)
117
- @save_config_keyseq = Qt::KeySequence.new(tr('Ctrl+S'))
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 = tr('Save current configuration')
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(tr('O&ptions'), self)
123
- @file_options.statusTip = tr('Open the options dialog')
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(tr('&Analyze Logs'), self)
127
- @analyze_log.statusTip = tr('Analyze log file packet counts')
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(tr('&Fill Down'), self)
132
- @fill_down_check_keyseq = Qt::KeySequence.new(tr('Ctrl+F'))
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 = tr('Fill Down')
134
+ @fill_down_check.statusTip = 'Fill Down'
135
135
  @fill_down_check.setCheckable(true)
136
136
 
137
- @matlab_header_check = Qt::Action.new(tr('&Matlab Header'), self)
138
- @matlab_header_check_keyseq = Qt::KeySequence.new(tr('Ctrl+M'))
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 = tr('Add a Matlab header to the output data')
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(tr('&Unique Only'), self)
144
- @unique_only_check_keyseq = Qt::KeySequence.new(tr('Ctrl+U'))
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 = tr('Only output rows where data has changed')
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(tr('&Batch Mode'), self)
150
- @batch_mode_check_keyseq = Qt::KeySequence.new(tr('Ctrl+B'))
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 = tr('Process multiple config files with the same input files')
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(tr('&Normal Columns'), self)
157
- @normal_columns_check.statusTip = tr('Normal Columns')
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(tr('Share Columns (&All)'), self)
163
- @share_columns_check.statusTip = tr('Share columns for all items with the same name')
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(tr('Share Columns (&Selected)'), self)
168
- @share_indiv_columns_check.statusTip = tr('Share columns for selected items with the same name')
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(tr('Full &Column Names'), self)
173
- @full_column_names_check.statusTip = tr('Use full item names in each column')
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(tr('S&elect Shared Columns'), self)
186
- @shared_columns_edit.statusTip = tr('Select which columns are shared')
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(tr('&Edit Items'), self)
192
- @item_edit_keyseq = Qt::KeySequence.new(tr('Ctrl+E'))
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 = tr('Options')
194
+ @item_edit.statusTip = 'Options'
195
195
  @item_edit.connect(SIGNAL('triggered()')) { item_edit() }
196
196
 
197
- @item_delete = Qt::Action.new(tr('&Delete Items'), self)
198
- @item_delete.statusTip = tr('Options')
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(tr('&File'))
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(tr('&Mode'))
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(tr('&Item'))
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