cosmos 3.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
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>