cosmos 4.2.4-java → 4.5.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 (458) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +2 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  5. data/.github/ISSUE_TEMPLATE/help---usage---general-question.md +12 -0
  6. data/.gitignore +2 -0
  7. data/.travis.yml +6 -6
  8. data/Dockerfile +69 -0
  9. data/Gemfile +1 -1
  10. data/Manifest.txt +130 -46
  11. data/README.md +9 -0
  12. data/Rakefile +57 -0
  13. data/appveyor.yml +18 -7
  14. data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  15. data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
  16. data/autohotkey/config/targets/INST/lib/sim_inst.rb +3 -1
  17. data/autohotkey/config/tools/cmd_sequence/cmd_sequence.txt +2 -0
  18. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  19. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  20. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  21. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  22. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  23. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  24. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  25. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  26. data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  27. data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  28. data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +2 -4
  29. data/autohotkey/config/tools/table_manager/SubTables/OneDimensionalSubTable_def.txt +31 -0
  30. data/autohotkey/config/tools/table_manager/SubTables/TwoDimensionalSubTable_def.txt +28 -0
  31. data/autohotkey/config/tools/test_runner/test_runner.txt +1 -1
  32. data/autohotkey/config/tools/test_runner/test_runner2.txt +1 -1
  33. data/autohotkey/config/tools/test_runner/test_runner3.txt +1 -1
  34. data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
  35. data/autohotkey/lib/cmd_sequence_exporter.rb +52 -0
  36. data/autohotkey/procedures/collect.rb +2 -2
  37. data/autohotkey/procedures/collect_util.rb +1 -1
  38. data/autohotkey/procedures/script_test.rb +1 -1
  39. data/autohotkey/tools/CmdSenderAHK2 +18 -0
  40. data/autohotkey/tools/cmd_sender.ahk +34 -6
  41. data/autohotkey/tools/cmd_sender2.ahk +4 -0
  42. data/autohotkey/tools/cmd_sequence.ahk +36 -22
  43. data/autohotkey/tools/cmd_sequence2.ahk +1 -1
  44. data/autohotkey/tools/config_editor.ahk +5 -5
  45. data/autohotkey/tools/launcher.ahk +1 -0
  46. data/autohotkey/tools/limits_monitor.ahk +1 -1
  47. data/autohotkey/tools/packet_viewer.ahk +7 -6
  48. data/autohotkey/tools/script_runner.ahk +16 -4
  49. data/autohotkey/tools/test_runner.ahk +8 -8
  50. data/bin/cosmos +38 -1
  51. data/bin/cstol_converter +1 -1
  52. data/bin/dart_util +0 -0
  53. data/bin/rubysloc +73 -28
  54. data/bin/xtce_converter +1 -1
  55. data/cosmos.gemspec +7 -9
  56. data/data/config/_interfaces.yaml +4 -0
  57. data/data/config/cmd_sequence.yaml +14 -0
  58. data/data/config/command_modifiers.yaml +16 -1
  59. data/data/config/housekeeping_params.yaml +14 -0
  60. data/data/config/interface_modifiers.yaml +14 -2
  61. data/data/config/item_modifiers.yaml +11 -1
  62. data/data/config/launcher.yaml +12 -2
  63. data/data/config/param_item_modifiers.yaml +7 -2
  64. data/data/config/parameter_modifiers.yaml +20 -0
  65. data/data/config/screen.yaml +2 -0
  66. data/data/config/script_runner.yaml +9 -0
  67. data/data/config/system.yaml +152 -28
  68. data/data/config/table_manager.yaml +7 -0
  69. data/data/config/target.yaml +12 -0
  70. data/data/config/telemetry_modifiers.yaml +19 -2
  71. data/data/config/test_runner.yaml +10 -9
  72. data/data/config/widgets.yaml +174 -11
  73. data/data/crc.txt +428 -415
  74. data/demo/Gemfile +1 -1
  75. data/demo/Launcher.bat +1 -9
  76. data/demo/Launcher2.bat +1 -0
  77. data/demo/LauncherMini.bat +1 -0
  78. data/demo/Rakefile +2 -0
  79. data/demo/config/dart/Gemfile +2 -7
  80. data/demo/config/data/crc.txt +243 -219
  81. data/demo/config/system/system.txt +42 -3
  82. data/demo/config/system/system2.txt +34 -5
  83. data/demo/config/system/system_alt_ports.txt +80 -0
  84. data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +1 -0
  85. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +5 -4
  86. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +12 -7
  87. data/demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
  88. data/demo/config/targets/INST/cmd_tlm_server.txt +2 -0
  89. data/demo/config/targets/INST/lib/sim_inst.rb +15 -3
  90. data/demo/config/targets/INST/screens/adcs.txt +2 -2
  91. data/demo/config/targets/INST/screens/block.txt +1 -1
  92. data/demo/config/targets/INST/screens/commanding.txt +1 -1
  93. data/demo/config/targets/INST/screens/ground.txt +27 -5
  94. data/demo/config/targets/INST/screens/ground_error.gif +0 -0
  95. data/demo/config/{data/groundoff.gif → targets/INST/screens/ground_off.gif} +0 -0
  96. data/demo/config/{data/groundon.gif → targets/INST/screens/ground_on.gif} +0 -0
  97. data/demo/config/targets/INST/screens/limits.txt +69 -31
  98. data/demo/config/targets/INST/screens/other.txt +13 -3
  99. data/demo/config/targets/INST/screens/params.txt +54 -0
  100. data/demo/config/targets/INST/screens/satellite.gif +0 -0
  101. data/demo/config/targets/INST/target.txt +1 -0
  102. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server_chain.txt +18 -0
  103. data/demo/config/tools/data_viewer/data_viewer.txt +3 -0
  104. data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  105. data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  106. data/demo/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  107. data/demo/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  108. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  109. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  110. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  111. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  112. data/demo/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  113. data/demo/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  114. data/demo/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  115. data/demo/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  116. data/demo/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  117. data/demo/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  118. data/demo/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  119. data/demo/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  120. data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
  121. data/demo/config/tools/script_runner/script_runner.txt +1 -2
  122. data/demo/config/tools/test_runner/test_runner.txt +3 -1
  123. data/demo/lib/example_background_task.rb +1 -0
  124. data/demo/procedures/cosmos_api_test.rb +26 -22
  125. data/demo/procedures/interactive.rb +22 -0
  126. data/demo/procedures/local_screen_example.rb +51 -0
  127. data/ext/cosmos/ext/cosmos_io/cosmos_io.c +32 -4
  128. data/ext/cosmos/ext/packet/packet.c +6 -77
  129. data/ext/mkrf_conf.rb +2 -2
  130. data/extensions/vscode/.gitignore +4 -0
  131. data/extensions/vscode/.vscode/launch.json +32 -0
  132. data/extensions/vscode/.vscode/settings.json +13 -0
  133. data/extensions/vscode/.vscode/tasks.json +79 -0
  134. data/extensions/vscode/License.txt +879 -0
  135. data/extensions/vscode/README.md +9 -0
  136. data/extensions/vscode/client/License.txt +879 -0
  137. data/extensions/vscode/client/README.md +39 -0
  138. data/extensions/vscode/client/cosmos.configuration.json +23 -0
  139. data/extensions/vscode/client/images/icon.png +0 -0
  140. data/extensions/vscode/client/package-lock.json +414 -0
  141. data/extensions/vscode/client/package.json +105 -0
  142. data/extensions/vscode/client/src/extension.ts +132 -0
  143. data/extensions/vscode/client/src/screen_preview.rb +25 -0
  144. data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
  145. data/extensions/vscode/client/tsconfig.json +17 -0
  146. data/extensions/vscode/package-lock.json +26 -0
  147. data/extensions/vscode/package.json +35 -0
  148. data/extensions/vscode/server/License.txt +879 -0
  149. data/extensions/vscode/server/package-lock.json +236 -0
  150. data/extensions/vscode/server/package.json +29 -0
  151. data/extensions/vscode/server/src/server.ts +59 -0
  152. data/extensions/vscode/server/tsconfig.json +16 -0
  153. data/install/Gemfile +1 -1
  154. data/install/Launcher.bat +1 -9
  155. data/install/config/dart/Gemfile +3 -8
  156. data/install/config/data/crc.txt +148 -132
  157. data/install/config/system/system.txt +36 -3
  158. data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  159. data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  160. data/install/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  161. data/install/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  162. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  163. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  164. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  165. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  166. data/install/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  167. data/install/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  168. data/install/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  169. data/install/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  170. data/install/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  171. data/install/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  172. data/install/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  173. data/install/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  174. data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
  175. data/lib/cosmos/config/config_parser.rb +4 -5
  176. data/lib/cosmos/conversions.rb +2 -0
  177. data/lib/cosmos/conversions/packet_time_formatted_conversion.rb +38 -0
  178. data/lib/cosmos/conversions/packet_time_seconds_conversion.rb +38 -0
  179. data/lib/cosmos/core_ext/cosmos_io.rb +2 -1
  180. data/lib/cosmos/core_ext/time.rb +3 -1
  181. data/lib/cosmos/dart/config/boot.rb +1 -1
  182. data/lib/cosmos/dart/config/database.yml +2 -0
  183. data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
  184. data/lib/cosmos/dart/examples/dart_stream_client.rb +6 -2
  185. data/lib/cosmos/dart/lib/dart_common.rb +13 -6
  186. data/lib/cosmos/dart/lib/dart_constants.rb +15 -0
  187. data/lib/cosmos/dart/lib/dart_database_cleaner.rb +2 -2
  188. data/lib/cosmos/dart/lib/dart_decom_query.rb +5 -6
  189. data/lib/cosmos/dart/lib/dart_decommutator.rb +64 -54
  190. data/lib/cosmos/dart/lib/dart_importer.rb +3 -3
  191. data/lib/cosmos/dart/lib/dart_master_query.rb +71 -0
  192. data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +2 -2
  193. data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +165 -134
  194. data/lib/cosmos/dart/processes/dart.rb +4 -2
  195. data/lib/cosmos/dart/processes/dart_decom_server.rb +3 -3
  196. data/lib/cosmos/dart/processes/dart_ingester.rb +40 -1
  197. data/lib/cosmos/dart/processes/dart_master.rb +44 -0
  198. data/lib/cosmos/dart/processes/dart_util.rb +119 -4
  199. data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +3 -3
  200. data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +9 -5
  201. data/lib/cosmos/gui/dialogs/details_dialog.rb +44 -29
  202. data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +1 -1
  203. data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +3 -3
  204. data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +2 -2
  205. data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +1 -1
  206. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +11 -10
  207. data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +4 -2
  208. data/lib/cosmos/gui/opengl/earth_model.rb +1 -1
  209. data/lib/cosmos/gui/qt.rb +13 -2
  210. data/lib/cosmos/gui/qt_tool.rb +71 -43
  211. data/lib/cosmos/gui/text/ruby_editor.rb +91 -49
  212. data/lib/cosmos/gui/utilities/classification_banner.rb +60 -0
  213. data/lib/cosmos/gui/utilities/screenshot.rb +1 -1
  214. data/lib/cosmos/gui/utilities/script_module_gui.rb +117 -91
  215. data/lib/cosmos/gui/widgets/dart_meta_frame.rb +22 -3
  216. data/lib/cosmos/interfaces.rb +2 -0
  217. data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
  218. data/lib/cosmos/interfaces/interface.rb +9 -1
  219. data/lib/cosmos/interfaces/linc_interface.rb +3 -3
  220. data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
  221. data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
  222. data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +40 -18
  223. data/lib/cosmos/interfaces/protocols/ignore_packet_protocol.rb +46 -0
  224. data/lib/cosmos/interfaces/protocols/length_protocol.rb +5 -0
  225. data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +68 -23
  226. data/lib/cosmos/interfaces/protocols/template_protocol.rb +9 -4
  227. data/lib/cosmos/interfaces/serial_interface.rb +7 -1
  228. data/lib/cosmos/interfaces/simulated_target_interface.rb +14 -5
  229. data/lib/cosmos/interfaces/stream_interface.rb +1 -1
  230. data/lib/cosmos/interfaces/tcpip_server_interface.rb +13 -13
  231. data/lib/cosmos/io/json_drb.rb +16 -12
  232. data/lib/cosmos/io/json_drb_object.rb +7 -2
  233. data/lib/cosmos/io/json_drb_rack.rb +25 -5
  234. data/lib/cosmos/io/json_rpc.rb +1 -1
  235. data/lib/cosmos/io/posix_serial_driver.rb +60 -22
  236. data/lib/cosmos/io/serial_driver.rb +11 -8
  237. data/lib/cosmos/io/win32_serial_driver.rb +31 -3
  238. data/lib/cosmos/packet_logs/packet_log_reader.rb +71 -28
  239. data/lib/cosmos/packet_logs/packet_log_writer.rb +13 -1
  240. data/lib/cosmos/packets/commands.rb +30 -9
  241. data/lib/cosmos/packets/packet.rb +105 -34
  242. data/lib/cosmos/packets/packet_config.rb +60 -10
  243. data/lib/cosmos/packets/parsers/format_string_parser.rb +0 -1
  244. data/lib/cosmos/packets/parsers/state_parser.rb +0 -1
  245. data/lib/cosmos/packets/parsers/xtce_converter.rb +2 -0
  246. data/lib/cosmos/packets/parsers/xtce_parser.rb +5 -4
  247. data/lib/cosmos/packets/structure.rb +32 -4
  248. data/lib/cosmos/packets/structure_item.rb +5 -1
  249. data/lib/cosmos/packets/telemetry.rb +30 -4
  250. data/lib/cosmos/script/api_shared.rb +22 -10
  251. data/lib/cosmos/script/extract.rb +1 -1
  252. data/lib/cosmos/script/limits.rb +4 -0
  253. data/lib/cosmos/script/script.rb +29 -20
  254. data/lib/cosmos/script/scripting.rb +16 -14
  255. data/lib/cosmos/script/telemetry.rb +3 -1
  256. data/lib/cosmos/script/tools.rb +18 -8
  257. data/lib/cosmos/streams/serial_stream.rb +11 -6
  258. data/lib/cosmos/system/system.rb +214 -76
  259. data/lib/cosmos/system/target.rb +39 -9
  260. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +116 -55
  261. data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
  262. data/lib/cosmos/tools/cmd_sender/cmd_params.rb +382 -0
  263. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +54 -340
  264. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +74 -52
  265. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +40 -333
  266. data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +16 -11
  267. data/lib/cosmos/tools/cmd_tlm_server/api.rb +13 -0
  268. data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +2 -0
  269. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +44 -15
  270. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +8 -1
  271. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +18 -20
  272. data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +13 -2
  273. data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +2 -2
  274. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +13 -13
  275. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +9 -6
  276. data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +8 -8
  277. data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +5 -5
  278. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +35 -20
  279. data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +15 -11
  280. data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
  281. data/lib/cosmos/tools/cmd_tlm_server/routers.rb +2 -0
  282. data/lib/cosmos/tools/config_editor/config_editor.rb +181 -94
  283. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +10 -9
  284. data/lib/cosmos/tools/config_editor/system_config_dialog.rb +158 -0
  285. data/lib/cosmos/tools/data_viewer/data_viewer.rb +57 -47
  286. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +1 -0
  287. data/lib/cosmos/tools/data_viewer/dump_component.rb +3 -9
  288. data/lib/cosmos/tools/data_viewer/text_component.rb +77 -0
  289. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +68 -42
  290. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
  291. data/lib/cosmos/tools/launcher/launcher.rb +2 -1
  292. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +59 -41
  293. data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +42 -42
  294. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +64 -59
  295. data/lib/cosmos/tools/script_runner/script_runner.rb +198 -123
  296. data/lib/cosmos/tools/script_runner/script_runner_config.rb +14 -0
  297. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +87 -35
  298. data/lib/cosmos/tools/table_manager/table_config.rb +5 -3
  299. data/lib/cosmos/tools/table_manager/table_manager.rb +48 -45
  300. data/lib/cosmos/tools/test_runner/test.rb +5 -2
  301. data/lib/cosmos/tools/test_runner/test_runner.rb +61 -38
  302. data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +24 -12
  303. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +48 -48
  304. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +5 -8
  305. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +20 -16
  306. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +3 -3
  307. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +7 -7
  308. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +10 -10
  309. data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +10 -3
  310. data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +6 -6
  311. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +14 -14
  312. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +21 -17
  313. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +5 -8
  314. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +94 -91
  315. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +27 -26
  316. data/lib/cosmos/tools/tlm_viewer/screen.rb +76 -14
  317. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +51 -34
  318. data/lib/cosmos/tools/tlm_viewer/widgets.rb +3 -0
  319. data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +4 -5
  320. data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +3 -4
  321. data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +4 -5
  322. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +16 -2
  323. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +17 -3
  324. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +1 -2
  325. data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +40 -0
  326. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +12 -7
  327. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +79 -29
  328. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +1 -0
  329. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +2 -1
  330. data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +2 -0
  331. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +4 -0
  332. data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +33 -25
  333. data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +5 -3
  334. data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +5 -3
  335. data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +1 -1
  336. data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +4 -7
  337. data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +5 -5
  338. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +6 -7
  339. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +2 -4
  340. data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +10 -8
  341. data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +2 -3
  342. data/lib/cosmos/tools/tlm_viewer/widgets/labelled_widget.rb +58 -0
  343. data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +3 -4
  344. data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +2 -4
  345. data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +2 -1
  346. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +3 -5
  347. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +2 -3
  348. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitscolumn_widget.rb +2 -3
  349. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +2 -3
  350. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb +2 -3
  351. data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +3 -5
  352. data/lib/cosmos/tools/tlm_viewer/widgets/led_widget.rb +108 -0
  353. data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +60 -10
  354. data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +22 -8
  355. data/lib/cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb +19 -13
  356. data/lib/cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb +22 -8
  357. data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +2 -3
  358. data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +4 -3
  359. data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +1 -3
  360. data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +10 -5
  361. data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +7 -4
  362. data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +4 -6
  363. data/lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb +3 -5
  364. data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +4 -3
  365. data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +2 -3
  366. data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +2 -3
  367. data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +4 -6
  368. data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +2 -3
  369. data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +2 -3
  370. data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +13 -4
  371. data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +3 -4
  372. data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +3 -8
  373. data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +6 -12
  374. data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +5 -10
  375. data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +5 -3
  376. data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +4 -4
  377. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +2 -3
  378. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitscolumn_widget.rb +2 -3
  379. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +3 -4
  380. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangecolumn_widget.rb +2 -3
  381. data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +8 -7
  382. data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +9 -7
  383. data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +60 -47
  384. data/lib/cosmos/top_level.rb +37 -13
  385. data/lib/cosmos/utilities/ruby_lex_utils.rb +34 -30
  386. data/lib/cosmos/version.rb +5 -5
  387. data/lib/cosmos/win32/excel.rb +81 -24
  388. data/make_gems.sh +10 -0
  389. data/run_gui_tests.bat +1 -0
  390. data/spec/conversions/packet_time_formatted_conversion_spec.rb +58 -0
  391. data/spec/conversions/packet_time_seconds_conversion_spec.rb +60 -0
  392. data/spec/core_ext/socket_spec.rb +1 -1
  393. data/spec/core_ext/time_spec.rb +4 -0
  394. data/spec/gui/utilities/script_module_gui_spec.rb +44 -63
  395. data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  396. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
  397. data/spec/install/yaml_docs_spec.rb +132 -0
  398. data/spec/interfaces/linc_interface_spec.rb +1 -1
  399. data/spec/interfaces/protocols/fixed_protocol_spec.rb +20 -9
  400. data/spec/interfaces/protocols/ignore_packet_protocol_spec.rb +243 -0
  401. data/spec/interfaces/protocols/length_protocol_spec.rb +39 -0
  402. data/spec/interfaces/protocols/preidentified_protocol_spec.rb +227 -4
  403. data/spec/interfaces/protocols/template_protocol_spec.rb +78 -25
  404. data/spec/io/json_drb_rack_spec.rb +166 -0
  405. data/spec/io/json_drb_spec.rb +14 -0
  406. data/spec/io/json_rpc_spec.rb +4 -5
  407. data/spec/io/posix_serial_driver_spec.rb +81 -0
  408. data/spec/io/serial_driver_spec.rb +15 -13
  409. data/spec/io/win32_serial_driver_spec.rb +33 -3
  410. data/spec/packet_logs/packet_log_reader_spec.rb +106 -52
  411. data/spec/packets/commands_spec.rb +22 -0
  412. data/spec/packets/packet_config_spec.rb +29 -16
  413. data/spec/packets/packet_item_spec.rb +2 -2
  414. data/spec/packets/packet_spec.rb +39 -6
  415. data/spec/packets/parsers/format_string_parser_spec.rb +0 -11
  416. data/spec/packets/parsers/macro_parser_spec.rb +36 -36
  417. data/spec/packets/parsers/state_parser_spec.rb +69 -11
  418. data/spec/packets/structure_spec.rb +93 -2
  419. data/spec/packets/telemetry_spec.rb +63 -10
  420. data/spec/script/extract_spec.rb +4 -1
  421. data/spec/script/script_spec.rb +2 -3
  422. data/spec/script/scripting_spec.rb +2 -1
  423. data/spec/script/tools_spec.rb +0 -1
  424. data/spec/streams/tcpip_socket_stream_spec.rb +32 -27
  425. data/spec/system/system_spec.rb +187 -4
  426. data/spec/system/target_spec.rb +62 -1
  427. data/spec/tools/cmd_tlm_server/api_spec.rb +29 -21
  428. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -7
  429. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +33 -0
  430. data/spec/tools/cmd_tlm_server/commanding_spec.rb +25 -1
  431. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +15 -0
  432. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
  433. data/spec/top_level/top_level_spec.rb +29 -5
  434. data/spec/utilities/message_log_spec.rb +6 -3
  435. data/tasks/gemfile_stats.rake +38 -14
  436. data/test/performance/config/system/system.txt +0 -0
  437. data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +5 -5
  438. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  439. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  440. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  441. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  442. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  443. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  444. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  445. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  446. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  447. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  448. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  449. data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  450. data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  451. data/test/performance/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  452. data/test/performance/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  453. data/test/performance/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  454. data/test/performance/config/tools/test_runner/test_runner.txt +1 -1
  455. data/test/performance/procedures/cosmos_api_test.rb +1 -1
  456. data/test/performance/tools/identify_performance.rb +82 -0
  457. metadata +146 -62
  458. data/lib/cosmos/dart/Gemfile +0 -69
