cosmos 4.3.0-java → 4.4.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 (288) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  4. data/.github/ISSUE_TEMPLATE/help---usage---general-question.md +12 -0
  5. data/.gitignore +1 -0
  6. data/.travis.yml +5 -5
  7. data/Manifest.txt +81 -44
  8. data/Rakefile +9 -0
  9. data/appveyor.yml +2 -1
  10. data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  11. data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
  12. data/autohotkey/config/targets/INST/lib/sim_inst.rb +3 -1
  13. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  14. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  15. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  16. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  17. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  18. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  19. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  20. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  21. data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  22. data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  23. data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +2 -4
  24. data/autohotkey/config/tools/table_manager/SubTables/OneDimensionalSubTable_def.txt +31 -0
  25. data/autohotkey/config/tools/table_manager/SubTables/TwoDimensionalSubTable_def.txt +28 -0
  26. data/autohotkey/config/tools/test_runner/test_runner.txt +1 -1
  27. data/autohotkey/config/tools/test_runner/test_runner2.txt +1 -1
  28. data/autohotkey/config/tools/test_runner/test_runner3.txt +1 -1
  29. data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
  30. data/autohotkey/tools/limits_monitor.ahk +1 -1
  31. data/autohotkey/tools/packet_viewer.ahk +1 -1
  32. data/autohotkey/tools/script_runner.ahk +16 -4
  33. data/bin/cosmos +1 -1
  34. data/bin/xtce_converter +1 -1
  35. data/cosmos.gemspec +5 -7
  36. data/data/config/_interfaces.yaml +4 -0
  37. data/data/config/cmd_sequence.yaml +14 -0
  38. data/data/config/housekeeping_params.yaml +14 -0
  39. data/data/config/interface_modifiers.yaml +11 -0
  40. data/data/config/item_modifiers.yaml +2 -1
  41. data/data/config/launcher.yaml +12 -2
  42. data/data/config/param_item_modifiers.yaml +2 -2
  43. data/data/config/parameter_modifiers.yaml +20 -0
  44. data/data/config/screen.yaml +2 -0
  45. data/data/config/script_runner.yaml +9 -0
  46. data/data/config/system.yaml +47 -10
  47. data/data/config/table_manager.yaml +7 -0
  48. data/data/config/target.yaml +12 -0
  49. data/data/config/telemetry_modifiers.yaml +3 -1
  50. data/data/config/test_runner.yaml +10 -9
  51. data/data/config/widgets.yaml +174 -11
  52. data/data/crc.txt +128 -125
  53. data/demo/Gemfile +1 -1
  54. data/demo/Launcher.bat +1 -9
  55. data/demo/Launcher2.bat +1 -0
  56. data/demo/LauncherMini.bat +1 -0
  57. data/demo/config/data/crc.txt +40 -20
  58. data/demo/config/system/system.txt +1 -1
  59. data/demo/config/system/system_alt_ports.txt +1 -1
  60. data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +1 -0
  61. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +2 -1
  62. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +7 -7
  63. data/demo/config/targets/INST/cmd_tlm_server.txt +2 -0
  64. data/demo/config/targets/INST/lib/sim_inst.rb +15 -3
  65. data/demo/config/targets/INST/screens/adcs.txt +2 -2
  66. data/demo/config/targets/INST/screens/block.txt +1 -1
  67. data/demo/config/targets/INST/screens/commanding.txt +1 -1
  68. data/demo/config/targets/INST/screens/ground.txt +27 -5
  69. data/demo/config/targets/INST/screens/ground_error.gif +0 -0
  70. data/demo/config/{data/groundoff.gif → targets/INST/screens/ground_off.gif} +0 -0
  71. data/demo/config/{data/groundon.gif → targets/INST/screens/ground_on.gif} +0 -0
  72. data/demo/config/targets/INST/screens/limits.txt +69 -31
  73. data/demo/config/targets/INST/screens/other.txt +13 -3
  74. data/demo/config/targets/INST/screens/params.txt +54 -0
  75. data/demo/config/targets/INST/screens/satellite.gif +0 -0
  76. data/demo/config/tools/data_viewer/data_viewer.txt +3 -0
  77. data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  78. data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  79. data/demo/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  80. data/demo/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  81. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  82. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  83. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  84. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  85. data/demo/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  86. data/demo/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  87. data/demo/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  88. data/demo/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  89. data/demo/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  90. data/demo/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  91. data/demo/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  92. data/demo/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  93. data/demo/config/tools/script_runner/script_runner.txt +1 -2
  94. data/demo/config/tools/test_runner/test_runner.txt +3 -1
  95. data/demo/lib/example_background_task.rb +1 -0
  96. data/demo/procedures/cosmos_api_test.rb +1 -1
  97. data/demo/procedures/interactive.rb +22 -0
  98. data/ext/cosmos/ext/packet/packet.c +0 -77
  99. data/install/Gemfile +1 -1
  100. data/install/Launcher.bat +1 -9
  101. data/install/config/data/crc.txt +17 -1
  102. data/install/config/system/system.txt +1 -1
  103. data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  104. data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  105. data/install/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  106. data/install/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  107. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  108. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  109. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  110. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  111. data/install/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  112. data/install/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  113. data/install/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  114. data/install/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  115. data/install/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  116. data/install/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  117. data/install/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  118. data/install/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  119. data/lib/cosmos/config/config_parser.rb +4 -5
  120. data/lib/cosmos/dart/lib/dart_common.rb +1 -1
  121. data/lib/cosmos/gui/dialogs/details_dialog.rb +16 -1
  122. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +1 -0
  123. data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +4 -2
  124. data/lib/cosmos/gui/opengl/earth_model.rb +1 -1
  125. data/lib/cosmos/gui/qt.rb +3 -1
  126. data/lib/cosmos/gui/qt_tool.rb +46 -23
  127. data/lib/cosmos/gui/text/ruby_editor.rb +44 -41
  128. data/lib/cosmos/gui/utilities/screenshot.rb +1 -1
  129. data/lib/cosmos/gui/utilities/script_module_gui.rb +92 -92
  130. data/lib/cosmos/interfaces.rb +1 -0
  131. data/lib/cosmos/interfaces/interface.rb +5 -1
  132. data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +40 -18
  133. data/lib/cosmos/interfaces/protocols/template_protocol.rb +6 -1
  134. data/lib/cosmos/interfaces/simulated_target_interface.rb +14 -5
  135. data/lib/cosmos/io/json_drb.rb +11 -7
  136. data/lib/cosmos/packets/commands.rb +28 -11
  137. data/lib/cosmos/packets/packet.rb +69 -32
  138. data/lib/cosmos/packets/packet_config.rb +34 -1
  139. data/lib/cosmos/packets/parsers/state_parser.rb +0 -1
  140. data/lib/cosmos/packets/parsers/xtce_converter.rb +2 -0
  141. data/lib/cosmos/packets/parsers/xtce_parser.rb +4 -3
  142. data/lib/cosmos/packets/structure.rb +4 -2
  143. data/lib/cosmos/packets/telemetry.rb +19 -3
  144. data/lib/cosmos/script/api_shared.rb +12 -9
  145. data/lib/cosmos/script/scripting.rb +16 -14
  146. data/lib/cosmos/system/system.rb +39 -20
  147. data/lib/cosmos/system/target.rb +39 -9
  148. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +94 -35
  149. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +3 -0
  150. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +1 -1
  151. data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +2 -0
  152. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +30 -4
  153. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +1 -0
  154. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +9 -12
  155. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +5 -2
  156. data/lib/cosmos/tools/cmd_tlm_server/routers.rb +2 -0
  157. data/lib/cosmos/tools/config_editor/config_editor.rb +80 -24
  158. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +2 -0
  159. data/lib/cosmos/tools/data_viewer/data_viewer.rb +15 -9
  160. data/lib/cosmos/tools/data_viewer/dump_component.rb +2 -9
  161. data/lib/cosmos/tools/data_viewer/text_component.rb +77 -0
  162. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +64 -38
  163. data/lib/cosmos/tools/launcher/launcher.rb +1 -0
  164. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +31 -17
  165. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +8 -6
  166. data/lib/cosmos/tools/script_runner/script_runner.rb +87 -29
  167. data/lib/cosmos/tools/script_runner/script_runner_config.rb +14 -0
  168. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +41 -7
  169. data/lib/cosmos/tools/table_manager/table_config.rb +5 -3
  170. data/lib/cosmos/tools/table_manager/table_manager.rb +6 -3
  171. data/lib/cosmos/tools/test_runner/test_runner.rb +14 -9
  172. data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +21 -9
  173. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
  174. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +5 -8
  175. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +11 -8
  176. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +9 -15
  177. data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -1
  178. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +19 -13
  179. data/lib/cosmos/tools/tlm_viewer/widgets.rb +2 -0
  180. data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +4 -5
  181. data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +3 -4
  182. data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +4 -5
  183. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +16 -2
  184. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +17 -3
  185. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +1 -2
  186. data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +1 -1
  187. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +12 -7
  188. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +79 -29
  189. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +1 -0
  190. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +2 -1
  191. data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +2 -0
  192. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +4 -0
  193. data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +33 -25
  194. data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +5 -3
  195. data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +5 -3
  196. data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +1 -1
  197. data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +4 -7
  198. data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +5 -5
  199. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +6 -7
  200. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +2 -4
  201. data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +10 -8
  202. data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +2 -3
  203. data/lib/cosmos/tools/tlm_viewer/widgets/labelled_widget.rb +58 -0
  204. data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +3 -4
  205. data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +2 -4
  206. data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +2 -1
  207. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +3 -5
  208. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +2 -3
  209. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitscolumn_widget.rb +2 -3
  210. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +2 -3
  211. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb +2 -3
  212. data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +3 -5
  213. data/lib/cosmos/tools/tlm_viewer/widgets/led_widget.rb +108 -0
  214. data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +60 -10
  215. data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +22 -8
  216. data/lib/cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb +19 -13
  217. data/lib/cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb +22 -8
  218. data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +2 -3
  219. data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +4 -3
  220. data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +1 -3
  221. data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +10 -5
  222. data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +7 -4
  223. data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +4 -6
  224. data/lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb +3 -5
  225. data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +4 -3
  226. data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +2 -3
  227. data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +2 -3
  228. data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +4 -6
  229. data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +2 -3
  230. data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +2 -3
  231. data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +13 -4
  232. data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +3 -4
  233. data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +2 -7
  234. data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +6 -12
  235. data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +5 -10
  236. data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +5 -3
  237. data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +4 -4
  238. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +2 -3
  239. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitscolumn_widget.rb +2 -3
  240. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +3 -4
  241. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangecolumn_widget.rb +2 -3
  242. data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +8 -7
  243. data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +9 -7
  244. data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +54 -46
  245. data/lib/cosmos/top_level.rb +23 -12
  246. data/lib/cosmos/version.rb +4 -4
  247. data/spec/gui/utilities/script_module_gui_spec.rb +44 -63
  248. data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  249. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
  250. data/spec/install/yaml_docs_spec.rb +112 -0
  251. data/spec/interfaces/protocols/fixed_protocol_spec.rb +20 -9
  252. data/spec/interfaces/protocols/template_protocol_spec.rb +78 -25
  253. data/spec/packets/commands_spec.rb +22 -0
  254. data/spec/packets/packet_config_spec.rb +24 -0
  255. data/spec/packets/packet_item_spec.rb +2 -2
  256. data/spec/packets/packet_spec.rb +39 -6
  257. data/spec/packets/parsers/state_parser_spec.rb +33 -11
  258. data/spec/packets/structure_spec.rb +41 -0
  259. data/spec/packets/telemetry_spec.rb +23 -0
  260. data/spec/streams/tcpip_socket_stream_spec.rb +32 -27
  261. data/spec/system/system_spec.rb +77 -2
  262. data/spec/system/target_spec.rb +62 -1
  263. data/spec/tools/cmd_tlm_server/api_spec.rb +1 -1
  264. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -7
  265. data/spec/top_level/top_level_spec.rb +29 -5
  266. data/tasks/gemfile_stats.rake +28 -14
  267. data/test/performance/config/system/system.txt +0 -0
  268. data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +5 -5
  269. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  270. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  271. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  272. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  273. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  274. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  275. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  276. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  277. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  278. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  279. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  280. data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  281. data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  282. data/test/performance/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  283. data/test/performance/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  284. data/test/performance/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  285. data/test/performance/config/tools/test_runner/test_runner.txt +1 -1
  286. data/test/performance/procedures/cosmos_api_test.rb +1 -1
  287. data/test/performance/tools/identify_performance.rb +82 -0
  288. metadata +92 -55
