cosmos 3.0.1 → 3.1.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 (912) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +48 -48
  4. data/.travis.yml +7 -7
  5. data/CONTRIBUTING.txt +50 -50
  6. data/Gemfile +6 -6
  7. data/Guardfile +27 -27
  8. data/LICENSE.txt +879 -879
  9. data/Manifest.txt +1116 -1114
  10. data/README.md +109 -107
  11. data/Rakefile +214 -214
  12. data/autohotkey/config/data/diamond.STL +57 -57
  13. data/autohotkey/config/system/system.txt +34 -34
  14. data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
  15. data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
  16. data/autohotkey/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
  17. data/autohotkey/config/targets/COSMOS/target.txt +5 -5
  18. data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -121
  19. data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +247 -247
  20. data/autohotkey/config/targets/INST/cmd_tlm_server.txt +5 -5
  21. data/autohotkey/config/targets/INST/lib/example_limits_response.rb +30 -30
  22. data/autohotkey/config/targets/INST/lib/sim_inst.rb +305 -294
  23. data/autohotkey/config/targets/INST/screens/adcs.txt +46 -46
  24. data/autohotkey/config/targets/INST/screens/array.txt +7 -7
  25. data/autohotkey/config/targets/INST/screens/block.txt +8 -8
  26. data/autohotkey/config/targets/INST/screens/commanding.txt +30 -30
  27. data/autohotkey/config/targets/INST/screens/graphs.txt +14 -14
  28. data/autohotkey/config/targets/INST/screens/ground.txt +25 -25
  29. data/autohotkey/config/targets/INST/screens/health_status.txt +33 -33
  30. data/autohotkey/config/targets/INST/screens/hs.txt +49 -49
  31. data/autohotkey/config/targets/INST/screens/image.txt +21 -21
  32. data/autohotkey/config/targets/INST/screens/latest.txt +23 -23
  33. data/autohotkey/config/targets/INST/screens/mech.txt +25 -25
  34. data/autohotkey/config/targets/INST/screens/other.txt +25 -25
  35. data/autohotkey/config/targets/INST/screens/params.txt +25 -25
  36. data/autohotkey/config/targets/INST/screens/tabs.txt +68 -68
  37. data/autohotkey/config/targets/INST/target.txt +26 -26
  38. data/autohotkey/config/targets/META/cmd_tlm/meta_cmd.txt +10 -10
  39. data/autohotkey/config/targets/META/cmd_tlm/meta_tlm.txt +9 -9
  40. data/autohotkey/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
  41. data/autohotkey/config/targets/SYSTEM/screens/error.txt +11 -11
  42. data/autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt +22 -22
  43. data/autohotkey/config/tools/data_viewer/data_viewer.txt +11 -11
  44. data/autohotkey/config/tools/handbook_creator/handbook_creator.txt +49 -49
  45. data/autohotkey/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
  46. data/autohotkey/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
  47. data/autohotkey/config/tools/handbook_creator/templates/footer.html.erb +9 -9
  48. data/autohotkey/config/tools/handbook_creator/templates/header.html.erb +25 -25
  49. data/autohotkey/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
  50. data/autohotkey/config/tools/handbook_creator/templates/nav.html.erb +27 -27
  51. data/autohotkey/config/tools/handbook_creator/templates/overview.html.erb +1 -1
  52. data/autohotkey/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
  53. data/autohotkey/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
  54. data/autohotkey/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
  55. data/autohotkey/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
  56. data/autohotkey/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
  57. data/autohotkey/config/tools/handbook_creator/templates/title.html.erb +1 -1
  58. data/autohotkey/config/tools/launcher/launcher.txt +38 -38
  59. data/autohotkey/config/tools/script_runner/script_runner.txt +3 -3
  60. data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +8 -8
  61. data/autohotkey/config/tools/table_manager/OneDimensionalTable_def.txt +19 -19
  62. data/autohotkey/config/tools/table_manager/TwoDimensionalTable_def.txt +248 -248
  63. data/autohotkey/config/tools/test_runner/test_runner.txt +8 -8
  64. data/autohotkey/config/tools/test_runner/test_runner2.txt +11 -11
  65. data/autohotkey/config/tools/test_runner/test_runner3.txt +6 -6
  66. data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
  67. data/autohotkey/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
  68. data/autohotkey/config/tools/tlm_extractor/tlm_extractor2.txt +9 -9
  69. data/autohotkey/config/tools/tlm_grapher/bad.txt +50 -50
  70. data/autohotkey/config/tools/tlm_grapher/temp1-4.txt +51 -51
  71. data/autohotkey/config/tools/tlm_grapher/test2.txt +111 -111
  72. data/autohotkey/config/tools/tlm_viewer/tlm_viewer.txt +24 -24
  73. data/autohotkey/config/tools/tlm_viewer/tlm_viewer2.txt +4 -4
  74. data/autohotkey/config/tools/tlm_viewer/tlm_viewer3.txt +3 -3
  75. data/autohotkey/lib/example_background_task.rb +42 -42
  76. data/autohotkey/lib/user_version.rb +3 -3
  77. data/autohotkey/procedures/clear_util.rb +7 -7
  78. data/autohotkey/procedures/collect.rb +18 -18
  79. data/autohotkey/procedures/collect_util.rb +14 -14
  80. data/autohotkey/procedures/example_test.rb +67 -67
  81. data/autohotkey/procedures/example_test2.rb +74 -74
  82. data/autohotkey/procedures/script_test.rb +17 -17
  83. data/autohotkey/procedures/syntax_error.rb +18 -18
  84. data/autohotkey/tools/CmdExtractorAHK +16 -16
  85. data/autohotkey/tools/CmdSender +14 -14
  86. data/autohotkey/tools/CmdSenderAHK +18 -18
  87. data/autohotkey/tools/CmdTlmServer +14 -14
  88. data/autohotkey/tools/CmdTlmServerAHK +28 -28
  89. data/autohotkey/tools/CmdTlmServerAHK2 +17 -17
  90. data/autohotkey/tools/DataViewer +14 -14
  91. data/autohotkey/tools/DataViewerAHK +17 -17
  92. data/autohotkey/tools/HandbookCreatorAHK +20 -20
  93. data/autohotkey/tools/LauncherAHK +17 -17
  94. data/autohotkey/tools/LimitsMonitorAHK +20 -20
  95. data/autohotkey/tools/OpenGLBuilderAHK +20 -20
  96. data/autohotkey/tools/PacketViewer +14 -14
  97. data/autohotkey/tools/PacketViewerAHK +18 -18
  98. data/autohotkey/tools/PacketViewerAHK2 +17 -17
  99. data/autohotkey/tools/Replay +14 -14
  100. data/autohotkey/tools/Replay.bat +59 -59
  101. data/autohotkey/tools/ReplayAHK +17 -17
  102. data/autohotkey/tools/ScriptRunner +14 -14
  103. data/autohotkey/tools/ScriptRunnerAHK +20 -20
  104. data/autohotkey/tools/ScriptRunnerAHK2 +17 -17
  105. data/autohotkey/tools/TableManager +14 -14
  106. data/autohotkey/tools/TableManagerAHK +30 -30
  107. data/autohotkey/tools/TestRunner +15 -15
  108. data/autohotkey/tools/TestRunnerAHK +17 -17
  109. data/autohotkey/tools/TestRunnerAHK2 +17 -17
  110. data/autohotkey/tools/TestRunnerAHK3 +17 -17
  111. data/autohotkey/tools/TestRunnerAHK4 +17 -17
  112. data/autohotkey/tools/TlmExtractor +15 -15
  113. data/autohotkey/tools/TlmExtractorAHK +19 -19
  114. data/autohotkey/tools/TlmExtractorAHK2 +16 -16
  115. data/autohotkey/tools/TlmExtractorAHK3 +16 -16
  116. data/autohotkey/tools/TlmGrapher +14 -14
  117. data/autohotkey/tools/TlmGrapherAHK +19 -19
  118. data/autohotkey/tools/TlmGrapherAHK2 +23 -23
  119. data/autohotkey/tools/TlmGrapherAHK3 +17 -17
  120. data/autohotkey/tools/TlmGrapherAHK4 +17 -17
  121. data/autohotkey/tools/TlmViewer +14 -14
  122. data/autohotkey/tools/TlmViewerAHK +28 -28
  123. data/autohotkey/tools/TlmViewerAHK2 +18 -18
  124. data/autohotkey/tools/TlmViewerAHK3 +18 -18
  125. data/autohotkey/tools/TlmViewerAHK4 +18 -18
  126. data/autohotkey/tools/TlmViewerAHK5 +18 -18
  127. data/autohotkey/tools/autohotkey.rb +37 -37
  128. data/autohotkey/tools/cmd_extractor.ahk +27 -27
  129. data/autohotkey/tools/cmd_sender.ahk +182 -162
  130. data/autohotkey/tools/cmd_tlm_server.ahk +89 -89
  131. data/autohotkey/tools/cmd_tlm_server2.ahk +45 -45
  132. data/autohotkey/tools/data_viewer.ahk +135 -135
  133. data/autohotkey/tools/handbook_creator.ahk +23 -23
  134. data/autohotkey/tools/launcher.ahk +41 -41
  135. data/autohotkey/tools/limits_monitor.ahk +70 -70
  136. data/autohotkey/tools/open_gl_builder.ahk +134 -134
  137. data/autohotkey/tools/packet_viewer.ahk +143 -143
  138. data/autohotkey/tools/packet_viewer2.ahk +9 -9
  139. data/autohotkey/tools/replay.ahk +98 -98
  140. data/autohotkey/tools/script_runner.ahk +589 -589
  141. data/autohotkey/tools/script_runner2.ahk +34 -31
  142. data/autohotkey/tools/table_manager.ahk +220 -220
  143. data/autohotkey/tools/test_runner.ahk +262 -259
  144. data/autohotkey/tools/test_runner2.ahk +52 -52
  145. data/autohotkey/tools/test_runner3.ahk +13 -13
  146. data/autohotkey/tools/tlm_extractor.ahk +272 -272
  147. data/autohotkey/tools/tlm_grapher.ahk +642 -642
  148. data/autohotkey/tools/tlm_grapher2.ahk +115 -115
  149. data/autohotkey/tools/tlm_grapher3.ahk +24 -24
  150. data/autohotkey/tools/tlm_viewer.ahk +133 -133
  151. data/autohotkey/tools/tlm_viewer2.ahk +50 -49
  152. data/autohotkey/tools/tlm_viewer4.ahk +4 -4
  153. data/autohotkey/tools/tlm_viewer5.ahk +20 -20
  154. data/bin/cosmos +96 -96
  155. data/bin/cstol_converter +1166 -1166
  156. data/bin/rubysloc +85 -85
  157. data/cosmos.gemspec +98 -97
  158. data/data/about.txt +4 -4
  159. data/data/crc.txt +306 -305
  160. data/data/diamond.STL +57 -57
  161. data/data/legal.txt +9 -9
  162. data/demo/Gemfile +6 -6
  163. data/demo/Launcher +15 -15
  164. data/demo/Launcher.bat +59 -59
  165. data/demo/Rakefile +61 -61
  166. data/demo/config/data/crc.txt +222 -206
  167. data/demo/config/data/diamond.STL +57 -57
  168. data/demo/config/data/meta_init.txt +4 -4
  169. data/demo/config/system/system.txt +34 -34
  170. data/demo/config/system/system2.txt +33 -33
  171. data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
  172. data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
  173. data/demo/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
  174. data/demo/config/targets/COSMOS/screens/limits_change.txt +20 -20
  175. data/demo/config/targets/COSMOS/screens/version.txt +19 -19
  176. data/demo/config/targets/COSMOS/target.txt +11 -11
  177. data/demo/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +2 -2
  178. data/demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +3 -3
  179. data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -6
  180. data/demo/config/targets/EXAMPLE/lib/example_interface.rb +22 -22
  181. data/demo/config/targets/EXAMPLE/target.txt +6 -6
  182. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -121
  183. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +247 -247
  184. data/demo/config/targets/INST/cmd_tlm_server.txt +5 -5
  185. data/demo/config/targets/INST/lib/example_limits_response.rb +30 -30
  186. data/demo/config/targets/INST/lib/sim_inst.rb +305 -294
  187. data/demo/config/targets/INST/screens/adcs.txt +46 -46
  188. data/demo/config/targets/INST/screens/array.txt +15 -15
  189. data/demo/config/targets/INST/screens/block.txt +8 -8
  190. data/demo/config/targets/INST/screens/commanding.txt +30 -30
  191. data/demo/config/targets/INST/screens/graphs.txt +14 -14
  192. data/demo/config/targets/INST/screens/ground.txt +25 -25
  193. data/demo/config/targets/INST/screens/hs.txt +44 -44
  194. data/demo/config/targets/INST/screens/latest.txt +23 -23
  195. data/demo/config/targets/INST/screens/other.txt +29 -29
  196. data/demo/config/targets/INST/screens/tabs.txt +70 -70
  197. data/demo/config/targets/INST/target.txt +33 -33
  198. data/demo/config/targets/META/cmd_tlm/meta_cmd.txt +10 -10
  199. data/demo/config/targets/META/cmd_tlm/meta_tlm.txt +13 -13
  200. data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
  201. data/demo/config/targets/SYSTEM/cmd_tlm/override.txt +29 -29
  202. data/demo/config/targets/SYSTEM/screens/status.txt +12 -12
  203. data/demo/config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +13 -12
  204. data/demo/config/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -3
  205. data/demo/config/targets/TEMPLATED/cmd_tlm_server.txt +6 -6
  206. data/demo/config/targets/TEMPLATED/lib/templated_interface.rb +54 -48
  207. data/demo/config/targets/TEMPLATED/target.txt +6 -6
  208. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +33 -33
  209. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +29 -29
  210. data/demo/config/tools/data_viewer/data_viewer.txt +11 -11
  211. data/demo/config/tools/handbook_creator/handbook_creator.txt +66 -66
  212. data/demo/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
  213. data/demo/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
  214. data/demo/config/tools/handbook_creator/templates/footer.html.erb +9 -9
  215. data/demo/config/tools/handbook_creator/templates/header.html.erb +25 -25
  216. data/demo/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
  217. data/demo/config/tools/handbook_creator/templates/nav.html.erb +27 -27
  218. data/demo/config/tools/handbook_creator/templates/overview.html.erb +1 -1
  219. data/demo/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
  220. data/demo/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
  221. data/demo/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
  222. data/demo/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
  223. data/demo/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
  224. data/demo/config/tools/handbook_creator/templates/title.html.erb +1 -1
  225. data/demo/config/tools/launcher/launcher.txt +45 -45
  226. data/demo/config/tools/launcher/launcher2.txt +45 -45
  227. data/demo/config/tools/script_runner/script_runner.txt +3 -3
  228. data/demo/config/tools/table_manager/ConfigTables_def.txt +8 -8
  229. data/demo/config/tools/table_manager/ExampleTableDefinition.txt +24 -24
  230. data/demo/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -25
  231. data/demo/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -25
  232. data/demo/config/tools/table_manager/PPSSelectionTable_def.txt +8 -8
  233. data/demo/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -248
  234. data/demo/config/tools/test_runner/test_runner.txt +17 -17
  235. data/demo/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
  236. data/demo/config/tools/tlm_extractor/tlm_extractor2.txt +2 -2
  237. data/demo/config/tools/tlm_extractor/tlm_extractor3.txt +2 -2
  238. data/demo/config/tools/tlm_extractor/tlm_extractor4.txt +2 -2
  239. data/demo/config/tools/tlm_viewer/tlm_viewer.txt +41 -41
  240. data/demo/lib/example_background_task.rb +57 -52
  241. data/demo/lib/example_target.rb +113 -108
  242. data/demo/lib/scpi_target.rb +74 -74
  243. data/demo/lib/user_version.rb +3 -3
  244. data/demo/procedures/checks.rb +11 -11
  245. data/demo/procedures/clear_util.rb +7 -7
  246. data/demo/procedures/collect.rb +18 -18
  247. data/demo/procedures/collect_util.rb +14 -14
  248. data/demo/procedures/cosmos_api_test.rb +293 -293
  249. data/demo/procedures/disconnect.rb +29 -29
  250. data/demo/procedures/example_test.rb +182 -182
  251. data/demo/procedures/plot_test.rb +8 -8
  252. data/demo/procedures/run_example_test.rb +3 -3
  253. data/demo/procedures/test.rb +51 -51
  254. data/demo/tools/CmdExtractor +15 -15
  255. data/demo/tools/CmdExtractor.bat +59 -59
  256. data/demo/tools/CmdSender +15 -15
  257. data/demo/tools/CmdSender.bat +59 -59
  258. data/demo/tools/CmdTlmServer +15 -15
  259. data/demo/tools/CmdTlmServer.bat +59 -59
  260. data/demo/tools/DataViewer +15 -15
  261. data/demo/tools/DataViewer.bat +59 -59
  262. data/demo/tools/ExampleTarget +15 -15
  263. data/demo/tools/ExampleTarget.bat +59 -59
  264. data/demo/tools/HandbookCreator +15 -15
  265. data/demo/tools/HandbookCreator.bat +61 -61
  266. data/demo/tools/Launcher +15 -15
  267. data/demo/tools/Launcher.bat +59 -59
  268. data/demo/tools/LimitsMonitor +15 -15
  269. data/demo/tools/LimitsMonitor.bat +59 -59
  270. data/demo/tools/OpenGLBuilder +15 -15
  271. data/demo/tools/OpenGLBuilder.bat +59 -59
  272. data/demo/tools/PacketViewer +15 -15
  273. data/demo/tools/PacketViewer.bat +59 -59
  274. data/demo/tools/Replay +15 -15
  275. data/demo/tools/Replay.bat +59 -59
  276. data/demo/tools/ScpiTarget +15 -15
  277. data/demo/tools/ScpiTarget.bat +59 -59
  278. data/demo/tools/ScriptRunner +15 -15
  279. data/demo/tools/ScriptRunner.bat +59 -59
  280. data/demo/tools/TableManager +15 -15
  281. data/demo/tools/TableManager.bat +59 -59
  282. data/demo/tools/TestRunner +15 -15
  283. data/demo/tools/TestRunner.bat +59 -59
  284. data/demo/tools/TlmExtractor +15 -15
  285. data/demo/tools/TlmExtractor.bat +59 -59
  286. data/demo/tools/TlmGrapher +15 -15
  287. data/demo/tools/TlmGrapher.bat +59 -59
  288. data/demo/tools/TlmViewer +15 -15
  289. data/demo/tools/TlmViewer.bat +59 -59
  290. data/demo/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
  291. data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -15
  292. data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -6
  293. data/demo/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
  294. data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -15
  295. data/demo/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -6
  296. data/demo/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
  297. data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -15
  298. data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -6
  299. data/demo/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
  300. data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -15
  301. data/demo/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -6
  302. data/demo/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
  303. data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -15
  304. data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -6
  305. data/demo/tools/mac/Launcher.app/Contents/Info.plist +38 -38
  306. data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -15
  307. data/demo/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -6
  308. data/demo/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
  309. data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -15
  310. data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -6
  311. data/demo/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
  312. data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -15
  313. data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -6
  314. data/demo/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
  315. data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -15
  316. data/demo/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -6
  317. data/demo/tools/mac/Replay.app/Contents/Info.plist +38 -38
  318. data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -15
  319. data/demo/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -6
  320. data/demo/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
  321. data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -15
  322. data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -6
  323. data/demo/tools/mac/TableManager.app/Contents/Info.plist +38 -38
  324. data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -15
  325. data/demo/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -6
  326. data/demo/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
  327. data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -15
  328. data/demo/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -6
  329. data/demo/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
  330. data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -15
  331. data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -6
  332. data/demo/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
  333. data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -15
  334. data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -6
  335. data/demo/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
  336. data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -15
  337. data/demo/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -6
  338. data/ext/cosmos/ext/array/array.c +111 -111
  339. data/ext/cosmos/ext/array/extconf.rb +13 -13
  340. data/ext/cosmos/ext/buffered_file/buffered_file.c +167 -167
  341. data/ext/cosmos/ext/buffered_file/extconf.rb +13 -13
  342. data/ext/cosmos/ext/config_parser/config_parser.c +237 -237
  343. data/ext/cosmos/ext/config_parser/extconf.rb +13 -13
  344. data/ext/cosmos/ext/cosmos_io/cosmos_io.c +117 -117
  345. data/ext/cosmos/ext/cosmos_io/extconf.rb +13 -13
  346. data/ext/cosmos/ext/crc/crc.c +341 -341
  347. data/ext/cosmos/ext/crc/extconf.rb +12 -12
  348. data/ext/cosmos/ext/line_graph/extconf.rb +13 -13
  349. data/ext/cosmos/ext/line_graph/line_graph.c +501 -501
  350. data/ext/cosmos/ext/low_fragmentation_array/extconf.rb +12 -12
  351. data/ext/cosmos/ext/low_fragmentation_array/low_fragmentation_array.c +261 -261
  352. data/ext/cosmos/ext/packet/extconf.rb +13 -13
  353. data/ext/cosmos/ext/packet/packet.c +339 -339
  354. data/ext/cosmos/ext/platform/extconf.rb +13 -13
  355. data/ext/cosmos/ext/platform/platform.c +81 -81
  356. data/ext/cosmos/ext/polynomial_conversion/extconf.rb +13 -13
  357. data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +73 -73
  358. data/ext/cosmos/ext/string/extconf.rb +13 -13
  359. data/ext/cosmos/ext/string/string.c +49 -49
  360. data/ext/cosmos/ext/structure/structure.c +894 -894
  361. data/ext/cosmos/ext/tabbed_plots_config/extconf.rb +13 -13
  362. data/ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c +51 -51
  363. data/ext/cosmos/ext/telemetry/extconf.rb +13 -13
  364. data/ext/cosmos/ext/telemetry/telemetry.c +306 -306
  365. data/ext/mkrf_conf.rb +40 -40
  366. data/install/Gemfile +6 -6
  367. data/install/Launcher +14 -14
  368. data/install/Launcher.bat +59 -59
  369. data/install/Rakefile +61 -61
  370. data/install/config/data/crc.txt +134 -133
  371. data/install/config/system/system.txt +29 -29
  372. data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
  373. data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
  374. data/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
  375. data/install/config/targets/COSMOS/screens/limits_change.txt +20 -20
  376. data/install/config/targets/COSMOS/screens/version.txt +19 -19
  377. data/install/config/targets/COSMOS/target.txt +8 -8
  378. data/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
  379. data/install/config/tools/data_viewer/data_viewer.txt +3 -3
  380. data/install/config/tools/handbook_creator/handbook_creator.txt +49 -49
  381. data/install/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
  382. data/install/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
  383. data/install/config/tools/handbook_creator/templates/footer.html.erb +9 -9
  384. data/install/config/tools/handbook_creator/templates/header.html.erb +25 -25
  385. data/install/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
  386. data/install/config/tools/handbook_creator/templates/nav.html.erb +27 -27
  387. data/install/config/tools/handbook_creator/templates/overview.html.erb +1 -1
  388. data/install/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
  389. data/install/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
  390. data/install/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
  391. data/install/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
  392. data/install/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
  393. data/install/config/tools/handbook_creator/templates/title.html.erb +1 -1
  394. data/install/config/tools/launcher/launcher.txt +39 -39
  395. data/install/config/tools/script_runner/script_runner.txt +3 -3
  396. data/install/config/tools/test_runner/test_runner.txt +8 -8
  397. data/install/config/tools/tlm_viewer/tlm_viewer.txt +5 -5
  398. data/install/lib/user_version.rb +3 -3
  399. data/install/tools/CmdExtractor +15 -15
  400. data/install/tools/CmdExtractor.bat +59 -59
  401. data/install/tools/CmdSender +15 -15
  402. data/install/tools/CmdSender.bat +59 -59
  403. data/install/tools/CmdTlmServer +15 -15
  404. data/install/tools/CmdTlmServer.bat +59 -59
  405. data/install/tools/DataViewer +15 -15
  406. data/install/tools/DataViewer.bat +59 -59
  407. data/install/tools/HandbookCreator +15 -15
  408. data/install/tools/HandbookCreator.bat +61 -61
  409. data/install/tools/Launcher +15 -15
  410. data/install/tools/Launcher.bat +59 -59
  411. data/install/tools/LimitsMonitor +15 -15
  412. data/install/tools/LimitsMonitor.bat +59 -59
  413. data/install/tools/OpenGLBuilder +15 -15
  414. data/install/tools/OpenGLBuilder.bat +59 -59
  415. data/install/tools/PacketViewer +15 -15
  416. data/install/tools/PacketViewer.bat +59 -59
  417. data/install/tools/Replay +15 -15
  418. data/install/tools/Replay.bat +59 -59
  419. data/install/tools/ScriptRunner +15 -15
  420. data/install/tools/ScriptRunner.bat +59 -59
  421. data/install/tools/TableManager +15 -15
  422. data/install/tools/TableManager.bat +59 -59
  423. data/install/tools/TestRunner +15 -15
  424. data/install/tools/TestRunner.bat +59 -59
  425. data/install/tools/TlmExtractor +15 -15
  426. data/install/tools/TlmExtractor.bat +59 -59
  427. data/install/tools/TlmGrapher +15 -15
  428. data/install/tools/TlmGrapher.bat +59 -59
  429. data/install/tools/TlmViewer +15 -15
  430. data/install/tools/TlmViewer.bat +59 -59
  431. data/install/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
  432. data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -15
  433. data/install/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -6
  434. data/install/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
  435. data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -15
  436. data/install/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -6
  437. data/install/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
  438. data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -15
  439. data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -6
  440. data/install/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
  441. data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -15
  442. data/install/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -6
  443. data/install/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
  444. data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -15
  445. data/install/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -6
  446. data/install/tools/mac/Launcher.app/Contents/Info.plist +38 -38
  447. data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -15
  448. data/install/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -6
  449. data/install/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
  450. data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -15
  451. data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -6
  452. data/install/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
  453. data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -15
  454. data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -6
  455. data/install/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
  456. data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -15
  457. data/install/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -6
  458. data/install/tools/mac/Replay.app/Contents/Info.plist +38 -38
  459. data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -15
  460. data/install/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -6
  461. data/install/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
  462. data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -15
  463. data/install/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -6
  464. data/install/tools/mac/TableManager.app/Contents/Info.plist +38 -38
  465. data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -15
  466. data/install/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -6
  467. data/install/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
  468. data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -15
  469. data/install/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -6
  470. data/install/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
  471. data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -15
  472. data/install/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -6
  473. data/install/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
  474. data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -15
  475. data/install/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -6
  476. data/install/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
  477. data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -15
  478. data/install/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -6
  479. data/lib/cosmos.rb +63 -63
  480. data/lib/cosmos/ccsds/ccsds_packet.rb +63 -63
  481. data/lib/cosmos/ccsds/ccsds_parser.rb +143 -143
  482. data/lib/cosmos/config/config_parser.rb +324 -324
  483. data/lib/cosmos/conversions.rb +13 -13
  484. data/lib/cosmos/conversions/conversion.rb +47 -47
  485. data/lib/cosmos/conversions/generic_conversion.rb +55 -55
  486. data/lib/cosmos/conversions/new_packet_log_conversion.rb +45 -45
  487. data/lib/cosmos/conversions/polynomial_conversion.rb +57 -57
  488. data/lib/cosmos/conversions/processor_conversion.rb +46 -46
  489. data/lib/cosmos/conversions/received_count_conversion.rb +33 -33
  490. data/lib/cosmos/conversions/received_time_formatted_conversion.rb +37 -37
  491. data/lib/cosmos/conversions/received_time_seconds_conversion.rb +37 -37
  492. data/lib/cosmos/conversions/segmented_polynomial_conversion.rb +128 -128
  493. data/lib/cosmos/conversions/unix_time_conversion.rb +50 -50
  494. data/lib/cosmos/conversions/unix_time_formatted_conversion.rb +44 -44
  495. data/lib/cosmos/conversions/unix_time_seconds_conversion.rb +44 -44
  496. data/lib/cosmos/core_ext.rb +18 -18
  497. data/lib/cosmos/core_ext/array.rb +354 -354
  498. data/lib/cosmos/core_ext/class.rb +51 -51
  499. data/lib/cosmos/core_ext/cosmos_io.rb +29 -29
  500. data/lib/cosmos/core_ext/exception.rb +52 -52
  501. data/lib/cosmos/core_ext/file.rb +75 -75
  502. data/lib/cosmos/core_ext/hash.rb +28 -28
  503. data/lib/cosmos/core_ext/io.rb +75 -75
  504. data/lib/cosmos/core_ext/kernel.rb +38 -38
  505. data/lib/cosmos/core_ext/math.rb +119 -119
  506. data/lib/cosmos/core_ext/matrix.rb +146 -146
  507. data/lib/cosmos/core_ext/objectspace.rb +29 -29
  508. data/lib/cosmos/core_ext/range.rb +22 -22
  509. data/lib/cosmos/core_ext/socket.rb +32 -32
  510. data/lib/cosmos/core_ext/string.rb +310 -310
  511. data/lib/cosmos/core_ext/stringio.rb +24 -24
  512. data/lib/cosmos/core_ext/time.rb +446 -446
  513. data/lib/cosmos/gui/choosers/combobox_chooser.rb +130 -130
  514. data/lib/cosmos/gui/choosers/file_chooser.rb +68 -68
  515. data/lib/cosmos/gui/choosers/float_chooser.rb +82 -82
  516. data/lib/cosmos/gui/choosers/integer_chooser.rb +80 -80
  517. data/lib/cosmos/gui/choosers/string_chooser.rb +53 -53
  518. data/lib/cosmos/gui/choosers/telemetry_chooser.rb +317 -317
  519. data/lib/cosmos/gui/dialogs/about_dialog.rb +128 -128
  520. data/lib/cosmos/gui/dialogs/calendar_dialog.rb +136 -136
  521. data/lib/cosmos/gui/dialogs/cmd_details_dialog.rb +52 -52
  522. data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +149 -149
  523. data/lib/cosmos/gui/dialogs/details_dialog.rb +174 -174
  524. data/lib/cosmos/gui/dialogs/exception_dialog.rb +97 -97
  525. data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +59 -59
  526. data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +196 -196
  527. data/lib/cosmos/gui/dialogs/legal_dialog.rb +169 -168
  528. data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +118 -118
  529. data/lib/cosmos/gui/dialogs/progress_dialog.rb +270 -262
  530. data/lib/cosmos/gui/dialogs/pry_dialog.rb +165 -161
  531. data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +37 -37
  532. data/lib/cosmos/gui/dialogs/select_dialog.rb +54 -54
  533. data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +131 -131
  534. data/lib/cosmos/gui/dialogs/splash.rb +113 -113
  535. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +206 -206
  536. data/lib/cosmos/gui/dialogs/tlm_edit_dialog.rb +81 -81
  537. data/lib/cosmos/gui/line_graph/line_graph.rb +456 -456
  538. data/lib/cosmos/gui/line_graph/line_graph_dialog.rb +34 -34
  539. data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +494 -494
  540. data/lib/cosmos/gui/line_graph/line_graph_popups.rb +116 -116
  541. data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +460 -460
  542. data/lib/cosmos/gui/line_graph/line_graph_script.rb +26 -26
  543. data/lib/cosmos/gui/line_graph/lines.rb +290 -290
  544. data/lib/cosmos/gui/line_graph/overview_graph.rb +459 -459
  545. data/lib/cosmos/gui/opengl/earth_model.rb +22 -22
  546. data/lib/cosmos/gui/opengl/gl_bounds.rb +67 -67
  547. data/lib/cosmos/gui/opengl/gl_light.rb +39 -39
  548. data/lib/cosmos/gui/opengl/gl_material.rb +29 -29
  549. data/lib/cosmos/gui/opengl/gl_scene.rb +72 -72
  550. data/lib/cosmos/gui/opengl/gl_shape.rb +146 -146
  551. data/lib/cosmos/gui/opengl/gl_viewer.rb +724 -712
  552. data/lib/cosmos/gui/opengl/gl_viewport.rb +35 -35
  553. data/lib/cosmos/gui/opengl/moon_model.rb +22 -22
  554. data/lib/cosmos/gui/opengl/opengl.rb +8 -8
  555. data/lib/cosmos/gui/opengl/stl_reader.rb +211 -211
  556. data/lib/cosmos/gui/opengl/stl_shape.rb +124 -124
  557. data/lib/cosmos/gui/opengl/texture_mapped_sphere.rb +202 -202
  558. data/lib/cosmos/gui/qt.rb +813 -786
  559. data/lib/cosmos/gui/qt_tool.rb +378 -373
  560. data/lib/cosmos/gui/text/completion.rb +381 -381
  561. data/lib/cosmos/gui/text/completion_line_edit.rb +30 -30
  562. data/lib/cosmos/gui/text/completion_text_edit.rb +179 -179
  563. data/lib/cosmos/gui/text/ruby_editor.rb +395 -395
  564. data/lib/cosmos/gui/utilities/screenshot.rb +25 -25
  565. data/lib/cosmos/gui/utilities/script_module_gui.rb +203 -203
  566. data/lib/cosmos/gui/widgets/full_text_search_line_edit.rb +161 -161
  567. data/lib/cosmos/gui/widgets/packet_log_frame.rb +305 -305
  568. data/lib/cosmos/gui/widgets/realtime_button_bar.rb +98 -98
  569. data/lib/cosmos/interfaces.rb +11 -11
  570. data/lib/cosmos/interfaces/cmd_tlm_server_interface.rb +153 -149
  571. data/lib/cosmos/interfaces/interface.rb +213 -213
  572. data/lib/cosmos/interfaces/linc_interface.rb +360 -360
  573. data/lib/cosmos/interfaces/serial_interface.rb +76 -76
  574. data/lib/cosmos/interfaces/simulated_target_interface.rb +129 -128
  575. data/lib/cosmos/interfaces/stream_interface.rb +156 -156
  576. data/lib/cosmos/interfaces/tcpip_client_interface.rb +60 -60
  577. data/lib/cosmos/interfaces/tcpip_server_interface.rb +154 -154
  578. data/lib/cosmos/interfaces/udp_interface.rb +173 -173
  579. data/lib/cosmos/io/buffered_file.rb +11 -11
  580. data/lib/cosmos/io/cosmos_snmp.rb +50 -50
  581. data/lib/cosmos/io/io_multiplexer.rb +89 -89
  582. data/lib/cosmos/io/json_drb.rb +344 -320
  583. data/lib/cosmos/io/json_drb_object.rb +137 -137
  584. data/lib/cosmos/io/json_rpc.rb +365 -365
  585. data/lib/cosmos/io/posix_serial_driver.rb +145 -145
  586. data/lib/cosmos/io/raw_logger.rb +174 -174
  587. data/lib/cosmos/io/raw_logger_pair.rb +71 -71
  588. data/lib/cosmos/io/serial_driver.rb +85 -85
  589. data/lib/cosmos/io/stderr.rb +36 -36
  590. data/lib/cosmos/io/stdout.rb +36 -36
  591. data/lib/cosmos/io/tcpip_server.rb +583 -532
  592. data/lib/cosmos/io/udp_sockets.rb +152 -152
  593. data/lib/cosmos/io/win32_serial_driver.rb +147 -147
  594. data/lib/cosmos/packet_logs.rb +6 -6
  595. data/lib/cosmos/packet_logs/meta_packet_log_writer.rb +107 -107
  596. data/lib/cosmos/packet_logs/packet_log_reader.rb +441 -439
  597. data/lib/cosmos/packet_logs/packet_log_writer.rb +321 -309
  598. data/lib/cosmos/packet_logs/packet_log_writer_pair.rb +30 -30
  599. data/lib/cosmos/packets/binary_accessor.rb +921 -921
  600. data/lib/cosmos/packets/commands.rb +291 -291
  601. data/lib/cosmos/packets/limits.rb +263 -263
  602. data/lib/cosmos/packets/limits_response.rb +38 -38
  603. data/lib/cosmos/packets/packet.rb +714 -699
  604. data/lib/cosmos/packets/packet_config.rb +1034 -1034
  605. data/lib/cosmos/packets/packet_item.rb +317 -317
  606. data/lib/cosmos/packets/packet_item_limits.rb +128 -128
  607. data/lib/cosmos/packets/structure.rb +421 -386
  608. data/lib/cosmos/packets/structure_item.rb +233 -233
  609. data/lib/cosmos/packets/telemetry.rb +317 -317
  610. data/lib/cosmos/processors.rb +6 -6
  611. data/lib/cosmos/processors/new_packet_log_processor.rb +34 -34
  612. data/lib/cosmos/processors/processor.rb +71 -71
  613. data/lib/cosmos/processors/statistics_processor.rb +65 -65
  614. data/lib/cosmos/processors/watermark_processor.rb +44 -44
  615. data/lib/cosmos/script.rb +9 -9
  616. data/lib/cosmos/script/extract.rb +115 -115
  617. data/lib/cosmos/script/script.rb +1513 -1493
  618. data/lib/cosmos/streams/burst_stream_protocol.rb +25 -25
  619. data/lib/cosmos/streams/fixed_stream_protocol.rb +111 -111
  620. data/lib/cosmos/streams/length_stream_protocol.rb +140 -140
  621. data/lib/cosmos/streams/preidentified_stream_protocol.rb +118 -118
  622. data/lib/cosmos/streams/serial_stream.rb +152 -143
  623. data/lib/cosmos/streams/stream.rb +57 -57
  624. data/lib/cosmos/streams/stream_protocol.rb +369 -369
  625. data/lib/cosmos/streams/tcpip_client_stream.rb +77 -77
  626. data/lib/cosmos/streams/tcpip_socket_stream.rb +139 -139
  627. data/lib/cosmos/streams/template_stream_protocol.rb +140 -140
  628. data/lib/cosmos/streams/terminated_stream_protocol.rb +81 -81
  629. data/lib/cosmos/system.rb +4 -4
  630. data/lib/cosmos/system/system.rb +558 -558
  631. data/lib/cosmos/system/target.rb +178 -178
  632. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +254 -253
  633. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +716 -716
  634. data/lib/cosmos/tools/cmd_sender/cmd_sender_item_delegate.rb +77 -77
  635. data/lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb +70 -70
  636. data/lib/cosmos/tools/cmd_tlm_server/api.rb +936 -940
  637. data/lib/cosmos/tools/cmd_tlm_server/background_task.rb +46 -46
  638. data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +67 -63
  639. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +511 -497
  640. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +241 -241
  641. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1033 -1008
  642. data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +112 -112
  643. data/lib/cosmos/tools/cmd_tlm_server/connections.rb +176 -176
  644. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +241 -221
  645. data/lib/cosmos/tools/cmd_tlm_server/interfaces.rb +127 -127
  646. data/lib/cosmos/tools/cmd_tlm_server/packet_logging.rb +132 -132
  647. data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +66 -66
  648. data/lib/cosmos/tools/cmd_tlm_server/routers.rb +97 -97
  649. data/lib/cosmos/tools/data_viewer/data_viewer.rb +628 -600
  650. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +167 -167
  651. data/lib/cosmos/tools/data_viewer/dump_component.rb +40 -40
  652. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +149 -149
  653. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +360 -360
  654. data/lib/cosmos/tools/launcher/launcher.rb +184 -184
  655. data/lib/cosmos/tools/launcher/launcher_config.rb +175 -167
  656. data/lib/cosmos/tools/launcher/launcher_multitool.rb +40 -41
  657. data/lib/cosmos/tools/launcher/launcher_tool.rb +104 -104
  658. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +796 -768
  659. data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +416 -416
  660. data/lib/cosmos/tools/opengl_builder/scene_config.rb +118 -118
  661. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +525 -525
  662. data/lib/cosmos/tools/replay/replay.rb +495 -488
  663. data/lib/cosmos/tools/replay/replay_server.rb +91 -91
  664. data/lib/cosmos/tools/script_runner/script_audit.rb +147 -139
  665. data/lib/cosmos/tools/script_runner/script_runner.rb +914 -914
  666. data/lib/cosmos/tools/script_runner/script_runner_config.rb +40 -40
  667. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +1892 -1859
  668. data/lib/cosmos/tools/table_manager/table.rb +70 -70
  669. data/lib/cosmos/tools/table_manager/table_config.rb +764 -764
  670. data/lib/cosmos/tools/table_manager/table_item.rb +74 -74
  671. data/lib/cosmos/tools/table_manager/table_manager.rb +1065 -1065
  672. data/lib/cosmos/tools/table_manager/table_manager_core.rb +539 -539
  673. data/lib/cosmos/tools/test_runner/results_writer.rb +283 -283
  674. data/lib/cosmos/tools/test_runner/test.rb +480 -480
  675. data/lib/cosmos/tools/test_runner/test_runner.rb +1157 -1157
  676. data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +338 -338
  677. data/lib/cosmos/tools/tlm_extractor/text_item_chooser.rb +60 -60
  678. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +1008 -1008
  679. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +371 -371
  680. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +60 -60
  681. data/lib/cosmos/tools/tlm_grapher/data_object_adders/housekeeping_data_object_adder.rb +75 -75
  682. data/lib/cosmos/tools/tlm_grapher/data_object_adders/singlexy_data_object_adder.rb +44 -44
  683. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +94 -94
  684. data/lib/cosmos/tools/tlm_grapher/data_object_editors/data_object_editor.rb +61 -61
  685. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +180 -180
  686. data/lib/cosmos/tools/tlm_grapher/data_object_editors/linegraph_data_object_editor.rb +141 -141
  687. data/lib/cosmos/tools/tlm_grapher/data_object_editors/singlexy_data_object_editor.rb +30 -30
  688. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +173 -173
  689. data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +177 -177
  690. data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +412 -409
  691. data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +176 -176
  692. data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +25 -25
  693. data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +323 -320
  694. data/lib/cosmos/tools/tlm_grapher/plot_editors/linegraph_plot_editor.rb +181 -181
  695. data/lib/cosmos/tools/tlm_grapher/plot_editors/plot_editor.rb +28 -28
  696. data/lib/cosmos/tools/tlm_grapher/plot_editors/singlexy_plot_editor.rb +30 -30
  697. data/lib/cosmos/tools/tlm_grapher/plot_editors/xy_plot_editor.rb +59 -59
  698. data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/linegraph_plot_gui_object.rb +172 -172
  699. data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/singlexy_plot_gui_object.rb +27 -27
  700. data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/xy_plot_gui_object.rb +74 -74
  701. data/lib/cosmos/tools/tlm_grapher/plots/linegraph_plot.rb +201 -201
  702. data/lib/cosmos/tools/tlm_grapher/plots/plot.rb +69 -69
  703. data/lib/cosmos/tools/tlm_grapher/plots/singlexy_plot.rb +20 -20
  704. data/lib/cosmos/tools/tlm_grapher/plots/xy_plot.rb +61 -61
  705. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +1278 -1278
  706. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +430 -430
  707. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb +107 -107
  708. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +111 -95
  709. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb +101 -101
  710. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +72 -66
  711. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tab.rb +57 -57
  712. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +1004 -1004
  713. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +87 -87
  714. data/lib/cosmos/tools/tlm_viewer/screen.rb +486 -458
  715. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +563 -544
  716. data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +287 -287
  717. data/lib/cosmos/tools/tlm_viewer/widgets.rb +53 -53
  718. data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +110 -110
  719. data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +70 -70
  720. data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +61 -61
  721. data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +39 -39
  722. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +62 -62
  723. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +41 -41
  724. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +57 -57
  725. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +37 -37
  726. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +56 -56
  727. data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +55 -55
  728. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +66 -66
  729. data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +124 -124
  730. data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +31 -31
  731. data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +30 -30
  732. data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +36 -36
  733. data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +35 -35
  734. data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +27 -27
  735. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +31 -31
  736. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +26 -26
  737. data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +29 -29
  738. data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +39 -39
  739. data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +38 -38
  740. data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +38 -38
  741. data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +39 -39
  742. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +42 -42
  743. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +37 -37
  744. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +37 -37
  745. data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +34 -34
  746. data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +178 -178
  747. data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +54 -54
  748. data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +47 -47
  749. data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +116 -116
  750. data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +34 -34
  751. data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +30 -30
  752. data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +57 -57
  753. data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +34 -34
  754. data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +35 -35
  755. data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +33 -33
  756. data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +26 -26
  757. data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +28 -28
  758. data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +47 -47
  759. data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +26 -26
  760. data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +88 -88
  761. data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +27 -27
  762. data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +130 -130
  763. data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +46 -46
  764. data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +43 -43
  765. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +37 -37
  766. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +37 -37
  767. data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +35 -35
  768. data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +37 -37
  769. data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +257 -257
  770. data/lib/cosmos/top_level.rb +647 -596
  771. data/lib/cosmos/utilities.rb +11 -10
  772. data/lib/cosmos/utilities/crc.rb +166 -166
  773. data/lib/cosmos/utilities/csv.rb +83 -83
  774. data/lib/cosmos/utilities/logger.rb +137 -137
  775. data/lib/cosmos/utilities/low_fragmentation_array.rb +11 -11
  776. data/lib/cosmos/utilities/message_log.rb +74 -74
  777. data/lib/cosmos/utilities/quaternion.rb +258 -258
  778. data/lib/cosmos/utilities/ruby_lex_utils.rb +313 -313
  779. data/lib/cosmos/utilities/simulated_target.rb +99 -99
  780. data/lib/cosmos/utilities/sleeper.rb +44 -0
  781. data/lib/cosmos/version.rb +12 -12
  782. data/lib/cosmos/win32/excel.rb +66 -66
  783. data/lib/cosmos/win32/win32.rb +387 -387
  784. data/lib/cosmos/win32/win32_main.rb +311 -311
  785. data/roodi.yml +24 -24
  786. data/run_gui_tests.bat +32 -32
  787. data/spec/ccsds/ccsds_packet_spec.rb +67 -67
  788. data/spec/ccsds/ccsds_parser_spec.rb +148 -148
  789. data/spec/config/config_parser_spec.rb +322 -322
  790. data/spec/conversions/conversion_spec.rb +31 -31
  791. data/spec/conversions/generic_conversion_spec.rb +45 -45
  792. data/spec/conversions/new_packet_log_conversion_spec.rb +39 -39
  793. data/spec/conversions/polynomial_conversion_spec.rb +40 -40
  794. data/spec/conversions/processor_conversion_spec.rb +45 -45
  795. data/spec/conversions/received_count_conversion_spec.rb +43 -43
  796. data/spec/conversions/received_time_formatted_conversion_spec.rb +49 -49
  797. data/spec/conversions/received_time_seconds_conversion_spec.rb +50 -50
  798. data/spec/conversions/segmented_polynomial_conversion_spec.rb +51 -51
  799. data/spec/conversions/unix_time_formatted_conversion_spec.rb +74 -74
  800. data/spec/conversions/unix_time_seconds_conversion_spec.rb +76 -76
  801. data/spec/core_ext/array_spec.rb +186 -186
  802. data/spec/core_ext/class_spec.rb +36 -36
  803. data/spec/core_ext/cosmos_io_spec.rb +77 -77
  804. data/spec/core_ext/exception_spec.rb +91 -91
  805. data/spec/core_ext/file_spec.rb +72 -72
  806. data/spec/core_ext/hash_spec.rb +24 -24
  807. data/spec/core_ext/io_spec.rb +46 -46
  808. data/spec/core_ext/kernel_spec.rb +54 -54
  809. data/spec/core_ext/math_spec.rb +116 -116
  810. data/spec/core_ext/matrix_spec.rb +66 -66
  811. data/spec/core_ext/objectspace_spec.rb +29 -29
  812. data/spec/core_ext/range_spec.rb +21 -21
  813. data/spec/core_ext/socket_spec.rb +32 -32
  814. data/spec/core_ext/string_spec.rb +223 -223
  815. data/spec/core_ext/stringio_spec.rb +21 -21
  816. data/spec/core_ext/time_spec.rb +151 -151
  817. data/spec/gui/line_graph/line_clip_spec.rb +322 -322
  818. data/spec/install/config/system/system.txt +33 -33
  819. data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
  820. data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
  821. data/spec/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
  822. data/spec/install/config/targets/COSMOS/screens/limits_change.txt +20 -20
  823. data/spec/install/config/targets/COSMOS/screens/version.txt +19 -19
  824. data/spec/install/config/targets/COSMOS/target.txt +5 -5
  825. data/spec/install/config/targets/INST/cmd_tlm/inst_cmd_linc.txt +30 -30
  826. data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +111 -111
  827. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +236 -236
  828. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm_linc.txt +25 -25
  829. data/spec/install/config/targets/INST/cmd_tlm_server.txt +5 -5
  830. data/spec/install/config/targets/INST/lib/sim_inst.rb +305 -294
  831. data/spec/install/config/targets/INST/target.txt +10 -10
  832. data/spec/install/config/targets/META/cmd_tlm/meta_cmd.txt +4 -4
  833. data/spec/install/config/targets/META/cmd_tlm/meta_tlm.txt +4 -4
  834. data/spec/install/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
  835. data/spec/interfaces/cmd_tlm_server_interface_spec.rb +150 -150
  836. data/spec/interfaces/interface_spec.rb +130 -131
  837. data/spec/interfaces/linc_interface_spec.rb +199 -199
  838. data/spec/interfaces/serial_interface_spec.rb +56 -56
  839. data/spec/interfaces/simulated_target_interface_spec.rb +128 -128
  840. data/spec/interfaces/stream_interface_spec.rb +157 -157
  841. data/spec/interfaces/tcpip_client_interface_spec.rb +54 -54
  842. data/spec/interfaces/tcpip_server_interface_spec.rb +151 -151
  843. data/spec/interfaces/udp_interface_spec.rb +175 -177
  844. data/spec/io/buffered_file_spec.rb +113 -113
  845. data/spec/io/io_multiplexer_spec.rb +94 -94
  846. data/spec/io/json_drb_object_spec.rb +99 -99
  847. data/spec/io/json_drb_spec.rb +311 -311
  848. data/spec/io/json_rpc_spec.rb +264 -264
  849. data/spec/io/raw_logger_pair_spec.rb +76 -76
  850. data/spec/io/raw_logger_spec.rb +133 -133
  851. data/spec/io/serial_driver_spec.rb +61 -61
  852. data/spec/io/stderr_spec.rb +32 -32
  853. data/spec/io/stdout_spec.rb +32 -32
  854. data/spec/io/tcpip_server_spec.rb +338 -338
  855. data/spec/io/udp_sockets_spec.rb +94 -94
  856. data/spec/io/win32_serial_driver_spec.rb +88 -88
  857. data/spec/packet_logs/meta_packet_log_writer_spec.rb +170 -170
  858. data/spec/packet_logs/packet_log_reader_spec.rb +408 -408
  859. data/spec/packet_logs/packet_log_writer_pair_spec.rb +30 -30
  860. data/spec/packet_logs/packet_log_writer_spec.rb +223 -223
  861. data/spec/packets/binary_accessor_spec.rb +2073 -2073
  862. data/spec/packets/commands_spec.rb +369 -369
  863. data/spec/packets/limits_response_spec.rb +25 -25
  864. data/spec/packets/limits_spec.rb +326 -326
  865. data/spec/packets/packet_config_spec.rb +1620 -1620
  866. data/spec/packets/packet_item_limits_spec.rb +161 -161
  867. data/spec/packets/packet_item_spec.rb +386 -386
  868. data/spec/packets/packet_spec.rb +1057 -949
  869. data/spec/packets/structure_item_spec.rb +195 -195
  870. data/spec/packets/structure_spec.rb +419 -419
  871. data/spec/packets/telemetry_spec.rb +535 -535
  872. data/spec/processors/new_packet_log_processor_spec.rb +39 -39
  873. data/spec/processors/processor_spec.rb +55 -55
  874. data/spec/processors/statistics_processor_spec.rb +60 -60
  875. data/spec/processors/watermark_processor_spec.rb +51 -51
  876. data/spec/script/script_spec.rb +654 -654
  877. data/spec/spec_helper.rb +154 -148
  878. data/spec/streams/burst_stream_protocol_spec.rb +32 -32
  879. data/spec/streams/fixed_stream_protocol_spec.rb +110 -110
  880. data/spec/streams/length_stream_protocol_spec.rb +297 -297
  881. data/spec/streams/preidentified_stream_protocol_spec.rb +118 -118
  882. data/spec/streams/serial_stream_spec.rb +105 -105
  883. data/spec/streams/stream_protocol_spec.rb +332 -332
  884. data/spec/streams/stream_spec.rb +29 -29
  885. data/spec/streams/tcpip_client_stream_spec.rb +54 -54
  886. data/spec/streams/tcpip_socket_stream_spec.rb +146 -146
  887. data/spec/streams/template_stream_protocol_spec.rb +151 -151
  888. data/spec/streams/terminated_stream_protocol_spec.rb +123 -123
  889. data/spec/system/system_spec.rb +645 -645
  890. data/spec/system/target_spec.rb +248 -248
  891. data/spec/tools/cmd_tlm_server/api_spec.rb +1087 -1113
  892. data/spec/tools/cmd_tlm_server/background_task_spec.rb +32 -32
  893. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +81 -81
  894. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +411 -411
  895. data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +415 -415
  896. data/spec/tools/cmd_tlm_server/commanding_spec.rb +123 -123
  897. data/spec/tools/cmd_tlm_server/connections_spec.rb +147 -147
  898. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +306 -306
  899. data/spec/tools/cmd_tlm_server/interfaces_spec.rb +252 -238
  900. data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +143 -143
  901. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +98 -101
  902. data/spec/tools/cmd_tlm_server/routers_spec.rb +223 -208
  903. data/spec/top_level/top_level_spec.rb +334 -321
  904. data/spec/utilities/crc_spec.rb +45 -45
  905. data/spec/utilities/csv_spec.rb +97 -97
  906. data/spec/utilities/logger_spec.rb +102 -102
  907. data/spec/utilities/message_log_spec.rb +89 -89
  908. data/spec/utilities/quaternion_spec.rb +107 -107
  909. data/spec/utilities/ruby_lex_utils_spec.rb +86 -86
  910. data/tasks/manifest.rake +22 -22
  911. data/tasks/spec.rake +23 -23
  912. metadata +18 -2