@@ -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
@@ -74,6 +74,7 @@ module Cosmos
74
74
  update_tlm_items(item_name)
75
75
  end
76
76
  end
77
+ toggle_replay_mode() if options.replay
77
78
  end
78
79
 
79
80
  # Unconfigure CosmosConfig to interact with splash screen
@@ -85,60 +86,54 @@ module Cosmos
85
86
  super()
86
87
 
87
88
  @edit_action = Qt::Action.new(Cosmos.get_icon('edit.png'),
88
- tr('&Edit Definition'),
89
+ '&Edit Definition',
89
90
  self)
90
- @edit_keyseq = Qt::KeySequence.new(tr('Ctrl+E'))
91
+ @edit_keyseq = Qt::KeySequence.new('Ctrl+E')
91
92
  @edit_action.shortcut = @edit_keyseq
92
- @edit_action.statusTip = tr('Open packet definition in a editor')
93
+ @edit_action.statusTip = 'Open packet definition in a editor'
93
94
  @edit_action.connect(SIGNAL('triggered()')) { edit_definition }
94
95
 
95
- @reset_action = Qt::Action.new(tr('&Reset'), self)
96
- @reset_keyseq = Qt::KeySequence.new(tr('Ctrl+R'))
96
+ @reset_action = Qt::Action.new('&Reset', self)
97
+ @reset_keyseq = Qt::KeySequence.new('Ctrl+R')
97
98
  @reset_action.shortcut = @reset_keyseq
