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
@@ -102,6 +102,7 @@ module Cosmos
102
102
  processed_text = ''
103
103
  processed_text << '*' * 80 << "\n"
104
104
  processed_text << "* #{packet.target_name} #{packet.packet_name}\n"
105
+ processed_text << "* Packet Time: #{packet.packet_time.formatted}\n" if packet.packet_time
105
106
  processed_text << "* Received Time: #{packet.received_time.formatted}\n" if packet.received_time
106
107
  processed_text << "* Received Count: #{packet.received_count}\n"
107
108
  processed_text << '*' * 80 << "\n"
@@ -25,6 +25,7 @@ module Cosmos
25
25
  processed_text = ''
26
26
  processed_text << '*' * 80 << "\n"
27
27
  processed_text << "* #{packet.target_name} #{packet.packet_name}\n"
28
+ processed_text << "* Packet Time: #{packet.packet_time.formatted}\n" if packet.packet_time
28
29
  processed_text << "* Received Time: #{packet.received_time.formatted}\n" if packet.received_time
29
30
  processed_text << "* Received Count: #{packet.received_count}\n"
30
31
  processed_text << '*' * 80 << "\n"
@@ -42,17 +42,17 @@ module Cosmos
42
42
 
43
43
  def initialize_actions
44
44
  super()
45
- @hide_ignored_action = Qt::Action.new(tr('&Hide Ignored Items'), self)
46
- @hide_ignored_keyseq = Qt::KeySequence.new(tr('Ctrl+H'))
45
+ @hide_ignored_action = Qt::Action.new('&Hide Ignored Items', self)
46
+ @hide_ignored_keyseq = Qt::KeySequence.new('Ctrl+H')
47
47
  @hide_ignored_action.shortcut = @hide_ignored_keyseq
48
- @hide_ignored_action.statusTip = tr('Do not include ignored items in command and telemetry handbooks')
48
+ @hide_ignored_action.statusTip = 'Do not include ignored items in command and telemetry handbooks'
49
49
  @hide_ignored_action.setCheckable(true)
50
50
  @hide_ignored_action.setChecked(false)
51
51
  end
52
52
 
53
53
  def initialize_menus
54
54
  # File Menu
55
- @file_menu = menuBar.addMenu(tr('&File'))
55
+ @file_menu = menuBar.addMenu('&File')
56
56
  @file_menu.addAction(@hide_ignored_action)
57
57
  @file_menu.addAction(@exit_action)
58
58
 
@@ -40,7 +40,7 @@ module Cosmos
40
40
  end
41
41
 
42
42
  def initialize_menus
43
- @file_menu = menuBar().addMenu(tr('&File'))
43
+ @file_menu = menuBar().addMenu('&File')
44
44
  @file_menu.addAction(@exit_action)
45
45
  initialize_help_menu()
46
46
  end
@@ -219,8 +219,8 @@ module Cosmos
219
219
 
220
220
  case type
221
221
  when :LIMITS_CHANGE
222
- # The most common event: target, packet, item, state
223
- result = limits_change(data[0], data[1], data[2], data[4])
222
+ # The most common event: target, packet, item, state, packet_time
223
+ result = limits_change(data[0], data[1], data[2], data[4], data[5])
224
224
 
225
225
  when :LIMITS_SET
226
226
  # Check if the overall limits set changed. If so we need to reset
@@ -368,7 +368,7 @@ module Cosmos
368
368
 
369
369
  # Process a limits_change event by recoloring out of limits events
370
370
  # and creating a log message.
371
- def limits_change(target_name, packet_name, item_name, state)
371
+ def limits_change(target_name, packet_name, item_name, state, packet_time = nil)
372
372
  message = ''
373
373
  color = :BLACK
374
374
  item = [target_name, packet_name, item_name]
@@ -392,9 +392,13 @@ module Cosmos
392
392
  when :BLUE
393
393
  message << "INFO: "
394
394
  color = :BLUE
395
+ when nil
396
+ return nil
395
397
  end
396
398
  value = tlm(target_name, packet_name, item_name)
397
- message << "#{target_name} #{packet_name} #{item_name} = #{value} is #{state}\n"
399
+ packet_time_str = ""
400
+ packet_time_str = " (#{packet_time.sys.formatted})" if packet_time
401
+ message << "#{target_name} #{packet_name} #{item_name} = #{value} is #{state}#{packet_time_str}\n"
398
402
  [message, color]
399
403
  end
400
404
 
@@ -535,7 +539,7 @@ module Cosmos
535
539
  if options.config_file
536
540
  begin
