cosmos 3.2.1 → 3.3.0

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 (364) hide show
  1. checksums.yaml +4 -4
  2. data/Manifest.txt +195 -0
  3. data/README.md +3 -3
  4. data/data/crc.txt +52 -52
  5. data/lib/cosmos.rb +1 -1
  6. data/lib/cosmos/core_ext/time.rb +11 -9
  7. data/lib/cosmos/gui/choosers/telemetry_chooser.rb +0 -2
  8. data/lib/cosmos/gui/dialogs/about_dialog.rb +2 -2
  9. data/lib/cosmos/gui/dialogs/exception_dialog.rb +2 -2
  10. data/lib/cosmos/gui/dialogs/progress_dialog.rb +11 -5
  11. data/lib/cosmos/gui/dialogs/splash.rb +32 -10
  12. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +1 -1
  13. data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +2 -2
  14. data/lib/cosmos/gui/qt.rb +22 -22
  15. data/lib/cosmos/io/json_drb.rb +4 -4
  16. data/lib/cosmos/io/json_rpc.rb +21 -21
  17. data/lib/cosmos/packet_logs/packet_log_writer.rb +18 -20
  18. data/lib/cosmos/packets/commands.rb +8 -6
  19. data/lib/cosmos/packets/limits.rb +3 -2
  20. data/lib/cosmos/packets/packet.rb +14 -11
  21. data/lib/cosmos/packets/parsers/limits_parser.rb +1 -1
  22. data/lib/cosmos/packets/parsers/macro_parser.rb +4 -4
  23. data/lib/cosmos/packets/parsers/state_parser.rb +1 -1
  24. data/lib/cosmos/packets/structure.rb +2 -2
  25. data/lib/cosmos/packets/telemetry.rb +5 -4
  26. data/lib/cosmos/script/script.rb +6 -6
  27. data/lib/cosmos/streams/tcpip_socket_stream.rb +2 -1
  28. data/lib/cosmos/streams/template_stream_protocol.rb +1 -1
  29. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +1 -1
  30. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +5 -8
  31. data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +4 -3
  32. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +9 -3
  33. data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +15 -11
  34. data/lib/cosmos/tools/data_viewer/data_viewer.rb +1 -1
  35. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +2 -2
  36. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +2 -2
  37. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +0 -2
  38. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +1 -1
  39. data/lib/cosmos/tools/replay/replay.rb +2 -2
  40. data/lib/cosmos/tools/script_runner/script_audit.rb +1 -1
  41. data/lib/cosmos/tools/script_runner/script_runner.rb +1 -1
  42. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +3 -7
  43. data/lib/cosmos/tools/table_manager/table_config.rb +1 -1
  44. data/lib/cosmos/tools/test_runner/results_writer.rb +1 -1
  45. data/lib/cosmos/tools/test_runner/test_runner.rb +2 -2
  46. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +2 -1
  47. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +1 -1
  48. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +1 -0
  49. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +1 -0
  50. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +1 -0
  51. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +3 -3
  52. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +1 -3
  53. data/lib/cosmos/top_level.rb +2 -6
  54. data/lib/cosmos/utilities/ruby_lex_utils.rb +1 -1
  55. data/lib/cosmos/version.rb +5 -5
  56. data/lib/cosmos/win32/win32_main.rb +11 -7
  57. data/spec/ccsds/ccsds_packet_spec.rb +28 -28
  58. data/spec/ccsds/ccsds_parser_spec.rb +27 -27
  59. data/spec/config/config_parser_spec.rb +88 -88
  60. data/spec/conversions/conversion_spec.rb +3 -3
  61. data/spec/conversions/generic_conversion_spec.rb +9 -9
  62. data/spec/conversions/new_packet_log_conversion_spec.rb +4 -4
  63. data/spec/conversions/polynomial_conversion_spec.rb +7 -7
  64. data/spec/conversions/processor_conversion_spec.rb +9 -9
  65. data/spec/conversions/received_count_conversion_spec.rb +7 -7
  66. data/spec/conversions/received_time_formatted_conversion_spec.rb +9 -9
  67. data/spec/conversions/received_time_seconds_conversion_spec.rb +9 -9
  68. data/spec/conversions/segmented_polynomial_conversion_spec.rb +11 -11
  69. data/spec/conversions/unix_time_formatted_conversion_spec.rb +13 -13
  70. data/spec/conversions/unix_time_seconds_conversion_spec.rb +13 -13
  71. data/spec/core_ext/array_spec.rb +76 -76
  72. data/spec/core_ext/class_spec.rb +3 -3
  73. data/spec/core_ext/cosmos_io_spec.rb +16 -16
  74. data/spec/core_ext/exception_spec.rb +19 -19
  75. data/spec/core_ext/file_spec.rb +16 -16
  76. data/spec/core_ext/hash_spec.rb +3 -3
  77. data/spec/core_ext/io_spec.rb +2 -2
  78. data/spec/core_ext/kernel_spec.rb +2 -2
  79. data/spec/core_ext/math_spec.rb +43 -43
  80. data/spec/core_ext/matrix_spec.rb +22 -22
  81. data/spec/core_ext/objectspace_spec.rb +6 -6
  82. data/spec/core_ext/range_spec.rb +2 -2
  83. data/spec/core_ext/socket_spec.rb +4 -4
  84. data/spec/core_ext/string_spec.rb +67 -67
  85. data/spec/core_ext/stringio_spec.rb +2 -2
  86. data/spec/core_ext/time_spec.rb +82 -82
  87. data/spec/gui/line_graph/line_clip_spec.rb +34 -34
  88. data/spec/interfaces/interface_spec.rb +46 -46
  89. data/spec/interfaces/linc_interface_spec.rb +26 -26
  90. data/spec/interfaces/serial_interface_spec.rb +16 -16
  91. data/spec/interfaces/simulated_target_interface_spec.rb +21 -21
  92. data/spec/interfaces/stream_interface_spec.rb +22 -22
  93. data/spec/interfaces/tcpip_client_interface_spec.rb +14 -14
  94. data/spec/interfaces/tcpip_server_interface_spec.rb +41 -41
  95. data/spec/interfaces/udp_interface_spec.rb +46 -46
  96. data/spec/io/buffered_file_spec.rb +50 -50
  97. data/spec/io/io_multiplexer_spec.rb +9 -9
  98. data/spec/io/json_drb_object_spec.rb +7 -7
  99. data/spec/io/json_drb_spec.rb +55 -55
  100. data/spec/io/json_rpc_spec.rb +68 -68
  101. data/spec/io/raw_logger_pair_spec.rb +28 -28
  102. data/spec/io/raw_logger_spec.rb +22 -22
  103. data/spec/io/serial_driver_spec.rb +3 -3
  104. data/spec/io/stderr_spec.rb +2 -2
  105. data/spec/io/stdout_spec.rb +2 -2
  106. data/spec/io/tcpip_server_spec.rb +62 -62
  107. data/spec/io/udp_sockets_spec.rb +19 -19
  108. data/spec/io/win32_serial_driver_spec.rb +10 -10
  109. data/spec/packet_logs/meta_packet_log_writer_spec.rb +32 -32
  110. data/spec/packet_logs/packet_log_reader_spec.rb +138 -138
  111. data/spec/packet_logs/packet_log_writer_pair_spec.rb +3 -3
  112. data/spec/packet_logs/packet_log_writer_spec.rb +26 -26
  113. data/spec/packets/binary_accessor_spec.rb +672 -672
  114. data/spec/packets/commands_spec.rb +123 -123
  115. data/spec/packets/limits_response_spec.rb +1 -1
  116. data/spec/packets/limits_spec.rb +69 -69
  117. data/spec/packets/packet_config_spec.rb +93 -93
  118. data/spec/packets/packet_item_limits_spec.rb +46 -46
  119. data/spec/packets/packet_item_spec.rb +108 -108
  120. data/spec/packets/packet_spec.rb +364 -348
  121. data/spec/packets/parsers/format_string_parser_spec.rb +13 -13
  122. data/spec/packets/parsers/limits_parser_spec.rb +8 -8
  123. data/spec/packets/parsers/limits_response_parser_spec.rb +9 -9
  124. data/spec/packets/parsers/macro_parser_spec.rb +34 -6
  125. data/spec/packets/parsers/packet_parser_spec.rb +6 -6
  126. data/spec/packets/parsers/processor_parser_spec.rb +7 -7
  127. data/spec/packets/parsers/state_parser_spec.rb +23 -23
  128. data/spec/packets/structure_item_spec.rb +62 -62
  129. data/spec/packets/structure_spec.rb +183 -183
  130. data/spec/packets/telemetry_spec.rb +174 -174
  131. data/spec/processors/new_packet_log_processor_spec.rb +4 -4
  132. data/spec/processors/processor_spec.rb +9 -9
  133. data/spec/processors/statistics_processor_spec.rb +21 -21
  134. data/spec/processors/watermark_processor_spec.rb +12 -12
  135. data/spec/script/script_spec.rb +158 -158
  136. data/spec/spec_helper.rb +44 -13
  137. data/spec/streams/burst_stream_protocol_spec.rb +8 -8
  138. data/spec/streams/fixed_stream_protocol_spec.rb +26 -26
  139. data/spec/streams/length_stream_protocol_spec.rb +27 -27
  140. data/spec/streams/preidentified_stream_protocol_spec.rb +25 -25
  141. data/spec/streams/serial_stream_spec.rb +19 -19
  142. data/spec/streams/stream_protocol_spec.rb +52 -52
  143. data/spec/streams/stream_spec.rb +1 -1
  144. data/spec/streams/tcpip_client_stream_spec.rb +7 -7
  145. data/spec/streams/tcpip_socket_stream_spec.rb +84 -49
  146. data/spec/streams/template_stream_protocol_spec.rb +17 -17
  147. data/spec/streams/terminated_stream_protocol_spec.rb +19 -19
  148. data/spec/system/system_spec.rb +95 -95
  149. data/spec/system/target_spec.rb +32 -32
  150. data/spec/tools/cmd_tlm_server/api_spec.rb +386 -386
  151. data/spec/tools/cmd_tlm_server/background_task_spec.rb +3 -3
  152. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +8 -8
  153. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +57 -57
  154. data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +85 -85
  155. data/spec/tools/cmd_tlm_server/commanding_spec.rb +11 -11
  156. data/spec/tools/cmd_tlm_server/connections_spec.rb +23 -23
  157. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +57 -57
  158. data/spec/tools/cmd_tlm_server/interfaces_spec.rb +32 -32
  159. data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +17 -17
  160. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +15 -15
  161. data/spec/tools/cmd_tlm_server/routers_spec.rb +36 -36
  162. data/spec/top_level/top_level_spec.rb +60 -60
  163. data/spec/utilities/crc_spec.rb +6 -6
  164. data/spec/utilities/csv_spec.rb +13 -13
  165. data/spec/utilities/logger_spec.rb +20 -20
  166. data/spec/utilities/message_log_spec.rb +13 -13
  167. data/spec/utilities/quaternion_spec.rb +30 -30
  168. data/spec/utilities/ruby_lex_utils_spec.rb +14 -14
  169. data/test/benchmarks/binary_accessor_benchmark.rb +14 -0
  170. data/test/benchmarks/gsub_benchmark.rb +114 -0
  171. data/test/performance/PACKETS.bat +1 -0
  172. data/test/performance/Rakefile +77 -0
  173. data/test/performance/THREADS.bat +1 -0
  174. data/test/performance/config/data/attitude.bin +0 -0
  175. data/test/performance/config/data/crc.txt +206 -0
  176. data/test/performance/config/data/diamond.STL +58 -0
  177. data/test/performance/config/data/groundoff.gif +0 -0
  178. data/test/performance/config/data/groundon.gif +0 -0
  179. data/test/performance/config/data/hselectoff.gif +0 -0
  180. data/test/performance/config/data/hselecton.gif +0 -0
  181. data/test/performance/config/data/hswitchoff.gif +0 -0
  182. data/test/performance/config/data/hswitchon.gif +0 -0
  183. data/test/performance/config/data/meta_init.txt +4 -0
  184. data/test/performance/config/data/position.bin +0 -0
  185. data/test/performance/config/data/poweroff.gif +0 -0
  186. data/test/performance/config/data/poweron.gif +0 -0
  187. data/test/performance/config/data/satellite.gif +0 -0
  188. data/test/performance/config/data/tada.wav +0 -0
  189. data/test/performance/config/data/vswitchoff.gif +0 -0
  190. data/test/performance/config/data/vswitchon.gif +0 -0
  191. data/test/performance/config/system/system_packets.txt +39 -0
  192. data/test/performance/config/system/system_threads.txt +59 -0
  193. data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  194. data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  195. data/test/performance/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  196. data/test/performance/config/targets/COSMOS/screens/limits_change.txt +20 -0
  197. data/test/performance/config/targets/COSMOS/screens/version.txt +19 -0
  198. data/test/performance/config/targets/COSMOS/target.txt +11 -0
  199. data/test/performance/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +17 -0
  200. data/test/performance/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +18 -0
  201. data/test/performance/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -0
  202. data/test/performance/config/targets/EXAMPLE/lib/example_interface.rb +22 -0
  203. data/test/performance/config/targets/EXAMPLE/target.txt +7 -0
  204. data/test/performance/config/targets/SYSTEM/screens/status.txt +12 -0
  205. data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +34 -0
  206. data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +68 -0
  207. data/test/performance/config/tools/data_viewer/data_viewer.txt +11 -0
  208. data/test/performance/config/tools/handbook_creator/default_toc.xsl +59 -0
  209. data/test/performance/config/tools/handbook_creator/handbook_creator.txt +66 -0
  210. data/test/performance/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
  211. data/test/performance/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
  212. data/test/performance/config/tools/handbook_creator/templates/footer.html.erb +9 -0
  213. data/test/performance/config/tools/handbook_creator/templates/header.html.erb +25 -0
  214. data/test/performance/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
  215. data/test/performance/config/tools/handbook_creator/templates/nav.html.erb +27 -0
  216. data/test/performance/config/tools/handbook_creator/templates/overview.html.erb +1 -0
  217. data/test/performance/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
  218. data/test/performance/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
  219. data/test/performance/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
  220. data/test/performance/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
  221. data/test/performance/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
  222. data/test/performance/config/tools/handbook_creator/templates/title.html.erb +1 -0
  223. data/test/performance/config/tools/launcher/launcher_packets.txt +29 -0
  224. data/test/performance/config/tools/launcher/launcher_threads.txt +70 -0
  225. data/test/performance/config/tools/limits_monitor/README.txt +1 -0
  226. data/test/performance/config/tools/opengl_builder/README.txt +1 -0
  227. data/test/performance/config/tools/script_runner/script_runner.txt +3 -0
  228. data/test/performance/config/tools/table_manager/ConfigTables_def.txt +8 -0
  229. data/test/performance/config/tools/table_manager/ExampleTableDefinition.txt +24 -0
  230. data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -0
  231. data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -0
  232. data/test/performance/config/tools/table_manager/PPSSelectionTable_def.txt +8 -0
  233. data/test/performance/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -0
  234. data/test/performance/config/tools/test_runner/test_runner.txt +17 -0
  235. data/test/performance/config/tools/tlm_extractor/tlm_extractor.txt +13 -0
  236. data/test/performance/config/tools/tlm_extractor/tlm_extractor2.txt +2 -0
  237. data/test/performance/config/tools/tlm_extractor/tlm_extractor3.txt +2 -0
  238. data/test/performance/config/tools/tlm_extractor/tlm_extractor4.txt +2 -0
  239. data/test/performance/config/tools/tlm_grapher/README.txt +1 -0
  240. data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +41 -0
  241. data/test/performance/lib/example_background_task.rb +57 -0
  242. data/test/performance/lib/example_target.rb +120 -0
  243. data/test/performance/lib/scpi_target.rb +74 -0
  244. data/test/performance/lib/user_version.rb +3 -0
  245. data/test/performance/outputs/handbooks/README.txt +1 -0
  246. data/test/performance/outputs/logs/README.txt +1 -0
  247. data/test/performance/outputs/saved_config/README.txt +1 -0
  248. data/test/performance/outputs/tables/README.txt +1 -0
  249. data/test/performance/outputs/tmp/README.txt +1 -0
  250. data/test/performance/procedures/checks.rb +11 -0
  251. data/test/performance/procedures/clear_util.rb +7 -0
  252. data/test/performance/procedures/collect.rb +18 -0
  253. data/test/performance/procedures/collect_util.rb +14 -0
  254. data/test/performance/procedures/cosmos_api_test.rb +293 -0
  255. data/test/performance/procedures/disconnect.rb +29 -0
  256. data/test/performance/procedures/example_test.rb +182 -0
  257. data/test/performance/procedures/plot_test.rb +8 -0
  258. data/test/performance/procedures/procedure.rb +3 -0
  259. data/test/performance/procedures/run_example_test.rb +3 -0
  260. data/test/performance/procedures/test.rb +51 -0
  261. data/test/performance/tools/CmdExtractor +14 -0
  262. data/test/performance/tools/CmdExtractor.bat +59 -0
  263. data/test/performance/tools/CmdSender +14 -0
  264. data/test/performance/tools/CmdSender.bat +59 -0
  265. data/test/performance/tools/CmdTlmServer +16 -0
  266. data/test/performance/tools/CmdTlmServer.bat +59 -0
  267. data/test/performance/tools/CmdTlmServerMemProf +20 -0
  268. data/test/performance/tools/CmdTlmServerMemProf.bat +59 -0
  269. data/test/performance/tools/DataViewer +14 -0
  270. data/test/performance/tools/DataViewer.bat +59 -0
  271. data/test/performance/tools/ExampleTarget +14 -0
  272. data/test/performance/tools/ExampleTarget.bat +59 -0
  273. data/test/performance/tools/HandbookCreator +14 -0
  274. data/test/performance/tools/HandbookCreator.bat +61 -0
  275. data/test/performance/tools/Launcher +14 -0
  276. data/test/performance/tools/Launcher.bat +59 -0
  277. data/test/performance/tools/LimitsMonitor +14 -0
  278. data/test/performance/tools/LimitsMonitor.bat +59 -0
  279. data/test/performance/tools/OpenGLBuilder +14 -0
  280. data/test/performance/tools/OpenGLBuilder.bat +59 -0
  281. data/test/performance/tools/PacketViewer +14 -0
  282. data/test/performance/tools/PacketViewer.bat +59 -0
  283. data/test/performance/tools/Replay +14 -0
  284. data/test/performance/tools/Replay.bat +59 -0
  285. data/test/performance/tools/ScpiTarget +14 -0
  286. data/test/performance/tools/ScpiTarget.bat +59 -0
  287. data/test/performance/tools/ScriptRunner +14 -0
  288. data/test/performance/tools/ScriptRunner.bat +59 -0
  289. data/test/performance/tools/TableManager +14 -0
  290. data/test/performance/tools/TableManager.bat +59 -0
  291. data/test/performance/tools/TestRunner +14 -0
  292. data/test/performance/tools/TestRunner.bat +59 -0
  293. data/test/performance/tools/TlmExtractor +14 -0
  294. data/test/performance/tools/TlmExtractor.bat +59 -0
  295. data/test/performance/tools/TlmGrapher +14 -0
  296. data/test/performance/tools/TlmGrapher.bat +59 -0
  297. data/test/performance/tools/TlmViewer +14 -0
  298. data/test/performance/tools/TlmViewer.bat +59 -0
  299. data/test/performance/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
  300. data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -0
  301. data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -0
  302. data/test/performance/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
  303. data/test/performance/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
  304. data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -0
  305. data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -0
  306. data/test/performance/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
  307. data/test/performance/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
  308. data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -0
  309. data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -0
  310. data/test/performance/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
  311. data/test/performance/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
  312. data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -0
  313. data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -0
  314. data/test/performance/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
  315. data/test/performance/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
  316. data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -0
  317. data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -0
  318. data/test/performance/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
  319. data/test/performance/tools/mac/Launcher.app/Contents/Info.plist +38 -0
  320. data/test/performance/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -0
  321. data/test/performance/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -0
  322. data/test/performance/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
  323. data/test/performance/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
  324. data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -0
  325. data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -0
  326. data/test/performance/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
  327. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
  328. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -0
  329. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -0
  330. data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
  331. data/test/performance/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
  332. data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -0
  333. data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -0
  334. data/test/performance/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
  335. data/test/performance/tools/mac/Replay.app/Contents/Info.plist +38 -0
  336. data/test/performance/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -0
  337. data/test/performance/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -0
  338. data/test/performance/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
  339. data/test/performance/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
  340. data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -0
  341. data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -0
  342. data/test/performance/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
  343. data/test/performance/tools/mac/TableManager.app/Contents/Info.plist +38 -0
  344. data/test/performance/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -0
  345. data/test/performance/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -0
  346. data/test/performance/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
  347. data/test/performance/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
  348. data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -0
  349. data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -0
  350. data/test/performance/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
  351. data/test/performance/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
  352. data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -0
  353. data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -0
  354. data/test/performance/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
  355. data/test/performance/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
  356. data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -0
  357. data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -0
  358. data/test/performance/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
  359. data/test/performance/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
  360. data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -0
  361. data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -0
  362. data/test/performance/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
  363. data/test/performance/userpath.txt +1 -0
  364. metadata +197 -2