98
- @reset_action.statusTip = tr('Reset Connection')
99
+ @reset_action.statusTip = 'Reset Connection'
99
100
  connect(@reset_action, SIGNAL('triggered()'), self, SLOT('update_all()'))
100
101
 
101
- @option_action = Qt::Action.new(tr('O&ptions'), self)
102
- @option_action.statusTip = tr('Application Options')
102
+ @option_action = Qt::Action.new('O&ptions', self)
103
+ @option_action.statusTip = 'Application Options'
103
104
  connect(@option_action, SIGNAL('triggered()'), self, SLOT('file_options()'))
104
105
 
105
- @replay_action = Qt::Action.new(tr('Toggle Replay Mode'), self)
106
- @replay_action.statusTip = tr('Toggle Replay Mode')
106
+ @replay_action = Qt::Action.new('Toggle Replay Mode', self)
107
+ @replay_action.statusTip = 'Toggle Replay Mode'
107
108
  @replay_action.connect(SIGNAL('triggered()')) { toggle_replay_mode() }
108
109
 
109
- @color_blind_action = Qt::Action.new(tr('Color&blind Mode'), self)
110
- @color_blind_keyseq = Qt::KeySequence.new(tr('Ctrl+B'))
110
+ @color_blind_action = Qt::Action.new('Color&blind Mode', self)
111
+ @color_blind_keyseq = Qt::KeySequence.new('Ctrl+B')
111
112
  @color_blind_action.shortcut = @color_blind_keyseq
