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
@@ -12,7 +12,7 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
13
13
 
14
14
  module Cosmos
15
-
15
+ # Layout widget which creates a scrollable window
16
16
  class ScrollwindowWidget < Qt::VBoxLayout
17
17
  include Widget
18
18
  include LayoutWidget
@@ -31,5 +31,4 @@ module Cosmos
31
31
  @parent_layout.addWidget(scroll)
32
32
  end
33
33
  end
34
-
35
- end # module Cosmos
34
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/horizontalline_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Vertically stacks a LabelWidget on top of a HorizontallineWidget
18
18
  class SectionheaderWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
@@ -29,5 +29,4 @@ module Cosmos
29
29
  parent_layout.addWidget(self) if parent_layout
30
30
  end
31
31
  end
32
-
33
- end # module Cosmos
32
+ end
@@ -12,9 +12,9 @@ require 'cosmos'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/widget'
13
13
 
14
14
  module Cosmos
15
-
16
- # SpacerWidget class
17
- #
15
+ # Creates a Qt::SpacerItem which affects the positioning of other
16
+ # widgets around it. The width and height must be given and the
17
+ # size policy follows. See the Qt documentation for more details.
18
18
  class SpacerWidget < Qt::Widget
19
19
  include Widget
20
20
 
@@ -49,7 +49,5 @@ module Cosmos
49
49
  return Qt::SizePolicy::Minimum
50
50
  end
51
51
  end
52
-
53
52
  end
54
-
55
- end # module Cosmos
53
+ end
@@ -12,7 +12,7 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
13
13
 
14
14
  module Cosmos
15
-
15
+ # Layout widget which creates a Qt::TabWidget to contain TABITEM widgets
16
16
  class TabbookWidget < Qt::TabWidget
17
17
  include Widget
18
18
  include LayoutWidget
@@ -22,5 +22,4 @@ module Cosmos
22
22
  parent_layout.addWidget(self) if parent_layout
23
23
  end
24
24
  end
25
-
26
- end # module Cosmos
25
+ end
@@ -12,7 +12,7 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
13
13
 
14
14
  module Cosmos
15
-
15
+ # Layout widget used within the TABBOOK widget to create tabs
16
16
  class TabitemWidget < Qt::VBoxLayout
17
17
  include Widget
18
18
  include LayoutWidget
@@ -24,5 +24,4 @@ module Cosmos
24
24
  parent_layout.addTab(w, text.to_s) if parent_layout
25
25
  end
26
26
  end
27
-
28
- end # module Cosmos
27
+ end
@@ -13,7 +13,8 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
13
13
  require 'cosmos/tools/tlm_viewer/widgets/aging_widget'
14
14
 
15
15
  module Cosmos
16
-
16
+ # Displays a text box with the telemetry value. The box creates scrollbars
17
+ # if the data content is too large to completely display.
17
18
  class TextboxWidget < Qt::TextEdit
18
19
  include Widget
19
20
  include AgingWidget
@@ -24,6 +25,15 @@ module Cosmos
24
25
  setFixedSize(width.to_i, height.to_i)
25
26
  setReadOnly(true)
26
27
  parent_layout.addWidget(self) if parent_layout
28
+
29
+ # Create update flag and don't update when the scroll bars are down
30
+ @update = true
31
+ verticalScrollBar().connect(SIGNAL('sliderPressed()')) do
32
+ @update = false
33
+ end
34
+ verticalScrollBar().connect(SIGNAL('sliderReleased()')) do
35
+ @update = true
36
+ end
27
37
  end
28
38
 
29
39
  def format_value(data)
@@ -31,6 +41,7 @@ module Cosmos
31
41
  end
32
42
 
33
43
  def value=(data)
44
+ return unless @update
34
45
  scroll_pos = self.verticalScrollBar.value
35
46
  self.text = super(data, format_value(data))
36
47
  self.setColors(@foreground, @background)
@@ -41,7 +52,5 @@ module Cosmos
41
52
  super
42
53
  process_aging_settings
43
54
  end
44
-
45
55
  end
46
-
47
- end # module Cosmos
56
+ end
@@ -11,16 +11,15 @@
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
 
