cosmos 4.2.4-java → 4.3.0-java

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