112
- @color_blind_action.statusTip = tr('Enable text representation of colors in the values')
113
+ @color_blind_action.statusTip = 'Enable text representation of colors in the values'
113
114
  @color_blind_action.setCheckable(true)
114
115
  @color_blind_action.connect(SIGNAL('triggered()')) do
115
116
  @colorblind = @color_blind_action.isChecked
116
117
  end
117
118
 
118
- @hide_ignored_action = Qt::Action.new(tr('&Hide Ignored Items'), self)
119
- @hide_ignored_keyseq = Qt::KeySequence.new(tr('Ctrl+H'))
119
+ @hide_ignored_action = Qt::Action.new('&Hide Ignored Items', self)
120
+ @hide_ignored_keyseq = Qt::KeySequence.new('Ctrl+H')
120
121
  @hide_ignored_action.shortcut = @hide_ignored_keyseq
121
- @hide_ignored_action.statusTip = tr('Toggle showing and hiding ignored items')
122
+ @hide_ignored_action.statusTip = 'Toggle showing and hiding ignored items'
122
123
  @hide_ignored_action.setCheckable(true)
123
124
  @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
125
+ @hide_ignored_action.connect(SIGNAL('triggered()')) { hide_ignored() }
131
126
 
132
- @derived_last_action = Qt::Action.new(tr('&Display Derived Last'), self)
133
- @derived_last_keyseq = Qt::KeySequence.new(tr('Ctrl+D'))
127
+ @derived_last_action = Qt::Action.new('&Display Derived Last', self)
128
+ @derived_last_keyseq = Qt::KeySequence.new('Ctrl+D')
134
129
  @derived_last_action.shortcut = @derived_last_keyseq