13
13
  module Cosmos
14
-
14
+ # Creates a text field
15
15
  class TextfieldWidget < Qt::LineEdit
16
16
  include Widget
17
17
 
18
- def initialize (parent_layout, num_characters = 12, default_text = '')
18
+ def initialize(parent_layout, num_characters = 12, default_text = '')
19
19
  super()
20
20
  setText(default_text.to_s)
21
21
  setMaxLength(num_characters.to_i)
22
22
  parent_layout.addWidget(self) if parent_layout
23
23
  end
24
24
  end
25
-
26
- end # module Cosmos
25
+ end
@@ -13,13 +13,10 @@ require 'cosmos/tools/tlm_viewer/widgets/linegraph_widget'
13
13
  require 'cosmos/script'
14
14
 
15
15
  module Cosmos
16
-
17
- # TimegraphWidget class
18
- #
19
- # This class creates a graph of the supplied data value versus time.
16
+ # This class creates a graph of the supplied data value versus time
20
17
  class TimegraphWidget < LinegraphWidget
21
18
 
22
- def initialize(parent_layout, target_name, packet_name, item_name, num_samples = 100, width = 300, height = 200, point_size = 5, time_item_name = 'RECEIVED_TIMESECONDS', value_type = :CONVERTED)
19
+ def initialize(parent_layout, target_name, packet_name, item_name, num_samples = 100, width = 300, height = 200, point_size = 5, time_item_name = 'PACKET_TIMESECONDS', value_type = :CONVERTED)
23
20
  super(parent_layout, target_name, packet_name, item_name, num_samples, width, height, value_type)
24
21
  @time_item_name = time_item_name.to_s
25
22
  @time = []
@@ -85,7 +82,5 @@ module Cosmos
85
82
  self.graph
86
83
  end
87
84
  end
88
-
89
85
  end
90
-
91
- end # module Cosmos
86
+ end
@@ -8,20 +8,14 @@
8
8
  # as published by the Free Software Foundation; version 3 with
9
9
  # attribution addendums as found in the LICENSE.txt
10
10
 
11
- require 'cosmos/tools/tlm_viewer/widgets/widget'
11
+ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
12
12
 
13
13
  module Cosmos
14
-
15
- class TitleWidget < Qt::Label
16
- include Widget
17
-
18
- def initialize(parent_layout, text)
19
- super()
20
- self.text = text.to_s.remove_quotes
21
- setFont(Cosmos.getFont("helvetica", 14, Qt::Font::Bold))
14
+ # Creates a centered label with the specified font
15
+ class TitleWidget < LabelWidget
16
+ def initialize(parent_layout, text, font_name = "Helvetica", point_size = 14, bold = "BOLD", italic = false)
17
+ super(parent_layout, text, font_name, point_size, bold, italic)
22
18
  setAlignment(Qt::AlignCenter)
23
- parent_layout.addWidget(self) if parent_layout
24
19
  end
25
20
  end
26
-
27
- end # module Cosmos
21
+ end
@@ -15,9 +15,10 @@
15
15
  require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Displays a limits bar with the defined limits and a vertical bar indicating
19
+ # the current value. A black dot is displayed that indicates the value from X
20
+ # seconds ago (60s by default).
19
21
  class TrendbarWidget < LimitsbarWidget
20
-
21
22
  MAX_TREND_SECONDS = 3600.0
22
23
 
23
24
  def initialize (parent_layout, target_name, packet_name, item_name, value_type = :CONVERTED, trend_seconds = 60.0, width = 160, height = 25, trend_value_handle = nil)
@@ -30,9 +31,6 @@ module Cosmos
30
31
  # Track the total number of samples received. This will help us to know how many
31
32
  # trendlines to plot before we reach the maximum.
32
33
  @samples_received = 0
33
-
34
- # The actual difference (delta) between the current value and the desired trend value.
35
- @trend_delta = nil
36
34
  @trend_points = 1
37
35
  @trend_data = [0]
38
36
  end
@@ -42,9 +40,8 @@ module Cosmos
42
40
  adjust_trend_points_and_data()
43
41
  end
44
42
 