537
541
  result = @limits_items.open_config(options.config_file)
538
- statusBar.showMessage(tr(result))
542
+ statusBar.showMessage(result)
539
543
  rescue => error
540
544
  ExceptionDialog.new(self, error, "Error parsing #{@options.config_file}")
541
545
  end
@@ -549,44 +553,44 @@ module Cosmos
549
553
  def initialize_actions
550
554
  super
551
555
 
552
- @options_action = Qt::Action.new(tr('O&ptions'), self)
553
- @options_action.statusTip = tr('Open the options dialog')
556
+ @options_action = Qt::Action.new('O&ptions', self)
557
+ @options_action.statusTip = 'Open the options dialog'
554
558
  @options_action.connect(SIGNAL('triggered()')) { show_options_dialog() }
555
559
 
556
- @reset_action = Qt::Action.new(tr('&Reset'), self)
557
- @reset_action_keyseq = Qt::KeySequence.new(tr('Ctrl+R'))
560
+ @reset_action = Qt::Action.new('&Reset', self)
561
+ @reset_action_keyseq = Qt::KeySequence.new('Ctrl+R')
558
562
  @reset_action.shortcut = @reset_action_keyseq
559
- @reset_action.statusTip = tr('Reset connection and clear all items. This does not modify the ignored items.')
563
+ @reset_action.statusTip = 'Reset connection and clear all items. This does not modify the ignored items.'
560
564
  @reset_action.connect(SIGNAL('triggered()')) { @limits_items.request_reset() }
561
565
 
562
- @replay_action = Qt::Action.new(tr('Toggle Replay Mode'), self)
563
- @replay_action.statusTip = tr('Toggle Replay Mode')
566
+ @replay_action = Qt::Action.new('Toggle Replay Mode', self)
567
+ @replay_action.statusTip = 'Toggle Replay Mode'
564
568
  @replay_action.connect(SIGNAL('triggered()')) { toggle_replay_mode() }
565
569
 
566
570
  @open_ignored_action = Qt::Action.new(Cosmos.get_icon('open.png'),
567
- tr('&Open Config'), self)
568
- @open_ignored_action_keyseq = Qt::KeySequence.new(tr('Ctrl+O'))
571
+ '&Open Config', self)
572
+ @open_ignored_action_keyseq = Qt::KeySequence.new('Ctrl+O')
569
573
  @open_ignored_action.shortcut = @open_ignored_action_keyseq
570
- @open_ignored_action.statusTip = tr('Open ignored telemetry items configuration file')
574
+ @open_ignored_action.statusTip = 'Open ignored telemetry items configuration file'
571
575
  @open_ignored_action.connect(SIGNAL('triggered()')) { open_config_file() }
572
576
 
573
577
  @save_ignored_action = Qt::Action.new(Cosmos.get_icon('save.png'),
574
- tr('&Save Config'), self)
575
- @save_ignored_action_keyseq = Qt::KeySequence.new(tr('Ctrl+S'))
578
+ '&Save Config', self)
579
+ @save_ignored_action_keyseq = Qt::KeySequence.new('Ctrl+S')
576
580
  @save_ignored_action.shortcut = @save_ignored_action_keyseq
577
- @save_ignored_action.statusTip = tr('Save all ignored telemetry items in a configuration file')
581
+ @save_ignored_action.statusTip = 'Save all ignored telemetry items in a configuration file'
578
582
  @save_ignored_action.connect(SIGNAL('triggered()')) { save_config_file() }
579
583
 
580
- @edit_ignored_action = Qt::Action.new(tr('&Edit Ignored'), self)
581
- @edit_ignored_action_keyseq = Qt::KeySequence.new(tr('Ctrl+E'))
584
+ @edit_ignored_action = Qt::Action.new('&Edit Ignored', self)
585
+ @edit_ignored_action_keyseq = Qt::KeySequence.new('Ctrl+E')
582
586
  @edit_ignored_action.shortcut = @edit_ignored_action_keyseq
583
- @edit_ignored_action.statusTip = tr('Edit the ignored telemetry items list')
587
+ @edit_ignored_action.statusTip = 'Edit the ignored telemetry items list'
584
588
  @edit_ignored_action.connect(SIGNAL('triggered()')) { edit_ignored_items() }
585
589
  end
586
590
 
587
591
  # Initialize the application menu bar options
588
592
  def initialize_menus
589
- @file_menu = menuBar.addMenu(tr('&File'))
593
+ @file_menu = menuBar.addMenu('&File')
590
594
  @file_menu.addAction(@open_ignored_action)
591
595
  @file_menu.addAction(@save_ignored_action)