135
- @derived_last_action.statusTip = tr('Display derived telemetry items last')
130
+ @derived_last_action.statusTip = 'Display derived telemetry items last'
136
131
  @derived_last_action.setCheckable(true)
137
132
  @derived_last_action.setChecked(false)
138
133
  @derived_last_action.connect(SIGNAL('triggered()')) { update_tlm_items() }
139
134
 
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')
135
+ @formatted_tlm_units_action = Qt::Action.new('Formatted Telemetry With &Units', self)
136
+ @formatted_tlm_units_action.statusTip = 'Formatted Telemetry with Units'
142
137
  @formatted_tlm_units_action.setCheckable(true)
143
138
  @formatted_tlm_units_action.setChecked(true)
144
139
  @formatted_tlm_units_action.connect(SIGNAL('triggered()')) do
@@ -146,24 +141,24 @@ module Cosmos
146
141
  self.window_title = "COSMOS Packet Viewer : Formatted Telemetry with Units"
147
142
  end
148
143
 
149
- @formatted_tlm_action = Qt::Action.new(tr('&Formatted Telemetry'), self)
150
- @formatted_tlm_action.statusTip = tr('Formatted Telemetry')
144
+ @formatted_tlm_action = Qt::Action.new('&Formatted Telemetry', self)
145
+ @formatted_tlm_action.statusTip = 'Formatted Telemetry'
151
146
  @formatted_tlm_action.setCheckable(true)
