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