592
596
  @file_menu.addAction(@edit_ignored_action)
@@ -720,7 +724,7 @@ module Cosmos
720
724
  "Open Configuration File", default_config_path())
721
725
  unless filename.nil? || filename.empty?
722
726
  result = @limits_items.open_config(filename)
723
- statusBar.showMessage(tr(result))
727
+ statusBar.showMessage(result)
724
728
  end
725
729
  end
726
730
 
@@ -730,7 +734,7 @@ module Cosmos
730
734
  'Save As...', default_config_path(), 'Configuration Files (*.txt)')
731
735
  unless filename.nil? || filename.empty?
732
736
  result = @limits_items.save_config(filename)
733
- statusBar.showMessage(tr(result))
737
+ statusBar.showMessage(result)
734
738
  @filename = filename
735
739
  end
736
740
  end
@@ -57,90 +57,90 @@ module Cosmos
57
57
  super()
58
58
 
59
59
  # File Menu
60
- @file_open = Qt::Action.new(tr('&Open Scene'), self)
61
- @file_open_key_seq = Qt::KeySequence.new(tr('Ctrl+O'))
60
+ @file_open = Qt::Action.new('&Open Scene', self)
61
+ @file_open_key_seq = Qt::KeySequence.new('Ctrl+O')
62
62
  @file_open.shortcut = @file_open_key_seq
63
- @file_open.statusTip = tr('Open Scene File')
63
+ @file_open.statusTip = 'Open Scene File'
64
64
  @file_open.connect(SIGNAL('triggered()')) { file_open() }
65
65
 
66
- @file_add_shape = Qt::Action.new(tr('&Add Shape'), self)
67
- @file_add_shape_key_seq = Qt::KeySequence.new(tr('Ctrl+A'))
66
+ @file_add_shape = Qt::Action.new('&Add Shape', self)
67
+ @file_add_shape_key_seq = Qt::KeySequence.new('Ctrl+A')
68
68
  @file_add_shape.shortcut = @file_add_shape_key_seq
69
- @file_add_shape.statusTip = tr('Add a Shape to the Scene')
69
+ @file_add_shape.statusTip = 'Add a Shape to the Scene'
70
70
  @file_add_shape.connect(SIGNAL('triggered()')) { file_add_shape() }
71
71
 
72
- @file_export = Qt::Action.new(tr('&Export Scene'), self)
73
- @file_export_key_seq = Qt::KeySequence.new(tr('Ctrl+X'))
72
+ @file_export = Qt::Action.new('&Export Scene', self)
73
+ @file_export_key_seq = Qt::KeySequence.new('Ctrl+X')
74
74
  @file_export.shortcut = @file_export_key_seq
75
- @file_export.statusTip = tr('Export Scene to File')
75
+ @file_export.statusTip = 'Export Scene to File'
76
76
  @file_export.connect(SIGNAL('triggered()')) { file_export() }
77
77
 
78
78
  # View Menu
79
- @view_perspective = Qt::Action.new(tr('&Perspective'), self)
80
- @view_perspective_key_seq = Qt::KeySequence.new(tr('Ctrl+P'))
79
+ @view_perspective = Qt::Action.new('&Perspective', self)
80
+ @view_perspective_key_seq = Qt::KeySequence.new('Ctrl+P')
81
81
  @view_perspective.shortcut = @view_perspective_key_seq
82
- @view_perspective.statusTip = tr('Perspective View')
82
+ @view_perspective.statusTip = 'Perspective View'
83
83
  @view_perspective.connect(SIGNAL('triggered()')) { view_perspective() }
84
84
 
85
- @view_top = Qt::Action.new(tr('&Top'), self)
86
- @view_top_key_seq = Qt::KeySequence.new(tr('Ctrl+T'))
85
+ @view_top = Qt::Action.new('&Top', self)
86
+ @view_top_key_seq = Qt::KeySequence.new('Ctrl+T')
87
87
  @view_top.shortcut = @view_top_key_seq
88
- @view_top.statusTip = tr('View From Above')
88
+ @view_top.statusTip = 'View From Above'
89
89
  @view_top.connect(SIGNAL('triggered()')) { view_top() }
90
90
 
91
- @view_bottom = Qt::Action.new(tr('&Bottom'), self)
92
- @view_bottom_key_seq = Qt::KeySequence.new(tr('Ctrl+B'))
91
+ @view_bottom = Qt::Action.new('&Bottom', self)
92
+ @view_bottom_key_seq = Qt::KeySequence.new('Ctrl+B')
93
93
  @view_bottom.shortcut = @view_bottom_key_seq