45
- def value= (data)
43
+ def value=(data)
46
44
  @value = data.to_f
47
-
48
45
  @samples_received += 1
49
46
 
50
47
  # Remove the oldest value off the end (right) and insert on the
@@ -123,8 +120,6 @@ module Cosmos
123
120
  adjust_trend_points_and_data()
124
121
  end
125
122
  end
126
-
127
123
  end
128
-
129
- end # module Cosmos
124
+ end
130
125
 
@@ -21,7 +21,10 @@ require 'cosmos/tools/tlm_viewer/widgets/textfield_widget'
21
21
  require 'cosmos/tools/tlm_viewer/widgets/trendbar_widget'
22
22
 
23
23
  module Cosmos
24
-
24
+ # Displays the current value followed by the current trend value
25
+ # (the current value minus the value X samples ago) followed by a
26
+ # limits bar with the defined limits. The limits bar shows the current
27
+ # value as a vertical line and the trend value as a black dot.
25
28
  class TrendlimitsbarWidget < Qt::Widget
26
29
  include Widget
27
30
  include MultiWidget
@@ -42,5 +45,4 @@ module Cosmos
42
45
  return true
43
46
  end
44
47
  end
45
-
46
- end # module Cosmos
48
+ end
@@ -13,7 +13,9 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
13
13
  require 'cosmos/tools/tlm_viewer/widgets/aging_widget'
14
14
 
15
15
  module Cosmos
16
-
16
+ # Displays a telemetry value that ages over time by the background fading
17
+ # from white to grey if the telemetry value is not changing. A new telemetry
18
+ # value updates the display back to a white background.
17
19
  class ValueWidget < Qt::LineEdit
18
20
  include Widget
19
21
  include AgingWidget
@@ -37,7 +39,5 @@ module Cosmos
37
39
  super
38
40
  process_aging_settings
39
41
  end
40
-
41
42
  end
42
-
43
- end # module Cosmos
43
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Displays a ValueWidget followed by a LimitsbarWidget
18
18
  class ValuelimitsbarWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
@@ -33,5 +33,4 @@ module Cosmos
33
33
  return true
34
34
  end
35
35
  end
36
-
37
- end # module Cosmos
36
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/limitscolumn_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Vertically stacks a LimitscolumnWidget on a ValueWidget
18
18
  class ValuelimitscolumnWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
@@ -33,5 +33,4 @@ module Cosmos
33
33
  return true
34
34
  end
35
35
  end
36
-
37
- end # module Cosmos
36
+ end
@@ -14,12 +14,12 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/rangebar_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Displays a ValueWidget followed by a RangebarWidget
18
18
  class ValuerangebarWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
21
21
 
22
- def initialize (parent_layout, target_name, packet_name, item_name, low_value, high_value, value_type = :WITH_UNITS, characters = 12, width = 160, height = 25)
22
+ def initialize(parent_layout, target_name, packet_name, item_name, low_value, high_value, value_type = :WITH_UNITS, characters = 12, width = 160, height = 25)
23
23
  super(target_name, packet_name, item_name, value_type)
24
24
  setLayout(Qt::HBoxLayout.new())
25
25
  layout.setSpacing(1)
@@ -33,5 +33,4 @@ module Cosmos
33
33
  return true
34
34
  end
35
35
  end
36
-
37
- end # module Cosmos
36
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/rangecolumn_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Vertically stacks a Rangecolumnwidget over a ValueWidget
18
18
  class ValuerangecolumnWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
@@ -33,5 +33,4 @@ module Cosmos
33
33
  return true
34
34
  end
35
35
  end
36
-
37
- end # module Cosmos
36
+ end
@@ -15,22 +15,23 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
15
15
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Layout widget which layouts the enclosed widgets vertically.
19
+ # Default spacing is 3 pixels and widgets are packed by inserting
20
+ # a stretch at the end of the added widgets.
19
21
  class VerticalWidget < Qt::VBoxLayout
20
22
  include Widget
21
23
  include LayoutWidget
22
24
 
23
- def initialize(parent_layout = nil, vSpacing = 3, vPack = true)
25
+ def initialize(parent_layout = nil, spacing = 3, pack = true)
24
26
  super()