@@ -12,7 +12,10 @@ require 'cosmos'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/widget'
13
13
 
14
14
  module Cosmos
15
-
15
+ # Create a checkbox. Typically used as a NAMED_WIDGET which is then
16
+ # referenced by a BUTTON to perform an action. For example:
17
+ # NAMED_WIDGET CHECK CHECKBUTTON 'Ignore Hazardous Checks'
18
+ # BUTTON 'Send' 'if get_named_widget("CHECK").checked? then cmd_no_hazardous_check("INST CLEAR") else cmd("INST CLEAR") end'
16
19
  class CheckbuttonWidget < Qt::CheckBox
17
20
  include Widget
18
21
 
@@ -34,5 +37,4 @@ module Cosmos
34
37
  self.isChecked()
35
38
  end
36
39
  end
37
-
38
- end # module Cosmos
40
+ end
@@ -11,7 +11,10 @@
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
 
13
13
  module Cosmos
14
-
14
+ # Create a combobox. Typically used as a NAMED_WIDGET which is then
15
+ # referenced by a BUTTON to perform an action. For example:
16
+ # NAMED_WIDGET COLLECT_TYPE COMBOBOX NORMAL SPECIAL
17
+ # BUTTON 'Start Collect' 'cmd("INST COLLECT with TYPE #{get_named_widget("COLLECT_TYPE").text}")'
15
18
  class ComboboxWidget < Qt::ComboBox