94
- @view_bottom.statusTip = tr('View From Below')
94
+ @view_bottom.statusTip = 'View From Below'
95
95
  @view_bottom.connect(SIGNAL('triggered()')) { view_bottom() }
96
96
 
97
- @view_front = Qt::Action.new(tr('&Front'), self)
98
- @view_front_key_seq = Qt::KeySequence.new(tr('Ctrl+F'))
97
+ @view_front = Qt::Action.new('&Front', self)
98
+ @view_front_key_seq = Qt::KeySequence.new('Ctrl+F')
99
99
  @view_front.shortcut = @view_front_key_seq
100
- @view_front.statusTip = tr('View From Front')
100
+ @view_front.statusTip = 'View From Front'
101
101
  @view_front.connect(SIGNAL('triggered()')) { view_front() }
102
102
 
103
- @view_back = Qt::Action.new(tr('Bac&k'), self)
104
- @view_back_key_seq = Qt::KeySequence.new(tr('Ctrl+W'))
103
+ @view_back = Qt::Action.new('Bac&k', self)
104
+ @view_back_key_seq = Qt::KeySequence.new('Ctrl+W')
105
105
  @view_back.shortcut = @view_back_key_seq
106
- @view_back.statusTip = tr('View From Back')
106
+ @view_back.statusTip = 'View From Back'
107
107
  @view_back.connect(SIGNAL('triggered()')) { view_back() }
108
108
 
109
- @view_left = Qt::Action.new(tr('&Left'), self)
110
- @view_left_key_seq = Qt::KeySequence.new(tr('Ctrl+L'))
109
+ @view_left = Qt::Action.new('&Left', self)
110
+ @view_left_key_seq = Qt::KeySequence.new('Ctrl+L')
111
111
  @view_left.shortcut = @view_left_key_seq
112
- @view_left.statusTip = tr('View From Left')
112
+ @view_left.statusTip = 'View From Left'
113
113
  @view_left.connect(SIGNAL('triggered()')) { view_left() }
114
114
 
115
- @view_right = Qt::Action.new(tr('&Right'), self)
116
- @view_right_key_seq = Qt::KeySequence.new(tr('Ctrl+R'))
115
+ @view_right = Qt::Action.new('&Right', self)
116
+ @view_right_key_seq = Qt::KeySequence.new('Ctrl+R')
117
117
  @view_right.shortcut = @view_right_key_seq
118
- @view_right.statusTip = tr('View From Right')
118
+ @view_right.statusTip = 'View From Right'
119
119
  @view_right.connect(SIGNAL('triggered()')) { view_right() }
120
120
 
121
121
  # Show Menu
122
- @show_scene = Qt::Action.new(tr('Show &Scene'), self)
123
- @show_scene_key_seq = Qt::KeySequence.new(tr('Ctrl+S'))
122
+ @show_scene = Qt::Action.new('Show &Scene', self)
123
+ @show_scene_key_seq = Qt::KeySequence.new('Ctrl+S')
124
124
  @show_scene.shortcut = @show_scene_key_seq
125
- @show_scene.statusTip = tr('Show the Normal Scene')
125
+ @show_scene.statusTip = 'Show the Normal Scene'
126
126
  @show_scene.connect(SIGNAL('triggered()')) { show_scene() }
127
127
 
128
- @show_earth = Qt::Action.new(tr('Show &Earth'), self)
129
- @show_earth_key_seq = Qt::KeySequence.new(tr('Ctrl+E'))
128
+ @show_earth = Qt::Action.new('Show &Earth', self)
129
+ @show_earth_key_seq = Qt::KeySequence.new('Ctrl+E')
130
130
  @show_earth.shortcut = @show_earth_key_seq
131
- @show_earth.statusTip = tr('Show the Earth')
131
+ @show_earth.statusTip = 'Show the Earth'
132
132
  @show_earth.connect(SIGNAL('triggered()')) { show_earth() }
133
133
 
134
- @show_moon = Qt::Action.new(tr('Show &Moon'), self)
135
- @show_moon_key_seq = Qt::KeySequence.new(tr('Ctrl+M'))
134
+ @show_moon = Qt::Action.new('Show &Moon', self)
135
+ @show_moon_key_seq = Qt::KeySequence.new('Ctrl+M')
136
136
  @show_moon.shortcut = @show_moon_key_seq
137
- @show_moon.statusTip = tr('Show the Moon')
137
+ @show_moon.statusTip = 'Show the Moon'
138
138
  @show_moon.connect(SIGNAL('triggered()')) { show_moon() }
139
139
  end
140
140
 
