cosmos 3.0.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 (1114) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +48 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +5 -0
  5. data/Guardfile +27 -0
  6. data/LICENSE.txt +879 -0
  7. data/Manifest.txt +1112 -0
  8. data/README.md +42 -0
  9. data/Rakefile +214 -0
  10. data/autohotkey/config/data/attitude.bin +0 -0
  11. data/autohotkey/config/data/diamond.STL +58 -0
  12. data/autohotkey/config/data/groundoff.gif +0 -0
  13. data/autohotkey/config/data/groundon.gif +0 -0
  14. data/autohotkey/config/data/position.bin +0 -0
  15. data/autohotkey/config/data/satellite.gif +0 -0
  16. data/autohotkey/config/data/tada.wav +0 -0
  17. data/autohotkey/config/system/system.txt +34 -0
  18. data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  19. data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  20. data/autohotkey/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  21. data/autohotkey/config/targets/COSMOS/target.txt +5 -0
  22. data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -0
  23. data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +247 -0
  24. data/autohotkey/config/targets/INST/cmd_tlm_server.txt +5 -0
  25. data/autohotkey/config/targets/INST/doc/README.txt +1 -0
  26. data/autohotkey/config/targets/INST/lib/example_limits_response.rb +30 -0
  27. data/autohotkey/config/targets/INST/lib/sim_inst.rb +294 -0
  28. data/autohotkey/config/targets/INST/screens/adcs.txt +46 -0
  29. data/autohotkey/config/targets/INST/screens/array.txt +7 -0
  30. data/autohotkey/config/targets/INST/screens/block.txt +8 -0
  31. data/autohotkey/config/targets/INST/screens/commanding.txt +30 -0
  32. data/autohotkey/config/targets/INST/screens/graphs.txt +14 -0
  33. data/autohotkey/config/targets/INST/screens/ground.txt +25 -0
  34. data/autohotkey/config/targets/INST/screens/health_status.txt +33 -0
  35. data/autohotkey/config/targets/INST/screens/hs.txt +49 -0
  36. data/autohotkey/config/targets/INST/screens/image.txt +21 -0
  37. data/autohotkey/config/targets/INST/screens/latest.txt +23 -0
  38. data/autohotkey/config/targets/INST/screens/mech.txt +25 -0
  39. data/autohotkey/config/targets/INST/screens/other.txt +25 -0
  40. data/autohotkey/config/targets/INST/screens/params.txt +25 -0
  41. data/autohotkey/config/targets/INST/screens/tabs.txt +68 -0
  42. data/autohotkey/config/targets/INST/target.txt +27 -0
  43. data/autohotkey/config/targets/META/cmd_tlm/meta_cmd.txt +10 -0
  44. data/autohotkey/config/targets/META/cmd_tlm/meta_tlm.txt +9 -0
  45. data/autohotkey/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -0
  46. data/autohotkey/config/targets/SYSTEM/screens/error.txt +11 -0
  47. data/autohotkey/config/tools/cmd_sender/cmd_sender.txt +1 -0
  48. data/autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt +22 -0
  49. data/autohotkey/config/tools/data_viewer/data_viewer.txt +11 -0
  50. data/autohotkey/config/tools/handbook_creator/default_toc.xsl +59 -0
  51. data/autohotkey/config/tools/handbook_creator/handbook_creator.txt +49 -0
  52. data/autohotkey/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
  53. data/autohotkey/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
  54. data/autohotkey/config/tools/handbook_creator/templates/footer.html.erb +9 -0
  55. data/autohotkey/config/tools/handbook_creator/templates/header.html.erb +25 -0
  56. data/autohotkey/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
  57. data/autohotkey/config/tools/handbook_creator/templates/nav.html.erb +27 -0
  58. data/autohotkey/config/tools/handbook_creator/templates/overview.html.erb +1 -0
  59. data/autohotkey/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
  60. data/autohotkey/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
  61. data/autohotkey/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
  62. data/autohotkey/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
  63. data/autohotkey/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
  64. data/autohotkey/config/tools/handbook_creator/templates/title.html.erb +1 -0
  65. data/autohotkey/config/tools/launcher/launcher.txt +38 -0
  66. data/autohotkey/config/tools/limits_monitor/README.txt +1 -0
  67. data/autohotkey/config/tools/opengl_builder/error.txt +1 -0
  68. data/autohotkey/config/tools/script_runner/script_runner.txt +3 -0
  69. data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +8 -0
  70. data/autohotkey/config/tools/table_manager/OneDimensionalTable_def.txt +19 -0
  71. data/autohotkey/config/tools/table_manager/TwoDimensionalTable_def.txt +248 -0
  72. data/autohotkey/config/tools/test_runner/test_runner.txt +8 -0
  73. data/autohotkey/config/tools/test_runner/test_runner2.txt +11 -0
  74. data/autohotkey/config/tools/test_runner/test_runner3.txt +7 -0
  75. data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -0
  76. data/autohotkey/config/tools/tlm_extractor/tlm_extractor.txt +14 -0
  77. data/autohotkey/config/tools/tlm_extractor/tlm_extractor2.txt +9 -0
  78. data/autohotkey/config/tools/tlm_grapher/README.txt +1 -0
  79. data/autohotkey/config/tools/tlm_grapher/bad.txt +50 -0
  80. data/autohotkey/config/tools/tlm_grapher/temp1-4.txt +51 -0
  81. data/autohotkey/config/tools/tlm_grapher/test2.txt +111 -0
  82. data/autohotkey/config/tools/tlm_viewer/tlm_viewer.txt +24 -0
  83. data/autohotkey/config/tools/tlm_viewer/tlm_viewer2.txt +4 -0
  84. data/autohotkey/config/tools/tlm_viewer/tlm_viewer3.txt +3 -0
  85. data/autohotkey/lib/example_background_task.rb +42 -0
  86. data/autohotkey/lib/user_version.rb +3 -0
  87. data/autohotkey/outputs/handbooks/assets/css/bootstrap-theme.css +397 -0
  88. data/autohotkey/outputs/handbooks/assets/css/bootstrap-theme.min.css +7 -0
  89. data/autohotkey/outputs/handbooks/assets/css/bootstrap.css +7118 -0
  90. data/autohotkey/outputs/handbooks/assets/css/bootstrap.min.css +7 -0
  91. data/autohotkey/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  92. data/autohotkey/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  93. data/autohotkey/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  94. data/autohotkey/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  95. data/autohotkey/outputs/handbooks/assets/js/bootstrap.js +2006 -0
  96. data/autohotkey/outputs/handbooks/assets/js/bootstrap.min.js +7 -0
  97. data/autohotkey/outputs/logs/bigtlm.bin +0 -0
  98. data/autohotkey/outputs/logs/cmd.bin +0 -0
  99. data/autohotkey/outputs/logs/tlm.bin +0 -0
  100. data/autohotkey/outputs/saved_config/README.txt +1 -0
  101. data/autohotkey/outputs/tables/README.txt +1 -0
  102. data/autohotkey/outputs/tmp/README.txt +1 -0
  103. data/autohotkey/procedures/clear_util.rb +7 -0
  104. data/autohotkey/procedures/collect.rb +18 -0
  105. data/autohotkey/procedures/collect_util.rb +14 -0
  106. data/autohotkey/procedures/example_test.rb +67 -0
  107. data/autohotkey/procedures/example_test2.rb +74 -0
  108. data/autohotkey/procedures/script_test.rb +17 -0
  109. data/autohotkey/procedures/syntax_error.rb +18 -0
  110. data/autohotkey/tools/CmdExtractorAHK +16 -0
  111. data/autohotkey/tools/CmdSender +14 -0
  112. data/autohotkey/tools/CmdSenderAHK +18 -0
  113. data/autohotkey/tools/CmdTlmServer +14 -0
  114. data/autohotkey/tools/CmdTlmServerAHK +28 -0
  115. data/autohotkey/tools/CmdTlmServerAHK2 +17 -0
  116. data/autohotkey/tools/DataViewer +14 -0
  117. data/autohotkey/tools/DataViewerAHK +17 -0
  118. data/autohotkey/tools/HandbookCreatorAHK +20 -0
  119. data/autohotkey/tools/LauncherAHK +17 -0
  120. data/autohotkey/tools/LimitsMonitorAHK +20 -0
  121. data/autohotkey/tools/OpenGLBuilderAHK +20 -0
  122. data/autohotkey/tools/PacketViewer +14 -0
  123. data/autohotkey/tools/PacketViewerAHK +18 -0
  124. data/autohotkey/tools/PacketViewerAHK2 +17 -0
  125. data/autohotkey/tools/Replay +14 -0
  126. data/autohotkey/tools/Replay.bat +59 -0
  127. data/autohotkey/tools/ReplayAHK +17 -0
  128. data/autohotkey/tools/ScriptRunner +14 -0
  129. data/autohotkey/tools/ScriptRunnerAHK +20 -0
  130. data/autohotkey/tools/ScriptRunnerAHK2 +17 -0
  131. data/autohotkey/tools/TableManager +14 -0
  132. data/autohotkey/tools/TableManagerAHK +30 -0
  133. data/autohotkey/tools/TestRunner +15 -0
  134. data/autohotkey/tools/TestRunnerAHK +17 -0
  135. data/autohotkey/tools/TestRunnerAHK2 +17 -0
  136. data/autohotkey/tools/TestRunnerAHK3 +17 -0
  137. data/autohotkey/tools/TestRunnerAHK4 +17 -0
  138. data/autohotkey/tools/TlmExtractor +15 -0
  139. data/autohotkey/tools/TlmExtractorAHK +19 -0
  140. data/autohotkey/tools/TlmExtractorAHK2 +16 -0
  141. data/autohotkey/tools/TlmExtractorAHK3 +16 -0
  142. data/autohotkey/tools/TlmGrapher +14 -0
  143. data/autohotkey/tools/TlmGrapherAHK +19 -0
  144. data/autohotkey/tools/TlmGrapherAHK2 +23 -0
  145. data/autohotkey/tools/TlmGrapherAHK3 +17 -0
  146. data/autohotkey/tools/TlmGrapherAHK4 +17 -0
  147. data/autohotkey/tools/TlmViewer +14 -0
  148. data/autohotkey/tools/TlmViewerAHK +28 -0
  149. data/autohotkey/tools/TlmViewerAHK2 +18 -0
  150. data/autohotkey/tools/TlmViewerAHK3 +18 -0
  151. data/autohotkey/tools/TlmViewerAHK4 +18 -0
  152. data/autohotkey/tools/TlmViewerAHK5 +18 -0
  153. data/autohotkey/tools/autohotkey.rb +37 -0
  154. data/autohotkey/tools/cmd_extractor.ahk +27 -0
  155. data/autohotkey/tools/cmd_sender.ahk +162 -0
  156. data/autohotkey/tools/cmd_tlm_server.ahk +89 -0
  157. data/autohotkey/tools/cmd_tlm_server2.ahk +45 -0
  158. data/autohotkey/tools/data_viewer.ahk +135 -0
  159. data/autohotkey/tools/handbook_creator.ahk +23 -0
  160. data/autohotkey/tools/launcher.ahk +41 -0
  161. data/autohotkey/tools/limits_monitor.ahk +70 -0
  162. data/autohotkey/tools/open_gl_builder.ahk +134 -0
  163. data/autohotkey/tools/packet_viewer.ahk +143 -0
  164. data/autohotkey/tools/packet_viewer2.ahk +9 -0
  165. data/autohotkey/tools/replay.ahk +98 -0
  166. data/autohotkey/tools/script_runner.ahk +589 -0
  167. data/autohotkey/tools/script_runner2.ahk +31 -0
  168. data/autohotkey/tools/table_manager.ahk +220 -0
  169. data/autohotkey/tools/test_runner.ahk +259 -0
  170. data/autohotkey/tools/test_runner2.ahk +52 -0
  171. data/autohotkey/tools/test_runner3.ahk +13 -0
  172. data/autohotkey/tools/tlm_extractor.ahk +272 -0
  173. data/autohotkey/tools/tlm_grapher.ahk +642 -0
  174. data/autohotkey/tools/tlm_grapher2.ahk +115 -0
  175. data/autohotkey/tools/tlm_grapher3.ahk +24 -0
  176. data/autohotkey/tools/tlm_viewer.ahk +133 -0
  177. data/autohotkey/tools/tlm_viewer2.ahk +49 -0
  178. data/autohotkey/tools/tlm_viewer4.ahk +4 -0
  179. data/autohotkey/tools/tlm_viewer5.ahk +20 -0
  180. data/autohotkey/userpath.txt +1 -0
  181. data/bin/cosmos +96 -0
  182. data/bin/cstol_converter +1166 -0
  183. data/bin/exchndl20.dll +0 -0
  184. data/bin/exchndl21.dll +0 -0
  185. data/bin/mgwhelp.dll +0 -0
  186. data/bin/rubysloc +85 -0
  187. data/cosmos.gemspec +98 -0
  188. data/data/COSMOS_64x64.bmp +0 -0
  189. data/data/COSMOS_64x64.ico +0 -0
  190. data/data/COSMOS_64x64.png +0 -0
  191. data/data/CheckBoxCheck.gif +0 -0
  192. data/data/CheckBoxEmpty.gif +0 -0
  193. data/data/Earthmap1024x512.gif +0 -0
  194. data/data/about.txt +4 -0
  195. data/data/add_database.png +0 -0
  196. data/data/add_plot.png +0 -0
  197. data/data/add_tab.png +0 -0
  198. data/data/blank.png +0 -0
  199. data/data/bug.png +0 -0
  200. data/data/checkmark.png +0 -0
  201. data/data/close.png +0 -0
  202. data/data/cmd_extractor.png +0 -0
  203. data/data/cmd_sender.png +0 -0
  204. data/data/copy.png +0 -0
  205. data/data/cosmos.xcf +0 -0
  206. data/data/cosmos_word.gif +0 -0
  207. data/data/crc.txt +305 -0
  208. data/data/cts.png +0 -0
  209. data/data/cut.png +0 -0
  210. data/data/data_viewer.png +0 -0
  211. data/data/delete_database.png +0 -0
  212. data/data/delete_plot.png +0 -0
  213. data/data/delete_tab.png +0 -0
  214. data/data/diamond.STL +58 -0
  215. data/data/disconnected.png +0 -0
  216. data/data/edit.png +0 -0
  217. data/data/edit_database.png +0 -0
  218. data/data/edit_plot.png +0 -0
  219. data/data/edit_tab.png +0 -0
  220. data/data/end-26.png +0 -0
  221. data/data/fast_forward-26.png +0 -0
  222. data/data/file.png +0 -0
  223. data/data/handbook_creator.png +0 -0
  224. data/data/help.png +0 -0
  225. data/data/html-32.png +0 -0
  226. data/data/launcher.png +0 -0
  227. data/data/legal.gif +0 -0
  228. data/data/legal.txt +9 -0
  229. data/data/limits_monitor.png +0 -0
  230. data/data/moonmap1k.gif +0 -0
  231. data/data/multi.png +0 -0
  232. data/data/open.png +0 -0
  233. data/data/open_in_browser-32.png +0 -0
  234. data/data/opengl_builder.png +0 -0
  235. data/data/packet_viewer.png +0 -0
  236. data/data/pdf-32.png +0 -0
  237. data/data/play-26.png +0 -0
  238. data/data/redo.png +0 -0
  239. data/data/replay.png +0 -0
  240. data/data/reverse-play-26.png +0 -0
  241. data/data/rewind-26.png +0 -0
  242. data/data/running.png +0 -0
  243. data/data/save.png +0 -0
  244. data/data/save_as.png +0 -0
  245. data/data/screenshot.png +0 -0
  246. data/data/script_runner.png +0 -0
  247. data/data/search-14.png +0 -0
  248. data/data/search.png +0 -0
  249. data/data/send_file.png +0 -0
  250. data/data/skip_to_start-26.png +0 -0
  251. data/data/spinner.gif +0 -0
  252. data/data/splash.gif +0 -0
  253. data/data/stop-26.png +0 -0
  254. data/data/table_manager.png +0 -0
  255. data/data/test_runner.png +0 -0
  256. data/data/tlm_extractor.png +0 -0
  257. data/data/tlm_grapher.png +0 -0
  258. data/data/tlm_viewer.png +0 -0
  259. data/data/undo.png +0 -0
  260. data/demo/Gemfile +5 -0
  261. data/demo/Launcher +15 -0
  262. data/demo/Launcher.bat +59 -0
  263. data/demo/Rakefile +61 -0
  264. data/demo/config/data/attitude.bin +0 -0
  265. data/demo/config/data/crc.txt +206 -0
  266. data/demo/config/data/diamond.STL +58 -0
  267. data/demo/config/data/groundoff.gif +0 -0
  268. data/demo/config/data/groundon.gif +0 -0
  269. data/demo/config/data/hselectoff.gif +0 -0
  270. data/demo/config/data/hselecton.gif +0 -0
  271. data/demo/config/data/hswitchoff.gif +0 -0
  272. data/demo/config/data/hswitchon.gif +0 -0
  273. data/demo/config/data/meta_init.txt +4 -0
  274. data/demo/config/data/position.bin +0 -0
  275. data/demo/config/data/poweroff.gif +0 -0
  276. data/demo/config/data/poweron.gif +0 -0
  277. data/demo/config/data/satellite.gif +0 -0
  278. data/demo/config/data/tada.wav +0 -0
  279. data/demo/config/data/vswitchoff.gif +0 -0
  280. data/demo/config/data/vswitchon.gif +0 -0
  281. data/demo/config/system/system.txt +34 -0
  282. data/demo/config/system/system2.txt +33 -0
  283. data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  284. data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  285. data/demo/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  286. data/demo/config/targets/COSMOS/screens/limits_change.txt +20 -0
  287. data/demo/config/targets/COSMOS/screens/version.txt +19 -0
  288. data/demo/config/targets/COSMOS/target.txt +11 -0
  289. data/demo/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +2 -0
  290. data/demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +3 -0
  291. data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -0
  292. data/demo/config/targets/EXAMPLE/lib/example_interface.rb +22 -0
  293. data/demo/config/targets/EXAMPLE/target.txt +7 -0
  294. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -0
  295. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +247 -0
  296. data/demo/config/targets/INST/cmd_tlm_server.txt +5 -0
  297. data/demo/config/targets/INST/doc/README.txt +1 -0
  298. data/demo/config/targets/INST/lib/example_limits_response.rb +30 -0
  299. data/demo/config/targets/INST/lib/sim_inst.rb +294 -0
  300. data/demo/config/targets/INST/screens/adcs.txt +46 -0
  301. data/demo/config/targets/INST/screens/array.txt +15 -0
  302. data/demo/config/targets/INST/screens/block.txt +8 -0
  303. data/demo/config/targets/INST/screens/commanding.txt +30 -0
  304. data/demo/config/targets/INST/screens/graphs.txt +14 -0
  305. data/demo/config/targets/INST/screens/ground.txt +25 -0
  306. data/demo/config/targets/INST/screens/hs.txt +44 -0
  307. data/demo/config/targets/INST/screens/latest.txt +23 -0
  308. data/demo/config/targets/INST/screens/other.txt +29 -0
  309. data/demo/config/targets/INST/screens/tabs.txt +70 -0
  310. data/demo/config/targets/INST/target.txt +33 -0
  311. data/demo/config/targets/META/cmd_tlm/meta_cmd.txt +10 -0
  312. data/demo/config/targets/META/cmd_tlm/meta_tlm.txt +13 -0
  313. data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -0
  314. data/demo/config/targets/SYSTEM/cmd_tlm/override.txt +29 -0
  315. data/demo/config/targets/SYSTEM/screens/status.txt +12 -0
  316. data/demo/config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +12 -0
  317. data/demo/config/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -0
  318. data/demo/config/targets/TEMPLATED/cmd_tlm_server.txt +6 -0
  319. data/demo/config/targets/TEMPLATED/lib/templated_interface.rb +48 -0
  320. data/demo/config/targets/TEMPLATED/target.txt +6 -0
  321. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +33 -0
  322. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +29 -0
  323. data/demo/config/tools/data_viewer/data_viewer.txt +11 -0
  324. data/demo/config/tools/handbook_creator/default_toc.xsl +59 -0
  325. data/demo/config/tools/handbook_creator/handbook_creator.txt +66 -0
  326. data/demo/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
  327. data/demo/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
  328. data/demo/config/tools/handbook_creator/templates/footer.html.erb +9 -0
  329. data/demo/config/tools/handbook_creator/templates/header.html.erb +25 -0
  330. data/demo/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
  331. data/demo/config/tools/handbook_creator/templates/nav.html.erb +27 -0
  332. data/demo/config/tools/handbook_creator/templates/overview.html.erb +1 -0
  333. data/demo/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
  334. data/demo/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
  335. data/demo/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
  336. data/demo/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
  337. data/demo/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
  338. data/demo/config/tools/handbook_creator/templates/title.html.erb +1 -0
  339. data/demo/config/tools/launcher/launcher.txt +45 -0
  340. data/demo/config/tools/launcher/launcher2.txt +45 -0
  341. data/demo/config/tools/limits_monitor/README.txt +1 -0
  342. data/demo/config/tools/opengl_builder/README.txt +1 -0
  343. data/demo/config/tools/script_runner/script_runner.txt +3 -0
  344. data/demo/config/tools/table_manager/ConfigTables_def.txt +8 -0
  345. data/demo/config/tools/table_manager/ExampleTableDefinition.txt +24 -0
  346. data/demo/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -0
  347. data/demo/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -0
  348. data/demo/config/tools/table_manager/PPSSelectionTable_def.txt +8 -0
  349. data/demo/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -0
  350. data/demo/config/tools/test_runner/test_runner.txt +17 -0
  351. data/demo/config/tools/tlm_extractor/tlm_extractor.txt +13 -0
  352. data/demo/config/tools/tlm_extractor/tlm_extractor2.txt +2 -0
  353. data/demo/config/tools/tlm_extractor/tlm_extractor3.txt +2 -0
  354. data/demo/config/tools/tlm_extractor/tlm_extractor4.txt +2 -0
  355. data/demo/config/tools/tlm_grapher/README.txt +1 -0
  356. data/demo/config/tools/tlm_viewer/tlm_viewer.txt +41 -0
  357. data/demo/lib/example_background_task.rb +52 -0
  358. data/demo/lib/example_target.rb +108 -0
  359. data/demo/lib/scpi_target.rb +74 -0
  360. data/demo/lib/user_version.rb +3 -0
  361. data/demo/outputs/handbooks/assets/css/bootstrap-theme.css +397 -0
  362. data/demo/outputs/handbooks/assets/css/bootstrap-theme.min.css +7 -0
  363. data/demo/outputs/handbooks/assets/css/bootstrap.css +7118 -0
  364. data/demo/outputs/handbooks/assets/css/bootstrap.min.css +7 -0
  365. data/demo/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  366. data/demo/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  367. data/demo/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  368. data/demo/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  369. data/demo/outputs/handbooks/assets/img/ball_logo.bmp +0 -0
  370. data/demo/outputs/handbooks/assets/img/ball_logo.gif +0 -0
  371. data/demo/outputs/handbooks/assets/img/ball_logo.jpg +0 -0
  372. data/demo/outputs/handbooks/assets/js/bootstrap.js +2006 -0
  373. data/demo/outputs/handbooks/assets/js/bootstrap.min.js +7 -0
  374. data/demo/outputs/handbooks/assets/js/html5shiv.js +8 -0
  375. data/demo/outputs/handbooks/assets/js/jquery-1.10.2.min.js +6 -0
  376. data/demo/outputs/handbooks/assets/js/respond.min.js +6 -0
  377. data/demo/outputs/logs/README.txt +1 -0
  378. data/demo/outputs/saved_config/README.txt +1 -0
  379. data/demo/outputs/tables/README.txt +1 -0
  380. data/demo/outputs/tmp/README.txt +1 -0
  381. data/demo/procedures/checks.rb +11 -0
  382. data/demo/procedures/clear_util.rb +7 -0
  383. data/demo/procedures/collect.rb +18 -0
  384. data/demo/procedures/collect_util.rb +14 -0
  385. data/demo/procedures/cosmos_api_test.rb +293 -0
  386. data/demo/procedures/disconnect.rb +29 -0
  387. data/demo/procedures/example_test.rb +182 -0
  388. data/demo/procedures/plot_test.rb +8 -0
  389. data/demo/procedures/run_example_test.rb +3 -0
  390. data/demo/procedures/test.rb +51 -0
  391. data/demo/tools/CmdExtractor +15 -0
  392. data/demo/tools/CmdExtractor.bat +59 -0
  393. data/demo/tools/CmdSender +15 -0
  394. data/demo/tools/CmdSender.bat +59 -0
  395. data/demo/tools/CmdTlmServer +15 -0
  396. data/demo/tools/CmdTlmServer.bat +59 -0
  397. data/demo/tools/DataViewer +15 -0
  398. data/demo/tools/DataViewer.bat +59 -0
  399. data/demo/tools/ExampleTarget +15 -0
  400. data/demo/tools/ExampleTarget.bat +59 -0
  401. data/demo/tools/HandbookCreator +15 -0
  402. data/demo/tools/HandbookCreator.bat +61 -0
  403. data/demo/tools/Launcher +15 -0
  404. data/demo/tools/Launcher.bat +59 -0
  405. data/demo/tools/LimitsMonitor +15 -0
  406. data/demo/tools/LimitsMonitor.bat +59 -0
  407. data/demo/tools/OpenGLBuilder +15 -0
  408. data/demo/tools/OpenGLBuilder.bat +59 -0
  409. data/demo/tools/PacketViewer +15 -0
  410. data/demo/tools/PacketViewer.bat +59 -0
  411. data/demo/tools/Replay +15 -0
  412. data/demo/tools/Replay.bat +59 -0
  413. data/demo/tools/ScpiTarget +15 -0
  414. data/demo/tools/ScpiTarget.bat +59 -0
  415. data/demo/tools/ScriptRunner +15 -0
  416. data/demo/tools/ScriptRunner.bat +59 -0
  417. data/demo/tools/TableManager +15 -0
  418. data/demo/tools/TableManager.bat +59 -0
  419. data/demo/tools/TestRunner +15 -0
  420. data/demo/tools/TestRunner.bat +59 -0
  421. data/demo/tools/TlmExtractor +15 -0
  422. data/demo/tools/TlmExtractor.bat +59 -0
  423. data/demo/tools/TlmGrapher +15 -0
  424. data/demo/tools/TlmGrapher.bat +59 -0
  425. data/demo/tools/TlmViewer +15 -0
  426. data/demo/tools/TlmViewer.bat +59 -0
  427. data/demo/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
  428. data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -0
  429. data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -0
  430. data/demo/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
  431. data/demo/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
  432. data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -0
  433. data/demo/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -0
  434. data/demo/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
  435. data/demo/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
  436. data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -0
  437. data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -0
  438. data/demo/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
  439. data/demo/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
  440. data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -0
  441. data/demo/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -0
  442. data/demo/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
  443. data/demo/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
  444. data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -0
  445. data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -0
  446. data/demo/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
  447. data/demo/tools/mac/Launcher.app/Contents/Info.plist +38 -0
  448. data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -0
  449. data/demo/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -0
  450. data/demo/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
  451. data/demo/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
  452. data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -0
  453. data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -0
  454. data/demo/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
  455. data/demo/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
  456. data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -0
  457. data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -0
  458. data/demo/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
  459. data/demo/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
  460. data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -0
  461. data/demo/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -0
  462. data/demo/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
  463. data/demo/tools/mac/Replay.app/Contents/Info.plist +38 -0
  464. data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -0
  465. data/demo/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -0
  466. data/demo/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
  467. data/demo/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
  468. data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -0
  469. data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -0
  470. data/demo/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
  471. data/demo/tools/mac/TableManager.app/Contents/Info.plist +38 -0
  472. data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -0
  473. data/demo/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -0
  474. data/demo/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
  475. data/demo/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
  476. data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -0
  477. data/demo/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -0
  478. data/demo/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
  479. data/demo/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
  480. data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -0
  481. data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -0
  482. data/demo/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
  483. data/demo/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
  484. data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -0
  485. data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -0
  486. data/demo/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
  487. data/demo/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
  488. data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -0
  489. data/demo/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -0
  490. data/demo/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
  491. data/demo/userpath.txt +1 -0
  492. data/ext/cosmos/ext/array/array.c +111 -0
  493. data/ext/cosmos/ext/array/extconf.rb +13 -0
  494. data/ext/cosmos/ext/buffered_file/buffered_file.c +167 -0
  495. data/ext/cosmos/ext/buffered_file/extconf.rb +13 -0
  496. data/ext/cosmos/ext/config_parser/config_parser.c +237 -0
  497. data/ext/cosmos/ext/config_parser/extconf.rb +13 -0
  498. data/ext/cosmos/ext/cosmos_io/cosmos_io.c +117 -0
  499. data/ext/cosmos/ext/cosmos_io/extconf.rb +13 -0
  500. data/ext/cosmos/ext/crc/crc.c +341 -0
  501. data/ext/cosmos/ext/crc/extconf.rb +13 -0
  502. data/ext/cosmos/ext/line_graph/extconf.rb +13 -0
  503. data/ext/cosmos/ext/line_graph/line_graph.c +501 -0
  504. data/ext/cosmos/ext/low_fragmentation_array/extconf.rb +13 -0
  505. data/ext/cosmos/ext/low_fragmentation_array/low_fragmentation_array.c +261 -0
  506. data/ext/cosmos/ext/packet/extconf.rb +13 -0
  507. data/ext/cosmos/ext/packet/packet.c +339 -0
  508. data/ext/cosmos/ext/platform/extconf.rb +13 -0
  509. data/ext/cosmos/ext/platform/platform.c +82 -0
  510. data/ext/cosmos/ext/polynomial_conversion/extconf.rb +13 -0
  511. data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +73 -0
  512. data/ext/cosmos/ext/string/extconf.rb +13 -0
  513. data/ext/cosmos/ext/string/string.c +49 -0
  514. data/ext/cosmos/ext/structure/structure.c +894 -0
  515. data/ext/cosmos/ext/tabbed_plots_config/extconf.rb +13 -0
  516. data/ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c +51 -0
  517. data/ext/cosmos/ext/telemetry/extconf.rb +13 -0
  518. data/ext/cosmos/ext/telemetry/telemetry.c +306 -0
  519. data/install/Gemfile +5 -0
  520. data/install/Launcher +14 -0
  521. data/install/Launcher.bat +59 -0
  522. data/install/Rakefile +61 -0
  523. data/install/config/data/README.txt +1 -0
  524. data/install/config/data/crc.txt +133 -0
  525. data/install/config/system/system.txt +29 -0
  526. data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  527. data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  528. data/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  529. data/install/config/targets/COSMOS/screens/limits_change.txt +20 -0
  530. data/install/config/targets/COSMOS/screens/version.txt +19 -0
  531. data/install/config/targets/COSMOS/target.txt +9 -0
  532. data/install/config/targets/SYSTEM/README.txt +1 -0
  533. data/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -0
  534. data/install/config/tools/data_viewer/data_viewer.txt +4 -0
  535. data/install/config/tools/handbook_creator/default_toc.xsl +59 -0
  536. data/install/config/tools/handbook_creator/handbook_creator.txt +49 -0
  537. data/install/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
  538. data/install/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
  539. data/install/config/tools/handbook_creator/templates/footer.html.erb +9 -0
  540. data/install/config/tools/handbook_creator/templates/header.html.erb +25 -0
  541. data/install/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
  542. data/install/config/tools/handbook_creator/templates/nav.html.erb +27 -0
  543. data/install/config/tools/handbook_creator/templates/overview.html.erb +1 -0
  544. data/install/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
  545. data/install/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
  546. data/install/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
  547. data/install/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
  548. data/install/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
  549. data/install/config/tools/handbook_creator/templates/title.html.erb +1 -0
  550. data/install/config/tools/launcher/launcher.txt +39 -0
  551. data/install/config/tools/limits_monitor/README.txt +1 -0
  552. data/install/config/tools/opengl_builder/README.txt +1 -0
  553. data/install/config/tools/script_runner/script_runner.txt +3 -0
  554. data/install/config/tools/table_manager/README.txt +1 -0
  555. data/install/config/tools/test_runner/test_runner.txt +8 -0
  556. data/install/config/tools/tlm_extractor/README.txt +1 -0
  557. data/install/config/tools/tlm_grapher/README.txt +1 -0
  558. data/install/config/tools/tlm_viewer/tlm_viewer.txt +5 -0
  559. data/install/lib/user_version.rb +3 -0
  560. data/install/outputs/handbooks/assets/css/bootstrap-theme.css +397 -0
  561. data/install/outputs/handbooks/assets/css/bootstrap-theme.min.css +7 -0
  562. data/install/outputs/handbooks/assets/css/bootstrap.css +7118 -0
  563. data/install/outputs/handbooks/assets/css/bootstrap.min.css +7 -0
  564. data/install/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  565. data/install/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  566. data/install/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  567. data/install/outputs/handbooks/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  568. data/install/outputs/handbooks/assets/img/ball_logo.bmp +0 -0
  569. data/install/outputs/handbooks/assets/img/ball_logo.gif +0 -0
  570. data/install/outputs/handbooks/assets/img/ball_logo.jpg +0 -0
  571. data/install/outputs/handbooks/assets/js/bootstrap.js +2006 -0
  572. data/install/outputs/handbooks/assets/js/bootstrap.min.js +7 -0
  573. data/install/outputs/handbooks/assets/js/html5shiv.js +8 -0
  574. data/install/outputs/handbooks/assets/js/jquery-1.10.2.min.js +6 -0
  575. data/install/outputs/handbooks/assets/js/respond.min.js +6 -0
  576. data/install/outputs/logs/README.txt +1 -0
  577. data/install/outputs/saved_config/README.txt +1 -0
  578. data/install/outputs/tables/README.txt +1 -0
  579. data/install/outputs/tmp/README.txt +1 -0
  580. data/install/procedures/README.txt +1 -0
  581. data/install/tools/CmdExtractor +15 -0
  582. data/install/tools/CmdExtractor.bat +59 -0
  583. data/install/tools/CmdSender +15 -0
  584. data/install/tools/CmdSender.bat +59 -0
  585. data/install/tools/CmdTlmServer +15 -0
  586. data/install/tools/CmdTlmServer.bat +59 -0
  587. data/install/tools/DataViewer +15 -0
  588. data/install/tools/DataViewer.bat +59 -0
  589. data/install/tools/HandbookCreator +15 -0
  590. data/install/tools/HandbookCreator.bat +61 -0
  591. data/install/tools/Launcher +15 -0
  592. data/install/tools/Launcher.bat +59 -0
  593. data/install/tools/LimitsMonitor +15 -0
  594. data/install/tools/LimitsMonitor.bat +59 -0
  595. data/install/tools/OpenGLBuilder +15 -0
  596. data/install/tools/OpenGLBuilder.bat +59 -0
  597. data/install/tools/PacketViewer +15 -0
  598. data/install/tools/PacketViewer.bat +59 -0
  599. data/install/tools/Replay +15 -0
  600. data/install/tools/Replay.bat +59 -0
  601. data/install/tools/ScriptRunner +15 -0
  602. data/install/tools/ScriptRunner.bat +59 -0
  603. data/install/tools/TableManager +15 -0
  604. data/install/tools/TableManager.bat +59 -0
  605. data/install/tools/TestRunner +15 -0
  606. data/install/tools/TestRunner.bat +59 -0
  607. data/install/tools/TlmExtractor +15 -0
  608. data/install/tools/TlmExtractor.bat +59 -0
  609. data/install/tools/TlmGrapher +15 -0
  610. data/install/tools/TlmGrapher.bat +59 -0
  611. data/install/tools/TlmViewer +15 -0
  612. data/install/tools/TlmViewer.bat +59 -0
  613. data/install/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
  614. data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -0
  615. data/install/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -0
  616. data/install/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
  617. data/install/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
  618. data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -0
  619. data/install/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -0
  620. data/install/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
  621. data/install/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
  622. data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -0
  623. data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -0
  624. data/install/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
  625. data/install/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
  626. data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -0
  627. data/install/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -0
  628. data/install/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
  629. data/install/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
  630. data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -0
  631. data/install/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -0
  632. data/install/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
  633. data/install/tools/mac/Launcher.app/Contents/Info.plist +38 -0
  634. data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -0
  635. data/install/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -0
  636. data/install/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
  637. data/install/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
  638. data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -0
  639. data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -0
  640. data/install/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
  641. data/install/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
  642. data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -0
  643. data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -0
  644. data/install/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
  645. data/install/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
  646. data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -0
  647. data/install/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -0
  648. data/install/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
  649. data/install/tools/mac/Replay.app/Contents/Info.plist +38 -0
  650. data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -0
  651. data/install/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -0
  652. data/install/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
  653. data/install/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
  654. data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -0
  655. data/install/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -0
  656. data/install/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
  657. data/install/tools/mac/TableManager.app/Contents/Info.plist +38 -0
  658. data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -0
  659. data/install/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -0
  660. data/install/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
  661. data/install/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
  662. data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -0
  663. data/install/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -0
  664. data/install/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
  665. data/install/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
  666. data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -0
  667. data/install/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -0
  668. data/install/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
  669. data/install/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
  670. data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -0
  671. data/install/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -0
  672. data/install/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
  673. data/install/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
  674. data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -0
  675. data/install/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -0
  676. data/install/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
  677. data/install/userpath.txt +1 -0
  678. data/lib/cosmos/ccsds/ccsds_packet.rb +63 -0
  679. data/lib/cosmos/ccsds/ccsds_parser.rb +143 -0
  680. data/lib/cosmos/config/config_parser.rb +324 -0
  681. data/lib/cosmos/conversions/conversion.rb +47 -0
  682. data/lib/cosmos/conversions/generic_conversion.rb +55 -0
  683. data/lib/cosmos/conversions/new_packet_log_conversion.rb +45 -0
  684. data/lib/cosmos/conversions/polynomial_conversion.rb +57 -0
  685. data/lib/cosmos/conversions/processor_conversion.rb +46 -0
  686. data/lib/cosmos/conversions/received_count_conversion.rb +33 -0
  687. data/lib/cosmos/conversions/received_time_formatted_conversion.rb +37 -0
  688. data/lib/cosmos/conversions/received_time_seconds_conversion.rb +37 -0
  689. data/lib/cosmos/conversions/segmented_polynomial_conversion.rb +128 -0
  690. data/lib/cosmos/conversions/unix_time_conversion.rb +50 -0
  691. data/lib/cosmos/conversions/unix_time_formatted_conversion.rb +44 -0
  692. data/lib/cosmos/conversions/unix_time_seconds_conversion.rb +44 -0
  693. data/lib/cosmos/conversions.rb +13 -0
  694. data/lib/cosmos/core_ext/array.rb +354 -0
  695. data/lib/cosmos/core_ext/class.rb +51 -0
  696. data/lib/cosmos/core_ext/cosmos_io.rb +29 -0
  697. data/lib/cosmos/core_ext/exception.rb +52 -0
  698. data/lib/cosmos/core_ext/file.rb +75 -0
  699. data/lib/cosmos/core_ext/hash.rb +28 -0
  700. data/lib/cosmos/core_ext/io.rb +75 -0
  701. data/lib/cosmos/core_ext/kernel.rb +38 -0
  702. data/lib/cosmos/core_ext/math.rb +119 -0
  703. data/lib/cosmos/core_ext/matrix.rb +146 -0
  704. data/lib/cosmos/core_ext/objectspace.rb +29 -0
  705. data/lib/cosmos/core_ext/range.rb +22 -0
  706. data/lib/cosmos/core_ext/socket.rb +32 -0
  707. data/lib/cosmos/core_ext/string.rb +310 -0
  708. data/lib/cosmos/core_ext/stringio.rb +24 -0
  709. data/lib/cosmos/core_ext/time.rb +446 -0
  710. data/lib/cosmos/core_ext.rb +18 -0
  711. data/lib/cosmos/ext/.keep +0 -0
  712. data/lib/cosmos/gui/choosers/combobox_chooser.rb +130 -0
  713. data/lib/cosmos/gui/choosers/file_chooser.rb +68 -0
  714. data/lib/cosmos/gui/choosers/float_chooser.rb +82 -0
  715. data/lib/cosmos/gui/choosers/integer_chooser.rb +80 -0
  716. data/lib/cosmos/gui/choosers/string_chooser.rb +53 -0
  717. data/lib/cosmos/gui/choosers/telemetry_chooser.rb +317 -0
  718. data/lib/cosmos/gui/dialogs/about_dialog.rb +128 -0
  719. data/lib/cosmos/gui/dialogs/calendar_dialog.rb +136 -0
  720. data/lib/cosmos/gui/dialogs/cmd_details_dialog.rb +52 -0
  721. data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +149 -0
  722. data/lib/cosmos/gui/dialogs/details_dialog.rb +174 -0
  723. data/lib/cosmos/gui/dialogs/exception_dialog.rb +97 -0
  724. data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +59 -0
  725. data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +196 -0
  726. data/lib/cosmos/gui/dialogs/legal_dialog.rb +168 -0
  727. data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +118 -0
  728. data/lib/cosmos/gui/dialogs/progress_dialog.rb +262 -0
  729. data/lib/cosmos/gui/dialogs/pry_dialog.rb +161 -0
  730. data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +37 -0
  731. data/lib/cosmos/gui/dialogs/select_dialog.rb +54 -0
  732. data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +131 -0
  733. data/lib/cosmos/gui/dialogs/splash.rb +113 -0
  734. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +206 -0
  735. data/lib/cosmos/gui/dialogs/tlm_edit_dialog.rb +81 -0
  736. data/lib/cosmos/gui/line_graph/line_graph.rb +456 -0
  737. data/lib/cosmos/gui/line_graph/line_graph_dialog.rb +34 -0
  738. data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +494 -0
  739. data/lib/cosmos/gui/line_graph/line_graph_popups.rb +116 -0
  740. data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +460 -0
  741. data/lib/cosmos/gui/line_graph/line_graph_script.rb +26 -0
  742. data/lib/cosmos/gui/line_graph/lines.rb +290 -0
  743. data/lib/cosmos/gui/line_graph/overview_graph.rb +459 -0
  744. data/lib/cosmos/gui/opengl/earth_model.rb +22 -0
  745. data/lib/cosmos/gui/opengl/gl_bounds.rb +67 -0
  746. data/lib/cosmos/gui/opengl/gl_light.rb +39 -0
  747. data/lib/cosmos/gui/opengl/gl_material.rb +29 -0
  748. data/lib/cosmos/gui/opengl/gl_scene.rb +72 -0
  749. data/lib/cosmos/gui/opengl/gl_shape.rb +146 -0
  750. data/lib/cosmos/gui/opengl/gl_viewer.rb +712 -0
  751. data/lib/cosmos/gui/opengl/gl_viewport.rb +35 -0
  752. data/lib/cosmos/gui/opengl/moon_model.rb +22 -0
  753. data/lib/cosmos/gui/opengl/opengl.rb +8 -0
  754. data/lib/cosmos/gui/opengl/stl_reader.rb +211 -0
  755. data/lib/cosmos/gui/opengl/stl_shape.rb +124 -0
  756. data/lib/cosmos/gui/opengl/texture_mapped_sphere.rb +202 -0
  757. data/lib/cosmos/gui/qt.rb +786 -0
  758. data/lib/cosmos/gui/qt_tool.rb +373 -0
  759. data/lib/cosmos/gui/text/completion.rb +381 -0
  760. data/lib/cosmos/gui/text/completion_line_edit.rb +30 -0
  761. data/lib/cosmos/gui/text/completion_text_edit.rb +179 -0
  762. data/lib/cosmos/gui/text/ruby_editor.rb +395 -0
  763. data/lib/cosmos/gui/utilities/screenshot.rb +25 -0
  764. data/lib/cosmos/gui/utilities/script_module_gui.rb +203 -0
  765. data/lib/cosmos/gui/widgets/full_text_search_line_edit.rb +161 -0
  766. data/lib/cosmos/gui/widgets/packet_log_frame.rb +305 -0
  767. data/lib/cosmos/gui/widgets/realtime_button_bar.rb +98 -0
  768. data/lib/cosmos/interfaces/cmd_tlm_server_interface.rb +149 -0
  769. data/lib/cosmos/interfaces/interface.rb +213 -0
  770. data/lib/cosmos/interfaces/linc_interface.rb +360 -0
  771. data/lib/cosmos/interfaces/serial_interface.rb +76 -0
  772. data/lib/cosmos/interfaces/simulated_target_interface.rb +128 -0
  773. data/lib/cosmos/interfaces/stream_interface.rb +156 -0
  774. data/lib/cosmos/interfaces/tcpip_client_interface.rb +60 -0
  775. data/lib/cosmos/interfaces/tcpip_server_interface.rb +154 -0
  776. data/lib/cosmos/interfaces/udp_interface.rb +173 -0
  777. data/lib/cosmos/interfaces.rb +11 -0
  778. data/lib/cosmos/io/buffered_file.rb +11 -0
  779. data/lib/cosmos/io/cosmos_snmp.rb +50 -0
  780. data/lib/cosmos/io/io_multiplexer.rb +89 -0
  781. data/lib/cosmos/io/json_drb.rb +320 -0
  782. data/lib/cosmos/io/json_drb_object.rb +137 -0
  783. data/lib/cosmos/io/json_rpc.rb +365 -0
  784. data/lib/cosmos/io/posix_serial_driver.rb +145 -0
  785. data/lib/cosmos/io/raw_logger.rb +174 -0
  786. data/lib/cosmos/io/raw_logger_pair.rb +71 -0
  787. data/lib/cosmos/io/serial_driver.rb +85 -0
  788. data/lib/cosmos/io/stderr.rb +36 -0
  789. data/lib/cosmos/io/stdout.rb +36 -0
  790. data/lib/cosmos/io/tcpip_server.rb +532 -0
  791. data/lib/cosmos/io/udp_sockets.rb +152 -0
  792. data/lib/cosmos/io/win32_serial_driver.rb +147 -0
  793. data/lib/cosmos/packet_logs/meta_packet_log_writer.rb +107 -0
  794. data/lib/cosmos/packet_logs/packet_log_reader.rb +439 -0
  795. data/lib/cosmos/packet_logs/packet_log_writer.rb +309 -0
  796. data/lib/cosmos/packet_logs/packet_log_writer_pair.rb +30 -0
  797. data/lib/cosmos/packet_logs.rb +6 -0
  798. data/lib/cosmos/packets/binary_accessor.rb +921 -0
  799. data/lib/cosmos/packets/commands.rb +291 -0
  800. data/lib/cosmos/packets/limits.rb +263 -0
  801. data/lib/cosmos/packets/limits_response.rb +38 -0
  802. data/lib/cosmos/packets/packet.rb +699 -0
  803. data/lib/cosmos/packets/packet_config.rb +1034 -0
  804. data/lib/cosmos/packets/packet_item.rb +317 -0
  805. data/lib/cosmos/packets/packet_item_limits.rb +128 -0
  806. data/lib/cosmos/packets/structure.rb +386 -0
  807. data/lib/cosmos/packets/structure_item.rb +233 -0
  808. data/lib/cosmos/packets/telemetry.rb +317 -0
  809. data/lib/cosmos/processors/new_packet_log_processor.rb +34 -0
  810. data/lib/cosmos/processors/processor.rb +71 -0
  811. data/lib/cosmos/processors/statistics_processor.rb +65 -0
  812. data/lib/cosmos/processors/watermark_processor.rb +44 -0
  813. data/lib/cosmos/processors.rb +6 -0
  814. data/lib/cosmos/script/extract.rb +115 -0
  815. data/lib/cosmos/script/script.rb +1493 -0
  816. data/lib/cosmos/script.rb +9 -0
  817. data/lib/cosmos/streams/burst_stream_protocol.rb +25 -0
  818. data/lib/cosmos/streams/fixed_stream_protocol.rb +111 -0
  819. data/lib/cosmos/streams/length_stream_protocol.rb +140 -0
  820. data/lib/cosmos/streams/preidentified_stream_protocol.rb +118 -0
  821. data/lib/cosmos/streams/serial_stream.rb +143 -0
  822. data/lib/cosmos/streams/stream.rb +57 -0
  823. data/lib/cosmos/streams/stream_protocol.rb +369 -0
  824. data/lib/cosmos/streams/tcpip_client_stream.rb +77 -0
  825. data/lib/cosmos/streams/tcpip_socket_stream.rb +139 -0
  826. data/lib/cosmos/streams/template_stream_protocol.rb +140 -0
  827. data/lib/cosmos/streams/terminated_stream_protocol.rb +81 -0
  828. data/lib/cosmos/system/system.rb +558 -0
  829. data/lib/cosmos/system/target.rb +178 -0
  830. data/lib/cosmos/system.rb +4 -0
  831. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +253 -0
  832. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +716 -0
  833. data/lib/cosmos/tools/cmd_sender/cmd_sender_item_delegate.rb +77 -0
  834. data/lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb +70 -0
  835. data/lib/cosmos/tools/cmd_tlm_server/api.rb +940 -0
  836. data/lib/cosmos/tools/cmd_tlm_server/background_task.rb +46 -0
  837. data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +63 -0
  838. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +496 -0
  839. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +241 -0
  840. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1008 -0
  841. data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +112 -0
  842. data/lib/cosmos/tools/cmd_tlm_server/connections.rb +176 -0
  843. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +221 -0
  844. data/lib/cosmos/tools/cmd_tlm_server/interfaces.rb +127 -0
  845. data/lib/cosmos/tools/cmd_tlm_server/packet_logging.rb +132 -0
  846. data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +66 -0
  847. data/lib/cosmos/tools/cmd_tlm_server/routers.rb +97 -0
  848. data/lib/cosmos/tools/data_viewer/data_viewer.rb +600 -0
  849. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +167 -0
  850. data/lib/cosmos/tools/data_viewer/dump_component.rb +40 -0
  851. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +149 -0
  852. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +360 -0
  853. data/lib/cosmos/tools/launcher/launcher.rb +184 -0
  854. data/lib/cosmos/tools/launcher/launcher_config.rb +167 -0
  855. data/lib/cosmos/tools/launcher/launcher_multitool.rb +41 -0
  856. data/lib/cosmos/tools/launcher/launcher_tool.rb +104 -0
  857. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +768 -0
  858. data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +416 -0
  859. data/lib/cosmos/tools/opengl_builder/scene_config.rb +118 -0
  860. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +525 -0
  861. data/lib/cosmos/tools/replay/replay.rb +488 -0
  862. data/lib/cosmos/tools/replay/replay_server.rb +91 -0
  863. data/lib/cosmos/tools/script_runner/script_audit.rb +139 -0
  864. data/lib/cosmos/tools/script_runner/script_runner.rb +914 -0
  865. data/lib/cosmos/tools/script_runner/script_runner_config.rb +40 -0
  866. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +1859 -0
  867. data/lib/cosmos/tools/table_manager/table.rb +70 -0
  868. data/lib/cosmos/tools/table_manager/table_config.rb +764 -0
  869. data/lib/cosmos/tools/table_manager/table_item.rb +74 -0
  870. data/lib/cosmos/tools/table_manager/table_manager.rb +1065 -0
  871. data/lib/cosmos/tools/table_manager/table_manager_core.rb +539 -0
  872. data/lib/cosmos/tools/test_runner/results_writer.rb +283 -0
  873. data/lib/cosmos/tools/test_runner/test.rb +480 -0
  874. data/lib/cosmos/tools/test_runner/test_runner.rb +1157 -0
  875. data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +338 -0
  876. data/lib/cosmos/tools/tlm_extractor/text_item_chooser.rb +60 -0
  877. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +1008 -0
  878. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +371 -0
  879. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +60 -0
  880. data/lib/cosmos/tools/tlm_grapher/data_object_adders/housekeeping_data_object_adder.rb +75 -0
  881. data/lib/cosmos/tools/tlm_grapher/data_object_adders/singlexy_data_object_adder.rb +44 -0
  882. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +94 -0
  883. data/lib/cosmos/tools/tlm_grapher/data_object_editors/data_object_editor.rb +61 -0
  884. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +180 -0
  885. data/lib/cosmos/tools/tlm_grapher/data_object_editors/linegraph_data_object_editor.rb +141 -0
  886. data/lib/cosmos/tools/tlm_grapher/data_object_editors/singlexy_data_object_editor.rb +30 -0
  887. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +173 -0
  888. data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +177 -0
  889. data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +409 -0
  890. data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +176 -0
  891. data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +25 -0
  892. data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +320 -0
  893. data/lib/cosmos/tools/tlm_grapher/plot_editors/linegraph_plot_editor.rb +181 -0
  894. data/lib/cosmos/tools/tlm_grapher/plot_editors/plot_editor.rb +28 -0
  895. data/lib/cosmos/tools/tlm_grapher/plot_editors/singlexy_plot_editor.rb +30 -0
  896. data/lib/cosmos/tools/tlm_grapher/plot_editors/xy_plot_editor.rb +59 -0
  897. data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/linegraph_plot_gui_object.rb +172 -0
  898. data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/singlexy_plot_gui_object.rb +27 -0
  899. data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/xy_plot_gui_object.rb +74 -0
  900. data/lib/cosmos/tools/tlm_grapher/plots/linegraph_plot.rb +201 -0
  901. data/lib/cosmos/tools/tlm_grapher/plots/plot.rb +69 -0
  902. data/lib/cosmos/tools/tlm_grapher/plots/singlexy_plot.rb +20 -0
  903. data/lib/cosmos/tools/tlm_grapher/plots/xy_plot.rb +61 -0
  904. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +1278 -0
  905. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +430 -0
  906. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb +107 -0
  907. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +95 -0
  908. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb +101 -0
  909. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +66 -0
  910. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tab.rb +57 -0
  911. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +1004 -0
  912. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +87 -0
  913. data/lib/cosmos/tools/tlm_viewer/screen.rb +458 -0
  914. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +544 -0
  915. data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +287 -0
  916. data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +110 -0
  917. data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +70 -0
  918. data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +61 -0
  919. data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +39 -0
  920. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +62 -0
  921. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +41 -0
  922. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +57 -0
  923. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +37 -0
  924. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +56 -0
  925. data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +55 -0
  926. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +66 -0
  927. data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +124 -0
  928. data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +31 -0
  929. data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +30 -0
  930. data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +36 -0
  931. data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +35 -0
  932. data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +27 -0
  933. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +31 -0
  934. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +26 -0
  935. data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +29 -0
  936. data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +39 -0
  937. data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +38 -0
  938. data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +38 -0
  939. data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +39 -0
  940. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +42 -0
  941. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +37 -0
  942. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +37 -0
  943. data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +34 -0
  944. data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +178 -0
  945. data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +54 -0
  946. data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +47 -0
  947. data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +116 -0
  948. data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +34 -0
  949. data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +30 -0
  950. data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +57 -0
  951. data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +34 -0
  952. data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +35 -0
  953. data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +33 -0
  954. data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +26 -0
  955. data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +28 -0
  956. data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +47 -0
  957. data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +26 -0
  958. data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +88 -0
  959. data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +27 -0
  960. data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +130 -0
  961. data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +46 -0
  962. data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +43 -0
  963. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +37 -0
  964. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +37 -0
  965. data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +35 -0
  966. data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +37 -0
  967. data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +257 -0
  968. data/lib/cosmos/tools/tlm_viewer/widgets.rb +53 -0
  969. data/lib/cosmos/top_level.rb +596 -0
  970. data/lib/cosmos/utilities/crc.rb +166 -0
  971. data/lib/cosmos/utilities/csv.rb +83 -0
  972. data/lib/cosmos/utilities/logger.rb +137 -0
  973. data/lib/cosmos/utilities/low_fragmentation_array.rb +11 -0
  974. data/lib/cosmos/utilities/message_log.rb +74 -0
  975. data/lib/cosmos/utilities/quaternion.rb +258 -0
  976. data/lib/cosmos/utilities/ruby_lex_utils.rb +313 -0
  977. data/lib/cosmos/utilities/simulated_target.rb +99 -0
  978. data/lib/cosmos/utilities.rb +10 -0
  979. data/lib/cosmos/version.rb +12 -0
  980. data/lib/cosmos/win32/excel.rb +66 -0
  981. data/lib/cosmos/win32/win32.rb +387 -0
  982. data/lib/cosmos/win32/win32_main.rb +311 -0
  983. data/lib/cosmos.rb +63 -0
  984. data/roodi.yml +24 -0
  985. data/run_gui_tests.bat +32 -0
  986. data/spec/ccsds/ccsds_packet_spec.rb +67 -0
  987. data/spec/ccsds/ccsds_parser_spec.rb +148 -0
  988. data/spec/config/config_parser_spec.rb +322 -0
  989. data/spec/conversions/conversion_spec.rb +31 -0
  990. data/spec/conversions/generic_conversion_spec.rb +45 -0
  991. data/spec/conversions/new_packet_log_conversion_spec.rb +39 -0
  992. data/spec/conversions/polynomial_conversion_spec.rb +40 -0
  993. data/spec/conversions/processor_conversion_spec.rb +45 -0
  994. data/spec/conversions/received_count_conversion_spec.rb +43 -0
  995. data/spec/conversions/received_time_formatted_conversion_spec.rb +49 -0
  996. data/spec/conversions/received_time_seconds_conversion_spec.rb +50 -0
  997. data/spec/conversions/segmented_polynomial_conversion_spec.rb +51 -0
  998. data/spec/conversions/unix_time_formatted_conversion_spec.rb +74 -0
  999. data/spec/conversions/unix_time_seconds_conversion_spec.rb +76 -0
  1000. data/spec/core_ext/array_spec.rb +186 -0
  1001. data/spec/core_ext/class_spec.rb +36 -0
  1002. data/spec/core_ext/cosmos_io_spec.rb +77 -0
  1003. data/spec/core_ext/exception_spec.rb +91 -0
  1004. data/spec/core_ext/file_spec.rb +72 -0
  1005. data/spec/core_ext/hash_spec.rb +24 -0
  1006. data/spec/core_ext/io_spec.rb +46 -0
  1007. data/spec/core_ext/kernel_spec.rb +54 -0
  1008. data/spec/core_ext/math_spec.rb +116 -0
  1009. data/spec/core_ext/matrix_spec.rb +66 -0
  1010. data/spec/core_ext/objectspace_spec.rb +29 -0
  1011. data/spec/core_ext/range_spec.rb +21 -0
  1012. data/spec/core_ext/socket_spec.rb +32 -0
  1013. data/spec/core_ext/string_spec.rb +223 -0
  1014. data/spec/core_ext/stringio_spec.rb +21 -0
  1015. data/spec/core_ext/time_spec.rb +151 -0
  1016. data/spec/gui/line_graph/line_clip_spec.rb +322 -0
  1017. data/spec/install/config/system/system.txt +33 -0
  1018. data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  1019. data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  1020. data/spec/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  1021. data/spec/install/config/targets/COSMOS/screens/limits_change.txt +20 -0
  1022. data/spec/install/config/targets/COSMOS/screens/version.txt +19 -0
  1023. data/spec/install/config/targets/COSMOS/target.txt +5 -0
  1024. data/spec/install/config/targets/INST/cmd_tlm/inst_cmd_linc.txt +30 -0
  1025. data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +111 -0
  1026. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +236 -0
  1027. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm_linc.txt +25 -0
  1028. data/spec/install/config/targets/INST/cmd_tlm_server.txt +5 -0
  1029. data/spec/install/config/targets/INST/lib/sim_inst.rb +294 -0
  1030. data/spec/install/config/targets/INST/target.txt +10 -0
  1031. data/spec/install/config/targets/META/cmd_tlm/meta_cmd.txt +4 -0
  1032. data/spec/install/config/targets/META/cmd_tlm/meta_tlm.txt +4 -0
  1033. data/spec/install/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -0
  1034. data/spec/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +1 -0
  1035. data/spec/install/lib/README.txt +1 -0
  1036. data/spec/install/userpath.txt +1 -0
  1037. data/spec/interfaces/cmd_tlm_server_interface_spec.rb +150 -0
  1038. data/spec/interfaces/interface_spec.rb +128 -0
  1039. data/spec/interfaces/linc_interface_spec.rb +199 -0
  1040. data/spec/interfaces/serial_interface_spec.rb +56 -0
  1041. data/spec/interfaces/simulated_target_interface_spec.rb +128 -0
  1042. data/spec/interfaces/stream_interface_spec.rb +157 -0
  1043. data/spec/interfaces/tcpip_client_interface_spec.rb +54 -0
  1044. data/spec/interfaces/tcpip_server_interface_spec.rb +151 -0
  1045. data/spec/interfaces/udp_interface_spec.rb +175 -0
  1046. data/spec/io/buffered_file_spec.rb +113 -0
  1047. data/spec/io/io_multiplexer_spec.rb +94 -0
  1048. data/spec/io/json_drb_object_spec.rb +93 -0
  1049. data/spec/io/json_drb_spec.rb +293 -0
  1050. data/spec/io/json_rpc_spec.rb +264 -0
  1051. data/spec/io/raw_logger_pair_spec.rb +76 -0
  1052. data/spec/io/raw_logger_spec.rb +133 -0
  1053. data/spec/io/serial_driver_spec.rb +61 -0
  1054. data/spec/io/stderr_spec.rb +32 -0
  1055. data/spec/io/stdout_spec.rb +32 -0
  1056. data/spec/io/tcpip_server_spec.rb +322 -0
  1057. data/spec/io/udp_sockets_spec.rb +94 -0
  1058. data/spec/io/win32_serial_driver_spec.rb +88 -0
  1059. data/spec/packet_logs/meta_packet_log_writer_spec.rb +170 -0
  1060. data/spec/packet_logs/packet_log_reader_spec.rb +408 -0
  1061. data/spec/packet_logs/packet_log_writer_pair_spec.rb +30 -0
  1062. data/spec/packet_logs/packet_log_writer_spec.rb +209 -0
  1063. data/spec/packets/binary_accessor_spec.rb +2073 -0
  1064. data/spec/packets/commands_spec.rb +369 -0
  1065. data/spec/packets/limits_response_spec.rb +25 -0
  1066. data/spec/packets/limits_spec.rb +326 -0
  1067. data/spec/packets/packet_config_spec.rb +1620 -0
  1068. data/spec/packets/packet_item_limits_spec.rb +161 -0
  1069. data/spec/packets/packet_item_spec.rb +386 -0
  1070. data/spec/packets/packet_spec.rb +949 -0
  1071. data/spec/packets/structure_item_spec.rb +195 -0
  1072. data/spec/packets/structure_spec.rb +419 -0
  1073. data/spec/packets/telemetry_spec.rb +535 -0
  1074. data/spec/processors/new_packet_log_processor_spec.rb +39 -0
  1075. data/spec/processors/processor_spec.rb +55 -0
  1076. data/spec/processors/statistics_processor_spec.rb +60 -0
  1077. data/spec/processors/watermark_processor_spec.rb +51 -0
  1078. data/spec/script/script_spec.rb +650 -0
  1079. data/spec/spec_helper.rb +138 -0
  1080. data/spec/streams/burst_stream_protocol_spec.rb +32 -0
  1081. data/spec/streams/fixed_stream_protocol_spec.rb +110 -0
  1082. data/spec/streams/length_stream_protocol_spec.rb +297 -0
  1083. data/spec/streams/preidentified_stream_protocol_spec.rb +118 -0
  1084. data/spec/streams/serial_stream_spec.rb +105 -0
  1085. data/spec/streams/stream_protocol_spec.rb +332 -0
  1086. data/spec/streams/stream_spec.rb +29 -0
  1087. data/spec/streams/tcpip_client_stream_spec.rb +54 -0
  1088. data/spec/streams/tcpip_socket_stream_spec.rb +146 -0
  1089. data/spec/streams/template_stream_protocol_spec.rb +151 -0
  1090. data/spec/streams/terminated_stream_protocol_spec.rb +123 -0
  1091. data/spec/system/system_spec.rb +645 -0
  1092. data/spec/system/target_spec.rb +248 -0
  1093. data/spec/tools/cmd_tlm_server/api_spec.rb +1090 -0
  1094. data/spec/tools/cmd_tlm_server/background_task_spec.rb +32 -0
  1095. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +82 -0
  1096. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +406 -0
  1097. data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +418 -0
  1098. data/spec/tools/cmd_tlm_server/commanding_spec.rb +123 -0
  1099. data/spec/tools/cmd_tlm_server/connections_spec.rb +147 -0
  1100. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +317 -0
  1101. data/spec/tools/cmd_tlm_server/interfaces_spec.rb +228 -0
  1102. data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +143 -0
  1103. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +104 -0
  1104. data/spec/tools/cmd_tlm_server/routers_spec.rb +196 -0
  1105. data/spec/top_level/top_level_spec.rb +320 -0
  1106. data/spec/utilities/crc_spec.rb +45 -0
  1107. data/spec/utilities/csv_spec.rb +97 -0
  1108. data/spec/utilities/logger_spec.rb +102 -0
  1109. data/spec/utilities/message_log_spec.rb +89 -0
  1110. data/spec/utilities/quaternion_spec.rb +107 -0
  1111. data/spec/utilities/ruby_lex_utils_spec.rb +86 -0
  1112. data/tasks/manifest.rake +22 -0
  1113. data/tasks/spec.rake +23 -0
  1114. metadata +1566 -0