16
19
  include Widget
17
20
 
@@ -26,5 +29,4 @@ module Cosmos
26
29
  self.currentText
27
30
  end
28
31
  end
29
-
30
- end # module Cosmos
32
+ end
@@ -12,7 +12,7 @@ require 'cosmos'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/formatvalue_widget'
13
13
 
14
14
  module Cosmos
15
- # This class implements a value with configurable font values. The font
15
+ # This class implements a value with configurable font values. The font
16
16
  # can also be updated after it is created.
17
17
  # It inherits from the FormatvalueWidget class.
18
18
  class FormatfontvalueWidget < FormatvalueWidget
@@ -17,19 +17,16 @@ require 'cosmos'
17
17
  require 'cosmos/tools/tlm_viewer/widgets/value_widget'
18
18
 
19
19
  module Cosmos
20
-
20
+ # Displays a formatted telemetry item done by sprintf using the format_string
21
21
  class FormatvalueWidget < ValueWidget
22
-
23
- def initialize (parent_layout, target_name, packet_name, item_name, format_string, value_type = :CONVERTED, characters = 12)
22
+ def initialize(parent_layout, target_name, packet_name, item_name, format_string, value_type = :CONVERTED, characters = 12)
24
23
  super(parent_layout, target_name, packet_name, item_name, value_type, characters)