141
141
  def initialize_menus
142
142
  # File Menu
143
- @file_menu = menuBar.addMenu(tr('&File'))
143
+ @file_menu = menuBar.addMenu('&File')
144
144
  @file_menu.addAction(@file_open)
145
145
  @file_menu.addAction(@file_add_shape)
146
146
  @file_menu.addAction(@file_export)
@@ -148,7 +148,7 @@ module Cosmos
148
148
  @file_menu.addAction(@exit_action)
149
149
 
150
150
  # View Menu
151
- @view_menu = menuBar.addMenu(tr('&View'))
151
+ @view_menu = menuBar.addMenu('&View')
152
152
  @view_menu.addAction(@view_perspective)
153
153
  @view_menu.addAction(@view_top)
154
154
  @view_menu.addAction(@view_bottom)
@@ -158,7 +158,7 @@ module Cosmos
158
158
  @view_menu.addAction(@view_right)
159
159
 
160
160
  # Show Menu
161
- @show_menu = menuBar.addMenu(tr('&Show'))
161
+ @show_menu = menuBar.addMenu('&Show')
162
162
  @show_menu.addAction(@show_scene)
163
163
  @show_menu.addAction(@show_earth)
164
164
  @show_menu.addAction(@show_moon)
@@ -10,7 +10,6 @@
10
10
 
11
11
  require 'cosmos'
12
12
  Cosmos.catch_fatal_exception do
13
- require 'cosmos/script'
14
13
  require 'cosmos/gui/qt_tool'
15
14
  require 'cosmos/gui/dialogs/tlm_details_dialog'
16
15
  require 'cosmos/gui/dialogs/tlm_edit_dialog'
@@ -18,6 +17,7 @@ Cosmos.catch_fatal_exception do
18
17
  require 'cosmos/gui/dialogs/exception_dialog'
19
18
  require 'cosmos/gui/dialogs/splash'
20
19
  require 'cosmos/gui/widgets/full_text_search_line_edit'
20
+ require 'cosmos/script'
21
21
  end
22
22
 
23
23
  module Cosmos
@@ -85,60 +85,54 @@ module Cosmos
85
85
  super()
86
86
 
87
87
  @edit_action = Qt::Action.new(Cosmos.get_icon('edit.png'),
88
- tr('&Edit Definition'),
88
+ '&Edit Definition',
89
89
  self)
90
- @edit_keyseq = Qt::KeySequence.new(tr('Ctrl+E'))
90
+ @edit_keyseq = Qt::KeySequence.new('Ctrl+E')
91
91
  @edit_action.shortcut = @edit_keyseq
92
- @edit_action.statusTip = tr('Open packet definition in a editor')
92
+ @edit_action.statusTip = 'Open packet definition in a editor'
93
93
  @edit_action.connect(SIGNAL('triggered()')) { edit_definition }
94
94
 
95
- @reset_action = Qt::Action.new(tr('&Reset'), self)
96
- @reset_keyseq = Qt::KeySequence.new(tr('Ctrl+R'))
95
+ @reset_action = Qt::Action.new('&Reset', self)
96
+ @reset_keyseq = Qt::KeySequence.new('Ctrl+R')
97
97
  @reset_action.shortcut = @reset_keyseq
98
- @reset_action.statusTip = tr('Reset Connection')
98
+ @reset_action.statusTip = 'Reset Connection'
99
99
  connect(@reset_action, SIGNAL('triggered()'), self, SLOT('update_all()'))
100
100
 
101
- @option_action = Qt::Action.new(tr('O&ptions'), self)
102
- @option_action.statusTip = tr('Application Options')
101
+ @option_action = Qt::Action.new('O&ptions', self)
102
+ @option_action.statusTip = 'Application Options'
103
103
  connect(@option_action, SIGNAL('triggered()'), self, SLOT('file_options()'))
104
104
 
105
- @replay_action = Qt::Action.new(tr('Toggle Replay Mode'), self)
106
- @replay_action.statusTip = tr('Toggle Replay Mode')
105
+ @replay_action = Qt::Action.new('Toggle Replay Mode', self)
106
+ @replay_action.statusTip = 'Toggle Replay Mode'
107
107
  @replay_action.connect(SIGNAL('triggered()')) { toggle_replay_mode() }
108
108
 
109
- @color_blind_action = Qt::Action.new(tr('Color&blind Mode'), self)
110
- @color_blind_keyseq = Qt::KeySequence.new(tr('Ctrl+B'))
109
+ @color_blind_action = Qt::Action.new('Color&blind Mode', self)
110
+ @color_blind_keyseq = Qt::KeySequence.new('Ctrl+B')
111
111
  @color_blind_action.shortcut = @color_blind_keyseq
