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
@@ -20,7 +20,7 @@ module Cosmos
20
20
  DART_REDUCTION_OPTIONS = [:NONE, :MINUTE, :HOUR, :DAY]
21
21
  DART_REDUCED_TYPES = [:AVG, :MIN, :MAX, :STDDEV]
22
22
  COLUMN_MODES = [:NORMAL, :SHARE_ALL_COLUMNS, :SHARE_INDIV_COLUMNS, :FULL_COLUMN_NAMES]
23
- DEFAULT_UNIQUE_IGNORED = ['RECEIVED_TIMEFORMATTED', 'RECEIVED_TIMESECONDS']
23
+ DEFAULT_UNIQUE_IGNORED = ['PACKET_TIMEFORMATTED', 'PACKET_TIMESECONDS', 'RECEIVED_TIMEFORMATTED', 'RECEIVED_TIMESECONDS']
24
24
  ITEM = 'ITEM'.freeze
25
25
  TEXT = 'TEXT'.freeze
26
26
 
@@ -257,7 +257,7 @@ module Cosmos
257
257
  else
258
258
  raise "Unknown Dart Reduction: #{dart_reduction}"
259
259
  end
260
-
260
+
261
261
  if params.length == 5
262
262
  dart_reduced_type = :AVG
263
263
  else
@@ -385,10 +385,7 @@ module Cosmos
385
385
 
386
386
  # Print column headings to output file
387
387
  @output_file.print "%" if @matlab_header
388
- column_names().each do |column_name|
389
- @output_file.print column_name
390
- @output_file.print @delimiter
391
- end
388
+ @output_file.print column_names.join(@delimiter)
392
389
  @output_file.puts ""
393
390
  @row_index += 1
394
391
  end
@@ -416,8 +413,8 @@ module Cosmos
416
413
  target_timestamp_mapping = @packet_timestamp_mapping[packet.target_name]
417
414
  end
418
415
  previous_timestamp = target_timestamp_mapping[packet.packet_name]
419
- return if previous_timestamp and (packet.received_time - previous_timestamp) < @downsample_seconds
420
- target_timestamp_mapping[packet.packet_name] = packet.received_time
416
+ return if previous_timestamp and (packet.packet_time - previous_timestamp) < @downsample_seconds
417
+ target_timestamp_mapping[packet.packet_name] = packet.packet_time
421
418
  end
422
419
 
423
420
  # Create a new row
@@ -10,11 +10,11 @@
10
10
 
11
11
  require 'cosmos'
12
12
  require 'cosmos/tools/tlm_extractor/tlm_extractor_config'
13
+ require 'cosmos/dart/lib/dart_constants'
13
14
 
14
15
  module Cosmos
15
-
16
+ # Process the settings selected in the TlmExtractor to ultimately produce the output file
16
17
  class TlmExtractorProcessor
17
-
18
18
  attr_accessor :packet_log_reader
19
19
 
20
20
  def initialize
@@ -31,7 +31,7 @@ module Cosmos
31
31
  configs[-1].output_filename = File.join(output_dir, batch_name.tr(' ', '_') + '_' + filename_no_extension.tr(' ', '_') + output_extension)
32
32
  end
33
33
  process(input_filenames, configs, time_start, time_end, &block)
34
- end # def process_batch
34
+ end
35
35
 
36
36
  def process(input_filenames, configs, time_start = nil, time_end = nil)
37
37
  Cosmos.set_working_dir do
@@ -50,10 +50,10 @@ module Cosmos
50
50
  end
51
51
  yield input_file_index, packet_count, 1.0 if block_given?
52
52
  end
53
- end # Cosmos.set_working_dir
53
+ end
54
54
  ensure
55
55
  configs.each { |config| config.close_output_file }
56
- end # def process
56
+ end
57
57
 
58
58
  def process_dart_batch(batch_name, output_dir, output_extension, config_filenames, time_start = nil, time_end = nil, meta_filters = [], &block)
59
59
  configs = []
@@ -72,13 +72,13 @@ module Cosmos
72
72
  items = []
73
73
  configs.each { |config| config.mode = :dart; items.concat(config.normal_items); config.open_output_file }