25
24
  @format_string = format_string
26
25
  end
27
26
 
28
- def value= (data)
27
+ def value=(data)
29
28
  formatted_data = sprintf(@format_string, data)
30
29
  super(formatted_data)
31
30
  end
32
-
33
31
  end
34
-
35
- end # module Cosmos
32
+ end
@@ -12,16 +12,16 @@ 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 layouts the enclosed widgets horizontally.
16
+ # Default spacing is 0 pixels.
16
17
  class HorizontalWidget < Qt::HBoxLayout
17
18
  include Widget
18
19
  include LayoutWidget
19
20
 
20
- def initialize(parent_layout = nil, hSpacing = 1)
21
+ def initialize(parent_layout = nil, spacing = 0)
21
22
  super()
22
- setSpacing(hSpacing.to_i)
23
+ setSpacing(spacing.to_i)
23
24
  parent_layout.addLayout(self) if parent_layout
24
25
  end
25
26
  end
26
-
27
- end #module Cosmos
27
+ end
@@ -12,20 +12,19 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
13
13
 
14
14
  module Cosmos
15
-
16
- # HorizontalboxWidget class
17
- #
15
+ # Layout widget which layouts the enclosed widgets horizontally
16
+ # in a visual box with header text.
17
+ # Default spacing is 0 pixels
18
18
  class HorizontalboxWidget < Qt::HBoxLayout