@@ -1,21 +1,21 @@
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/core_ext/stringio'
13
-
14
- describe StringIO do
15
-
16
- describe "path" do
17
- it "should return nil" do
18
- StringIO.new.path.should be_nil
19
- end
20
- end
21
- end
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/core_ext/stringio'
13
+
14
+ describe StringIO do
15
+
16
+ describe "path" do
17
+ it "should return nil" do
18
+ StringIO.new.path.should be_nil
19
+ end
20
+ end
21
+ end
@@ -1,151 +1,151 @@
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/core_ext/time'
13
-
14
- describe Time do
15
-
16
- describe "CONSTANTS" do
17
- it "should be correct" do
18
- Time::JULIAN_DATE_OF_MJD_EPOCH.should eql DateTime.new(1858,11,17).ajd.to_f
19
- Time::JULIAN_DATE_OF_GPS_EPOCH.should eql DateTime.new(1980,1,06).ajd.to_f
20
- Time::JULIAN_DATE_OF_J2000_EPOCH.should eql DateTime.new(2000,1,1,12).ajd.to_f
21
- Time::JULIAN_DATE_OF_CCSDS_EPOCH.should eql DateTime.new(1958,1,1).ajd.to_f
22
- end
23
- end
24
-
25
- describe "Time.format_seconds" do
26
- it "should convert a Time to human readable format" do
27
- Time.format_seconds(1).should eql "1.00 seconds"
28
- Time.format_seconds(1.2345).should eql "1.23 seconds"
29
- Time.format_seconds(60).should eql "1 minute"
30
- Time.format_seconds(121).should eql "2 minutes, 1.00 seconds"
31
- Time.format_seconds(3600).should eql "1 hour"
32
- Time.format_seconds(7201).should eql "2 hours, 1.00 seconds"
33
- Time.format_seconds(7261).should eql "2 hours, 1 minute, 1.00 seconds"
34
- Time.format_seconds(3600*24).should eql "1 day"
35
- Time.format_seconds(3600*24+1).should eql "1 day, 1.00 seconds"
36
- Time.format_seconds(3600*48+61).should eql "2 days, 1 minute, 1.00 seconds"
37
- Time.format_seconds(3600*25+61).should eql "1 day, 1 hour, 1 minute, 1.00 seconds"
38
- end
39
- end
40
-
41
- describe "Time.mdy2julian" do
42
- it "should convert year, month, day into a julian date" do
43
- Time.mdy2julian(1858, 11, 17).should eql Time::JULIAN_DATE_OF_MJD_EPOCH
44
- end
45
- end
46
-
47
- describe "to_julian" do
48
- it "should convert a Time into a julian date" do
49
- Time.new(1858, 11, 17).to_julian.should eql Time::JULIAN_DATE_OF_MJD_EPOCH
50
- end
51
- end
52
-
53
- describe "Time.mdy2mjd" do
54
- it "should convert year, month, day into a modified julian date" do
55
- Time.mdy2mjd(1858, 11, 17).should eql 0.0
56
- end
57
- end
58
-
59
- describe "to_mjd" do
60
- it "should convert a Time into a modified julian date" do
61
- Time.new(1858, 11, 17).to_mjd.should eql 0.0
62
- end
63
- end
64
-
65
- describe "Time.yds" do
66
- it "should create a time based on year, date of year, seconds" do
67
- time = Time.yds(2020, 1, 1)
68
- time.year.should eql 2020
69
- time.month.should eql 1
70
- time.day.should eql 1
71
- time.hour.should eql 0
72
- time.min.should eql 0
73
- time.sec.should eql 1
74
-
75
- time = Time.yds(2020, 366, 7261)
76
- time.year.should eql 2020
77
- time.month.should eql 12
78
- time.day.should eql 31
79
- time.hour.should eql 2
80
- time.min.should eql 1
81
- time.sec.should eql 1
82
- end
83
- end
84
-
85
- describe "Time.leap_year?" do
86
- it "should return true for a leap year" do
87
- expect(Time.leap_year?(2020)).to be true
88
- expect(Time.leap_year?(2021)).to be false
89
- end
90
- end
91
-
92
- describe "leap_year?" do it "should return true for a leap year" do
93
- expect(Time.new(2020).leap_year?).to be true
94
- expect(Time.new(2021).leap_year?).to be false
95
- end
96
- end
97
-
98
- describe "Time.total_seconds" do
99
- it "should return the seconds based on hours, minutes, seconds, us" do
100
- Time.total_seconds(0,0,0,1000).should eql 0.001
101
- Time.total_seconds(0,0,1,1000000).should eql 2.0
102
- Time.total_seconds(0,0,61,0).should eql 61.0
103
- Time.total_seconds(0,1,61,0).should eql 121.0
104
- Time.total_seconds(1,1,61,0).should eql 3721.0
105
- Time.total_seconds(25,0,0,0).should eql 90000.0
106
- end
107
- end
108
-
109
- describe "seconds_of_day" do
110
- it "should return the seconds in the day" do
111
- Time.new(2020,1,1,1,1,1).seconds_of_day.should eql 3661.0
112
- end
113
- end
114
-
115
- describe "formatted" do
116
- it "should format the Time" do
117
- Time.new(2020,1,2,3,4,5.5).formatted.should eql "2020/01/02 03:04:05.500"
118
- end
119
-
120
- it "should format the Time without the date" do
121
- Time.new(2020,1,2,3,4,5.5).formatted(false).should eql "03:04:05.500"
122
- end
123
- end
124
-
125
- describe "Time.days_from_j2000" do
126
- it "should return the number of days since J2000" do
127
- Time.days_from_j2000(Time.new(2000,1,1,12)).should eql 0.0
128
- Time.days_from_j2000(Time.new(2000,1,2,12)).should eql 1.0
129
- end
130
- end
131
-
132
- describe "Time.julian_centuries_since_j2000" do
133
- it "should return the number of centuries since J2000" do
134
- Time.julian_centuries_since_j2000(Time.new(2100,1,1,12)).should eql 1.0
135
- end
136
- end
137
-
138
- describe "Time.yds2mdy" do
139
- it "should convert year, day, seconds" do
140
- Time.yds2mdy(2020, 1, 1.5).should eql [2020,1,1,0,0,1,500000]
141
- Time.yds2mdy(2020, 60, 3661.5).should eql [2020,2,29,1,1,1,500000]
142
- Time.yds2mdy(2021, 60, 3661.5).should eql [2021,3,1,1,1,1,500000]
143
- end
144
- end
145
-
146
- describe "Time.yds2julian" do
147
- it "should convert year, day, seconds to julian" do
148
- Time.yds2julian(2000,1,12*60*60).should eql Time::JULIAN_DATE_OF_J2000_EPOCH
149
- end
150
- end
151
- end
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/core_ext/time'
13
+
14
+ describe Time do
15
+
16
+ describe "CONSTANTS" do
17
+ it "should be correct" do
18
+ Time::JULIAN_DATE_OF_MJD_EPOCH.should eql DateTime.new(1858,11,17).ajd.to_f
19
+ Time::JULIAN_DATE_OF_GPS_EPOCH.should eql DateTime.new(1980,1,06).ajd.to_f
20
+ Time::JULIAN_DATE_OF_J2000_EPOCH.should eql DateTime.new(2000,1,1,12).ajd.to_f
21
+ Time::JULIAN_DATE_OF_CCSDS_EPOCH.should eql DateTime.new(1958,1,1).ajd.to_f
22
+ end
23
+ end
24
+
25
+ describe "Time.format_seconds" do
26
+ it "should convert a Time to human readable format" do
27
+ Time.format_seconds(1).should eql "1.00 seconds"
28
+ Time.format_seconds(1.2345).should eql "1.23 seconds"
29
+ Time.format_seconds(60).should eql "1 minute"
30
+ Time.format_seconds(121).should eql "2 minutes, 1.00 seconds"
31
+ Time.format_seconds(3600).should eql "1 hour"
32
+ Time.format_seconds(7201).should eql "2 hours, 1.00 seconds"
33
+ Time.format_seconds(7261).should eql "2 hours, 1 minute, 1.00 seconds"
34
+ Time.format_seconds(3600*24).should eql "1 day"
35
+ Time.format_seconds(3600*24+1).should eql "1 day, 1.00 seconds"
36
+ Time.format_seconds(3600*48+61).should eql "2 days, 1 minute, 1.00 seconds"
37
+ Time.format_seconds(3600*25+61).should eql "1 day, 1 hour, 1 minute, 1.00 seconds"
38
+ end
39
+ end
40
+
41
+ describe "Time.mdy2julian" do
42
+ it "should convert year, month, day into a julian date" do
43
+ Time.mdy2julian(1858, 11, 17).should eql Time::JULIAN_DATE_OF_MJD_EPOCH
44
+ end
45
+ end
46
+
47
+ describe "to_julian" do
48
+ it "should convert a Time into a julian date" do
49
+ Time.new(1858, 11, 17).to_julian.should eql Time::JULIAN_DATE_OF_MJD_EPOCH
50
+ end
51
+ end
52
+
53
+ describe "Time.mdy2mjd" do
54
+ it "should convert year, month, day into a modified julian date" do
55
+ Time.mdy2mjd(1858, 11, 17).should eql 0.0
56
+ end
57
+ end
58
+
59
+ describe "to_mjd" do
60
+ it "should convert a Time into a modified julian date" do
61
+ Time.new(1858, 11, 17).to_mjd.should eql 0.0
62
+ end
63
+ end
64
+
65
+ describe "Time.yds" do
66
+ it "should create a time based on year, date of year, seconds" do
67
+ time = Time.yds(2020, 1, 1)
68
+ time.year.should eql 2020
69
+ time.month.should eql 1
70
+ time.day.should eql 1
71
+ time.hour.should eql 0
72
+ time.min.should eql 0
73
+ time.sec.should eql 1
74
+
75
+ time = Time.yds(2020, 366, 7261)
76
+ time.year.should eql 2020
77
+ time.month.should eql 12
78
+ time.day.should eql 31
79
+ time.hour.should eql 2
80
+ time.min.should eql 1
81
+ time.sec.should eql 1
82
+ end
83
+ end
84
+
85
+ describe "Time.leap_year?" do
86
+ it "should return true for a leap year" do
87
+ expect(Time.leap_year?(2020)).to be true
88
+ expect(Time.leap_year?(2021)).to be false
89
+ end
90
+ end
91
+
92
+ describe "leap_year?" do it "should return true for a leap year" do
93
+ expect(Time.new(2020).leap_year?).to be true
94
+ expect(Time.new(2021).leap_year?).to be false
95
+ end
96
+ end
97
+
98
+ describe "Time.total_seconds" do
99
+ it "should return the seconds based on hours, minutes, seconds, us" do
100
+ Time.total_seconds(0,0,0,1000).should eql 0.001
101
+ Time.total_seconds(0,0,1,1000000).should eql 2.0
102
+ Time.total_seconds(0,0,61,0).should eql 61.0
103
+ Time.total_seconds(0,1,61,0).should eql 121.0
104
+ Time.total_seconds(1,1,61,0).should eql 3721.0
105
+ Time.total_seconds(25,0,0,0).should eql 90000.0
106
+ end
107
+ end
108
+
109
+ describe "seconds_of_day" do
110
+ it "should return the seconds in the day" do
111
+ Time.new(2020,1,1,1,1,1).seconds_of_day.should eql 3661.0
112
+ end
113
+ end
114
+
115
+ describe "formatted" do
116
+ it "should format the Time" do
117
+ Time.new(2020,1,2,3,4,5.5).formatted.should eql "2020/01/02 03:04:05.500"
118
+ end
119
+
120
+ it "should format the Time without the date" do
121
+ Time.new(2020,1,2,3,4,5.5).formatted(false).should eql "03:04:05.500"
122
+ end
123
+ end
124
+
125
+ describe "Time.days_from_j2000" do
126
+ it "should return the number of days since J2000" do
127
+ Time.days_from_j2000(Time.new(2000,1,1,12)).should eql 0.0
128
+ Time.days_from_j2000(Time.new(2000,1,2,12)).should eql 1.0
129
+ end
130
+ end
131
+
132
+ describe "Time.julian_centuries_since_j2000" do
133
+ it "should return the number of centuries since J2000" do
134
+ Time.julian_centuries_since_j2000(Time.new(2100,1,1,12)).should eql 1.0
135
+ end
136
+ end
137
+
138
+ describe "Time.yds2mdy" do
139
+ it "should convert year, day, seconds" do
140
+ Time.yds2mdy(2020, 1, 1.5).should eql [2020,1,1,0,0,1,500000]
141
+ Time.yds2mdy(2020, 60, 3661.5).should eql [2020,2,29,1,1,1,500000]
142
+ Time.yds2mdy(2021, 60, 3661.5).should eql [2021,3,1,1,1,1,500000]
143
+ end
144
+ end
145
+
146
+ describe "Time.yds2julian" do
147
+ it "should convert year, day, seconds to julian" do
148
+ Time.yds2julian(2000,1,12*60*60).should eql Time::JULIAN_DATE_OF_J2000_EPOCH
149
+ end
150
+ end
151
+ end
@@ -1,322 +1,322 @@
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/ext/line_graph'
13
-
14
- module Cosmos
15
-
16
- describe LineClip do
17
-
18
- shared_examples_for "line returned" do
19
- it "should not be nil" do
20
- @clipped_line.should_not be_nil
21
- end
22
- end
23
-
24
- shared_examples_for "no line returned" do
25
- it "should be nil" do
26
- @clipped_line.should be_nil
27
- end
28
- end
29
-
30
- shared_examples_for "not clipped" do
31
- it "should return the same first point" do
32
- @clipped_line[0].should eql(@x0)
33
- @clipped_line[1].should eql(@y0)
34
- end
35
-
36
- it "should return the same second point" do
37
- @clipped_line[2].should eql(@x1)
38
- @clipped_line[3].should eql(@y1)
39
- end
40
-
41
- it "should indicate the first point was not clipped" do
42
- @clipped_line[4].should be_falsey
43
- end
44
-
45
- it "should indicate the second point was not clipped" do
46
- @clipped_line[5].should be_falsey
47
- end
48
- end
49
-
50
- shared_examples_for "first point clipped" do
51
- it "should return a clipped first point" do
52
- (@xmin..@xmax).should include(@clipped_line[0])
53
- (@ymin..@ymax).should include(@clipped_line[1])
54
- end
55
-
56
- it "should return the same second point" do
57
- @clipped_line[2].should eql(@x1)
58
- @clipped_line[3].should eql(@y1)
59
- end
60
-
61
- it "should indicate the first point was clipped" do
62
- @clipped_line[4].should be_truthy
63
- end
64
-
65
- it "should indicate the second point was not clipped" do
66
- @clipped_line[5].should be_falsey
67
- end
68
- end
69
-
70
- shared_examples_for "second point clipped" do
71
- it "should return the same first point" do
72
- @clipped_line[0].should eql(@x0)
73
- @clipped_line[1].should eql(@y0)
74
- end
75
-
76
- it "should return a clipped second point" do
77
- (@xmin..@xmax).should include(@clipped_line[2])
78
- (@ymin..@ymax).should include(@clipped_line[3])
79
- end
80
-
81
- it "should indicate the first point was not clipped" do
82
- @clipped_line[4].should be_falsey
83
- end
84
-
85
- it "should indicate the second point was clipped" do
86
- @clipped_line[5].should be_truthy
87
- end
88
- end
89
-
90
- before(:all) do
91
- @xmin = -10.0
92
- @xmax = 10.0
93
- @ymin = -10.0
94
- @ymax = 10.0
95
- end
96
-
97
- describe "given a first point on the graph" do
98
- before(:all) do
99
- @x0 = -3.0
100
- @y0 = 5.0
101
- end
102
-
103
- describe "and given a second point on the graph" do
104
- before(:all) do
105
- @x1 = 3.6
106
- @y1 = 9.9
107
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
108
- end
109
-
110
- it_should_behave_like "line returned"
111
- it_should_behave_like "not clipped"
112
- end
113
-
114
- describe "and given a second point off the graph to the upper left" do
115
- before(:all) do
116
- @x1 = -15.0
117
- @y1 = 13.0
118
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
119
- end
120
-
121
- it_should_behave_like "line returned"
122
- it_should_behave_like "second point clipped"
123
- end
124
-
125
- describe "and given a second point off the graph to the top" do
126
- before(:all) do
127
- @x1 = 5.0
128
- @y1 = 180.0
129
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
130
- end
131
-
132
- it_should_behave_like "line returned"
133
- it_should_behave_like "second point clipped"
134
- end
135
-
136
- describe "and given a second point off the graph to the upper right" do
137
- before(:all) do
138
- @x1 = 15.0
139
- @y1 = 13.0
140
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
141
- end
142
-
143
- it_should_behave_like "line returned"
144
- it_should_behave_like "second point clipped"
145
- end
146
-
147
- describe "and given a second point off the graph to the right" do
148
- before(:all) do
149
- @x1 = 70.0
150
- @y1 = -3.0
151
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
152
- end
153
-
154
- it_should_behave_like "line returned"
155
- it_should_behave_like "second point clipped"
156
- end
157
-
158
- describe "and given a second point off the graph to the bottom right" do
159
- before(:all) do
160
- @x1 = -15.0
161
- @y1 = -13.0
162
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
163
- end
164
-
165
- it_should_behave_like "line returned"
166
- it_should_behave_like "second point clipped"
167
- end
168
-
169
- describe "and given a second point off the graph to the bottom" do
170
- before(:all) do
171
- @x1 = 0.0
172
- @y1 = 13.57
173
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
174
- end
175
-
176
- it_should_behave_like "line returned"
177
- it_should_behave_like "second point clipped"
178
- end
179
-
180
- describe "and given a second point off the graph to the bottom left" do
181
- before(:all) do
182
- @x1 = -150.0
183
- @y1 = -150.0
184
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
185
- end
186
-
187
- it_should_behave_like "line returned"
188
- it_should_behave_like "second point clipped"
189
- end
190
-
191
- describe "and given a second point off the graph to the left" do
192
- before(:all) do
193
- @x1 = -20.0
194
- @y1 = 3.0
195
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
196
- end
197
-
198
- it_should_behave_like "line returned"
199
- it_should_behave_like "second point clipped"
200
- end
201
- end
202
-
203
- describe "given a second point on the graph" do
204
- before(:all) do
205
- @x1 = 3.2
206
- @y1 = -9.9
207
- end
208
-
209
- describe "and given a first point on the graph" do
210
- before(:all) do
211
- @x0 = 3.6
212
- @y0 = 9.9
213
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
214
- end
215
-
216
- it_should_behave_like "line returned"
217
- it_should_behave_like "not clipped"
218
- end
219
-
220
- describe "and given a first point off the graph to the upper left" do
221
- before(:all) do
222
- @x0 = -15.0
223
- @y0 = 13.0
224
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
225
- end
226
-
227
- it_should_behave_like "line returned"
228
- it_should_behave_like "first point clipped"
229
- end
230
-
231
- describe "and given a first point off the graph to the top" do
232
- before(:all) do
233
- @x0 = 5.0
234
- @y0 = 180.0
235
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
236
- end
237
-
238
- it_should_behave_like "line returned"
239
- it_should_behave_like "first point clipped"
240
- end
241
-
242
- describe "and given a first point off the graph to the upper right" do
243
- before(:all) do
244
- @x0 = 15.0
245
- @y0 = 13.0
246
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
247
- end
248
-
249
- it_should_behave_like "line returned"
250
- it_should_behave_like "first point clipped"
251
- end
252
-
253
- describe "and given a first point off the graph to the right" do
254
- before(:all) do
255
- @x0 = 70.0
256
- @y0 = -3.0
257
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
258
- end
259
-
260
- it_should_behave_like "line returned"
261
- it_should_behave_like "first point clipped"
262
- end
263
-
264
- describe "and given a first point off the graph to the bottom right" do
265
- before(:all) do
266
- @x0 = -15.0
267
- @y0 = -13.0
268
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
269
- end
270
-
271
- it_should_behave_like "line returned"
272
- it_should_behave_like "first point clipped"
273
- end
274
-
275
- describe "and given a first point off the graph to the bottom" do
276
- before(:all) do
277
- @x0 = 0.0
278
- @y0 = 13.57
279
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
280
- end
281
-
282
- it_should_behave_like "line returned"
283
- it_should_behave_like "first point clipped"
284
- end
285
-
286
- describe "and given a first point off the graph to the bottom left" do
287
- before(:all) do
288
- @x0 = -150.0
289
- @y0 = -150.0
290
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
291
- end
292
-
293
- it_should_behave_like "line returned"
294
- it_should_behave_like "first point clipped"
295
- end
296
-
297
- describe "and given a first point off the graph to the left" do
298
- before(:all) do
299
- @x0 = -20.0
300
- @y0 = 3.0
301
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
302
- end
303
-
304
- it_should_behave_like "line returned"
305
- it_should_behave_like "first point clipped"
306
- end
307
- end
308
-
309
- describe "given a both points off the graph" do
310
- before(:all) do
311
- @x0 = 15.0
312
- @y0 = -15.0
313
- @x1 = 13.2
314
- @y1 = -9.9
315
- @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
316
- end
317
-
318
- it_should_behave_like "no line returned"
319
- end
320
- end
321
-
322
- end # module Cosmos
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/ext/line_graph'
13
+
14
+ module Cosmos
15
+
16
+ describe LineClip do
17
+
18
+ shared_examples_for "line returned" do
19
+ it "should not be nil" do
20
+ @clipped_line.should_not be_nil
21
+ end
22
+ end
23
+
24
+ shared_examples_for "no line returned" do
25
+ it "should be nil" do
26
+ @clipped_line.should be_nil
27
+ end
28
+ end
29
+
30
+ shared_examples_for "not clipped" do
31
+ it "should return the same first point" do
32
+ @clipped_line[0].should eql(@x0)
33
+ @clipped_line[1].should eql(@y0)
34
+ end
35
+
36
+ it "should return the same second point" do
37
+ @clipped_line[2].should eql(@x1)
38
+ @clipped_line[3].should eql(@y1)
39
+ end
40
+
41
+ it "should indicate the first point was not clipped" do
42
+ @clipped_line[4].should be_falsey
43
+ end
44
+
45
+ it "should indicate the second point was not clipped" do
46
+ @clipped_line[5].should be_falsey
47
+ end
48
+ end
49
+
50
+ shared_examples_for "first point clipped" do
51
+ it "should return a clipped first point" do
52
+ (@xmin..@xmax).should include(@clipped_line[0])
53
+ (@ymin..@ymax).should include(@clipped_line[1])
54
+ end
55
+
56
+ it "should return the same second point" do
57
+ @clipped_line[2].should eql(@x1)
58
+ @clipped_line[3].should eql(@y1)
59
+ end
60
+
61
+ it "should indicate the first point was clipped" do
62
+ @clipped_line[4].should be_truthy
63
+ end
64
+
65
+ it "should indicate the second point was not clipped" do
66
+ @clipped_line[5].should be_falsey
67
+ end
68
+ end
69
+
70
+ shared_examples_for "second point clipped" do
71
+ it "should return the same first point" do
72
+ @clipped_line[0].should eql(@x0)
73
+ @clipped_line[1].should eql(@y0)
74
+ end
75
+
76
+ it "should return a clipped second point" do
77
+ (@xmin..@xmax).should include(@clipped_line[2])
78
+ (@ymin..@ymax).should include(@clipped_line[3])
79
+ end
80
+
81
+ it "should indicate the first point was not clipped" do
82
+ @clipped_line[4].should be_falsey
83
+ end
84
+
85
+ it "should indicate the second point was clipped" do
86
+ @clipped_line[5].should be_truthy
87
+ end
88
+ end
89
+
90
+ before(:all) do
91
+ @xmin = -10.0
92
+ @xmax = 10.0
93
+ @ymin = -10.0
94
+ @ymax = 10.0
95
+ end
96
+
97
+ describe "given a first point on the graph" do
98
+ before(:all) do
99
+ @x0 = -3.0
100
+ @y0 = 5.0
101
+ end
102
+
103
+ describe "and given a second point on the graph" do
104
+ before(:all) do
105
+ @x1 = 3.6
106
+ @y1 = 9.9
107
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
108
+ end
109
+
110
+ it_should_behave_like "line returned"
111
+ it_should_behave_like "not clipped"
112
+ end
113
+
114
+ describe "and given a second point off the graph to the upper left" do
115
+ before(:all) do
116
+ @x1 = -15.0
117
+ @y1 = 13.0
118
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
119
+ end
120
+
121
+ it_should_behave_like "line returned"
122
+ it_should_behave_like "second point clipped"
123
+ end
124
+
125
+ describe "and given a second point off the graph to the top" do
126
+ before(:all) do
127
+ @x1 = 5.0
128
+ @y1 = 180.0
129
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
130
+ end
131
+
132
+ it_should_behave_like "line returned"
133
+ it_should_behave_like "second point clipped"
134
+ end
135
+
136
+ describe "and given a second point off the graph to the upper right" do
137
+ before(:all) do
138
+ @x1 = 15.0
139
+ @y1 = 13.0
140
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
141
+ end
142
+
143
+ it_should_behave_like "line returned"
144
+ it_should_behave_like "second point clipped"
145
+ end
146
+
147
+ describe "and given a second point off the graph to the right" do
148
+ before(:all) do
149
+ @x1 = 70.0
150
+ @y1 = -3.0
151
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
152
+ end
153
+
154
+ it_should_behave_like "line returned"
155
+ it_should_behave_like "second point clipped"
156
+ end
157
+
158
+ describe "and given a second point off the graph to the bottom right" do
159
+ before(:all) do
160
+ @x1 = -15.0
161
+ @y1 = -13.0
162
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
163
+ end
164
+
165
+ it_should_behave_like "line returned"
166
+ it_should_behave_like "second point clipped"
167
+ end
168
+
169
+ describe "and given a second point off the graph to the bottom" do
170
+ before(:all) do
171
+ @x1 = 0.0
172
+ @y1 = 13.57
173
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
174
+ end
175
+
176
+ it_should_behave_like "line returned"
177
+ it_should_behave_like "second point clipped"
178
+ end
179
+
180
+ describe "and given a second point off the graph to the bottom left" do
181
+ before(:all) do
182
+ @x1 = -150.0
183
+ @y1 = -150.0
184
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
185
+ end
186
+
187
+ it_should_behave_like "line returned"
188
+ it_should_behave_like "second point clipped"
189
+ end
190
+
191
+ describe "and given a second point off the graph to the left" do
192
+ before(:all) do
193
+ @x1 = -20.0
194
+ @y1 = 3.0
195
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
196
+ end
197
+
198
+ it_should_behave_like "line returned"
199
+ it_should_behave_like "second point clipped"
200
+ end
201
+ end
202
+
203
+ describe "given a second point on the graph" do
204
+ before(:all) do
205
+ @x1 = 3.2
206
+ @y1 = -9.9
207
+ end
208
+
209
+ describe "and given a first point on the graph" do
210
+ before(:all) do
211
+ @x0 = 3.6
212
+ @y0 = 9.9
213
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
214
+ end
215
+
216
+ it_should_behave_like "line returned"
217
+ it_should_behave_like "not clipped"
218
+ end
219
+
220
+ describe "and given a first point off the graph to the upper left" do
221
+ before(:all) do
222
+ @x0 = -15.0
223
+ @y0 = 13.0
224
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
225
+ end
226
+
227
+ it_should_behave_like "line returned"
228
+ it_should_behave_like "first point clipped"
229
+ end
230
+
231
+ describe "and given a first point off the graph to the top" do
232
+ before(:all) do
233
+ @x0 = 5.0
234
+ @y0 = 180.0
235
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
236
+ end
237
+
238
+ it_should_behave_like "line returned"
239
+ it_should_behave_like "first point clipped"
240
+ end
241
+
242
+ describe "and given a first point off the graph to the upper right" do
243
+ before(:all) do
244
+ @x0 = 15.0
245
+ @y0 = 13.0
246
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
247
+ end
248
+
249
+ it_should_behave_like "line returned"
250
+ it_should_behave_like "first point clipped"
251
+ end
252
+
253
+ describe "and given a first point off the graph to the right" do
254
+ before(:all) do
255
+ @x0 = 70.0
256
+ @y0 = -3.0
257
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
258
+ end
259
+
260
+ it_should_behave_like "line returned"
261
+ it_should_behave_like "first point clipped"
262
+ end
263
+
264
+ describe "and given a first point off the graph to the bottom right" do
265
+ before(:all) do
266
+ @x0 = -15.0
267
+ @y0 = -13.0
268
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
269
+ end
270
+
271
+ it_should_behave_like "line returned"
272
+ it_should_behave_like "first point clipped"
273
+ end
274
+
275
+ describe "and given a first point off the graph to the bottom" do
276
+ before(:all) do
277
+ @x0 = 0.0
278
+ @y0 = 13.57
279
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
280
+ end
281
+
282
+ it_should_behave_like "line returned"
283
+ it_should_behave_like "first point clipped"
284
+ end
285
+
286
+ describe "and given a first point off the graph to the bottom left" do
287
+ before(:all) do
288
+ @x0 = -150.0
289
+ @y0 = -150.0
290
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
291
+ end
292
+
293
+ it_should_behave_like "line returned"
294
+ it_should_behave_like "first point clipped"
295
+ end
296
+
297
+ describe "and given a first point off the graph to the left" do
298
+ before(:all) do
299
+ @x0 = -20.0
300
+ @y0 = 3.0
301
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
302
+ end
303
+
304
+ it_should_behave_like "line returned"
305
+ it_should_behave_like "first point clipped"
306
+ end
307
+ end
308
+
309
+ describe "given a both points off the graph" do
310
+ before(:all) do
311
+ @x0 = 15.0
312
+ @y0 = -15.0
313
+ @x1 = 13.2
314
+ @y1 = -9.9
315
+ @clipped_line = LineClip.line_clip(@x0, @y0, @x1, @y1, @xmin, @ymin, @xmax, @ymax)
316
+ end
317
+
318
+ it_should_behave_like "no line returned"
319
+ end
320
+ end
321
+
322
+ end # module Cosmos