74
74
  items.uniq!
75
-
75
+
76
76
  time_start = Time.utc(1970, 1, 1) unless time_start
77
77
  time_end = Time.now unless time_end
78
78
 
79
79
  results = {}
80
80
  begin
81
- server = JsonDRbObject.new(System.connect_hosts['DART_DECOM'], System.ports['DART_DECOM'])
81
+ server = JsonDRbObject.new(System.connect_hosts['DART_DECOM'], System.ports['DART_DECOM'], 1.0, Cosmos::System.x_csrf_token)
82
82
 
83
83
  index = 0
84
84
  items.each do |item_type, target_name, packet_name, item_name, value_type, dart_reduction, dart_reduced_type|
@@ -96,21 +96,27 @@ module Cosmos
96
96
  request['reduction'] = dart_reduction.to_s
97
97
  request['cmd_tlm'] = 'TLM'
98
98
  request['offset'] = 0
99
- request['limit'] = 10000
99
+ request['limit'] = DartConstants::MAX_DECOM_RESULTS
100
100
  if dart_reduction == :NONE
101
101
  request['value_type'] = value_type.to_s
102
102
  else
103
103
  request['value_type'] = value_type.to_s + "_#{dart_reduced_type}"
104
104
  end
105
105
  request['meta_filters'] = meta_filters if meta_filters.length > 0
106
- result = server.query(request)
107
- results[query_string] = result
106
+ results[query_string] = []
107
+ while true
108
+ result = server.query(request)
109
+ results[query_string].concat(result)
110
+ break if result.length < DartConstants::MAX_DECOM_RESULTS
111
+ yield(index.to_f / items.length, " Total results: #{results[query_string].length}") if block_given?
112
+ request['offset'] += DartConstants::MAX_DECOM_RESULTS
113
+ end
108
114
  index += 1
109
- yield(index.to_f / items.length, " Received #{result.length} values") if block_given?
115
+ yield(index.to_f / items.length, " Total results: #{results[query_string].length}") if block_given?
110
116
  rescue Exception => error
111
117
  yield(index.to_f / items.length, "Error querying #{query_string} : #{error.class}:#{error.message}\n#{error.backtrace.join("\n")}\n") if block_given?
112
118
  return # Bail out because something bad happened
113
- end
119
+ end
114
120
  end
115
121
 
116
122
  configs.each { |config| config.process_dart(results) }
@@ -121,7 +127,5 @@ module Cosmos
121
127
  ensure
122
128
  configs.each { |config| config.close_output_file }
123
129
  end
124
-
125
- end # class TlmExtractorProcessor
126
-
127
- end # module Cosmos
130
+ end
131
+ end
@@ -47,7 +47,7 @@ module Cosmos
47
47
  # Chooser for x item
48
48
  x_item_names = @telemetry_chooser.item_names
49
49
  @x_item_name = ComboboxChooser.new(self, 'X Item:', x_item_names)
50
- @x_item_name.set_current('RECEIVED_TIMESECONDS')
50
+ @x_item_name.set_current('PACKET_TIMESECONDS')
51
51
  @overall_frame.addWidget(@x_item_name)
52
52
 
53
53
  # Button to add data object
@@ -67,7 +67,7 @@ module Cosmos
67
67
  @telemetry_chooser.update
68
68
  x_item_names = @telemetry_chooser.item_names
69
69
  @x_item_name.update_items(x_item_names, false)
70
- @x_item_name.set_current('RECEIVED_TIMESECONDS')
70
+ @x_item_name.set_current('PACKET_TIMESECONDS')
71
71
  end
72
72
 
73
73
  # Adds a data object when the add button is pressed
@@ -87,7 +87,7 @@ module Cosmos
87
87
  def packet_changed_callback(target_name = nil, packet_name = nil)
88
88
  x_item_names = @telemetry_chooser.item_names
89
89
  @x_item_name.update_items(x_item_names, false)
90
- @x_item_name.set_current('RECEIVED_TIMESECONDS')
90
+ @x_item_name.set_current('PACKET_TIMESECONDS')
91
91
  end
92
92
 
93
93
  end # class XyDataObjectAdder