19
19
  include Widget
20
20
  include LayoutWidget
21
21
 
22
- def initialize(parent_layout, title = "", hSpacing = 0)
22
+ def initialize(parent_layout, title = "", spacing = 0)
23
23
  super()
24
24
  box = Qt::GroupBox.new(title.to_s)
25
- setSpacing(hSpacing.to_i)
25
+ setSpacing(spacing.to_i)
26
26
  box.setLayout(self)
27
27
  parent_layout.addWidget(box) if parent_layout
28
28
  end
29
29
  end
30
-
31
- end # module Cosmos
30
+ end
@@ -11,7 +11,7 @@
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
 
13
13
  module Cosmos
14
-
14
+ # Displays a sunken horizontal line
15
15
  class HorizontallineWidget < Qt::Frame
16
16
  include Widget
17
17
 
@@ -20,7 +20,5 @@ module Cosmos
20
20
  setFrameStyle(Qt::Frame::HLine | Qt::Frame::Sunken)
21
21
  parent_layout.addWidget(self) if parent_layout
22
22
  end
23
-
24
23
  end
25
-
26
- end # module Cosmos
24
+ end
@@ -12,18 +12,20 @@ require 'cosmos'
12
12
  require 'cosmos/tools/tlm_viewer/widgets/widget'
13
13
 
14
14
  module Cosmos
15
-
16
- # LabelWidget class
17
- #
15
+ # Displays a text label
18
16
  class LabelWidget < Qt::Label
19
17
  include Widget
20
18
 
21
- def initialize(parent_layout, text)
19
+ def initialize(parent_layout, text, font_family = nil, point_size = nil, bold = nil, italic = false)
22
20
  super()
23
- self.text = text.remove_quotes
21
+ font = self.font
22
+ font.setFamily(font_family) unless ConfigParser.handle_nil(font_family).nil?
23
+ font.setPointSize(point_size.to_i) unless ConfigParser.handle_nil(point_size).nil?
24
+ font.setBold(true) if bold == 'BOLD'
25
+ font.setItalic(true) if ConfigParser::handle_true_false(italic) == true
26
+ setFont(font)
27
+ self.text = text.to_s.remove_quotes
24
28
  parent_layout.addWidget(self) if parent_layout
25
29
  end
26
-
27
30
  end
28
-
29
- end # module Cosmos
31
+ end
@@ -15,7 +15,7 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
15
15
  require 'cosmos/tools/tlm_viewer/widgets/formatvalue_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Displays a LabelWidget followed by a FormatvalueWidget
19
19
  class LabelformatvalueWidget < Qt::Widget
20
20
  include Widget