112
- @color_blind_action.statusTip = tr('Enable text representation of colors in the values')
112
+ @color_blind_action.statusTip = 'Enable text representation of colors in the values'
113
113
  @color_blind_action.setCheckable(true)
114
114
  @color_blind_action.connect(SIGNAL('triggered()')) do
115
115
  @colorblind = @color_blind_action.isChecked
116
116
  end
117
117
 
118
- @hide_ignored_action = Qt::Action.new(tr('&Hide Ignored Items'), self)
119
- @hide_ignored_keyseq = Qt::KeySequence.new(tr('Ctrl+H'))
118
+ @hide_ignored_action = Qt::Action.new('&Hide Ignored Items', self)
119
+ @hide_ignored_keyseq = Qt::KeySequence.new('Ctrl+H')
120
120
  @hide_ignored_action.shortcut = @hide_ignored_keyseq
121
- @hide_ignored_action.statusTip = tr('Toggle showing and hiding ignored items')
121
+ @hide_ignored_action.statusTip = 'Toggle showing and hiding ignored items'
122
122
  @hide_ignored_action.setCheckable(true)
123
123
  @hide_ignored_action.setChecked(false)
124
- @hide_ignored_action.connect(SIGNAL('triggered()')) do
125
- if @hide_ignored_action.isChecked
126
- @ignored_rows.each {|row| @table.setRowHidden(row, true) }
127
- else
128
- @ignored_rows.each {|row| @table.setRowHidden(row, false) }
129
- end
130
- end
124
+ @hide_ignored_action.connect(SIGNAL('triggered()')) { hide_ignored() }
131
125
 
132
- @derived_last_action = Qt::Action.new(tr('&Display Derived Last'), self)
133
- @derived_last_keyseq = Qt::KeySequence.new(tr('Ctrl+D'))
126
+ @derived_last_action = Qt::Action.new('&Display Derived Last', self)
127
+ @derived_last_keyseq = Qt::KeySequence.new('Ctrl+D')
134
128
  @derived_last_action.shortcut = @derived_last_keyseq
135
- @derived_last_action.statusTip = tr('Display derived telemetry items last')
129
+ @derived_last_action.statusTip = 'Display derived telemetry items last'
136
130
  @derived_last_action.setCheckable(true)
137
131
  @derived_last_action.setChecked(false)
138
132
  @derived_last_action.connect(SIGNAL('triggered()')) { update_tlm_items() }
139
133
 
140
- @formatted_tlm_units_action = Qt::Action.new(tr('Formatted Telemetry With &Units'), self)
141
- @formatted_tlm_units_action.statusTip = tr('Formatted Telemetry with Units')
134
+ @formatted_tlm_units_action = Qt::Action.new('Formatted Telemetry With &Units', self)
135
+ @formatted_tlm_units_action.statusTip = 'Formatted Telemetry with Units'
142
136
  @formatted_tlm_units_action.setCheckable(true)
143
137
  @formatted_tlm_units_action.setChecked(true)
144
138
  @formatted_tlm_units_action.connect(SIGNAL('triggered()')) do
@@ -146,24 +140,24 @@ module Cosmos
146
140
  self.window_title = "COSMOS Packet Viewer : Formatted Telemetry with Units"
147
141
  end
148
142
 
149
- @formatted_tlm_action = Qt::Action.new(tr('&Formatted Telemetry'), self)
150
- @formatted_tlm_action.statusTip = tr('Formatted Telemetry')
143
+ @formatted_tlm_action = Qt::Action.new('&Formatted Telemetry', self)
144
+ @formatted_tlm_action.statusTip = 'Formatted Telemetry'
151
145
  @formatted_tlm_action.setCheckable(true)
152
146
  @formatted_tlm_action.connect(SIGNAL('triggered()')) do
153
147
  @mode = :FORMATTED
154
148
  self.window_title = "COSMOS Packet Viewer : Formatted Telemetry"
155
149
  end
156
150
 
157
- @normal_tlm_action = Qt::Action.new(tr('Normal &Converted Telemetry'), self)
158
- @normal_tlm_action.statusTip = tr('Normal Converted Telemetry')
151
+ @normal_tlm_action = Qt::Action.new('Normal &Converted Telemetry', self)
152
+ @normal_tlm_action.statusTip = 'Normal Converted Telemetry'
159
153
  @normal_tlm_action.setCheckable(true)
160
154
  @normal_tlm_action.connect(SIGNAL('triggered()')) do