@@ -0,0 +1,11 @@
1
+ AUTO_START
2
+
3
+ COMPONENT "Health Status" dump_component.rb
4
+ PACKET INST HEALTH_STATUS
5
+
6
+ COMPONENT "ADCS" data_viewer_component.rb
7
+ PACKET INST ADCS
8
+
9
+ COMPONENT "Other Packets" data_viewer_component.rb
10
+ PACKET INST PARAMS
11
+ PACKET INST IMAGE
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsl:stylesheet version="1.0"
3
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4
+ xmlns:outline="http://code.google.com/p/wkhtmltopdf/outline"
5
+ xmlns="http://www.w3.org/1999/xhtml">
6
+ <xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
7
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
8
+ indent="yes" />
9
+ <xsl:template match="outline:outline">
10
+ <html>
11
+ <head>
12
+ <title>Table of Contents</title>
13
+ <style>
14
+ h1 {
15
+ text-align: center;
16
+ font-size: 20px;
17
+ font-family: arial;
18
+ }
19
+ div {border-bottom: 1px dashed rgb(200,200,200);}
20
+ span {float: right;}
21
+ li {list-style: none;}
22
+ ul {
23
+ font-size: 20px;
24
+ font-family: arial;
25
+ }
26
+ ul ul {font-size: 80%; }
27
+ ul {padding-left: 0em;}
28
+ ul ul {padding-left: 1em;}
29
+ a {text-decoration:none; color: black;}
30
+ </style>
31
+ </head>
32
+ <body>
33
+ <h1>Table of Contents</h1>
34
+ <ul><xsl:apply-templates select="outline:item/outline:item"/></ul>
35
+ </body>
36
+ </html>
37
+ </xsl:template>
38
+ <xsl:template match="outline:item">
39
+ <li>
40
+ <xsl:if test="@title!=''">
41
+ <div>
42
+ <a>
43
+ <xsl:if test="@link">
44
+ <xsl:attribute name="href"><xsl:value-of select="@link"/></xsl:attribute>
45
+ </xsl:if>
46
+ <xsl:if test="@backLink">
47
+ <xsl:attribute name="name"><xsl:value-of select="@backLink"/></xsl:attribute>
48
+ </xsl:if>
49
+ <xsl:value-of select="@title" />
50
+ </a>
51
+ <span> <xsl:value-of select="@page" /> </span>
52
+ </div>
53
+ </xsl:if>
54
+ <ul>
55
+ <xsl:apply-templates select="outline:item"/>
56
+ </ul>
57
+ </li>
58
+ </xsl:template>
59
+ </xsl:stylesheet>
@@ -0,0 +1,66 @@
1
+ PAGE index.html
2
+ NO_PDF
3
+ SECTION ALL header.html.erb 'Command and Telemetry Handbook'
4
+ SECTION HTML nav.html.erb
5
+ SECTION ALL title.html.erb 'Command and Telemetry Handbook'
6
+ SECTION ALL overview.html.erb
7
+ SECTION ALL footer.html.erb
8
+
9
+ PAGE command_handbook.html
10
+ PDF_TOP_MARGIN 20
11
+ PDF_BOTTOM_MARGIN 15
12
+ PDF_SIDE_MARGIN 10
13
+ PDF_HEADER pdf_header.html.erb "Command Handbook"
14
+ PDF_FOOTER pdf_footer.html.erb "Command Handbook"
15
+ PDF_COVER pdf_cover.html.erb "Command Handbook"
16
+ PDF_TOC
17
+ SECTION ALL header.html.erb 'Command Handbook'
18
+ SECTION HTML nav.html.erb
19
+ SECTION HTML title.html.erb 'Command Handbook'
20
+ CMD_SECTION HTML command_toc.html.erb
21
+ CMD_SECTION ALL command_packets.html.erb
22
+ SECTION ALL footer.html.erb
23
+
24
+ PAGE telemetry_handbook.html
25
+ PDF_HEADER pdf_header.html.erb "Telemetry Handbook"
26
+ PDF_FOOTER pdf_footer.html.erb "Telemetry Handbook"
27
+ PDF_COVER pdf_cover.html.erb "Telemetry Handbook"
28
+ PDF_TOC
29
+ SECTION ALL header.html.erb 'Telemetry Handbook'
30
+ SECTION HTML nav.html.erb
31
+ SECTION HTML title.html.erb 'Telemetry Handbook'
32
+ TLM_SECTION HTML telemetry_toc.html.erb
33
+ TLM_SECTION ALL telemetry_packets.html.erb
34
+ TLM_SECTION ALL limits_groups.html.erb
35
+ SECTION ALL footer.html.erb
36
+
37
+ TARGET_PAGES _cmd_tlm.html
38
+ PDF_HEADER pdf_header.html.erb "Command and Telemetry Handbook"
39
+ PDF_FOOTER pdf_footer.html.erb "Command and Telemetry Handbook"
40
+ PDF_COVER pdf_cover.html.erb "Command and Telemetry Handbook"
41
+ PDF_TOC
42
+ SECTION ALL header.html.erb 'Command and Telemetry Handbook'
43
+ SECTION HTML nav.html.erb
44
+ SECTION HTML title.html.erb 'Command and Telemetry Handbook'
45
+ CMD_SECTION HTML command_toc.html.erb 'Commands'
46
+ TLM_SECTION HTML telemetry_toc.html.erb 'Telemetry'
47
+ CMD_SECTION ALL command_packets.html.erb
48
+ TLM_SECTION ALL telemetry_packets.html.erb
49
+ SECTION ALL footer.html.erb
50
+
51
+ # Example of creating a handbook for just two targets
52
+ # PAGE inst_and_inst2_handbook.html
53
+ # TARGET INST
54
+ # TARGET INST2
55
+ # PDF_HEADER pdf_header.html.erb "INST and INST2 Command and Telemetry Handbook"
56
+ # PDF_FOOTER pdf_footer.html.erb "INST and INST2 Command and Telemetry Handbook"
57
+ # PDF_COVER pdf_cover.html.erb "INST and INST2 Command and Telemetry Handbook"
58
+ # PDF_TOC
59
+ # SECTION ALL header.html.erb 'INST and INST2 Command and Telemetry Handbook'
60
+ # SECTION HTML nav.html.erb
61
+ # SECTION HTML title.html.erb 'INST and INST2 Command and Telemetry Handbook'
62
+ # CMD_SECTION HTML command_toc.html.erb 'Commands'
63
+ # TLM_SECTION HTML telemetry_toc.html.erb 'Telemetry'
64
+ # CMD_SECTION ALL command_packets.html.erb
65
+ # TLM_SECTION ALL telemetry_packets.html.erb
66
+ # SECTION ALL footer.html.erb
@@ -0,0 +1,86 @@
1
+ <h1 style="background:#555555;color:white;padding:10px;">Commands</h1>
2
+ <% packets.each do |packet| %>
3
+ <div id="<%= "cmd_#{packet.target_name}_#{packet.packet_name}" %>">
4
+ <h2><%= "#{packet.target_name} #{packet.packet_name}" %></h2>
5
+ <div><span style="font-size:18px;background:#555555;color:white;"><%= packet.hazardous ? 'Hazardous' : '' %></span></div>
6
+ <div><%= packet.description %></div>
7
+ <table class="table table-striped">
8
+ <thead>
9
+ <tr>
10
+ <th>Item Name</th>
11
+ <th>Description</th>
12
+ <th class="text-center">Min</th>
13
+ <th class="text-center">Max</th>
14
+ <th class="text-center">Default</th>
15
+ <th class="text-center">Bit Offset</th>
16
+ <th class="text-center">Bit Size</th>
17
+ <th class="text-center">Data Type</th>
18
+ <th class="text-center">Units</th>
19
+ </tr>
20
+ <thead>
21
+ <tbody>
22
+ <% packet.sorted_items.each do |item| %>
23
+ <tr>
24
+ <td>
25
+ <%= item.name %>
26
+ <% if item.required %>
27
+ <div><strong>Required</strong></div>
28
+ <% end %>
29
+ </td>
30
+ <td>
31
+ <%= item.description %>
32
+ <% if item.id_value %>
33
+ <div><strong>Id Value: <%= item.id_value %></strong></div>
34
+ <% end %>
35
+ <% if item.states %>
36
+ <table class="table table-striped table-bordered table-condensed" style="margin-top:10px">
37
+ <thead>
38
+ <tr><th>State</th><th>Value</th></tr>
39
+ </thead>
40
+ <tbody>
41
+ <% item.states.each do |key, value| %>
42
+ <tr>
43
+ <td>
44
+ <%= key %>
45
+ <% if item.hazardous && item.hazardous[key] %>
46
+ <div><span style="font-size:18px;background:#555555;color:white;">Hazardous<br/><%= item.hazardous[key] %></span></div>
47
+ <% end %>
48
+ </td>
49
+ <td><%= value %></td>
50
+ </tr>
51
+ <% end %>
52
+ </tbody>
53
+ </table>
54
+ <% end %>
55
+ <% if item.array_size or item.read_conversion or item.write_conversion %>
56
+ <table class="table table-striped table-bordered table-condensed" style="margin-top:10px">
57
+ <tbody>
58
+ <% if item.array_size %>
59
+ <tr><td>Array Bit Size:</td><td><%= item.array_size %></td></tr>
60
+ <% end %>
61
+ <% if item.read_conversion %>
62
+ <tr><td>Read Conversion:</td><td><%= item.read_conversion.to_s.gsub("\n", "<br/>") %></td></tr>
63
+ <% end %>
64
+ <% if item.write_conversion %>
65
+ <tr><td>Write Conversion:</td><td><%= item.write_conversion.to_s.gsub("\n", "<br/>") %></td></tr>
66
+ <% end %>
67
+ </tbody>
68
+ </table>
69
+ <% end %>
70
+ </td>
71
+ <td class="text-center" style="white-space: nowrap;"><%= item.range.first if item.range %></td>
72
+ <td class="text-center" style="white-space: nowrap;"><%= item.range.last if item.range %></td>
73
+ <td class="text-center" style="white-space: nowrap;">
74
+ <%= item.default %>
75
+ </td>
76
+ <td class="text-center"><%= item.bit_offset %></td>
77
+ <td class="text-center"><%= item.bit_size %></td>
78
+ <td class="text-center"><%= item.data_type %></td>
79
+ <td class="text-center"><%= item.units %></td>
80
+ </tr>
81
+ <% end %>
82
+ </tbody>
83
+ </table>
84
+ </div>
85
+ <hr></hr>
86
+ <% end %>
@@ -0,0 +1,38 @@
1
+ <% packet_count = packets.length %>
2
+ <% column_1_packet_count = packet_count / 3 %>
3
+ <% column_2_packet_count = packet_count / 3 %>
4
+ <% column_3_packet_count = packet_count / 3 %>
5
+ <% column_1_packet_count += 1 if ((packet_count % 3) != 0) %>
6
+ <% column_2_packet_count += 1 if ((packet_count % 3) == 2) %>
7
+
8
+ <% if title.empty? %>
9
+ <h2>Table of Contents</h2>
10
+ <% else %>
11
+ <h2><%= title.split[1..-1].join(' ') %></h2>
12
+ <% end %>
13
+
14
+ <div class="col-md-4">
15
+ <ul class="list-unstyled">
16
+ <% packets[0..(column_1_packet_count - 1)].each do |packet| %>
17
+ <li><a href="#<%= "cmd_#{packet.target_name}_#{packet.packet_name}" %>"><%= "#{packet.target_name} #{packet.packet_name}" %></a></li>
18
+ <% end %>
19
+ </ul>
20
+ </div>
21
+
22
+ <div class="col-md-4">
23
+ <ul class="list-unstyled">
24
+ <% packets[column_1_packet_count..(column_1_packet_count + column_2_packet_count - 1)].each do |packet| %>
25
+ <li><a href="#<%= "cmd_#{packet.target_name}_#{packet.packet_name}" %>"><%= "#{packet.target_name} #{packet.packet_name}" %></a></li>
26
+ <% end %>
27
+ </ul>
28
+ </div>
29
+
30
+ <div class="col-md-4">
31
+ <ul class="list-unstyled">
32
+ <% packets[(column_1_packet_count + column_2_packet_count)..-1].each do |packet| %>
33
+ <li><a href="#<%= "cmd_#{packet.target_name}_#{packet.packet_name}" %>"><%= "#{packet.target_name} #{packet.packet_name}" %></a></li>
34
+ <% end %>
35
+ </ul>
36
+ </div>
37
+
38
+ <div class="clearfix"></div>
@@ -0,0 +1,9 @@
1
+ </div>
2
+
3
+ <!-- Bootstrap core JavaScript
4
+ ================================================== -->
5
+ <!-- Placed at the end of the document so the pages load faster -->
6
+ <script src="<%= File.join('assets', 'js', 'jquery-1.10.2.min.js') %>"></script>
7
+ <script src="<%= File.join('assets', 'js', 'bootstrap.min.js') %>"></script>
8
+ </body>
9
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <meta name="description" content="">
8
+ <meta name="author" content="">
9
+
10
+ <title><%= title %></title>
11
+
12
+ <!-- Bootstrap core CSS -->
13
+ <link href="<%= File.join('assets', 'css', 'bootstrap.min.css') %>" rel="stylesheet">
14
+ <!-- Bootstrap theme -->
15
+ <link href="<%= File.join('assets', 'css', 'bootstrap-theme.min.css') %>" rel="stylesheet">
16
+
17
+ <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
18
+ <!--[if lt IE 9]>
19
+ <script src="<%= File.join('assets', 'js', 'html5shiv.js') %>"></script>
20
+ <script src="<%= File.join('assets', 'js', 'respond.min.js') %>"></script>
21
+ <![endif]-->
22
+ </head>
23
+
24
+ <body>
25
+ <div class="container">
@@ -0,0 +1,13 @@
1
+ <% if System.limits.groups.length > 0 %>
2
+ <h1 style="background:#555555;color:white;padding:10px;">Limits Groups</h1>
3
+
4
+ <% System.limits.groups.each do |limits_group_name, limits_group| %>
5
+ <h2><%= limits_group_name %></h2>
6
+ <ul>
7
+ <% limits_group.each do |target_name, packet_name, item_name| %>
8
+ <li><%= "#{target_name} #{packet_name} #{item_name}" %></li>
9
+ <% end %>
10
+ </ul>
11
+ <hr></hr>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,27 @@
1
+ <div class="navbar navbar-default" role="navigation">
2
+ <div class="navbar-header">
3
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
4
+ <span class="sr-only">Toggle navigation</span>
5
+ <span class="icon-bar"></span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ </button>
9
+ <a class="navbar-brand" href="index.html">Command and Telemetry Handbook</a>
10
+ </div>
11
+ <div class="navbar-collapse collapse">
12
+ <ul class="nav navbar-nav">
13
+ <li><a href="command_handbook.html">All Commands</a></li>
14
+ <li><a href="telemetry_handbook.html">All Telemetry</a></li>
15
+ <li class="dropdown">
16
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Targets <b class="caret"></b></a>
17
+ <ul class="dropdown-menu">
18
+ <% target_names = System.commands.target_names | System.telemetry.target_names %>
19
+ <% target_names.delete('UNKNOWN') %>
20
+ <% target_names.each do |target_name| %>
21
+ <li><a href="<%= target_name.downcase %>_cmd_tlm.html"><%= target_name %></a></li>
22
+ <% end %>
23
+ </ul>
24
+ </li>
25
+ </ul>
26
+ </div><!--/.nav-collapse -->
27
+ </div>
@@ -0,0 +1 @@
1
+ This is the Command and Telemetry Handbook for the Demo COSMOS Configuration. Navigate using the menu above to view All Commands, All Telemetry, or both for each Target.
@@ -0,0 +1,23 @@
1
+ <html>
2
+ <head>
3
+ </head>
4
+ <body style="">
5
+ <div style="border-bottom: 1px solid black; width: 100%">
6
+ <div id="left" style="float:left;text-align:left;">
7
+ <img width=50 src="file:///<%= File.join(System.paths['HANDBOOKS'], 'assets', 'img', 'ball_logo.jpg') %>"></img>
8
+ </div>
9
+ <div id="right" style="float:right;text-align:right;">
10
+ <div>Document No.: XXXXXXX</div>
11
+ <div>Revision: TBD</div>
12
+ <div>Date: TBD</div>
13
+ </div>
14
+ <div id="center" style="width:500px;margin:0px auto;text-align:center;">
15
+ Copies are Uncontrolled
16
+ </div>
17
+ <div style="clear:both;"></div>
18
+ </div>
19
+
20
+ <h1 style="text-align:center;margin-top:100px;"><%= title %></h1>
21
+ <h3 style="text-align:center;">For the COSMOS Demo Project</h3>
22
+ </body>
23
+ </html>
@@ -0,0 +1,33 @@
1
+ <html><head><script>
2
+ function subst() {
3
+ var vars={};
4
+ var x=document.location.search.substring(1).split('&');
5
+ for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
6
+ var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
7
+ for (var i in x) {
8
+ var y = document.getElementsByClassName(x[i]);
9
+ for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
10
+ }
11
+ }
12
+ </script></head><body style="border:0; margin: 0;" onload="subst()">
13
+
14
+ <!--
15
+ * [page] Replaced by the number of the pages currently being printed
16
+ * [frompage] Replaced by the number of the first page to be printed
17
+ * [topage] Replaced by the number of the last page to be printed
18
+ * [webpage] Replaced by the URL of the page being printed
19
+ * [section] Replaced by the name of the current section
20
+ * [subsection] Replaced by the name of the current subsection
21
+ * [title] Replaced by the title of the of the current page object
22
+ * [doctitle] Replaced by the title of the output document
23
+ -->
24
+
25
+ <table style="width: 100%">
26
+ <tr>
27
+ <td style="text-align:center">
28
+ Page <span class="page"></span> of <span class="topage"></span>
29
+ </td>
30
+ </tr>
31
+ </table>
32
+ </body></html>
33
+
@@ -0,0 +1,41 @@
1
+ <html><head><script>
2
+ function subst() {
3
+ var vars={};
4
+ var x=document.location.search.substring(1).split('&');
5
+ for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
6
+ var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
7
+ for (var i in x) {
8
+ var y = document.getElementsByClassName(x[i]);
9
+ for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
10
+ }
11
+ }
12
+ </script></head><body style="border:0; margin: 0;" onload="subst()">
13
+
14
+ <!--
15
+ * [page] Replaced by the number of the pages currently being printed
16
+ * [frompage] Replaced by the number of the first page to be printed
17
+ * [topage] Replaced by the number of the last page to be printed
18
+ * [webpage] Replaced by the URL of the page being printed
19
+ * [section] Replaced by the name of the current section
20
+ * [subsection] Replaced by the name of the current subsection
21
+ * [date] Replaced by the current date in system local format
22
+ * [time] Replaced by the current time in system local format
23
+ * [title] Replaced by the title of the of the current page object
24
+ * [doctitle] Replaced by the title of the output document
25
+ -->
26
+
27
+ <div style="border-bottom: 1px solid black; width: 100%">
28
+ <div id="left" style="float:left;text-align:left;">
29
+ <img width=50 src="file:///<%= File.join(System.paths['HANDBOOKS'], 'assets', 'img', 'ball_logo.jpg') %>"></img>
30
+ </div>
31
+ <div id="right" style="float:right;text-align:right;">
32
+ <div>Document No.: XXXXXXX</div>
33
+ <div>Revision: TBD</div>
34
+ <div>Date: TBD</div>
35
+ </div>
36
+ <div id="center" style="width:500px;margin:0px auto;text-align:center;">
37
+ Copies are Uncontrolled
38
+ </div>
39
+ <div style="clear:both;"></div>
40
+ </div>
41
+ </body></html>