152
147
  @formatted_tlm_action.connect(SIGNAL('triggered()')) do
153
148
  @mode = :FORMATTED
154
149
  self.window_title = "COSMOS Packet Viewer : Formatted Telemetry"
155
150
  end
156
151
 
157
- @normal_tlm_action = Qt::Action.new(tr('Normal &Converted Telemetry'), self)
158
- @normal_tlm_action.statusTip = tr('Normal Converted Telemetry')
152
+ @normal_tlm_action = Qt::Action.new('Normal &Converted Telemetry', self)
153
+ @normal_tlm_action.statusTip = 'Normal Converted Telemetry'
159
154
  @normal_tlm_action.setCheckable(true)
160
155
  @normal_tlm_action.connect(SIGNAL('triggered()')) do
161
156
  @mode = :CONVERTED
162
157
  self.window_title = "COSMOS Packet Viewer : Coverted Telemetry"
163
158
  end
164
159
 
165
- @raw_tlm_action = Qt::Action.new(tr('&Raw Telemetry'), self)
166
- @raw_tlm_action.statusTip = tr('Raw Unprocessed Telemetry')
160
+ @raw_tlm_action = Qt::Action.new('&Raw Telemetry', self)
161
+ @raw_tlm_action.statusTip = 'Raw Unprocessed Telemetry'
167
162
  @raw_tlm_action.setCheckable(true)