25
- setSpacing(vSpacing.to_i)
27
+ setSpacing(spacing.to_i)
26
28
  parent_layout.addLayout(self) if parent_layout
27
- @v_pack = ConfigParser::handle_true_false(vPack)
29
+ @pack = ConfigParser::handle_true_false(pack)
28
30
  end
29
31
 
30
32
  def process_settings
31
33
  super()
32
- addStretch(1) if @v_pack
34
+ addStretch(1) if @pack
33
35
  end
34
36
  end
35
-
36
- end # module Cosmos
37
+ end
@@ -15,24 +15,26 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
15
15
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Layout widget which layouts the enclosed widgets vertically
19
+ # in a visual box with header text.
20
+ # Default spacing is 3 pixels and widgets are packed by inserting
21
+ # a stretch at the end of the added widgets.
19
22
  class VerticalboxWidget < Qt::VBoxLayout
20
23
  include Widget
21
24
  include LayoutWidget
22
25
 
23
- def initialize(parent_layout = nil, title = "", vSpacing = 3, vPack = true)
26
+ def initialize(parent_layout = nil, title = "", spacing = 3, pack = true)
24
27
  super()
25
28
  box = Qt::GroupBox.new(title.to_s)
26
- setSpacing(vSpacing.to_i)
29
+ setSpacing(spacing.to_i)
27
30
  box.setLayout(self)
28
31
  parent_layout.addWidget(box) if parent_layout
29
- @v_pack = ConfigParser::handle_true_false(vPack)
32
+ @pack = ConfigParser::handle_true_false(pack)
30
33
  end
31
34
 
32
35
  def process_settings
33
36
  super()
34
- addStretch(1) if @v_pack
37
+ addStretch(1) if @pack
35
38
  end
36
39
  end
37
-
38
- end # module Cosmos
40
+ end
@@ -41,7 +41,12 @@ module Cosmos
41
41
  @item_name = ConfigParser.handle_nil(item_name)
42
42
  @item = nil
43
43
  if @item_name
44
- @packet, @item = System.telemetry.packet_and_item(@target_name, @packet_name, @item_name)
44
+ if @target_name == 'LOCAL' and @packet_name == 'LOCAL'
45
+ @packet = nil
46
+ @item = nil
47
+ else
48
+ @packet, @item = System.telemetry.packet_and_item(@target_name, @packet_name, @item_name)
49
+ end
45
50
  end
46
51
  if value_type
47
52
  @value_type = value_type.to_s.upcase.to_sym
@@ -149,53 +154,48 @@ module Cosmos
149
154
  end
150
155
 
151
156
  def process_settings
152
- errors = ""
153
157
  sheet = []
154
158
  @settings.each do |setting_name, setting_values|
155
- begin
156
- case setting_name
157
- when 'TEXTALIGN'
158
- sheet << "qproperty-alignment:Align#{setting_values[0].capitalize}"
159
- when 'PADDING'
160
- sheet << "padding:#{setting_values[0]}"
161
- when 'MARGIN'
162
- sheet << "margin:#{setting_values[0]}"
163
- when 'BACKCOLOR'
164
- case setting_values.size
165
- when 1 # color name
166
- sheet << "background-color:#{setting_values[0]}"
167
- when 3 # RGB values
168
- sheet << "background-color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
169
- end
170
- when 'TEXTCOLOR'
171
- case setting_values.size
172
- when 1 # color name
173
- sheet << "color:#{setting_values[0]}"
174
- when 3 # RGB values
175
- sheet << "color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
176
- end
177
- when 'BORDERCOLOR'
178
- # Setting the color requires a defined width and style
179
- sheet << "border-width:1px"
180
- sheet << "border-style:solid"
181
- case setting_values.size
182
- when 1 # color name
183
- sheet << "border-color:#{setting_values[0]}"
184
- when 3 # RGB values
185
- sheet << "border-color:rgb(#{setting_values[0].to_i}, #{setting_values[1].to_i}, #{setting_values[2].to_i})"
186
- end
187
- when 'WIDTH'
188
- sheet << "min-width:#{setting_values[0].to_i}px"
189
- sheet << "max-width:#{setting_values[0].to_i}px"
190
- when 'HEIGHT'
191
- sheet << "min-height:#{setting_values[0].to_i}px"
192
- sheet << "max-height:#{setting_values[0].to_i}px"
193
- when 'RAW'
194
- next if setting_values[0] == '' # ignore the blank default
195
- sheet << setting_values[0]
159
+ case setting_name
160
+ when 'TEXTALIGN'
161
+ sheet << "qproperty-alignment:Align#{setting_values[0].capitalize}"
162
+ when 'PADDING'
163
+ sheet << "padding:#{setting_values[0]}"
164
+ when 'MARGIN'
165
+ sheet << "margin:#{setting_values[0]}"
166
+ when 'BACKCOLOR'
167
+ case setting_values.size
168
+ when 1 # color name
169
+ sheet << "background-color:#{setting_values[0]}"
170
+ when 3 # RGB values
171
+ sheet << "background-color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
172
+ end
173
+ when 'TEXTCOLOR'
174
+ case setting_values.size
175
+ when 1 # color name
176
+ sheet << "color:#{setting_values[0]}"
177
+ when 3 # RGB values
178
+ sheet << "color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
196
179
  end