161
155
  @mode = :CONVERTED
162
156
  self.window_title = "COSMOS Packet Viewer : Coverted Telemetry"
163
157
  end
164
158
 
165
- @raw_tlm_action = Qt::Action.new(tr('&Raw Telemetry'), self)
166
- @raw_tlm_action.statusTip = tr('Raw Unprocessed Telemetry')
159
+ @raw_tlm_action = Qt::Action.new('&Raw Telemetry', self)
160
+ @raw_tlm_action.statusTip = 'Raw Unprocessed Telemetry'
167
161
  @raw_tlm_action.setCheckable(true)
168
162
  @raw_tlm_action.connect(SIGNAL('triggered()')) do
169
163
  @mode = :RAW
@@ -180,7 +174,7 @@ module Cosmos
180
174
 
181
175
  def initialize_menus
182
176
  # File Menu
183
- file_menu = menuBar.addMenu(tr('&File'))
177
+ file_menu = menuBar.addMenu('&File')
184
178
  file_menu.addAction(@edit_action)
185
179
  file_menu.addAction(@reset_action)
186
180
  file_menu.addAction(@option_action)
@@ -189,11 +183,11 @@ module Cosmos
189
183
  file_menu.addAction(@exit_action)
190
184
 
191
185
  # View Menu
192
- view_menu = menuBar.addMenu(tr('&View'))
186
+ view_menu = menuBar.addMenu('&View')
193
187
  view_menu.addAction(@color_blind_action)
194
188
  view_menu.addAction(@hide_ignored_action)
195
189
  view_menu.addAction(@derived_last_action)
196
- view_menu.addSeparator.setText(tr('Formatting'));
190
+ view_menu.addSeparator.setText('Formatting')
197
191
  view_menu.addAction(@formatted_tlm_units_action)
198
192
  view_menu.addAction(@formatted_tlm_action)
199
193
  view_menu.addAction(@normal_tlm_action)
@@ -224,7 +218,7 @@ module Cosmos
224
218
  update_packets()
225
219
  update_tlm_items()
226
220
  end
227
- target_label = Qt::Label.new(tr("&Target:"))
221
+ target_label = Qt::Label.new("&Target:")
228
222
  target_label.setBuddy(@target_select)
229
223
 
230
224
  # Set the command combobox selection
@@ -233,7 +227,7 @@ module Cosmos
233
227
  @packet_select.connect(SIGNAL('activated(const QString&)')) do
234
228
  update_tlm_items()
235
229
  end
236
- cmd_label = Qt::Label.new(tr("&Packet:"))
230
+ cmd_label = Qt::Label.new("&Packet:")
237
231
  cmd_label.setBuddy(@packet_select)
238
232
 
239
233
  # Mnemonic Search Box
@@ -254,7 +248,7 @@ module Cosmos
254
248
  top_layout.addWidget(sep1)
255
249
 
256
250
  # Telemetry Description Label
257
- dec_label = Qt::Label.new(tr("Description:"))
251
+ dec_label = Qt::Label.new("Description:")
258
252
  @description = Qt::Label.new('')
259
253
  desc_layout = Qt::HBoxLayout.new
260
254
  desc_layout.addWidget(dec_label)
@@ -271,7 +265,7 @@ module Cosmos
271
265
  end
272
266
 
273
267
  def file_options