168
163
  @raw_tlm_action.connect(SIGNAL('triggered()')) do
169
164
  @mode = :RAW
@@ -180,7 +175,7 @@ module Cosmos
180
175
 
181
176
  def initialize_menus
182
177
  # File Menu
183
- file_menu = menuBar.addMenu(tr('&File'))
178
+ file_menu = menuBar.addMenu('&File')
184
179
  file_menu.addAction(@edit_action)
185
180
  file_menu.addAction(@reset_action)
186
181
  file_menu.addAction(@option_action)
@@ -189,11 +184,11 @@ module Cosmos
189
184
  file_menu.addAction(@exit_action)
190
185
 
191
186
  # View Menu
192
- view_menu = menuBar.addMenu(tr('&View'))
187
+ view_menu = menuBar.addMenu('&View')
193
188
  view_menu.addAction(@color_blind_action)
194
189
  view_menu.addAction(@hide_ignored_action)
195
190
  view_menu.addAction(@derived_last_action)
196
- view_menu.addSeparator.setText(tr('Formatting'));
191
+ view_menu.addSeparator.setText('Formatting')
197
192
  view_menu.addAction(@formatted_tlm_units_action)
198
193
  view_menu.addAction(@formatted_tlm_action)
199
194
  view_menu.addAction(@normal_tlm_action)
@@ -224,7 +219,7 @@ module Cosmos
224
219
  update_packets()
225
220
  update_tlm_items()
226
221
  end
227
- target_label = Qt::Label.new(tr("&Target:"))
222
+ target_label = Qt::Label.new("&Target:")
228
223
  target_label.setBuddy(@target_select)
229
224
 
230
225
  # Set the command combobox selection
@@ -233,7 +228,7 @@ module Cosmos
233
228
  @packet_select.connect(SIGNAL('activated(const QString&)')) do
234
229
  update_tlm_items()
235
230
  end
236
- cmd_label = Qt::Label.new(tr("&Packet:"))
231
+ cmd_label = Qt::Label.new("&Packet:")
237
232
  cmd_label.setBuddy(@packet_select)
238
233
 
239
234
  # Mnemonic Search Box
@@ -254,7 +249,7 @@ module Cosmos
254
249
  top_layout.addWidget(sep1)
255
250
 
256
251
  # Telemetry Description Label
257
- dec_label = Qt::Label.new(tr("Description:"))
252
+ dec_label = Qt::Label.new("Description:")
258
253
  @description = Qt::Label.new('')
259
254
  desc_layout = Qt::HBoxLayout.new
260
255
  desc_layout.addWidget(dec_label)
@@ -271,7 +266,7 @@ module Cosmos
271
266
  end
272
267
 
273
268
  def file_options