21
21
  include MultiWidget
@@ -35,5 +35,4 @@ module Cosmos
35
35
  return true
36
36
  end
37
37
  end
38
-
39
- end # module Cosmos
38
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: ascii-8bit
2
+
3
+ # Copyright 2014 Ball Aerospace & Technologies Corp.
4
+ # All Rights Reserved.
5
+ #
6
+ # This program is free software; you can modify and/or redistribute it
7
+ # under the terms of the GNU General Public License
8
+ # as published by the Free Software Foundation; version 3 with
9
+ # attribution addendums as found in the LICENSE.txt
10
+
11
+ require 'cosmos/tools/tlm_viewer/widgets/widget'
12
+ require 'cosmos/tools/tlm_viewer/widgets/multi_widget'
13
+ require 'cosmos/tools/tlm_viewer/widgets/horizontal_widget'
14
+ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
15
+ require 'cosmos/tools/tlm_viewer/widgets/led_widget'
16
+
17
+ module Cosmos
18
+ # Displays a LabelWidget followed by a LedWidget. The layout of the label with
19
+ # respect to the LED widget can be controlled by the align parameter.
20
+ class LabelledWidget < Qt::Widget
21
+ include Widget
22
+ include MultiWidget
23
+
24
+ def initialize(parent_layout, target_name, packet_name, item_name, value_type = :WITH_UNITS, width = 15, height = 15, align = 'split')
25
+ super(target_name, packet_name, item_name, value_type)
26
+ setLayout(Qt::HBoxLayout.new)
27
+ layout.setSpacing(5)
28
+ layout.setContentsMargins(0,0,0,0)
29
+ layout.addStretch(1) if align.downcase == 'right' || align.downcase == 'center'
30
+ @widgets << LabelWidget.new(layout, item_name.to_s + ':')
31
+ layout.addStretch(1) if align.downcase == 'split'
32
+ @widgets << LedWidget.new(layout, target_name, packet_name, item_name, value_type, width, height)
33
+ layout.addStretch(1) if align.downcase == 'left' || align.downcase == 'center'
34
+ parent_layout.addWidget(self) if parent_layout
35
+ end
36
+
37
+ def self.takes_value?
38
+ return true
39
+ end
40
+
41
+ # Normally the user would have to use SUBSETTING to set the label and
42
+ # led parts of this widget but override set_setting so it's easier
43
+ def set_setting(setting_name, setting_values)
44
+ case setting_name.upcase
45
+ # Only apply TEXTALIGN to the value widget by default. It makes the label
46
+ # look weird when doing LEFT align which is the most common.
47
+ when 'TEXTALIGN'
48
+ @widgets[1].set_setting(setting_name, setting_values)
49
+ when 'TEXTCOLOR' # Apply this to both widgets automatically
50
+ @widgets[0].set_setting(setting_name, setting_values)
51
+ when /_COLOR/
52
+ @widgets[1].set_setting(setting_name, setting_values)
53
+ else
54
+ super(setting_name, setting_values)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -15,7 +15,7 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
15
15
  require 'cosmos/tools/tlm_viewer/widgets/progressbar_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Displays a LabelWidget followed by a ProgressbarWidget
19
19
  class LabelprogressbarWidget < Qt::Widget
20
20
  include Widget
21
21
  include MultiWidget
@@ -26,7 +26,7 @@ module Cosmos
26
26
  layout.setSpacing(0)
27
27
  layout.setContentsMargins(0,0,0,0)
28
28
  @widgets << LabelWidget.new(layout, item_name.to_s + ':')
29
- @widgets << ProgressbarWidget.new(layout, target_name, packet_name, item_name, scale_factor, width)
29
+ @widgets << ProgressbarWidget.new(layout, target_name, packet_name, item_name, scale_factor, width, value_type)
30
30
  parent_layout.addWidget(self) if parent_layout
31
31
  end
32
32
 
@@ -34,5 +34,4 @@ module Cosmos
34
34
  return true