@@ -0,0 +1,650 @@
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 'spec_helper'
12
+ require 'cosmos'
13
+ require 'cosmos/script/script'
14
+ require 'tempfile'
15
+
16
+ module Cosmos
17
+
18
+ describe Script do
19
+
20
+ before(:all) do
21
+ cts = File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server','cmd_tlm_server.txt')
22
+ FileUtils.mkdir_p(File.dirname(cts))
23
+ File.open(cts,'w') do |file|
24
+ file.puts 'INTERFACE INST_INT interface.rb'
25
+ file.puts 'TARGET INST'
26
+ end
27
+ System.class_eval('@@instance = nil')
28
+
29
+ require 'cosmos/script'
30
+ end
31
+
32
+ after(:all) do
33
+ clean_config()
34
+ FileUtils.rm_rf File.join(Cosmos::USERPATH,'config','tools')
35
+ end
36
+
37
+ before(:each) do
38
+ allow_any_instance_of(Interface).to receive(:connected?).and_return(true)
39
+ allow_any_instance_of(Interface).to receive(:disconnect)
40
+ allow_any_instance_of(Interface).to receive(:write)
41
+ allow_any_instance_of(Interface).to receive(:read)
42
+
43
+ @server = CmdTlmServer.new
44
+ sleep 0.1
45
+ end
46
+
47
+ after(:each) do
48
+ @server.stop
49
+ end
50
+
51
+ describe "cmd" do
52
+ it "should send a command" do
53
+ capture_io do |stdout|
54
+ cmd("INST ABORT")
55
+ stdout.string.should match /cmd\(\'INST ABORT\'\)/
56
+ end
57
+ end
58
+
59
+ it "should check parameter ranges" do
60
+ expect { cmd("INST COLLECT with TYPE NORMAL, DURATION 20") }.to raise_error(/Command parameter 'INST COLLECT DURATION' = 20 not in valid range/)
61
+ end
62
+
63
+ it "should prompt for a hazardous command" do
64
+ capture_io do |stdout|
65
+ expect(self).to receive(:gets) { 'y' } # Send hazardous command
66
+ cmd("INST COLLECT with TYPE SPECIAL")
67
+
68
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
69
+ stdout.string.should match /cmd\(\'INST COLLECT/
70
+ stdout.rewind
71
+
72
+ expect(self).to receive(:gets) { 'n' } # Don't send hazardous
73
+ expect(self).to receive(:gets) { 'n' } # Don't stop running script
74
+ cmd("INST COLLECT with TYPE SPECIAL")
75
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
76
+ stdout.string.should match "WARN: Hazardous command not sent"
77
+ end
78
+ end
79
+ end
80
+
81
+ describe "cmd_no_range_check" do
82
+ it "should send an out of range command" do
83
+ expect { cmd_no_range_check("INST COLLECT with TYPE NORMAL, DURATION 20") }.to_not raise_error
84
+ end
85
+
86
+ it "should prompt for a hazardous command" do
87
+ capture_io do |stdout|
88
+ expect(self).to receive(:gets) { 'y' } # Send hazardous command
89
+ cmd_no_range_check("INST COLLECT with TYPE SPECIAL")
90
+
91
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
92
+ stdout.string.should match /cmd\(\'INST COLLECT/
93
+ stdout.rewind
94
+
95
+ expect(self).to receive(:gets) { 'n' } # Don't send hazardous
96
+ expect(self).to receive(:gets) { 'n' } # Don't stop running script
97
+ cmd_no_range_check("INST COLLECT with TYPE SPECIAL")
98
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
99
+ stdout.string.should match "WARN: Hazardous command not sent"
100
+ end
101
+ end
102
+ end
103
+
104
+ describe "cmd_no_hazardous_check" do
105
+ it "should check parameter ranges" do
106
+ expect { cmd_no_hazardous_check("INST COLLECT with TYPE SPECIAL, DURATION 20") }.to raise_error(/Command parameter 'INST COLLECT DURATION' = 20 not in valid range/)
107
+ end
108
+
109
+ it "should send a hazardous command without prompting" do
110
+ capture_io do |stdout|
111
+ cmd_no_hazardous_check("INST COLLECT with TYPE SPECIAL")
112
+
113
+ stdout.string.should match "Command INST COLLECT being sent ignoring hazardous warnings"
114
+ stdout.string.should match /cmd\(\'INST COLLECT/
115
+ end
116
+ end
117
+ end
118
+
119
+ describe "cmd_no_checks" do
120
+ it "should send an out of range hazardous command without prompting" do
121
+ capture_io do |stdout|
122
+ cmd_no_checks("INST COLLECT with TYPE SPECIAL, DURATION 20")
123
+
124
+ stdout.string.should match "Command INST COLLECT being sent ignoring hazardous warnings"
125
+ stdout.string.should match /cmd\(\'INST COLLECT/
126
+ end
127
+ end
128
+ end
129
+
130
+ describe "cmd_raw" do
131
+ it "should send a command" do
132
+ capture_io do |stdout|
133
+ cmd_raw("INST ABORT")
134
+ stdout.string.should match /cmd_raw\(\'INST ABORT\'\)/
135
+ end
136
+ end
137
+
138
+ it "should check parameter ranges" do
139
+ expect { cmd_raw("INST COLLECT with TYPE 0, DURATION 20") }.to raise_error(/Command parameter 'INST COLLECT DURATION' = 20 not in valid range/)
140
+ end
141
+
142
+ it "should prompt for a hazardous command" do
143
+ capture_io do |stdout|
144
+ expect(self).to receive(:gets) { 'y' } # Send hazardous command
145
+ cmd_raw("INST COLLECT with TYPE 1")
146
+
147
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
148
+ stdout.string.should match /cmd_raw\(\'INST COLLECT/
149
+ stdout.rewind
150
+
151
+ expect(self).to receive(:gets) { 'n' } # Don't send hazardous
152
+ expect(self).to receive(:gets) { 'n' } # Don't stop running script
153
+ cmd_raw("INST COLLECT with TYPE 1")
154
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
155
+ stdout.string.should match "WARN: Hazardous command not sent"
156
+ end
157
+ end
158
+ end
159
+
160
+ describe "cmd_raw_no_range_check" do
161
+ it "should send an out of range command" do
162
+ expect { cmd_raw_no_range_check("INST COLLECT with TYPE 0, DURATION 20") }.to_not raise_error
163
+ end
164
+
165
+ it "should prompt for a hazardous command" do
166
+ capture_io do |stdout|
167
+ expect(self).to receive(:gets) { 'y' } # Send hazardous command
168
+ cmd_raw_no_range_check("INST COLLECT with TYPE 1")
169
+
170
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
171
+ stdout.string.should match /cmd_raw\(\'INST COLLECT/
172
+ stdout.rewind
173
+
174
+ expect(self).to receive(:gets) { 'n' } # Don't send hazardous
175
+ expect(self).to receive(:gets) { 'n' } # Don't stop running script
176
+ cmd_raw_no_range_check("INST COLLECT with TYPE 1")
177
+ stdout.string.should match "Warning: Command INST COLLECT is Hazardous"
178
+ stdout.string.should match "WARN: Hazardous command not sent"
179
+ end
180
+ end
181
+ end
182
+
183
+ describe "cmd_raw_no_hazardous_check" do
184
+ it "should check parameter ranges" do
185
+ expect { cmd_raw_no_hazardous_check("INST COLLECT with TYPE 1, DURATION 20") }.to raise_error(/Command parameter 'INST COLLECT DURATION' = 20 not in valid range/)
186
+ end
187
+
188
+ it "should send a hazardous command without prompting" do
189
+ capture_io do |stdout|
190
+ cmd_raw_no_hazardous_check("INST COLLECT with TYPE 1")
191
+ stdout.string.should match "Command INST COLLECT being sent ignoring hazardous warnings"
192
+ stdout.string.should match /cmd_raw\(\'INST COLLECT/
193
+ end
194
+ end
195
+ end
196
+
197
+ describe "cmd_raw_no_checks" do
198
+ it "should send an out of range hazardous command without prompting" do
199
+ capture_io do |stdout|
200
+ cmd_raw_no_checks("INST COLLECT with TYPE 1, DURATION 20")
201
+ stdout.string.should match "Command INST COLLECT being sent ignoring hazardous warnings"
202
+ stdout.string.should match /cmd_raw\(\'INST COLLECT/
203
+ end
204
+ end
205
+ end
206
+
207
+ describe "send_raw" do
208
+ it "should send data to the write_raw interface method" do
209
+ expect_any_instance_of(Interface).to receive(:write_raw).with('\x00')
210
+ send_raw('INST_INT', '\x00')
211
+ end
212
+ end
213
+
214
+ describe "send_raw_file" do
215
+ it "should send file data to the write_raw interface method" do
216
+ file = File.open('raw_test_file.bin','wb')
217
+ file.write '\x00\x01\x02\x03'
218
+ file.close
219
+
220
+ expect_any_instance_of(Interface).to receive(:write_raw).with('\x00\x01\x02\x03')
221
+
222
+ send_raw_file('INST_INT', 'raw_test_file.bin')
223
+
224
+ File.delete('raw_test_file.bin')
225
+ end
226
+ end
227
+
228
+ describe "get_cmd_list" do
229
+ it "should return all the target commands" do
230
+ list = get_cmd_list("INST")
231
+ # Only check for the collect command to make this test list dependent
232
+ # on the demo INST command definition file
233
+ list.should include(["COLLECT", "Starts a collect on the instrument"])
234
+ end
235
+ end
236
+
237
+ describe "get_cmd_param_list" do
238
+ it "should return all the parameters for a command" do
239
+ list = get_cmd_param_list("INST", "COLLECT")
240
+ list.should include(["TYPE", 0, {"NORMAL"=>0, "SPECIAL"=>1}, "Collect type", nil, nil, true])
241
+ end
242
+ end
243
+
244
+ describe "get_cmd_hazardous" do
245
+ it "should return whether a command is hazardous" do
246
+ get_cmd_hazardous("INST", "COLLECT", {"TYPE"=>"NORMAL"}).should be_falsey
247
+ get_cmd_hazardous("INST", "COLLECT", {"TYPE"=>"SPECIAL"}).should be_truthy
248
+ end
249
+ end
250
+
251
+ describe "tlm, tlm_raw, tlm_formatted, tlm_with_units, tlm_variable, set_tlm, set_tlm_raw" do
252
+ it "should pass through to the cmd_tlm_server" do
253
+ expect {
254
+ tlm("INST HEALTH_STATUS TEMP1").should eql -100.0
255
+ tlm_raw("INST HEALTH_STATUS TEMP1").should eql 0
256
+ tlm_formatted("INST HEALTH_STATUS TEMP1").should eql "-100.000"
257
+ tlm_with_units("INST HEALTH_STATUS TEMP1").should eql "-100.000 C"
258
+ tlm_variable("INST HEALTH_STATUS TEMP1", :RAW).should eql 0
259
+ set_tlm("INST HEALTH_STATUS TEMP1 = 1")
260
+ set_tlm_raw("INST HEALTH_STATUS TEMP1 = 0")
261
+ }.to_not raise_error
262
+ end
263
+ end
264
+
265
+ describe "get_tlm_packet" do
266
+ it "should get the packet values" do
267
+ get_tlm_packet("INST", "HEALTH_STATUS", :RAW).should include(["TEMP1", 0, :RED_LOW])
268
+ end
269
+ end
270
+
271
+ describe "get_tlm_values" do
272
+ it "should get the given values" do
273
+ vals = get_tlm_values([["INST", "HEALTH_STATUS", "TEMP1"], ["INST", "HEALTH_STATUS", "TEMP2"]])
274
+ vals[0][0].should eql -100.0
275
+ vals[1][0].should eql :RED_LOW
276
+ vals[2][0].should eql [-80.0, -70.0, 60.0, 80.0, -20.0, 20.0]
277
+ vals[3].should eql :DEFAULT
278
+ end
279
+ end
280
+
281
+ describe "get_tlm_list" do
282
+ it "should get packets for a given target" do
283
+ get_tlm_list("INST").should include(["HEALTH_STATUS", "Health and status from the instrument"])
284
+ end
285
+ end
286
+
287
+ describe "get_tlm_item_list" do
288
+ it "should get telemetry for a given packet" do
289
+ get_tlm_item_list("INST", "HEALTH_STATUS").should include(["TEMP1",nil,"Temperature #1"])
290
+ end
291
+ end
292
+
293
+ describe "get_tlm_details" do
294
+ it "should get telemetry for a given packet" do
295
+ details = get_tlm_details([["INST", "HEALTH_STATUS", "TEMP1"], ["INST", "HEALTH_STATUS", "TEMP2"]])
296
+ details[0]["name"].should eql "TEMP1"
297
+ details[1]["name"].should eql "TEMP2"
298
+ end
299
+ end
300
+
301
+ describe "get_out_of_limits" do
302
+ it "should get all out of limits items" do
303
+ get_out_of_limits.should include(["INST","HEALTH_STATUS","TEMP1",:RED_LOW])
304
+ end
305
+ end
306
+
307
+ describe "limits_enabled?, disable_limits, enable_limits" do
308
+ it "should enable, disable, and check limits for an item" do
309
+ limits_enabled?("INST HEALTH_STATUS TEMP1").should be_truthy
310
+ disable_limits("INST HEALTH_STATUS TEMP1")
311
+ limits_enabled?("INST HEALTH_STATUS TEMP1").should be_falsey
312
+ enable_limits("INST HEALTH_STATUS TEMP1")
313
+ limits_enabled?("INST HEALTH_STATUS TEMP1").should be_truthy
314
+ end
315
+ end
316
+
317
+ describe "get_limits, set_limits" do
318
+ it "should get and set limits for an item" do
319
+ get_limits("INST", "HEALTH_STATUS", "TEMP1").should eql [:DEFAULT, 1, true, -80.0, -70.0, 60.0, 80.0, -20.0, 20.0]
320
+ set_limits("INST", "HEALTH_STATUS", "TEMP1", 1, 2, 5, 6, 3, 4).should eql [:CUSTOM, 1, true, 1.0, 2.0, 5.0, 6.0, 3.0, 4.0]
321
+ end
322
+ end
323
+
324
+ describe "get_limits_groups, enable_limits_group, disable_limits_group" do
325
+ it "should enable, disable, and get groups" do
326
+ get_limits_groups.should include("FIRST")
327
+ enable_limits_group("FIRST")
328
+ disable_limits_group("FIRST")
329
+ end
330
+ end
331
+
332
+ describe "get_limits_sets, enable_limits_set, disable_limits_set" do
333
+ it "should enable, disable, and get sets CTS-16" do
334
+ if get_limits_sets.include?(:CUSTOM)
335
+ get_limits_sets.should eql [:DEFAULT,:TVAC,:CUSTOM]
336
+ else
337
+ get_limits_sets.should eql [:DEFAULT,:TVAC]
338
+ end
339
+ set_limits_set(:TVAC)
340
+ get_limits_set.should eql :TVAC
341
+ set_limits_set(:DEFAULT)
342
+ get_limits_set.should eql :DEFAULT
343
+ end
344
+ end
345
+
346
+ describe "get_target_list" do
347
+ it "should return the list of targets" do
348
+ get_target_list.should include("INST")
349
+ end
350
+ end
351
+
352
+ describe "subscribe_limits_events, get_limits_event, unsubscribe_limits_events" do
353
+ it "should raise an error if non_block and the queue is empty" do
354
+ id = subscribe_limits_events
355
+ expect { get_limits_event(id, true) }.to raise_error(ThreadError, "queue empty")
356
+ unsubscribe_limits_events(id)
357
+ end
358
+
359
+ it "should subscribe and get limits change events" do
360
+ id = subscribe_limits_events
361
+ CmdTlmServer.instance.post_limits_event(:LIMITS_CHANGE, ['TGT','PKT','ITEM',:YELLOW,:RED])
362
+ result = get_limits_event(id, true)
363
+ result[0].should eql :LIMITS_CHANGE
364
+ unsubscribe_limits_events(id)
365
+ end
366
+
367
+ it "should subscribe and get limits settings events" do
368
+ id = subscribe_limits_events
369
+ CmdTlmServer.instance.post_limits_event(:LIMITS_SETTINGS, ['TGT','PKT','ITEM',:DEFAULT])
370
+ result = get_limits_event(id, true)
371
+ result[0].should eql :LIMITS_SETTINGS
372
+ unsubscribe_limits_events(id)
373
+ end
374
+ end
375
+
376
+ describe "subscribe_packet_data, get_packet, unsubscribe_packet_data" do
377
+ it "should raise an error if non_block and the queue is empty" do
378
+ id = subscribe_packet_data([["INST","HEALTH_STATUS"]])
379
+ expect { get_packet(id, true) }.to raise_error(ThreadError, "queue empty")
380
+ unsubscribe_packet_data(id)
381
+ end
382
+
383
+ it "should subscribe and get limits events" do
384
+ id = subscribe_packet_data([["INST","HEALTH_STATUS"]])
385
+ CmdTlmServer.instance.post_packet(System.telemetry.packet("INST","HEALTH_STATUS"))
386
+ packet = get_packet(id, true)
387
+ packet.target_name.should eql "INST"
388
+ packet.packet_name.should eql "HEALTH_STATUS"
389
+ unsubscribe_packet_data(id)
390
+ end
391
+ end
392
+
393
+ describe "status_bar" do
394
+ it "should set the ScriptRunner status bar" do
395
+ class ScriptRunner; end
396
+ sc = ScriptRunner.new
397
+ expect(sc).to receive(:script_set_status).with("HI")
398
+ status_bar("HI")
399
+ end
400
+ end
401
+
402
+ describe "ask_string, ask" do
403
+ it "should get user input" do
404
+ $stdout = StringIO.new
405
+ expect(self).to receive(:gets) { '10' }
406
+ ask_string("").should eql '10'
407
+ expect(self).to receive(:gets) { '10' }
408
+ ask("").should eql 10
409
+ $stdout = STDOUT
410
+ end
411
+ end
412
+
413
+ describe "prompt, prompt_message_box" do
414
+ it "should prompt the user for input" do
415
+ $stdout = StringIO.new
416
+ expect(self).to receive(:gets) { 'message' }
417
+ prompt("").should eql 'message'
418
+ expect(self).to receive(:gets) { 'b1' }
419
+ message_box("",["b1","b2"]).should eql 'b1'
420
+ $stdout = STDOUT
421
+ end
422
+ end
423
+
424
+ describe "check, check_formatted, check_with_units, check_raw" do
425
+ it "should check a telemetry item vs a condition" do
426
+ capture_io do |stdout|
427
+ check("INST HEALTH_STATUS TEMP1 == -100")
428
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == -100 success"
429
+ stdout.rewind
430
+
431
+ check("INST","HEALTH_STATUS","TEMP1","== -100")
432
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == -100 success"
433
+ stdout.rewind
434
+
435
+ check_formatted("INST HEALTH_STATUS TEMP1 == '-100.000'")
436
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == '-100.000' success"
437
+ stdout.rewind
438
+
439
+ check_formatted("INST","HEALTH_STATUS","TEMP1","== '-100.000'")
440
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == '-100.000' success"
441
+ stdout.rewind
442
+
443
+ check_with_units("INST HEALTH_STATUS TEMP1 == '-100.000 C'")
444
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == '-100.000 C' success"
445
+ stdout.rewind
446
+
447
+ check_with_units("INST","HEALTH_STATUS","TEMP1","== '-100.000 C'")
448
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == '-100.000 C' success"
449
+ stdout.rewind
450
+
451
+ check_raw("INST HEALTH_STATUS TEMP1")
452
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == 0"
453
+ end
454
+
455
+ check("INST HEALTH_STATUS TEMP1 < 0")
456
+ expect { check("INST HEALTH_STATUS TEMP1 > 0") }.to raise_error(Cosmos::CheckError)
457
+ end
458
+ end
459
+
460
+ describe "check_tolerance, check_tolerance_raw" do
461
+ it "should check a telemetry item vs tolerance" do
462
+ capture_io do |stdout|
463
+ check_tolerance("INST HEALTH_STATUS TEMP1", -100.0, 1)
464
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 was within range"
465
+ stdout.rewind
466
+
467
+ expect { check_tolerance("INST HEALTH_STATUS TEMP1", -200.0, 1) }.to raise_error(CheckError, /CHECK: INST HEALTH_STATUS TEMP1 failed to be within range/)
468
+ stdout.rewind
469
+
470
+ check_tolerance_raw("INST HEALTH_STATUS TEMP1", 0, 1)
471
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 was within range"
472
+ stdout.rewind
473
+
474
+ expect { check_tolerance_raw("INST HEALTH_STATUS TEMP1", 100, 1) }.to raise_error(CheckError, /CHECK: INST HEALTH_STATUS TEMP1 failed to be within range/)
475
+ stdout.rewind
476
+ end
477
+ end
478
+ end
479
+
480
+ describe "check_expression" do
481
+ it "should check an arbitrary expression" do
482
+ capture_io do |stdout|
483
+ check_expression("true == true")
484
+ stdout.string.should match "CHECK: true == true is TRUE"
485
+ end
486
+
487
+ expect { check_expression("true == false") }.to raise_error(CheckError, "CHECK: true == false is FALSE")
488
+ end
489
+ end
490
+
491
+ describe "wait, wait_raw, wait_tolerance, wait_tolerance_raw" do
492
+ it "should wait for telemetry check to be true" do
493
+ capture_io do |stdout|
494
+ # Success
495
+ wait("INST HEALTH_STATUS TEMP1 == -100.0", 5)
496
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 == -100.0"
497
+ stdout.rewind
498
+ wait_raw("INST HEALTH_STATUS TEMP1 == 0", 5)
499
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 == 0"
500
+ stdout.rewind
501
+ wait_tolerance("INST HEALTH_STATUS TEMP1", -100.0, 1, 5)
502
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 was within"
503
+ stdout.rewind
504
+ wait_tolerance_raw("INST HEALTH_STATUS TEMP1", 0, 1, 5)
505
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 was within"
506
+ stdout.rewind
507
+
508
+ # Failure
509
+ wait("INST HEALTH_STATUS TEMP1 == -200.0", 0.1)
510
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 == -200.0 failed"
511
+ stdout.rewind
512
+ wait_raw("INST HEALTH_STATUS TEMP1 == 100", 0.1)
513
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 == 100 failed"
514
+ stdout.rewind
515
+ wait_tolerance("INST HEALTH_STATUS TEMP1", -200.0, 1, 0.1)
516
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 failed to be within"
517
+ stdout.rewind
518
+ wait_tolerance_raw("INST HEALTH_STATUS TEMP1", 100, 1, 0.1)
519
+ stdout.string.should match "WAIT: INST HEALTH_STATUS TEMP1 failed to be within"
520
+ stdout.rewind
521
+ end
522
+ end
523
+ end
524
+
525
+ describe "wait_expression" do
526
+ it "should wait for an expression to be true" do
527
+ capture_io do |stdout|
528
+ # Success
529
+ wait_expression("true == true", 5)
530
+ stdout.string.should match "WAIT: true == true is TRUE"
531
+ stdout.rewind
532
+
533
+ # Failure
534
+ wait_expression("true == false", 0.1)
535
+ stdout.string.should match "WAIT: true == false is FALSE"
536
+ stdout.rewind
537
+ end
538
+ end
539
+ end
540
+
541
+ describe "wait_check, wait_check_raw, wait_check_tolerance, wait_check_tolerance_raw" do
542
+ it "should wait for telemetry check to be true" do
543
+ capture_io do |stdout|
544
+ # Success
545
+ wait_check("INST HEALTH_STATUS TEMP1 == -100.0", 5)
546
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == -100.0"
547
+ stdout.rewind
548
+ wait_check_raw("INST HEALTH_STATUS TEMP1 == 0", 5)
549
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 == 0"
550
+ stdout.rewind
551
+ wait_check_tolerance("INST HEALTH_STATUS TEMP1", -100.0, 1, 5)
552
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 was within"
553
+ stdout.rewind
554
+ wait_check_tolerance_raw("INST HEALTH_STATUS TEMP1", 0, 1, 5)
555
+ stdout.string.should match "CHECK: INST HEALTH_STATUS TEMP1 was within"
556
+ stdout.rewind
557
+ end
558
+
559
+ # Failure
560
+ expect { wait_check("INST HEALTH_STATUS TEMP1 == -200.0", 0.1) }.to raise_error(CheckError, /CHECK: INST HEALTH_STATUS TEMP1 == -200.0 failed/)
561
+ expect { wait_check_raw("INST HEALTH_STATUS TEMP1 == 100", 0.1) }.to raise_error(CheckError, /CHECK: INST HEALTH_STATUS TEMP1 == 100 failed/)
562
+ expect { wait_check_tolerance("INST HEALTH_STATUS TEMP1", -200.0, 1, 0.1) }.to raise_error(CheckError, /CHECK: INST HEALTH_STATUS TEMP1 failed to be within/)
563
+
564
+ expect { wait_check_tolerance_raw("INST HEALTH_STATUS TEMP1", 100, 1, 0.1) }.to raise_error(CheckError, /CHECK: INST HEALTH_STATUS TEMP1 failed to be within/)
565
+
566
+ end
567
+ end
568
+
569
+ describe "wait_check_expression" do
570
+ it "should wait for an expression to be true" do
571
+ capture_io do |stdout|
572
+ # Success
573
+ wait_check_expression("true == true", 5)
574
+ stdout.string.should match "CHECK: true == true is TRUE"
575
+ stdout.rewind
576
+ end
577
+
578
+ # Failure
579
+ expect { wait_check_expression("true == false", 0.1) }.to raise_error(CheckError, /CHECK: true == false is FALSE/)
580
+ end
581
+ end
582
+
583
+ describe "wait_packet, wait_check_packet" do
584
+ it "should wait for a certain number of packets" do
585
+ capture_io do |stdout|
586
+ wait_packet("INST","HEALTH_STATUS",1,0.1)
587
+ end
588
+
589
+ expect { wait_check_packet("INST","HEALTH_STATUS",1,0.1) }.to raise_error(CheckError, /INST HEALTH_STATUS expected to be received 1 times but only received 0 times/)
590
+ end
591
+ end
592
+
593
+ describe "get_interface_names" do
594
+ it "should return all interfaces" do
595
+ get_interface_names.should include("INST_INT")
596
+ end
597
+ end
598
+
599
+ describe "connect_interface, disconnect_interface, interface_state" do
600
+ it "should connect, disconnect and return the state of the interface CTS-3" do
601
+ connect_interface("INST_INT")
602
+ interface_state("INST_INT").should eql "CONNECTED"
603
+ disconnect_interface("INST_INT")
604
+ end
605
+ end
606
+
607
+ describe "map_target_to_interface" do
608
+ it "should map a target name to an interface" do
609
+ map_target_to_interface("INST","INST_INT")
610
+ end
611
+ end
612
+
613
+ describe "connect_router, disconnect_router, get_router_names, router_state" do
614
+ it "should return connect, disconnect, and list the routers CTS-11" do
615
+ get_router_names.should include("PREIDENTIFIED_ROUTER")
616
+ connect_router("PREIDENTIFIED_ROUTER")
617
+ router_state("PREIDENTIFIED_ROUTER").should eql "CONNECTED"
618
+ disconnect_router("PREIDENTIFIED_ROUTER")
619
+ end
620
+ end
621
+
622
+ describe "logging methods" do
623
+ it "should start and stop logging and get filenames CTS-14" do
624
+ start_logging
625
+ stop_logging
626
+ get_cmd_log_filename
627
+ get_tlm_log_filename
628
+ start_cmd_log
629
+ start_tlm_log
630
+ get_cmd_log_filename
631
+ get_tlm_log_filename
632
+ stop_cmd_log
633
+ stop_tlm_log
634
+ get_cmd_log_filename
635
+ get_tlm_log_filename
636
+ start_raw_logging_interface
637
+ start_raw_logging_router
638
+ stop_raw_logging_interface
639
+ stop_raw_logging_router
640
+
641
+ start_new_server_message_log
642
+ sleep 0.1
643
+ filename = get_server_message_log_filename
644
+ filename.should match /server_messages.txt/
645
+ end
646
+ end
647
+
648
+ end
649
+ end
650
+