@@ -75,7 +75,7 @@ module Cosmos
75
75
  if data_object.time_item_name
76
76
  @time_item_name.set_current(data_object.time_item_name)
77
77
  else
78
- @time_item_name.set_current('RECEIVED_TIMESECONDS')
78
+ @time_item_name.set_current('PACKET_TIMESECONDS')
79
79
  end
80
80
  local_layout.addWidget(@time_item_name)
81
81
 
@@ -197,11 +197,11 @@ module Cosmos
197
197
  dart_reductions = HousekeepingDataObject::DART_REDUCTIONS.map {|x| x.to_s}
198
198
  dart_reductions.delete(data_object.dart_reduction.to_s)
199
199
  dart_reductions.unshift(data_object.dart_reduction.to_s)
200
- @dart_reduction.update_items(dart_reductions, false)
200
+ @dart_reduction.update_items(dart_reductions, false)
201
201
  dart_reduced_types = HousekeepingDataObject::DART_REDUCED_TYPES.map {|x| x.to_s}
202
202
  dart_reduced_types.delete(data_object.dart_reduced_type.to_s)
203
203
  dart_reduced_types.unshift(data_object.dart_reduced_type.to_s)
204
- @dart_reduced_type.update_items(dart_reduced_types, false)
204
+ @dart_reduced_type.update_items(dart_reduced_types, false)
205
205
 