35
35
  end
36
36
  end
37
-
38
- end # module Cosmos
37
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Displays a LabelWidget indicating the telemetry item followed by a TrendlimitsbarWidget.
18
18
  class LabeltrendlimitsbarWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
@@ -33,6 +33,4 @@ module Cosmos
33
33
  return true
34
34
  end
35
35
  end
36
-
37
- end # module Cosmos
38
-
36
+ end
@@ -15,7 +15,8 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
15
15
  require 'cosmos/tools/tlm_viewer/widgets/value_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Displays a LabelWidget followed by a ValueWidget. The layout of the label with
19
+ # respect to the value widget can be controlled by the align parameter.
19
20
  class LabelvalueWidget < Qt::Widget
20
21
  include Widget
21
22
  include MultiWidget
@@ -14,9 +14,8 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/value_widget'
15
15
 
16
16
  module Cosmos
17
-
18
- # LabelvalueWidget class
19
- #
17
+ # Displays a LabelWidget which contains the item's description (instead of its name)
18
+ # followed by a ValueWidget
20
19
  class LabelvaluedescWidget < Qt::Widget
21
20
  include Widget
22
21
  include MultiWidget
@@ -38,5 +37,4 @@ module Cosmos
38
37
  return true
39
38
  end
40
39
  end
41
-
42
- end # module Cosmos
40
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/labelvalue_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Displays a LabelvalueWidget followed by a LimitsbarWidget
18
18
  class LabelvaluelimitsbarWidget < 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/labelvalue_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Vertically stacks a LabelWidget, LimitscolumnWidget, and ValueWidget
18
18
  class LabelvaluelimitscolumnWidget < Qt::Widget
19
19
  include Widget
20
20
  include MultiWidget
@@ -34,5 +34,4 @@ module Cosmos
34
34
  return true
35
35
  end
36
36
  end
37
-
38
- end # module Cosmos
37
+ end
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/labelvalue_widget'
14
14
  require 'cosmos/tools/tlm_viewer/widgets/rangebar_widget'
15
15
 
16
16
  module Cosmos
17
-
17
+ # Displays a LabelvalueWidget followed by a RangebarWidget
18
18
  class LabelvaluerangebarWidget < 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,7 +15,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
15
15
  require 'cosmos/tools/tlm_viewer/widgets/rangecolumn_widget'
16
16
 
17
17
  module Cosmos
18
-
18
+ # Vertically stacks a LabelWidget, RangecolumnWidgetk and ValueWidget
19
19
  class LabelvaluerangecolumnWidget < Qt::Widget
20
20
  include Widget
21
21
  include MultiWidget
@@ -35,5 +35,4 @@ module Cosmos
35
35
  return true
36
36
  end
37
37
  end
38
-
39
- end # module Cosmos
38
+ end
@@ -9,9 +9,9 @@
9
9
  # attribution addendums as found in the LICENSE.txt
10
10
 
11
11
  module Cosmos
12
-
12
+ # Module to be included by all layout widgets which will add a class
13
+ # method named layout_manager? that returns true
13
14
  module LayoutWidget
14
-
15
15
  module ClassMethods
16
16
  def layout_manager?
17
17
  return true
@@ -28,7 +28,5 @@ module Cosmos
28
28
  def complete
29
29
  # Normally do nothing
30
30
  end
31
-
32
31
  end