274
- @polling_rate = Qt::InputDialog.getDouble(self, tr("Options"), tr("Polling Rate (sec):"),
269
+ @polling_rate = Qt::InputDialog.getDouble(self, "Options", "Polling Rate (sec):",
275
270
  @polling_rate, 0, 1000, 1, nil)
276
271
  end
277
272
 
@@ -284,6 +279,14 @@ module Cosmos
284
279
  end
285
280
  end
286
281
 
282
+ def hide_ignored
283
+ if @hide_ignored_action.isChecked
284
+ @ignored_rows.each {|row| @table.setRowHidden(row, true) }
285
+ else
286
+ @ignored_rows.each {|row| @table.setRowHidden(row, false) }
287
+ end
288
+ end
289
+
287
290
  def edit_definition
288
291
  # Grab all the cmd_tlm_files and processes them in reverse sort order
289
292
  # because typically we'll have cmd.txt and tlm.txt and we want to process
@@ -417,11 +420,11 @@ module Cosmos
417
420
  featured_row = row if featured_item_name == tlm_name
418
421
  @ignored_rows << row if System.targets[target_name].ignored_items.include?(tlm_name)
419
422
  tlm_name = "*#{tlm_name}" if derived
420
- item = Qt::TableWidgetItem.new(tr("#{tlm_name}:"))
423
+ item = Qt::TableWidgetItem.new("#{tlm_name}:")
421
424
  item.setTextAlignment(Qt::AlignRight)
422
425
  item.setFlags(Qt::NoItemFlags | Qt::ItemIsSelectable)
423
426
  @table.setItem(row, 0, item)
424
- item = Qt::TableWidgetItem.new(tr("0.0"))
427
+ item = Qt::TableWidgetItem.new("0.0")
425
428
  item.setTextAlignment(Qt::AlignRight)
426
429
  item.setFlags(Qt::NoItemFlags | Qt::ItemIsSelectable | Qt::ItemIsEnabled)
427
430
  @table.setItem(row, 1, item)
@@ -430,6 +433,7 @@ module Cosmos
430
433
  @descriptions[row][1] = description
431
434
  row += 1
432
435
  end
436
+ hide_ignored()
433
437
 
434
438
  @table.resizeColumnsToContents()
435
439
  @table.resizeRowsToContents()
@@ -465,14 +469,14 @@ module Cosmos
465
469
  tlm_items = get_tlm_packet(target_name || '', packet_name || '', @mode)
466
470
  rescue DRb::DRbConnError => error
467
471
  Qt.execute_in_main_thread(true) do
468
- statusBar.showMessage(tr("Error Connecting to Command and Telemetry Server"))
472
+ statusBar.showMessage("Error Connecting to Command and Telemetry Server")
469
473
  end
470
474
  tlm_items = nil
471
475
  update_needed = false
472
476
  rescue RuntimeError => error
473
477
  Qt.execute_in_main_thread(true) do
474
478
  Cosmos.handle_critical_exception(error)
475
- statusBar.showMessage(tr("Packet #{target_name} #{packet_name} Error: #{error}"))
479
+ statusBar.showMessage("Packet #{target_name} #{packet_name} Error: #{error}")
476
480
  end
477
481
  tlm_items = nil
478
482
  update_needed = true
@@ -551,7 +555,7 @@ module Cosmos
551
555
  end
552
556
 
553
557
  def mouse_over(row, col)
554
- statusBar.showMessage(tr(@descriptions[row][col]))
558
+ statusBar.showMessage(@descriptions[row][col])
555
559
  end
556
560
 
557
561
  def context_menu(point)
@@ -564,27 +568,27 @@ module Cosmos
564
568
  if target_name.length > 0 and packet_name.length > 0 and item_name.length > 0
565
569
  menu = Qt::Menu.new()
566
570
 
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}")
571
+ details_action = Qt::Action.new("Details #{target_name} #{packet_name} #{item_name}", self)
572
+ details_action.statusTip = "Popup details about #{target_name} #{packet_name} #{item_name}"
569
573
  details_action.connect(SIGNAL('triggered()')) do
570
574
  TlmDetailsDialog.new(nil, target_name, packet_name, item_name)
571
575
  @table.clearSelection
572
576
  end
573
577
  menu.addAction(details_action)
574
578
 
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}")
579
+ edit_action = Qt::Action.new("Edit #{target_name} #{packet_name} #{item_name}", self)
580
+ edit_action.statusTip = "Edit Settings for #{target_name} #{packet_name} #{item_name}"
577
581
  edit_action.connect(SIGNAL('triggered()')) do
578
582
  TlmEditDialog.new(self, target_name, packet_name, item_name)
579
583
  @table.clearSelection
580
584
  end
581
585
  menu.addAction(edit_action)
582
586
 
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}")
587
+ graph_action = Qt::Action.new("Graph #{target_name} #{packet_name} #{item_name}", self)
588
+ graph_action.statusTip = "Create a new COSMOS graph of #{target_name} #{packet_name} #{item_name}"
585
589
  graph_action.connect(SIGNAL('triggered()')) do
586
590
  @table.clearSelection
587
- TlmGraphDialog.new(self, target_name, packet_name, item_name)
591
+ TlmGraphDialog.new(self, target_name, packet_name, item_name, get_replay_mode())
588
592
  end
589
593
  menu.addAction(graph_action)
590
594
 
@@ -625,12 +629,13 @@ module Cosmos
625
629
  "Set the polling rate to PERIOD (unit seconds)") do |arg|
626
630
  options.rate = Float(arg)
627
631
  end
632
+ options.replay = false
633
+ option_parser.on("--replay", "Start Packet Viewer in Replay mode") do
634
+ options.replay = true
635
+ end
628
636
  end
629
-
630
637
  super(option_parser, options)
631
638
  end
632
639
  end
633
-
634
- end # class PacketViewer
635
-
636
- end # module Cosmos
640
+ end
641
+ end