274
- @polling_rate = Qt::InputDialog.getDouble(self, tr("Options"), tr("Polling Rate (sec):"),
268
+ @polling_rate = Qt::InputDialog.getDouble(self, "Options", "Polling Rate (sec):",
275
269
  @polling_rate, 0, 1000, 1, nil)
276
270
  end
277
271
 
@@ -284,6 +278,14 @@ module Cosmos
284
278
  end
285
279
  end
286
280
 
281
+ def hide_ignored
282
+ if @hide_ignored_action.isChecked
283
+ @ignored_rows.each {|row| @table.setRowHidden(row, true) }
284
+ else
285
+ @ignored_rows.each {|row| @table.setRowHidden(row, false) }
286
+ end
287
+ end
288
+
287
289
  def edit_definition
288
290
  # Grab all the cmd_tlm_files and processes them in reverse sort order
289
291
  # because typically we'll have cmd.txt and tlm.txt and we want to process
@@ -417,11 +419,11 @@ module Cosmos
417
419
  featured_row = row if featured_item_name == tlm_name
418
420
  @ignored_rows << row if System.targets[target_name].ignored_items.include?(tlm_name)
419
421
  tlm_name = "*#{tlm_name}" if derived
420
- item = Qt::TableWidgetItem.new(tr("#{tlm_name}:"))
422
+ item = Qt::TableWidgetItem.new("#{tlm_name}:")
421
423
  item.setTextAlignment(Qt::AlignRight)
422
424
  item.setFlags(Qt::NoItemFlags | Qt::ItemIsSelectable)
423
425
  @table.setItem(row, 0, item)
424
- item = Qt::TableWidgetItem.new(tr("0.0"))
426
+ item = Qt::TableWidgetItem.new("0.0")
425
427
  item.setTextAlignment(Qt::AlignRight)
426
428
  item.setFlags(Qt::NoItemFlags | Qt::ItemIsSelectable | Qt::ItemIsEnabled)
427
429
  @table.setItem(row, 1, item)
@@ -430,6 +432,7 @@ module Cosmos
430
432
  @descriptions[row][1] = description
431
433
  row += 1
432
434
  end
435
+ hide_ignored()
433
436
 
434
437
  @table.resizeColumnsToContents()
435
438
  @table.resizeRowsToContents()
@@ -465,14 +468,14 @@ module Cosmos
465
468
  tlm_items = get_tlm_packet(target_name || '', packet_name || '', @mode)
466
469
  rescue DRb::DRbConnError => error
467
470
  Qt.execute_in_main_thread(true) do
468
- statusBar.showMessage(tr("Error Connecting to Command and Telemetry Server"))
471
+ statusBar.showMessage("Error Connecting to Command and Telemetry Server")
469
472
  end
470
473
  tlm_items = nil
471
474
  update_needed = false
472
475
  rescue RuntimeError => error
473
476
  Qt.execute_in_main_thread(true) do
474
477
  Cosmos.handle_critical_exception(error)
475
- statusBar.showMessage(tr("Packet #{target_name} #{packet_name} Error: #{error}"))
478
+ statusBar.showMessage("Packet #{target_name} #{packet_name} Error: #{error}")
476
479
  end
477
480
  tlm_items = nil
478
481
  update_needed = true
@@ -551,7 +554,7 @@ module Cosmos
551
554
  end
552
555
 
553
556
  def mouse_over(row, col)
554
- statusBar.showMessage(tr(@descriptions[row][col]))
557
+ statusBar.showMessage(@descriptions[row][col])
555
558
  end
556
559
 
557
560
  def context_menu(point)
@@ -564,24 +567,24 @@ module Cosmos
564
567
  if target_name.length > 0 and packet_name.length > 0 and item_name.length > 0
565
568
  menu = Qt::Menu.new()
566
569
 
567
- details_action = Qt::Action.new(tr("Details #{target_name} #{packet_name} #{item_name}"), self)
568
- details_action.statusTip = tr("Popup details about #{target_name} #{packet_name} #{item_name}")
570
+ details_action = Qt::Action.new("Details #{target_name} #{packet_name} #{item_name}", self)
571
+ details_action.statusTip = "Popup details about #{target_name} #{packet_name} #{item_name}"
569
572
  details_action.connect(SIGNAL('triggered()')) do
570
573
  TlmDetailsDialog.new(nil, target_name, packet_name, item_name)
571
574
  @table.clearSelection
572
575
  end
573
576
  menu.addAction(details_action)
574
577
 
575
- edit_action = Qt::Action.new(tr("Edit #{target_name} #{packet_name} #{item_name}"), self)
576
- edit_action.statusTip = tr("Edit Settings for #{target_name} #{packet_name} #{item_name}")
578
+ edit_action = Qt::Action.new("Edit #{target_name} #{packet_name} #{item_name}", self)
579
+ edit_action.statusTip = "Edit Settings for #{target_name} #{packet_name} #{item_name}"
577
580
  edit_action.connect(SIGNAL('triggered()')) do
578
581
  TlmEditDialog.new(self, target_name, packet_name, item_name)
579
582
  @table.clearSelection
580
583
  end
581
584
  menu.addAction(edit_action)
582
585
 
583
- graph_action = Qt::Action.new(tr("Graph #{target_name} #{packet_name} #{item_name}"), self)
584
- graph_action.statusTip = tr("Create a new COSMOS graph of #{target_name} #{packet_name} #{item_name}")
586
+ graph_action = Qt::Action.new("Graph #{target_name} #{packet_name} #{item_name}", self)
587
+ graph_action.statusTip = "Create a new COSMOS graph of #{target_name} #{packet_name} #{item_name}"
585
588
  graph_action.connect(SIGNAL('triggered()')) do
586
589
  @table.clearSelection
587
590
  TlmGraphDialog.new(self, target_name, packet_name, item_name)