33
-
34
- end # module Cosmos
32
+ end
@@ -0,0 +1,108 @@
1
+ # encoding: ascii-8bit
2
+
3
+ # Copyright 2014 Ball Aerospace & Technologies Corp.
4
+ # All Rights Reserved.
5
+ #
6
+ # This program is free software; you can modify and/or redistribute it
7
+ # under the terms of the GNU General Public License
8
+ # as published by the Free Software Foundation; version 3 with
9
+ # attribution addendums as found in the LICENSE.txt
10
+
11
+ require 'ostruct'
12
+ require 'cosmos/tools/tlm_viewer/widgets/widget'
13
+
14
+ module Cosmos
15
+ # This class implements a LED which changes color based on telemetry values.
16
+ # By default TRUE is green and FALSE is red and all other values are black.
17
+ # Additional values can be added by using the LED_COLOR setting. For example:
18
+ # LED INST PARAMS VALUE3 RAW
19
+ # SETTING LED_COLOR 0 GREEN
20
+ # SETTING LED_COLOR 1 RED
21
+ # SETTING LED_COLOR ANY ORANGE # All other values are ORANGE
22
+ class LedWidget < Qt::Label
23
+ include Widget
24
+
25
+ def self.takes_value?
26
+ return true
27
+ end
28
+
29
+ @@brushes = {}
30
+
31
+ def initialize(parent_layout, target_name, packet_name, item_name, value_type = :CONVERTED, width = 15, height = 15)
32
+ super(target_name, packet_name, item_name, value_type)
33
+ @width = width.to_i
34
+ @height = height.to_i
35
+ # Add some sensible defaults, all others must be added using settings
36
+ @colors = {"TRUE" => "green", "FALSE" => "red"}
37
+ @painter = nil
38
+ @color = nil
39
+ @brush = nil
40
+ setFixedSize(width.to_i + 3, height.to_i + 3)
41
+ parent_layout.addWidget(self) if parent_layout
42
+ end
43
+
44
+ # Override set_setting so we can deconflict the LED_COLOR settings
45
+ # and allow the user to use it multiple times. By default each time
46
+ # a SETTING name is used it overrides the previous setting.
47
+ def set_setting(setting_name, setting_values)
48
+ if setting_name.upcase == 'LED_COLOR'
49
+ @settings["#{setting_name.upcase}_#{setting_values.join('_')}"] = setting_values
50
+ else
51
+ super(setting_name, setting_values)
52
+ end
53
+ end
54
+
55
+ def process_settings
56
+ super
57
+ @settings.each do |setting_name, setting_values|
58
+ begin
59
+ if setting_name =~ /^LED_COLOR/
60
+ @colors[setting_values[0]] = setting_values[1]
61
+ end
62
+ rescue => err
63
+ puts "Error Processing Settings!: #{err}"
64
+ end
65
+ end
66
+ end
67
+
68
+ def value=(data)
69
+ super(data)
70
+ @color = @colors[data.to_s] # Returns nil if not found
71
+ @color = @colors['ANY'] unless @color # Check for ANY value
72
+ @color = @color ? Cosmos::getColor(@color) : Cosmos::BLACK # default to black
73
+ @brush = @@brushes[@color]
74
+ unless @brush
75
+ gradient = Qt::RadialGradient.new(5, 5, 50, 5, 5)
76
+ gradient.setColorAt(0, @color)
77
+ gradient.setColorAt(1, Cosmos::BLACK)
78
+ @brush = Qt::Brush.new(gradient)
79
+ @@brushes[@color] = @brush
80
+ end
81
+ update() # Fire the paintEvent handler
82
+ end
83
+
84
+ def paintEvent(event)
85
+ begin
86
+ return if @painter
87
+ @painter = Qt::Painter.new(self)
88
+ @painter.setRenderHint(Qt::Painter::Antialiasing, true)
89
+ # Seems like on initialization sometimes we get some weird bad conditions so check for them
90
+ if @painter.isActive and @painter.paintEngine
91
+ paint_implementation(@painter)
92
+ end
93
+ @painter.dispose
94
+ @painter = nil
95
+ rescue Exception => err
96
+ Cosmos.handle_fatal_exception(err)
97
+ end
98
+ end
99
+
100
+ protected
101
+
102
+ def paint_implementation(painter)
103
+ painter.setPen(Qt::NoPen)
104
+ painter.setBrush(@brush)
105
+ painter.drawEllipse(1, 1, @width, @height)
106
+ end
107
+ end
108
+ end