197
- rescue => err
198
- errors << "Error processing settings due to: #{err}"
180
+ when 'BORDERCOLOR'
181
+ # Setting the color requires a defined width and style
182
+ sheet << "border-width:1px"
183
+ sheet << "border-style:solid"
184
+ case setting_values.size
185
+ when 1 # color name
186
+ sheet << "border-color:#{setting_values[0]}"
187
+ when 3 # RGB values
188
+ sheet << "border-color:rgb(#{setting_values[0].to_i}, #{setting_values[1].to_i}, #{setting_values[2].to_i})"
189
+ end
190
+ when 'WIDTH'
191
+ sheet << "min-width:#{setting_values[0].to_i}px"
192
+ sheet << "max-width:#{setting_values[0].to_i}px"
193
+ when 'HEIGHT'
194
+ sheet << "min-height:#{setting_values[0].to_i}px"
195
+ sheet << "max-height:#{setting_values[0].to_i}px"
196
+ when 'RAW'
197
+ next if setting_values[0] == '' # ignore the blank default
198
+ sheet << setting_values[0]
199
199
  end
200
200
  end
201
201
  # Only apply the stylesheet if we have settings to apply and this is a widget (not a layout)
@@ -210,7 +210,6 @@ module Cosmos
210
210
  pw.setStyleSheet("QWidget##{pw.objectName} { #{sheet.join(';')} }")
211
211
  end
212
212
  end
213
- errors
214
213
  end
215
214
 
216
215
  def context_menu
@@ -244,7 +243,7 @@ module Cosmos
244
243
 
245
244
  graph = Qt::Action.new("Graph #{@target_name} #{@packet_name} #{@item_name}", menu)
246
245
  graph.connect(SIGNAL('triggered()')) do
247
- TlmGraphDialog.new(self, target_name, packet_name, item_name)
246
+ TlmGraphDialog.new(self, target_name, packet_name, item_name, @screen.replay_flag.visible)
248
247
  end
249
248
  menu.addAction(graph)
250
249
 
@@ -253,5 +252,19 @@ module Cosmos
253
252
  point.dispose
254
253
  menu.dispose
255
254
  end
255
+
256
+ # Requires the @screen to be set so must not be called in initialize()
257
+ def get_image(image_name)
258
+ return nil unless @screen
259
+ target_screen_dir = File.join(::Cosmos::USERPATH, 'config', 'targets', @screen.original_target_name.upcase, 'screens')
260
+
261
+ if File.exist?(File.join(target_screen_dir, image_name))
262
+ return Qt::Image.new(File.join(target_screen_dir, image_name))
263
+ elsif Cosmos.data_path(image_name)
264
+ return Qt::Image.new(Cosmos.data_path(image_name))
265
+ else
266
+ raise "Can't find the file #{image_name} in #{target_screen_dir} or the cosmos data directory."
267
+ end
268
+ end
256
269
  end
257
270
  end