206
206
  packet, item = System.telemetry.packet_and_item(data_object.target_name,
207
207
  data_object.packet_name,
@@ -211,7 +211,7 @@ module Cosmos
211
211
  @item_array_index.show
212
212
  else
213
213
  @array_item = false
214
- @item_array_index.hide
214
+ @item_array_index.hide
215
215
  end
216
216
 
217
217
  end
@@ -227,11 +227,11 @@ module Cosmos
227
227
  dart_reductions = HousekeepingDataObject::DART_REDUCTIONS.map {|x| x.to_s}
228
228
  dart_reductions.delete(data_object.dart_reduction.to_s)
229
229
  dart_reductions.unshift(data_object.dart_reduction.to_s)
230
- @dart_reduction.update_items(dart_reductions, false)
230
+ @dart_reduction.update_items(dart_reductions, false)
231
231
  dart_reduced_types = HousekeepingDataObject::DART_REDUCED_TYPES.map {|x| x.to_s}
232
232
  dart_reduced_types.delete(data_object.dart_reduced_type.to_s)
233
233
  dart_reduced_types.unshift(data_object.dart_reduced_type.to_s)
234
- @dart_reduced_type.update_items(dart_reduced_types, false)
234
+ @dart_reduced_type.update_items(dart_reduced_types, false)
235
235
 
236
236
  packet, item = System.telemetry.packet_and_item(data_object.target_name,
237
237
  data_object.packet_name,
@@ -241,7 +241,7 @@ module Cosmos
241
241
  @item_array_index.show
242
242
  else
243
243
  @array_item = false
244
- @item_array_index.hide
244
+ @item_array_index.hide
245
245
  end
246
246
  end
247
247
 
@@ -39,9 +39,9 @@ module Cosmos
39
39
  packet = System.telemetry.first_non_hidden
40
40
  data_object.target_name = packet.target_name
41
41
  data_object.packet_name = packet.packet_name
42
- data_object.y_item_name = 'RECEIVED_TIMESECONDS'
43
- data_object.x_item_name = 'RECEIVED_TIMESECONDS'
44
- data_object.time_item_name = 'RECEIVED_TIMESECONDS'
42
+ data_object.y_item_name = 'PACKET_TIMESECONDS'
43
+ data_object.x_item_name = 'PACKET_TIMESECONDS'
44
+ data_object.time_item_name = 'PACKET_TIMESECONDS'
45
45
  end
46
46
  super(data_object)
47
47
 
@@ -123,7 +123,7 @@ module Cosmos
123
123
  data_object.y_value_type = @y_value_type.symbol
124
124
  data_object.x_value_type = @x_value_type.symbol
125
125
  data_object.dart_reduction = @dart_reduction.symbol
126
- data_object.dart_reduced_type = @dart_reduced_type.symbol
126
+ data_object.dart_reduced_type = @dart_reduced_type.symbol
127
127
  data_object
128
128
  end
129
129
 
@@ -158,11 +158,11 @@ module Cosmos
158
158
  dart_reductions = HousekeepingDataObject::DART_REDUCTIONS.map {|x| x.to_s}
159
159
  dart_reductions.delete(data_object.dart_reduction.to_s)
160
160
  dart_reductions.unshift(data_object.dart_reduction.to_s)
161
- @dart_reduction.update_items(dart_reductions, false)
161
+ @dart_reduction.update_items(dart_reductions, false)
162
162
  dart_reduced_types = HousekeepingDataObject::DART_REDUCED_TYPES.map {|x| x.to_s}
163
163
  dart_reduced_types.delete(data_object.dart_reduced_type.to_s)
164
164
  dart_reduced_types.unshift(data_object.dart_reduced_type.to_s)
165
- @dart_reduced_type.update_items(dart_reduced_types, false)
165
+ @dart_reduced_type.update_items(dart_reduced_types, false)
166
166
  end
167
167
 
168
168
  # Handles the y item name changing
@@ -178,11 +178,11 @@ module Cosmos
178
178
  dart_reductions = HousekeepingDataObject::DART_REDUCTIONS.map {|x| x.to_s}
179
179
  dart_reductions.delete(data_object.dart_reduction.to_s)
180
180
  dart_reductions.unshift(data_object.dart_reduction.to_s)
181
- @dart_reduction.update_items(dart_reductions, false)
181
+ @dart_reduction.update_items(dart_reductions, false)
182
182
  dart_reduced_types = HousekeepingDataObject::DART_REDUCED_TYPES.map {|x| x.to_s}
183
183
  dart_reduced_types.delete(data_object.dart_reduced_type.to_s)
184
184
  dart_reduced_types.unshift(data_object.dart_reduced_type.to_s)
185
- @dart_reduced_type.update_items(dart_reduced_types, false)
185
+ @dart_reduced_type.update_items(dart_reduced_types, false)
186
186
  end
187
187
 
188
188
  # Handles the x item name changing
@@ -197,11 +197,11 @@ module Cosmos
197
197
  dart_reductions = XyDataObject::DART_REDUCTIONS.map {|x| x.to_s}
198
198
  dart_reductions.delete(data_object.dart_reduction.to_s)
199
199
  dart_reductions.unshift(data_object.dart_reduction.to_s)
200
- @dart_reduction.update_items(dart_reductions, false)
200
+ @dart_reduction.update_items(dart_reductions, false)
201
201
  dart_reduced_types = XyDataObject::DART_REDUCED_TYPES.map {|x| x.to_s}
202
202
  dart_reduced_types.delete(data_object.dart_reduced_type.to_s)
203
203
  dart_reduced_types.unshift(data_object.dart_reduced_type.to_s)
204
- @dart_reduced_type.update_items(dart_reduced_types, false)
204
+ @dart_reduced_type.update_items(dart_reduced_types, false)
205
205
  end
206
206
  end
207
207
 
@@ -255,8 +255,15 @@ module Cosmos
255
255
 
256
256
  case @analysis
257
257
  when :NONE
258
- @x_values << x_value
259
- @y_values << (y_value + @y_offset)
258
+ # Support out of order x_values with no analysis
259
+ if @x_values.empty? or @x_values[-1] <= x_value or !@x_values.respond_to? :bsearch_index
260
+ @x_values << x_value
261
+ @y_values << y_value + @y_offset
262
+ else
263
+ loc = @x_values.bsearch_index{|x| x > x_value}
264
+ @x_values.insert(loc, x_value)
265
+ @y_values.insert(loc, y_value + @y_offset)
266
+ end
260
267
  @plot.redraw_needed = true
261
268
 
262
269
  when :DIFFERENCE, :ALLAN_DEV
@@ -429,7 +436,7 @@ module Cosmos
429
436
  @value_type = :CONVERTED unless during_configuration
430
437
  end
431
438
 
432
- @time_item_name = 'RECEIVED_TIMESECONDS' unless @time_item_name
439
+ @time_item_name = 'PACKET_TIMESECONDS' unless @time_item_name
433
440
 
434
441
  # Update limits lines
435
442
  self.show_limits_lines = @show_limits_lines
@@ -99,7 +99,7 @@ module Cosmos
99
99
  string << " X_VALUE_TYPE #{@x_value_type}\n"
100
100
  string << " Y_VALUE_TYPE #{@y_value_type}\n"
101
101
  string << " DART_REDUCTION #{@dart_reduction}\n"
102
- string << " DART_REDUCED_TYPE #{@dart_reduced_type}\n"
102
+ string << " DART_REDUCED_TYPE #{@dart_reduced_type}\n"
103
103
  string
104
104
  end # def configuration_string
105
105
 
@@ -184,7 +184,7 @@ module Cosmos
184
184
  else
185
185
  raise ArgumentError, "Unknown DART_REDUCTION value: #{dart_reduction}"
186
186
  end
187
-
187
+
188
188
  when 'DART_REDUCED_TYPE'
189
189
  # Expect 1 parameter
190
190
  parser.verify_num_parameters(1, 1, "DART_REDUCED_TYPE <AVG, MIN, MAX, STDDEV>")
@@ -193,7 +193,7 @@ module Cosmos
193
193
  @dart_reduced_type = dart_reduced_type
194
194
  else
195
195
  raise ArgumentError, "Unknown DART_REDUCED_TYPE value: #{dart_reduced_type}"
196
- end
196
+ end
197
197
 
198
198
  else
199
199
  # Unknown keywords are passed to parent data object
@@ -263,7 +263,7 @@ module Cosmos
263
263
  prune_to_max_points_saved()
264
264
  rescue Exception => error
265
265
  handle_process_exception(error, "#{@target_name} #{@packet_name} #{@x_item_name} or #{@y_item_name}")
266
- end
266
+ end
267
267
  end
268
268
 
269
269
  # Returns the name of this data object
@@ -305,7 +305,7 @@ module Cosmos
305
305
  data_object.x_value_type = @x_value_type
306
306
  data_object.y_value_type = @y_value_type
307
307
  data_object.dart_reduction = @dart_reduction
308
- data_object.dart_reduced_type = @dart_reduced_type
308
+ data_object.dart_reduced_type = @dart_reduced_type
309
309
  data_object
310
310
  end
311
311
 
@@ -351,7 +351,7 @@ module Cosmos
351
351
  @y_value_type = :CONVERTED unless @during_configuration
352
352
  end
353
353
 
354
- @time_item_name = 'RECEIVED_TIMESECONDS' if !@time_item_name
354
+ @time_item_name = 'PACKET_TIMESECONDS' if !@time_item_name
355
355
  end
356
356
 
357
357
  # Sets time item
@@ -324,9 +324,9 @@ module Cosmos
324
324
  end
325
325
  if plot
326
326
  @tabbed_plots_config.add_plot(tab_index, plot)
327
- @status_bar.showMessage(tr("Add Plot Succeeded"))
327
+ @status_bar.showMessage("Add Plot Succeeded")
328
328
  else
329
- @status_bar.showMessage(tr("Add Plot Canceled"))
329
+ @status_bar.showMessage("Add Plot Canceled")
330
330
  return false
331
331
  end
332
332
 
@@ -399,7 +399,7 @@ module Cosmos
399
399
  tab.gui_layout = layout
400
400
  #~ tab.gui_layout.connect(SEL_RIGHTBUTTONRELEASE, method(:handle_plot_right_button_release))
401
401
 
402
- @status_bar.showMessage(tr("Plot Deleted"))
402
+ @status_bar.showMessage("Plot Deleted")
403
403
  @config_modified_callback.call() if @config_modified_callback
404
404
  else
405
405
  Qt::MessageBox.information(self, 'Information', 'Please select a plot')
@@ -434,11 +434,11 @@ module Cosmos
434
434
  plot_editor.dispose
435
435
  if plot
436
436
  plot.gui_object.update(true)
437
- @status_bar.showMessage(tr("Plot Edited"))
437
+ @status_bar.showMessage("Plot Edited")
438
438
  edited = true
439
439
  @config_modified_callback.call() if @config_modified_callback
440
440
  else
441
- @status_bar.showMessage(tr("Plot Edit Canceled"))
441
+ @status_bar.showMessage("Plot Edit Canceled")
442
442
  end
443
443
  end
444
444
 
@@ -548,7 +548,7 @@ module Cosmos
548
548
  data_object = data_object_editor.execute
549
549
  data_object_editor.dispose
550
550
  unless data_object
551
- @status_bar.showMessage(tr("Add Data Object Canceled"))
551
+ @status_bar.showMessage("Add Data Object Canceled")
552
552
  return false
553
553
  end
554
554
  end
@@ -566,7 +566,7 @@ module Cosmos
566
566
  # Update data object list
567
567
  fill_data_object_list_for_plot(@tabbed_plots_config.tabs[tab_index].plots[plot_index])
568
568
 
569
- @status_bar.showMessage(tr("Add Data Object Succeeded"))
569
+ @status_bar.showMessage("Add Data Object Succeeded")
570
570
  @config_modified_callback.call() if @config_modified_callback
571
571
  return true
572
572
  end # def add_data_object
@@ -618,11 +618,11 @@ module Cosmos
618
618
  data_object_editor.dispose
619
619
  if data_object
620
620
  @tabbed_plots_config.edit_data_object(tab_index, plot_index, data_object_idx, data_object)
621
- @status_bar.showMessage(tr("Data Object(s) Edited"))
621
+ @status_bar.showMessage("Data Object(s) Edited")
622
622
  edited = true
623
623
  @config_modified_callback.call() if @config_modified_callback
624
624
  else
625
- @status_bar.showMessage(tr("Edit Data Object Canceled"))
625
+ @status_bar.showMessage("Edit Data Object Canceled")
626
626
  end
627
627
  end
628
628
 
@@ -651,7 +651,7 @@ module Cosmos
651
651
  data_object = @tabbed_plots_config.duplicate_data_object(tab_index, plot_index, data_object_idx)
652
652
  data_object.color = get_free_color(@tabbed_plots_config.tabs[tab_index]) unless data_object.assigned_color
653
653
  end
654
- @status_bar.showMessage(tr("Data Object(s) Duplicated"))
654
+ @status_bar.showMessage("Data Object(s) Duplicated")
655
655
 
656
656
  plot.gui_object.update(true)
657
657
  fill_data_object_list_for_plot(@tabbed_plots_config.tabs[tab_index].plots[plot_index])
@@ -701,7 +701,7 @@ module Cosmos
701
701
  @tabbed_plots_config.reset_data_objects(tab_index, plot_index, data_object_idx)
702
702
  end
703
703
  redraw_plots(true, true)
704
- @status_bar.showMessage(tr("Data Object(s) Reset"))
704
+ @status_bar.showMessage("Data Object(s) Reset")
705
705
  end
706
706
  end
707
707
 
@@ -954,9 +954,9 @@ module Cosmos
954
954
  "Are you sure you want to delete the selected data objects?",
955
955
  Qt::MessageBox::Yes | Qt::MessageBox::No, Qt::MessageBox::No)
956
956
  if result == Qt::MessageBox::No
957
- otp.status_bar.showMessage(tr("Data Object Deletion Canceled"))
957
+ otp.status_bar.showMessage("Data Object Deletion Canceled")
958
958
  else
959
- otp.status_bar.showMessage(tr("Data Object Deleted"))
959
+ otp.status_bar.showMessage("Data Object Deleted")
960
960
  otp.delete_data_object()
961
961
  end
962
962
  otp.resume() unless paused
@@ -973,7 +973,7 @@ module Cosmos
973
973
  self,
974
974
  SLOT('data_object_context_menu(const QPoint&)'))
975
975
  @data_object_list.connect(SIGNAL('itemClicked(QListWidgetItem*)')) do
976
- @status_bar.showMessage(tr("Drag and drop to reorder. Items are drawn in order from top to bottom."))
976
+ @status_bar.showMessage("Drag and drop to reorder. Items are drawn in order from top to bottom.")
977
977
  end
978
978
  @data_object_list.addItemColor('No Plot Selected')
979
979
  @tabbed_plots_left_frame.addWidget(@data_object_list)