cosmos 3.5.1 → 3.5.2
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 +4 -4
- data/.coveralls.yml +1 -1
- data/.gitattributes +3 -3
- data/.gitignore +48 -48
- data/.travis.yml +8 -8
- data/CONTRIBUTING.txt +50 -50
- data/Gemfile +10 -10
- data/Guardfile +27 -27
- data/LICENSE.txt +879 -879
- data/Manifest.txt +1414 -1414
- data/README.md +111 -111
- data/Rakefile +218 -214
- data/autohotkey/config/data/diamond.STL +57 -57
- data/autohotkey/config/system/system.txt +34 -34
- data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/autohotkey/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/autohotkey/config/targets/COSMOS/target.txt +5 -5
- data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -121
- data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +270 -270
- data/autohotkey/config/targets/INST/cmd_tlm_server.txt +5 -5
- data/autohotkey/config/targets/INST/lib/example_limits_response.rb +30 -30
- data/autohotkey/config/targets/INST/lib/sim_inst.rb +305 -305
- data/autohotkey/config/targets/INST/screens/adcs.txt +46 -46
- data/autohotkey/config/targets/INST/screens/array.txt +7 -7
- data/autohotkey/config/targets/INST/screens/block.txt +8 -8
- data/autohotkey/config/targets/INST/screens/commanding.txt +30 -30
- data/autohotkey/config/targets/INST/screens/graphs.txt +14 -14
- data/autohotkey/config/targets/INST/screens/ground.txt +25 -25
- data/autohotkey/config/targets/INST/screens/health_status.txt +33 -33
- data/autohotkey/config/targets/INST/screens/hs.txt +49 -49
- data/autohotkey/config/targets/INST/screens/image.txt +21 -21
- data/autohotkey/config/targets/INST/screens/latest.txt +23 -23
- data/autohotkey/config/targets/INST/screens/mech.txt +25 -25
- data/autohotkey/config/targets/INST/screens/other.txt +25 -25
- data/autohotkey/config/targets/INST/screens/params.txt +25 -25
- data/autohotkey/config/targets/INST/screens/tabs.txt +68 -68
- data/autohotkey/config/targets/INST/target.txt +26 -26
- data/autohotkey/config/targets/META/cmd_tlm/meta_cmd.txt +10 -10
- data/autohotkey/config/targets/META/cmd_tlm/meta_tlm.txt +9 -9
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
- data/autohotkey/config/targets/SYSTEM/screens/error.txt +11 -11
- data/autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt +22 -22
- data/autohotkey/config/tools/data_viewer/data_viewer.txt +11 -11
- data/autohotkey/config/tools/handbook_creator/handbook_creator.txt +49 -49
- data/autohotkey/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
- data/autohotkey/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/autohotkey/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/autohotkey/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/autohotkey/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/autohotkey/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/autohotkey/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/autohotkey/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/autohotkey/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/autohotkey/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/autohotkey/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
- data/autohotkey/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/autohotkey/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/autohotkey/config/tools/launcher/launcher.txt +38 -38
- data/autohotkey/config/tools/script_runner/script_runner.txt +3 -3
- data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +8 -8
- data/autohotkey/config/tools/table_manager/OneDimensionalTable_def.txt +19 -19
- data/autohotkey/config/tools/table_manager/TwoDimensionalTable_def.txt +248 -248
- data/autohotkey/config/tools/test_runner/test_runner.txt +8 -8
- data/autohotkey/config/tools/test_runner/test_runner2.txt +11 -11
- data/autohotkey/config/tools/test_runner/test_runner3.txt +6 -6
- data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
- data/autohotkey/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
- data/autohotkey/config/tools/tlm_extractor/tlm_extractor2.txt +9 -9
- data/autohotkey/config/tools/tlm_grapher/bad.txt +50 -50
- data/autohotkey/config/tools/tlm_grapher/temp1-4.txt +51 -51
- data/autohotkey/config/tools/tlm_grapher/test2.txt +111 -111
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer.txt +24 -24
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer2.txt +4 -4
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer3.txt +3 -3
- data/autohotkey/lib/example_background_task.rb +42 -42
- data/autohotkey/lib/user_version.rb +3 -3
- data/autohotkey/procedures/clear_util.rb +7 -7
- data/autohotkey/procedures/collect_util.rb +14 -14
- data/autohotkey/procedures/example_test.rb +67 -67
- data/autohotkey/procedures/example_test2.rb +74 -74
- data/autohotkey/procedures/script_test.rb +17 -17
- data/autohotkey/procedures/syntax_error.rb +18 -18
- data/autohotkey/tools/CmdExtractorAHK +16 -16
- data/autohotkey/tools/CmdSender +14 -14
- data/autohotkey/tools/CmdSenderAHK +18 -18
- data/autohotkey/tools/CmdTlmServer +14 -14
- data/autohotkey/tools/CmdTlmServerAHK +28 -28
- data/autohotkey/tools/CmdTlmServerAHK2 +17 -17
- data/autohotkey/tools/DataViewer +14 -14
- data/autohotkey/tools/DataViewerAHK +17 -17
- data/autohotkey/tools/HandbookCreatorAHK +20 -20
- data/autohotkey/tools/LauncherAHK +17 -17
- data/autohotkey/tools/LimitsMonitorAHK +20 -20
- data/autohotkey/tools/OpenGLBuilderAHK +24 -24
- data/autohotkey/tools/PacketViewer +14 -14
- data/autohotkey/tools/PacketViewerAHK +18 -18
- data/autohotkey/tools/PacketViewerAHK2 +17 -17
- data/autohotkey/tools/Replay +14 -14
- data/autohotkey/tools/ReplayAHK +17 -17
- data/autohotkey/tools/ScriptRunner +14 -14
- data/autohotkey/tools/ScriptRunnerAHK +20 -20
- data/autohotkey/tools/ScriptRunnerAHK2 +17 -17
- data/autohotkey/tools/TableManager +14 -14
- data/autohotkey/tools/TableManagerAHK +30 -30
- data/autohotkey/tools/TestRunner +15 -15
- data/autohotkey/tools/TestRunnerAHK +17 -17
- data/autohotkey/tools/TestRunnerAHK2 +17 -17
- data/autohotkey/tools/TestRunnerAHK3 +17 -17
- data/autohotkey/tools/TestRunnerAHK4 +17 -17
- data/autohotkey/tools/TestRunnerAHK5 +17 -17
- data/autohotkey/tools/TestRunnerAHK6 +17 -17
- data/autohotkey/tools/TlmExtractor +15 -15
- data/autohotkey/tools/TlmExtractorAHK +19 -19
- data/autohotkey/tools/TlmExtractorAHK2 +16 -16
- data/autohotkey/tools/TlmExtractorAHK3 +16 -16
- data/autohotkey/tools/TlmGrapher +14 -14
- data/autohotkey/tools/TlmGrapherAHK +19 -19
- data/autohotkey/tools/TlmGrapherAHK2 +23 -23
- data/autohotkey/tools/TlmGrapherAHK3 +17 -17
- data/autohotkey/tools/TlmGrapherAHK4 +17 -17
- data/autohotkey/tools/TlmViewer +14 -14
- data/autohotkey/tools/TlmViewerAHK +28 -28
- data/autohotkey/tools/TlmViewerAHK2 +22 -22
- data/autohotkey/tools/TlmViewerAHK3 +23 -23
- data/autohotkey/tools/TlmViewerAHK4 +22 -22
- data/autohotkey/tools/TlmViewerAHK5 +18 -18
- data/autohotkey/tools/autohotkey.rb +37 -37
- data/autohotkey/tools/cmd_extractor.ahk +33 -33
- data/autohotkey/tools/cmd_sender.ahk +182 -182
- data/autohotkey/tools/cmd_tlm_server.ahk +90 -90
- data/autohotkey/tools/cmd_tlm_server2.ahk +45 -45
- data/autohotkey/tools/data_viewer.ahk +141 -141
- data/autohotkey/tools/handbook_creator.ahk +32 -32
- data/autohotkey/tools/launcher.ahk +41 -41
- data/autohotkey/tools/limits_monitor.ahk +123 -123
- data/autohotkey/tools/open_gl_builder.ahk +134 -134
- data/autohotkey/tools/packet_viewer.ahk +196 -196
- data/autohotkey/tools/packet_viewer2.ahk +9 -9
- data/autohotkey/tools/replay.ahk +104 -104
- data/autohotkey/tools/script_runner.ahk +589 -589
- data/autohotkey/tools/script_runner2.ahk +38 -38
- data/autohotkey/tools/table_manager.ahk +220 -220
- data/autohotkey/tools/test_runner.ahk +262 -262
- data/autohotkey/tools/test_runner2.ahk +53 -53
- data/autohotkey/tools/test_runner3.ahk +13 -13
- data/autohotkey/tools/test_runner5.ahk +8 -8
- data/autohotkey/tools/test_runner6.ahk +5 -5
- data/autohotkey/tools/tlm_extractor.ahk +296 -296
- data/autohotkey/tools/tlm_grapher.ahk +660 -660
- data/autohotkey/tools/tlm_grapher2.ahk +115 -115
- data/autohotkey/tools/tlm_grapher3.ahk +24 -24
- data/autohotkey/tools/tlm_viewer.ahk +133 -133
- data/autohotkey/tools/tlm_viewer2.ahk +50 -50
- data/autohotkey/tools/tlm_viewer4.ahk +4 -4
- data/autohotkey/tools/tlm_viewer5.ahk +20 -20
- data/bin/cosmos +96 -96
- data/bin/cstol_converter +1166 -1166
- data/bin/rubysloc +85 -85
- data/cosmos.gemspec +99 -99
- data/data/about.txt +4 -4
- data/data/crc.txt +326 -326
- data/data/diamond.STL +57 -57
- data/data/legal.txt +9 -9
- data/demo/Gemfile +10 -10
- data/demo/Launcher +16 -16
- data/demo/Launcher.bat +0 -0
- data/demo/Rakefile +77 -77
- data/demo/config/data/crc.txt +224 -226
- data/demo/config/data/diamond.STL +57 -57
- data/demo/config/data/meta_init.txt +4 -4
- data/demo/config/system/system.txt +35 -35
- data/demo/config/system/system2.txt +33 -33
- data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/demo/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/demo/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/demo/config/targets/COSMOS/screens/version.txt +19 -19
- data/demo/config/targets/COSMOS/target.txt +11 -11
- data/demo/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +2 -2
- data/demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +5 -5
- data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -6
- data/demo/config/targets/EXAMPLE/lib/example_interface.rb +22 -22
- data/demo/config/targets/EXAMPLE/target.txt +6 -6
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -121
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +247 -247
- data/demo/config/targets/INST/cmd_tlm_server.txt +5 -5
- data/demo/config/targets/INST/lib/example_limits_response.rb +30 -30
- data/demo/config/targets/INST/lib/sim_inst.rb +305 -305
- data/demo/config/targets/INST/screens/adcs.txt +46 -46
- data/demo/config/targets/INST/screens/array.txt +15 -15
- data/demo/config/targets/INST/screens/block.txt +8 -8
- data/demo/config/targets/INST/screens/commanding.txt +30 -30
- data/demo/config/targets/INST/screens/graphs.txt +14 -14
- data/demo/config/targets/INST/screens/ground.txt +25 -25
- data/demo/config/targets/INST/screens/hs.txt +44 -44
- data/demo/config/targets/INST/screens/latest.txt +23 -23
- data/demo/config/targets/INST/screens/other.txt +29 -29
- data/demo/config/targets/INST/screens/tabs.txt +70 -70
- data/demo/config/targets/INST/target.txt +33 -33
- data/demo/config/targets/META/cmd_tlm/meta_cmd.txt +10 -10
- data/demo/config/targets/META/cmd_tlm/meta_tlm.txt +13 -13
- data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
- data/demo/config/targets/SYSTEM/cmd_tlm/override.txt +29 -29
- data/demo/config/targets/SYSTEM/screens/status.txt +12 -12
- data/demo/config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +13 -13
- data/demo/config/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -3
- data/demo/config/targets/TEMPLATED/cmd_tlm_server.txt +6 -6
- data/demo/config/targets/TEMPLATED/lib/templated_interface.rb +56 -56
- data/demo/config/targets/TEMPLATED/target.txt +6 -6
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +39 -39
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +34 -34
- data/demo/config/tools/data_viewer/data_viewer.txt +11 -11
- data/demo/config/tools/handbook_creator/handbook_creator.txt +66 -66
- data/demo/config/tools/handbook_creator/templates/command_packets.html.erb +88 -88
- data/demo/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/demo/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/demo/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/demo/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/demo/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/demo/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/demo/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/demo/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/demo/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/demo/config/tools/handbook_creator/templates/telemetry_packets.html.erb +82 -82
- data/demo/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/demo/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/demo/config/tools/launcher/launcher.txt +45 -45
- data/demo/config/tools/launcher/launcher2.txt +45 -45
- data/demo/config/tools/script_runner/script_runner.txt +3 -3
- data/demo/config/tools/table_manager/ConfigTables_def.txt +8 -8
- data/demo/config/tools/table_manager/ExampleTableDefinition.txt +24 -24
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -25
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -25
- data/demo/config/tools/table_manager/PPSSelectionTable_def.txt +8 -8
- data/demo/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -248
- data/demo/config/tools/test_runner/test_runner.txt +17 -17
- data/demo/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
- data/demo/config/tools/tlm_extractor/tlm_extractor2.txt +2 -2
- data/demo/config/tools/tlm_extractor/tlm_extractor3.txt +2 -2
- data/demo/config/tools/tlm_extractor/tlm_extractor4.txt +2 -2
- data/demo/config/tools/tlm_viewer/tlm_viewer.txt +41 -41
- data/demo/lib/example_background_task.rb +57 -57
- data/demo/lib/example_target.rb +113 -113
- data/demo/lib/scpi_target.rb +74 -74
- data/demo/lib/user_version.rb +3 -3
- data/demo/procedures/checks.rb +11 -11
- data/demo/procedures/clear_util.rb +7 -7
- data/demo/procedures/collect.rb +18 -18
- data/demo/procedures/collect_util.rb +14 -14
- data/demo/procedures/cosmos_api_test.rb +293 -293
- data/demo/procedures/disconnect.rb +29 -29
- data/demo/procedures/example_test.rb +183 -183
- data/demo/procedures/plot_test.rb +8 -8
- data/demo/procedures/run_example_test.rb +3 -3
- data/demo/procedures/test.rb +51 -51
- data/demo/tools/CmdExtractor +16 -16
- data/demo/tools/CmdExtractor.bat +0 -0
- data/demo/tools/CmdSender +16 -16
- data/demo/tools/CmdSender.bat +0 -0
- data/demo/tools/CmdTlmServer +16 -16
- data/demo/tools/CmdTlmServer.bat +0 -0
- data/demo/tools/DataViewer +16 -16
- data/demo/tools/DataViewer.bat +0 -0
- data/demo/tools/ExampleTarget +16 -16
- data/demo/tools/ExampleTarget.bat +0 -0
- data/demo/tools/HandbookCreator +16 -16
- data/demo/tools/HandbookCreator.bat +0 -0
- data/demo/tools/Launcher +16 -16
- data/demo/tools/Launcher.bat +0 -0
- data/demo/tools/LimitsMonitor +16 -16
- data/demo/tools/LimitsMonitor.bat +0 -0
- data/demo/tools/OpenGLBuilder +16 -16
- data/demo/tools/OpenGLBuilder.bat +0 -0
- data/demo/tools/PacketViewer +16 -16
- data/demo/tools/PacketViewer.bat +0 -0
- data/demo/tools/Replay +16 -16
- data/demo/tools/Replay.bat +0 -0
- data/demo/tools/ScpiTarget +16 -16
- data/demo/tools/ScpiTarget.bat +0 -0
- data/demo/tools/ScriptRunner +16 -16
- data/demo/tools/ScriptRunner.bat +0 -0
- data/demo/tools/TableManager +16 -16
- data/demo/tools/TableManager.bat +0 -0
- data/demo/tools/TestRunner +16 -16
- data/demo/tools/TestRunner.bat +0 -0
- data/demo/tools/TlmExtractor +16 -16
- data/demo/tools/TlmExtractor.bat +0 -0
- data/demo/tools/TlmGrapher +16 -16
- data/demo/tools/TlmGrapher.bat +0 -0
- data/demo/tools/TlmViewer +16 -16
- data/demo/tools/TlmViewer.bat +0 -0
- data/demo/tools/ToolLaunch.bat +14 -5
- data/demo/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +16 -16
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +16 -16
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +16 -16
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +16 -16
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +16 -16
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +16 -16
- data/demo/tools/mac/Launcher.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +16 -16
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +16 -16
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +16 -16
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +16 -16
- data/demo/tools/mac/Replay.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +16 -16
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +16 -16
- data/demo/tools/mac/TableManager.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +16 -16
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +16 -16
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +16 -16
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +16 -16
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/tool_launch.rb +38 -38
- data/ext/cosmos/ext/array/array.c +111 -111
- data/ext/cosmos/ext/array/extconf.rb +13 -13
- data/ext/cosmos/ext/buffered_file/buffered_file.c +167 -167
- data/ext/cosmos/ext/buffered_file/extconf.rb +13 -13
- data/ext/cosmos/ext/config_parser/config_parser.c +237 -237
- data/ext/cosmos/ext/config_parser/extconf.rb +13 -13
- data/ext/cosmos/ext/cosmos_io/cosmos_io.c +117 -117
- data/ext/cosmos/ext/cosmos_io/extconf.rb +13 -13
- data/ext/cosmos/ext/crc/crc.c +341 -341
- data/ext/cosmos/ext/crc/extconf.rb +12 -12
- data/ext/cosmos/ext/line_graph/extconf.rb +13 -13
- data/ext/cosmos/ext/line_graph/line_graph.c +501 -501
- data/ext/cosmos/ext/low_fragmentation_array/extconf.rb +12 -12
- data/ext/cosmos/ext/low_fragmentation_array/low_fragmentation_array.c +265 -265
- data/ext/cosmos/ext/packet/extconf.rb +13 -13
- data/ext/cosmos/ext/packet/packet.c +339 -339
- data/ext/cosmos/ext/platform/extconf.rb +13 -13
- data/ext/cosmos/ext/platform/platform.c +101 -101
- data/ext/cosmos/ext/polynomial_conversion/extconf.rb +13 -13
- data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +73 -73
- data/ext/cosmos/ext/string/extconf.rb +13 -13
- data/ext/cosmos/ext/string/string.c +49 -49
- data/ext/cosmos/ext/structure/structure.c +1428 -1428
- data/ext/cosmos/ext/tabbed_plots_config/extconf.rb +13 -13
- data/ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c +51 -51
- data/ext/cosmos/ext/telemetry/extconf.rb +13 -13
- data/ext/cosmos/ext/telemetry/telemetry.c +307 -307
- data/ext/mkrf_conf.rb +40 -40
- data/install/Gemfile +10 -10
- data/install/Launcher +16 -16
- data/install/Launcher.bat +0 -0
- data/install/Rakefile +77 -77
- data/install/config/data/crc.txt +151 -151
- data/install/config/system/system.txt +29 -29
- data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/install/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/install/config/targets/COSMOS/screens/version.txt +19 -19
- data/install/config/targets/COSMOS/target.txt +8 -8
- data/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
- data/install/config/tools/data_viewer/data_viewer.txt +3 -3
- data/install/config/tools/handbook_creator/handbook_creator.txt +49 -49
- data/install/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
- data/install/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/install/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/install/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/install/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/install/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/install/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/install/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/install/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/install/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/install/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
- data/install/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/install/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/install/config/tools/launcher/launcher.txt +40 -40
- data/install/config/tools/script_runner/script_runner.txt +3 -3
- data/install/config/tools/test_runner/test_runner.txt +8 -8
- data/install/config/tools/tlm_viewer/tlm_viewer.txt +5 -5
- data/install/lib/user_version.rb +3 -3
- data/install/tools/CmdExtractor +16 -16
- data/install/tools/CmdExtractor.bat +0 -0
- data/install/tools/CmdSender +16 -16
- data/install/tools/CmdSender.bat +0 -0
- data/install/tools/CmdTlmServer +16 -16
- data/install/tools/CmdTlmServer.bat +0 -0
- data/install/tools/DataViewer +16 -16
- data/install/tools/DataViewer.bat +0 -0
- data/install/tools/HandbookCreator +16 -16
- data/install/tools/HandbookCreator.bat +0 -0
- data/install/tools/Launcher +16 -16
- data/install/tools/Launcher.bat +0 -0
- data/install/tools/LimitsMonitor +16 -16
- data/install/tools/LimitsMonitor.bat +0 -0
- data/install/tools/OpenGLBuilder +16 -16
- data/install/tools/OpenGLBuilder.bat +0 -0
- data/install/tools/PacketViewer +16 -16
- data/install/tools/PacketViewer.bat +0 -0
- data/install/tools/Replay +16 -16
- data/install/tools/Replay.bat +0 -0
- data/install/tools/ScriptRunner +16 -16
- data/install/tools/ScriptRunner.bat +0 -0
- data/install/tools/TableManager +16 -16
- data/install/tools/TableManager.bat +0 -0
- data/install/tools/TestRunner +16 -16
- data/install/tools/TestRunner.bat +0 -0
- data/install/tools/TlmExtractor +16 -16
- data/install/tools/TlmExtractor.bat +0 -0
- data/install/tools/TlmGrapher +16 -16
- data/install/tools/TlmGrapher.bat +0 -0
- data/install/tools/TlmViewer +16 -16
- data/install/tools/TlmViewer.bat +0 -0
- data/install/tools/ToolLaunch.bat +14 -5
- data/install/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +16 -16
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +16 -16
- data/install/tools/mac/CmdSender.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +16 -16
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +16 -16
- data/install/tools/mac/DataViewer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +16 -16
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +16 -16
- data/install/tools/mac/Launcher.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +16 -16
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +16 -16
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +16 -16
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +16 -16
- data/install/tools/mac/Replay.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +16 -16
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +16 -16
- data/install/tools/mac/TableManager.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +16 -16
- data/install/tools/mac/TestRunner.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +16 -16
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +16 -16
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +16 -16
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/tool_launch.rb +38 -38
- data/lib/cosmos.rb +63 -63
- data/lib/cosmos/ccsds/ccsds_packet.rb +63 -63
- data/lib/cosmos/ccsds/ccsds_parser.rb +143 -143
- data/lib/cosmos/config/config_parser.rb +324 -324
- data/lib/cosmos/conversions.rb +13 -13
- data/lib/cosmos/conversions/conversion.rb +47 -47
- data/lib/cosmos/conversions/generic_conversion.rb +55 -55
- data/lib/cosmos/conversions/new_packet_log_conversion.rb +45 -45
- data/lib/cosmos/conversions/polynomial_conversion.rb +57 -57
- data/lib/cosmos/conversions/processor_conversion.rb +46 -46
- data/lib/cosmos/conversions/received_count_conversion.rb +33 -33
- data/lib/cosmos/conversions/received_time_formatted_conversion.rb +37 -37
- data/lib/cosmos/conversions/received_time_seconds_conversion.rb +37 -37
- data/lib/cosmos/conversions/segmented_polynomial_conversion.rb +128 -128
- data/lib/cosmos/conversions/unix_time_conversion.rb +50 -50
- data/lib/cosmos/conversions/unix_time_formatted_conversion.rb +44 -44
- data/lib/cosmos/conversions/unix_time_seconds_conversion.rb +44 -44
- data/lib/cosmos/core_ext.rb +18 -18
- data/lib/cosmos/core_ext/array.rb +354 -354
- data/lib/cosmos/core_ext/class.rb +51 -51
- data/lib/cosmos/core_ext/cosmos_io.rb +29 -29
- data/lib/cosmos/core_ext/exception.rb +52 -52
- data/lib/cosmos/core_ext/file.rb +75 -75
- data/lib/cosmos/core_ext/hash.rb +28 -28
- data/lib/cosmos/core_ext/io.rb +75 -75
- data/lib/cosmos/core_ext/kernel.rb +38 -38
- data/lib/cosmos/core_ext/math.rb +119 -119
- data/lib/cosmos/core_ext/matrix.rb +146 -146
- data/lib/cosmos/core_ext/objectspace.rb +29 -29
- data/lib/cosmos/core_ext/range.rb +22 -22
- data/lib/cosmos/core_ext/socket.rb +32 -32
- data/lib/cosmos/core_ext/string.rb +311 -311
- data/lib/cosmos/core_ext/stringio.rb +24 -24
- data/lib/cosmos/core_ext/time.rb +448 -448
- data/lib/cosmos/gui/choosers/combobox_chooser.rb +130 -130
- data/lib/cosmos/gui/choosers/file_chooser.rb +68 -68
- data/lib/cosmos/gui/choosers/float_chooser.rb +82 -82
- data/lib/cosmos/gui/choosers/integer_chooser.rb +80 -80
- data/lib/cosmos/gui/choosers/string_chooser.rb +53 -53
- data/lib/cosmos/gui/choosers/telemetry_chooser.rb +326 -326
- data/lib/cosmos/gui/dialogs/about_dialog.rb +137 -137
- data/lib/cosmos/gui/dialogs/calendar_dialog.rb +136 -136
- data/lib/cosmos/gui/dialogs/cmd_details_dialog.rb +52 -52
- data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +149 -149
- data/lib/cosmos/gui/dialogs/details_dialog.rb +174 -174
- data/lib/cosmos/gui/dialogs/exception_dialog.rb +97 -97
- data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +59 -59
- data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +260 -260
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +169 -169
- data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +118 -118
- data/lib/cosmos/gui/dialogs/progress_dialog.rb +276 -276
- data/lib/cosmos/gui/dialogs/pry_dialog.rb +165 -165
- data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +37 -37
- data/lib/cosmos/gui/dialogs/select_dialog.rb +54 -54
- data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +131 -131
- data/lib/cosmos/gui/dialogs/splash.rb +135 -135
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +206 -206
- data/lib/cosmos/gui/dialogs/tlm_edit_dialog.rb +81 -81
- data/lib/cosmos/gui/line_graph/line_graph.rb +456 -456
- data/lib/cosmos/gui/line_graph/line_graph_dialog.rb +34 -34
- data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +473 -473
- data/lib/cosmos/gui/line_graph/line_graph_popups.rb +116 -116
- data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +451 -451
- data/lib/cosmos/gui/line_graph/line_graph_script.rb +26 -26
- data/lib/cosmos/gui/line_graph/lines.rb +290 -290
- data/lib/cosmos/gui/line_graph/overview_graph.rb +469 -469
- data/lib/cosmos/gui/opengl/earth_model.rb +22 -22
- data/lib/cosmos/gui/opengl/gl_bounds.rb +67 -67
- data/lib/cosmos/gui/opengl/gl_light.rb +39 -39
- data/lib/cosmos/gui/opengl/gl_material.rb +29 -29
- data/lib/cosmos/gui/opengl/gl_scene.rb +72 -72
- data/lib/cosmos/gui/opengl/gl_shape.rb +146 -146
- data/lib/cosmos/gui/opengl/gl_viewer.rb +724 -724
- data/lib/cosmos/gui/opengl/gl_viewport.rb +35 -35
- data/lib/cosmos/gui/opengl/moon_model.rb +22 -22
- data/lib/cosmos/gui/opengl/opengl.rb +8 -8
- data/lib/cosmos/gui/opengl/stl_reader.rb +211 -211
- data/lib/cosmos/gui/opengl/stl_shape.rb +124 -124
- data/lib/cosmos/gui/opengl/texture_mapped_sphere.rb +202 -202
- data/lib/cosmos/gui/qt.rb +860 -860
- data/lib/cosmos/gui/qt_tool.rb +380 -380
- data/lib/cosmos/gui/text/completion.rb +381 -381
- data/lib/cosmos/gui/text/completion_line_edit.rb +30 -30
- data/lib/cosmos/gui/text/completion_text_edit.rb +179 -179
- data/lib/cosmos/gui/text/ruby_editor.rb +415 -415
- data/lib/cosmos/gui/utilities/screenshot.rb +25 -25
- data/lib/cosmos/gui/utilities/script_module_gui.rb +330 -330
- data/lib/cosmos/gui/widgets/full_text_search_line_edit.rb +161 -161
- data/lib/cosmos/gui/widgets/packet_log_frame.rb +305 -305
- data/lib/cosmos/gui/widgets/realtime_button_bar.rb +98 -98
- data/lib/cosmos/interfaces.rb +11 -11
- data/lib/cosmos/interfaces/cmd_tlm_server_interface.rb +153 -153
- data/lib/cosmos/interfaces/interface.rb +225 -225
- data/lib/cosmos/interfaces/linc_interface.rb +360 -360
- data/lib/cosmos/interfaces/serial_interface.rb +76 -76
- data/lib/cosmos/interfaces/simulated_target_interface.rb +129 -129
- data/lib/cosmos/interfaces/stream_interface.rb +136 -136
- data/lib/cosmos/interfaces/tcpip_client_interface.rb +60 -60
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +164 -164
- data/lib/cosmos/interfaces/udp_interface.rb +161 -161
- data/lib/cosmos/io/buffered_file.rb +11 -11
- data/lib/cosmos/io/cosmos_snmp.rb +50 -50
- data/lib/cosmos/io/io_multiplexer.rb +89 -89
- data/lib/cosmos/io/json_drb.rb +376 -376
- data/lib/cosmos/io/json_drb_object.rb +198 -198
- data/lib/cosmos/io/json_rpc.rb +365 -365
- data/lib/cosmos/io/posix_serial_driver.rb +145 -145
- data/lib/cosmos/io/raw_logger.rb +174 -174
- data/lib/cosmos/io/raw_logger_pair.rb +71 -71
- data/lib/cosmos/io/serial_driver.rb +85 -85
- data/lib/cosmos/io/stderr.rb +36 -36
- data/lib/cosmos/io/stdout.rb +36 -36
- data/lib/cosmos/io/tcpip_server.rb +571 -571
- data/lib/cosmos/io/udp_sockets.rb +152 -152
- data/lib/cosmos/io/win32_serial_driver.rb +145 -145
- data/lib/cosmos/packet_logs.rb +7 -7
- data/lib/cosmos/packet_logs/ccsds_log_reader.rb +104 -104
- data/lib/cosmos/packet_logs/meta_packet_log_writer.rb +107 -107
- data/lib/cosmos/packet_logs/packet_log_reader.rb +450 -450
- data/lib/cosmos/packet_logs/packet_log_writer.rb +323 -323
- data/lib/cosmos/packet_logs/packet_log_writer_pair.rb +30 -30
- data/lib/cosmos/packets/binary_accessor.rb +634 -634
- data/lib/cosmos/packets/commands.rb +293 -293
- data/lib/cosmos/packets/limits.rb +267 -267
- data/lib/cosmos/packets/limits_response.rb +38 -38
- data/lib/cosmos/packets/packet.rb +786 -786
- data/lib/cosmos/packets/packet_config.rb +482 -482
- data/lib/cosmos/packets/packet_item.rb +317 -317
- data/lib/cosmos/packets/packet_item_limits.rb +128 -128
- data/lib/cosmos/packets/parsers/format_string_parser.rb +58 -58
- data/lib/cosmos/packets/parsers/limits_parser.rb +146 -146
- data/lib/cosmos/packets/parsers/limits_response_parser.rb +52 -52
- data/lib/cosmos/packets/parsers/macro_parser.rb +116 -116
- data/lib/cosmos/packets/parsers/packet_item_parser.rb +215 -215
- data/lib/cosmos/packets/parsers/packet_parser.rb +123 -123
- data/lib/cosmos/packets/parsers/processor_parser.rb +63 -63
- data/lib/cosmos/packets/parsers/state_parser.rb +116 -116
- data/lib/cosmos/packets/structure.rb +458 -458
- data/lib/cosmos/packets/structure_item.rb +233 -233
- data/lib/cosmos/packets/telemetry.rb +350 -350
- data/lib/cosmos/processors.rb +6 -6
- data/lib/cosmos/processors/new_packet_log_processor.rb +34 -34
- data/lib/cosmos/processors/processor.rb +71 -71
- data/lib/cosmos/processors/statistics_processor.rb +65 -65
- data/lib/cosmos/processors/watermark_processor.rb +44 -44
- data/lib/cosmos/script.rb +9 -9
- data/lib/cosmos/script/cmd_tlm_server.rb +110 -110
- data/lib/cosmos/script/commands.rb +184 -184
- data/lib/cosmos/script/extract.rb +123 -123
- data/lib/cosmos/script/limits.rb +114 -114
- data/lib/cosmos/script/script.rb +76 -76
- data/lib/cosmos/script/scripting.rb +897 -897
- data/lib/cosmos/script/telemetry.rb +174 -174
- data/lib/cosmos/script/tools.rb +138 -138
- data/lib/cosmos/streams/burst_stream_protocol.rb +25 -25
- data/lib/cosmos/streams/fixed_stream_protocol.rb +111 -111
- data/lib/cosmos/streams/length_stream_protocol.rb +140 -140
- data/lib/cosmos/streams/preidentified_stream_protocol.rb +118 -118
- data/lib/cosmos/streams/serial_stream.rb +157 -157
- data/lib/cosmos/streams/stream.rb +63 -63
- data/lib/cosmos/streams/stream_protocol.rb +373 -373
- data/lib/cosmos/streams/tcpip_client_stream.rb +113 -113
- data/lib/cosmos/streams/tcpip_socket_stream.rb +143 -143
- data/lib/cosmos/streams/template_stream_protocol.rb +140 -140
- data/lib/cosmos/streams/terminated_stream_protocol.rb +81 -81
- data/lib/cosmos/system.rb +4 -4
- data/lib/cosmos/system/system.rb +618 -618
- data/lib/cosmos/system/target.rb +197 -197
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +255 -255
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +717 -717
- data/lib/cosmos/tools/cmd_sender/cmd_sender_item_delegate.rb +77 -77
- data/lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb +70 -70
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +1034 -1034
- data/lib/cosmos/tools/cmd_tlm_server/background_task.rb +46 -46
- data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +67 -67
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +515 -515
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +253 -253
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +408 -408
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +112 -112
- data/lib/cosmos/tools/cmd_tlm_server/connections.rb +175 -175
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +200 -200
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +176 -176
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +150 -150
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +244 -244
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +90 -90
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +266 -266
- data/lib/cosmos/tools/cmd_tlm_server/interfaces.rb +127 -127
- data/lib/cosmos/tools/cmd_tlm_server/packet_logging.rb +132 -132
- data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +66 -66
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +97 -97
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +621 -621
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +134 -134
- data/lib/cosmos/tools/data_viewer/dump_component.rb +40 -40
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +156 -156
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +382 -382
- data/lib/cosmos/tools/launcher/launcher.rb +188 -188
- data/lib/cosmos/tools/launcher/launcher_config.rb +256 -256
- data/lib/cosmos/tools/launcher/launcher_multitool.rb +40 -40
- data/lib/cosmos/tools/launcher/launcher_tool.rb +116 -116
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +837 -837
- data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +416 -416
- data/lib/cosmos/tools/opengl_builder/scene_config.rb +118 -118
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +542 -542
- data/lib/cosmos/tools/replay/replay.rb +501 -501
- data/lib/cosmos/tools/replay/replay_server.rb +91 -91
- data/lib/cosmos/tools/script_runner/script_audit.rb +147 -147
- data/lib/cosmos/tools/script_runner/script_runner.rb +922 -922
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +40 -40
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +1798 -1798
- data/lib/cosmos/tools/table_manager/table.rb +70 -70
- data/lib/cosmos/tools/table_manager/table_config.rb +764 -764
- data/lib/cosmos/tools/table_manager/table_item.rb +74 -74
- data/lib/cosmos/tools/table_manager/table_manager.rb +1065 -1065
- data/lib/cosmos/tools/table_manager/table_manager_core.rb +539 -539
- data/lib/cosmos/tools/test_runner/results_writer.rb +283 -283
- data/lib/cosmos/tools/test_runner/test.rb +539 -539
- data/lib/cosmos/tools/test_runner/test_runner.rb +1189 -1189
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +341 -341
- data/lib/cosmos/tools/tlm_extractor/text_item_chooser.rb +60 -60
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +1016 -1016
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +371 -371
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +60 -60
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/housekeeping_data_object_adder.rb +75 -75
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/singlexy_data_object_adder.rb +44 -44
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +95 -95
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/data_object_editor.rb +61 -61
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +181 -181
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/linegraph_data_object_editor.rb +141 -141
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/singlexy_data_object_editor.rb +30 -30
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +174 -174
- data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +193 -193
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +407 -407
- data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +176 -176
- data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +25 -25
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +323 -323
- data/lib/cosmos/tools/tlm_grapher/plot_editors/linegraph_plot_editor.rb +181 -181
- data/lib/cosmos/tools/tlm_grapher/plot_editors/plot_editor.rb +28 -28
- data/lib/cosmos/tools/tlm_grapher/plot_editors/singlexy_plot_editor.rb +30 -30
- data/lib/cosmos/tools/tlm_grapher/plot_editors/xy_plot_editor.rb +59 -59
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/linegraph_plot_gui_object.rb +172 -172
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/singlexy_plot_gui_object.rb +27 -27
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/xy_plot_gui_object.rb +74 -74
- data/lib/cosmos/tools/tlm_grapher/plots/linegraph_plot.rb +201 -201
- data/lib/cosmos/tools/tlm_grapher/plots/plot.rb +69 -69
- data/lib/cosmos/tools/tlm_grapher/plots/singlexy_plot.rb +20 -20
- data/lib/cosmos/tools/tlm_grapher/plots/xy_plot.rb +61 -61
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +1291 -1291
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +430 -430
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb +107 -107
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +114 -114
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb +101 -101
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +78 -78
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tab.rb +57 -57
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +1004 -1004
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +87 -87
- data/lib/cosmos/tools/tlm_viewer/screen.rb +486 -486
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +561 -561
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +290 -290
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +53 -53
- data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +110 -110
- data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +66 -66
- data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +57 -57
- data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +39 -39
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +62 -62
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +41 -41
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +57 -57
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +56 -56
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +55 -55
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +66 -66
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +124 -124
- data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +31 -31
- data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +30 -30
- data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +36 -36
- data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +35 -35
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +27 -27
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +31 -31
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +26 -26
- data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +29 -29
- data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +39 -39
- data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +38 -38
- data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +38 -38
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +39 -39
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +42 -42
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +34 -34
- data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +178 -178
- data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +54 -54
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +47 -47
- data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +116 -116
- data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +34 -34
- data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +30 -30
- data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +57 -57
- data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +34 -34
- data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +35 -35
- data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +33 -33
- data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +26 -26
- data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +28 -28
- data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +47 -47
- data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +26 -26
- data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +88 -88
- data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +27 -27
- data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +130 -130
- data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +46 -46
- data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +43 -43
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +35 -35
- data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +257 -257
- data/lib/cosmos/top_level.rb +759 -759
- data/lib/cosmos/utilities.rb +11 -11
- data/lib/cosmos/utilities/crc.rb +166 -166
- data/lib/cosmos/utilities/csv.rb +83 -83
- data/lib/cosmos/utilities/logger.rb +137 -137
- data/lib/cosmos/utilities/low_fragmentation_array.rb +11 -11
- data/lib/cosmos/utilities/message_log.rb +79 -79
- data/lib/cosmos/utilities/quaternion.rb +258 -258
- data/lib/cosmos/utilities/ruby_lex_utils.rb +313 -313
- data/lib/cosmos/utilities/simulated_target.rb +99 -99
- data/lib/cosmos/utilities/sleeper.rb +44 -44
- data/lib/cosmos/version.rb +12 -12
- data/lib/cosmos/win32/excel.rb +66 -66
- data/lib/cosmos/win32/win32.rb +387 -387
- data/lib/cosmos/win32/win32_main.rb +321 -321
- data/roodi.yml +24 -24
- data/run_gui_tests.bat +0 -0
- data/spec/ccsds/ccsds_packet_spec.rb +67 -67
- data/spec/ccsds/ccsds_parser_spec.rb +148 -148
- data/spec/config/config_parser_spec.rb +322 -322
- data/spec/conversions/conversion_spec.rb +31 -31
- data/spec/conversions/generic_conversion_spec.rb +45 -45
- data/spec/conversions/new_packet_log_conversion_spec.rb +39 -39
- data/spec/conversions/polynomial_conversion_spec.rb +40 -40
- data/spec/conversions/processor_conversion_spec.rb +45 -45
- data/spec/conversions/received_count_conversion_spec.rb +43 -43
- data/spec/conversions/received_time_formatted_conversion_spec.rb +49 -49
- data/spec/conversions/received_time_seconds_conversion_spec.rb +50 -50
- data/spec/conversions/segmented_polynomial_conversion_spec.rb +51 -51
- data/spec/conversions/unix_time_formatted_conversion_spec.rb +74 -74
- data/spec/conversions/unix_time_seconds_conversion_spec.rb +76 -76
- data/spec/core_ext/array_spec.rb +186 -186
- data/spec/core_ext/class_spec.rb +36 -36
- data/spec/core_ext/cosmos_io_spec.rb +77 -77
- data/spec/core_ext/exception_spec.rb +91 -91
- data/spec/core_ext/file_spec.rb +72 -72
- data/spec/core_ext/hash_spec.rb +24 -24
- data/spec/core_ext/io_spec.rb +46 -46
- data/spec/core_ext/kernel_spec.rb +54 -54
- data/spec/core_ext/math_spec.rb +116 -116
- data/spec/core_ext/matrix_spec.rb +66 -66
- data/spec/core_ext/objectspace_spec.rb +29 -29
- data/spec/core_ext/range_spec.rb +21 -21
- data/spec/core_ext/socket_spec.rb +32 -32
- data/spec/core_ext/string_spec.rb +223 -223
- data/spec/core_ext/stringio_spec.rb +21 -21
- data/spec/core_ext/time_spec.rb +202 -202
- data/spec/gui/line_graph/line_clip_spec.rb +322 -322
- data/spec/gui/qt_spec.rb +102 -102
- data/spec/install/config/system/system.txt +33 -33
- data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/spec/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/spec/install/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/spec/install/config/targets/COSMOS/screens/version.txt +19 -19
- data/spec/install/config/targets/COSMOS/target.txt +5 -5
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmd_linc.txt +30 -30
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +111 -111
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +236 -236
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm_linc.txt +25 -25
- data/spec/install/config/targets/INST/cmd_tlm_server.txt +5 -5
- data/spec/install/config/targets/INST/lib/sim_inst.rb +305 -305
- data/spec/install/config/targets/INST/target.txt +10 -10
- data/spec/install/config/targets/META/cmd_tlm/meta_cmd.txt +4 -4
- data/spec/install/config/targets/META/cmd_tlm/meta_tlm.txt +4 -4
- data/spec/install/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
- data/spec/interfaces/cmd_tlm_server_interface_spec.rb +150 -150
- data/spec/interfaces/interface_spec.rb +130 -130
- data/spec/interfaces/linc_interface_spec.rb +259 -259
- data/spec/interfaces/serial_interface_spec.rb +56 -56
- data/spec/interfaces/simulated_target_interface_spec.rb +128 -128
- data/spec/interfaces/stream_interface_spec.rb +157 -157
- data/spec/interfaces/tcpip_client_interface_spec.rb +55 -55
- data/spec/interfaces/tcpip_server_interface_spec.rb +160 -160
- data/spec/interfaces/udp_interface_spec.rb +175 -175
- data/spec/io/buffered_file_spec.rb +113 -113
- data/spec/io/io_multiplexer_spec.rb +94 -94
- data/spec/io/json_drb_object_spec.rb +119 -119
- data/spec/io/json_drb_spec.rb +311 -311
- data/spec/io/json_rpc_spec.rb +264 -264
- data/spec/io/raw_logger_pair_spec.rb +76 -76
- data/spec/io/raw_logger_spec.rb +133 -133
- data/spec/io/serial_driver_spec.rb +60 -60
- data/spec/io/stderr_spec.rb +32 -32
- data/spec/io/stdout_spec.rb +32 -32
- data/spec/io/tcpip_server_spec.rb +338 -338
- data/spec/io/udp_sockets_spec.rb +94 -94
- data/spec/io/win32_serial_driver_spec.rb +88 -88
- data/spec/packet_logs/meta_packet_log_writer_spec.rb +170 -170
- data/spec/packet_logs/packet_log_reader_spec.rb +468 -468
- data/spec/packet_logs/packet_log_writer_pair_spec.rb +30 -30
- data/spec/packet_logs/packet_log_writer_spec.rb +225 -225
- data/spec/packets/binary_accessor_spec.rb +2326 -2326
- data/spec/packets/commands_spec.rb +369 -369
- data/spec/packets/limits_response_spec.rb +25 -25
- data/spec/packets/limits_spec.rb +344 -344
- data/spec/packets/packet_config_spec.rb +805 -805
- data/spec/packets/packet_item_limits_spec.rb +161 -161
- data/spec/packets/packet_item_spec.rb +386 -386
- data/spec/packets/packet_spec.rb +1317 -1317
- data/spec/packets/parsers/format_string_parser_spec.rb +122 -122
- data/spec/packets/parsers/limits_parser_spec.rb +282 -282
- data/spec/packets/parsers/limits_response_parser_spec.rb +149 -149
- data/spec/packets/parsers/macro_parser_spec.rb +212 -212
- data/spec/packets/parsers/packet_item_parser_spec.rb +306 -306
- data/spec/packets/parsers/packet_parser_spec.rb +99 -99
- data/spec/packets/parsers/processor_parser_spec.rb +114 -114
- data/spec/packets/parsers/state_parser_spec.rb +156 -156
- data/spec/packets/structure_item_spec.rb +195 -195
- data/spec/packets/structure_spec.rb +565 -565
- data/spec/packets/telemetry_spec.rb +578 -578
- data/spec/processors/new_packet_log_processor_spec.rb +39 -39
- data/spec/processors/processor_spec.rb +55 -55
- data/spec/processors/statistics_processor_spec.rb +60 -60
- data/spec/processors/watermark_processor_spec.rb +51 -51
- data/spec/script/cmd_tlm_server_spec.rb +110 -110
- data/spec/script/commands_disconnect_spec.rb +270 -270
- data/spec/script/commands_spec.rb +302 -302
- data/spec/script/limits_spec.rb +153 -153
- data/spec/script/script_spec.rb +86 -86
- data/spec/script/scripting_spec.rb +440 -440
- data/spec/script/telemetry_spec.rb +165 -165
- data/spec/script/tools_spec.rb +117 -117
- data/spec/spec_helper.rb +190 -190
- data/spec/streams/burst_stream_protocol_spec.rb +32 -32
- data/spec/streams/fixed_stream_protocol_spec.rb +113 -113
- data/spec/streams/length_stream_protocol_spec.rb +300 -300
- data/spec/streams/preidentified_stream_protocol_spec.rb +121 -121
- data/spec/streams/serial_stream_spec.rb +117 -117
- data/spec/streams/stream_protocol_spec.rb +346 -346
- data/spec/streams/stream_spec.rb +30 -30
- data/spec/streams/tcpip_client_stream_spec.rb +57 -57
- data/spec/streams/tcpip_socket_stream_spec.rb +193 -193
- data/spec/streams/template_stream_protocol_spec.rb +156 -156
- data/spec/streams/terminated_stream_protocol_spec.rb +127 -127
- data/spec/system/system_spec.rb +665 -665
- data/spec/system/target_spec.rb +250 -250
- data/spec/tools/cmd_tlm_server/api_spec.rb +1117 -1117
- data/spec/tools/cmd_tlm_server/background_task_spec.rb +32 -32
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +81 -81
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +453 -453
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +415 -415
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +151 -151
- data/spec/tools/cmd_tlm_server/connections_spec.rb +235 -235
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +306 -306
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +252 -252
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +143 -143
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +151 -151
- data/spec/tools/cmd_tlm_server/routers_spec.rb +223 -223
- data/spec/tools/launcher/launcher_config_spec.rb +464 -464
- data/spec/top_level/top_level_spec.rb +334 -334
- data/spec/utilities/crc_spec.rb +45 -45
- data/spec/utilities/csv_spec.rb +97 -97
- data/spec/utilities/logger_spec.rb +102 -102
- data/spec/utilities/message_log_spec.rb +89 -89
- data/spec/utilities/quaternion_spec.rb +107 -107
- data/spec/utilities/ruby_lex_utils_spec.rb +86 -86
- data/tasks/manifest.rake +22 -22
- data/tasks/spec.rake +23 -23
- data/test/benchmarks/binary_accessor_benchmark.rb +14 -14
- data/test/benchmarks/gsub_benchmark.rb +152 -152
- data/test/benchmarks/is_a_benchmark.rb +34 -34
- data/test/performance/PACKETS.bat +0 -0
- data/test/performance/Rakefile +77 -77
- data/test/performance/THREADS.bat +0 -0
- data/test/performance/config/data/crc.txt +196 -196
- data/test/performance/config/data/diamond.STL +57 -57
- data/test/performance/config/data/meta_init.txt +4 -4
- data/test/performance/config/system/system_packets.txt +39 -39
- data/test/performance/config/system/system_threads.txt +59 -59
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +46 -46
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/test/performance/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/test/performance/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/test/performance/config/targets/COSMOS/screens/version.txt +19 -19
- data/test/performance/config/targets/COSMOS/target.txt +11 -11
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_cmds.txt +20 -20
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +98 -98
- data/test/performance/config/targets/PACKET/cmd_tlm_server.txt +6 -6
- data/test/performance/config/targets/PACKET/lib/packet_interface.rb +22 -22
- data/test/performance/config/targets/PACKET/lib/packet_limits_response.rb +24 -24
- data/test/performance/config/targets/PACKET/screens/status.txt +25 -25
- data/test/performance/config/targets/PACKET/target.txt +28 -28
- data/test/performance/config/targets/SYSTEM/screens/status.txt +12 -12
- data/test/performance/config/targets/THREAD/cmd_tlm/thread_cmds.txt +17 -17
- data/test/performance/config/targets/THREAD/cmd_tlm/thread_tlm.txt +18 -18
- data/test/performance/config/targets/THREAD/cmd_tlm_server.txt +6 -6
- data/test/performance/config/targets/THREAD/lib/thread_interface.rb +22 -22
- data/test/performance/config/targets/THREAD/screens/status.txt +25 -25
- data/test/performance/config/targets/THREAD/target.txt +6 -6
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +28 -28
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +68 -68
- data/test/performance/config/tools/data_viewer/data_viewer.txt +11 -11
- data/test/performance/config/tools/handbook_creator/handbook_creator.txt +66 -66
- data/test/performance/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
- data/test/performance/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/test/performance/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/test/performance/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/test/performance/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/test/performance/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/test/performance/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/test/performance/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/test/performance/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/test/performance/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/test/performance/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
- data/test/performance/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/test/performance/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/test/performance/config/tools/launcher/launcher_packets.txt +34 -34
- data/test/performance/config/tools/launcher/launcher_threads.txt +83 -83
- data/test/performance/config/tools/script_runner/script_runner.txt +3 -3
- data/test/performance/config/tools/table_manager/ConfigTables_def.txt +8 -8
- data/test/performance/config/tools/table_manager/ExampleTableDefinition.txt +24 -24
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -25
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -25
- data/test/performance/config/tools/table_manager/PPSSelectionTable_def.txt +8 -8
- data/test/performance/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -248
- data/test/performance/config/tools/test_runner/test_runner.txt +17 -17
- data/test/performance/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
- data/test/performance/config/tools/tlm_extractor/tlm_extractor2.txt +2 -2
- data/test/performance/config/tools/tlm_extractor/tlm_extractor3.txt +2 -2
- data/test/performance/config/tools/tlm_extractor/tlm_extractor4.txt +2 -2
- data/test/performance/config/tools/tlm_grapher/tlm_grapher.txt +204 -204
- data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +13 -13
- data/test/performance/lib/packet_target.rb +126 -126
- data/test/performance/lib/thread_target.rb +120 -120
- data/test/performance/lib/user_version.rb +3 -3
- data/test/performance/procedures/checks.rb +11 -11
- data/test/performance/procedures/clear_util.rb +7 -7
- data/test/performance/procedures/collect.rb +18 -18
- data/test/performance/procedures/collect_util.rb +14 -14
- data/test/performance/procedures/cosmos_api_test.rb +293 -293
- data/test/performance/procedures/disconnect.rb +29 -29
- data/test/performance/procedures/example_test.rb +182 -182
- data/test/performance/procedures/plot_test.rb +8 -8
- data/test/performance/procedures/procedure.rb +2 -2
- data/test/performance/procedures/run_example_test.rb +3 -3
- data/test/performance/procedures/test.rb +51 -51
- data/test/performance/tools/CmdExtractor +14 -14
- data/test/performance/tools/CmdExtractor.bat +0 -0
- data/test/performance/tools/CmdSender +14 -14
- data/test/performance/tools/CmdSender.bat +0 -0
- data/test/performance/tools/CmdTlmServer +16 -16
- data/test/performance/tools/CmdTlmServer.bat +0 -0
- data/test/performance/tools/CmdTlmServerMemProf +20 -20
- data/test/performance/tools/CmdTlmServerMemProf.bat +0 -0
- data/test/performance/tools/DataViewer +14 -14
- data/test/performance/tools/DataViewer.bat +0 -0
- data/test/performance/tools/HandbookCreator +14 -14
- data/test/performance/tools/HandbookCreator.bat +0 -0
- data/test/performance/tools/Launcher +14 -14
- data/test/performance/tools/Launcher.bat +0 -0
- data/test/performance/tools/LimitsMonitor +14 -14
- data/test/performance/tools/LimitsMonitor.bat +0 -0
- data/test/performance/tools/OpenGLBuilder +14 -14
- data/test/performance/tools/OpenGLBuilder.bat +0 -0
- data/test/performance/tools/PacketTarget +14 -14
- data/test/performance/tools/PacketTarget.bat +0 -0
- data/test/performance/tools/PacketViewer +14 -14
- data/test/performance/tools/PacketViewer.bat +0 -0
- data/test/performance/tools/Replay +14 -14
- data/test/performance/tools/Replay.bat +0 -0
- data/test/performance/tools/ScpiTarget +14 -14
- data/test/performance/tools/ScpiTarget.bat +0 -0
- data/test/performance/tools/ScriptRunner +14 -14
- data/test/performance/tools/ScriptRunner.bat +0 -0
- data/test/performance/tools/TableManager +14 -14
- data/test/performance/tools/TableManager.bat +0 -0
- data/test/performance/tools/TestRunner +14 -14
- data/test/performance/tools/TestRunner.bat +0 -0
- data/test/performance/tools/ThreadTarget +14 -14
- data/test/performance/tools/ThreadTarget.bat +0 -0
- data/test/performance/tools/TlmExtractor +14 -14
- data/test/performance/tools/TlmExtractor.bat +0 -0
- data/test/performance/tools/TlmGrapher +14 -14
- data/test/performance/tools/TlmGrapher.bat +0 -0
- data/test/performance/tools/TlmGrapherMemProf +19 -19
- data/test/performance/tools/TlmGrapherMemProf.bat +0 -0
- data/test/performance/tools/TlmViewer +14 -14
- data/test/performance/tools/TlmViewer.bat +0 -0
- data/test/performance/tools/TlmViewerMemProf +19 -19
- data/test/performance/tools/TlmViewerMemProf.bat +0 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -15
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -15
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -15
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -15
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -15
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -15
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -15
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -15
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -15
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -15
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -15
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -15
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -15
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -15
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -15
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -15
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -6
- metadata +3 -3
|
@@ -1,32 +1,32 @@
|
|
|
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/background_task'
|
|
14
|
-
|
|
15
|
-
module Cosmos
|
|
16
|
-
|
|
17
|
-
describe BackgroundTask do
|
|
18
|
-
|
|
19
|
-
describe "call" do
|
|
20
|
-
it "raises an error" do
|
|
21
|
-
expect { BackgroundTask.new.call }.to raise_error
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
describe "stop" do
|
|
26
|
-
it "exists" do
|
|
27
|
-
expect(BackgroundTask.new).to respond_to(:stop)
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
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/background_task'
|
|
14
|
+
|
|
15
|
+
module Cosmos
|
|
16
|
+
|
|
17
|
+
describe BackgroundTask do
|
|
18
|
+
|
|
19
|
+
describe "call" do
|
|
20
|
+
it "raises an error" do
|
|
21
|
+
expect { BackgroundTask.new.call }.to raise_error
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "stop" do
|
|
26
|
+
it "exists" do
|
|
27
|
+
expect(BackgroundTask.new).to respond_to(:stop)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
@@ -1,81 +1,81 @@
|
|
|
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/background_tasks'
|
|
14
|
-
require 'tempfile'
|
|
15
|
-
load 'cosmos.rb' # Ensure COSMOS::USERPATH/lib is set
|
|
16
|
-
|
|
17
|
-
module Cosmos
|
|
18
|
-
|
|
19
|
-
describe BackgroundTasks do
|
|
20
|
-
after(:all) do
|
|
21
|
-
clean_config()
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
describe "start, stop" do
|
|
25
|
-
it "calls start on each task" do
|
|
26
|
-
File.open(File.join(Cosmos::USERPATH,'lib','my_bg_task1.rb'),'w') do |file|
|
|
27
|
-
file.puts "require 'cosmos/tools/cmd_tlm_server/background_task'"
|
|
28
|
-
file.puts "class MyBgTask1 < Cosmos::BackgroundTask"
|
|
29
|
-
file.puts " def call; sleep 1 while true; end"
|
|
30
|
-
file.puts " def stop; raise 'Error'; end"
|
|
31
|
-
file.puts "end"
|
|
32
|
-
end
|
|
33
|
-
tf = Tempfile.new('unittest')
|
|
34
|
-
tf.puts 'BACKGROUND_TASK my_bg_task1.rb'
|
|
35
|
-
tf.close
|
|
36
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
37
|
-
bt = BackgroundTasks.new(config)
|
|
38
|
-
bt.start
|
|
39
|
-
sleep 0.1
|
|
40
|
-
# 2 because the RSpec main thread plus the background task
|
|
41
|
-
expect(Thread.list.length).to eql(2)
|
|
42
|
-
bt.stop
|
|
43
|
-
sleep 0.2
|
|
44
|
-
expect(Thread.list.length).to eql(1)
|
|
45
|
-
|
|
46
|
-
tf.unlink
|
|
47
|
-
File.delete(File.join(Cosmos::USERPATH,'lib','my_bg_task1.rb'))
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
it "handles exceptions" do
|
|
51
|
-
tf = Tempfile.new('unittest')
|
|
52
|
-
tf.puts 'BACKGROUND_TASK my_bg_task2.rb'
|
|
53
|
-
tf.close
|
|
54
|
-
capture_io do |stdout|
|
|
55
|
-
File.open(File.join(Cosmos::USERPATH,'lib','my_bg_task2.rb'),'w') do |file|
|
|
56
|
-
file.puts "require 'cosmos/tools/cmd_tlm_server/background_task'"
|
|
57
|
-
file.puts "class MyBgTask2 < Cosmos::BackgroundTask"
|
|
58
|
-
file.puts " def call; raise 'Error'; end"
|
|
59
|
-
file.puts " def stop; raise 'Error'; end"
|
|
60
|
-
file.puts "end"
|
|
61
|
-
end
|
|
62
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
63
|
-
bt = BackgroundTasks.new(config)
|
|
64
|
-
bt.start
|
|
65
|
-
# 2 because the RSpec main thread plus the background task
|
|
66
|
-
expect(Thread.list.length).to eql(2)
|
|
67
|
-
sleep 1.1 # Allow the thread to crash
|
|
68
|
-
expect(Thread.list.length).to eql(1)
|
|
69
|
-
bt.stop
|
|
70
|
-
sleep 0.2
|
|
71
|
-
expect(Thread.list.length).to eql(1)
|
|
72
|
-
|
|
73
|
-
expect(stdout.string).to match "Background Task thread unexpectedly died"
|
|
74
|
-
end
|
|
75
|
-
tf.unlink
|
|
76
|
-
File.delete(File.join(Cosmos::USERPATH,'lib','my_bg_task2.rb'))
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
end
|
|
81
|
-
end
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2014 Ball Aerospace & Technologies Corp.
|
|
4
|
+
# All Rights Reserved.
|
|
5
|
+
#
|
|
6
|
+
# This program is free software; you can modify and/or redistribute it
|
|
7
|
+
# under the terms of the GNU General Public License
|
|
8
|
+
# as published by the Free Software Foundation; version 3 with
|
|
9
|
+
# attribution addendums as found in the LICENSE.txt
|
|
10
|
+
|
|
11
|
+
require 'spec_helper'
|
|
12
|
+
require 'cosmos'
|
|
13
|
+
require 'cosmos/tools/cmd_tlm_server/background_tasks'
|
|
14
|
+
require 'tempfile'
|
|
15
|
+
load 'cosmos.rb' # Ensure COSMOS::USERPATH/lib is set
|
|
16
|
+
|
|
17
|
+
module Cosmos
|
|
18
|
+
|
|
19
|
+
describe BackgroundTasks do
|
|
20
|
+
after(:all) do
|
|
21
|
+
clean_config()
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe "start, stop" do
|
|
25
|
+
it "calls start on each task" do
|
|
26
|
+
File.open(File.join(Cosmos::USERPATH,'lib','my_bg_task1.rb'),'w') do |file|
|
|
27
|
+
file.puts "require 'cosmos/tools/cmd_tlm_server/background_task'"
|
|
28
|
+
file.puts "class MyBgTask1 < Cosmos::BackgroundTask"
|
|
29
|
+
file.puts " def call; sleep 1 while true; end"
|
|
30
|
+
file.puts " def stop; raise 'Error'; end"
|
|
31
|
+
file.puts "end"
|
|
32
|
+
end
|
|
33
|
+
tf = Tempfile.new('unittest')
|
|
34
|
+
tf.puts 'BACKGROUND_TASK my_bg_task1.rb'
|
|
35
|
+
tf.close
|
|
36
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
37
|
+
bt = BackgroundTasks.new(config)
|
|
38
|
+
bt.start
|
|
39
|
+
sleep 0.1
|
|
40
|
+
# 2 because the RSpec main thread plus the background task
|
|
41
|
+
expect(Thread.list.length).to eql(2)
|
|
42
|
+
bt.stop
|
|
43
|
+
sleep 0.2
|
|
44
|
+
expect(Thread.list.length).to eql(1)
|
|
45
|
+
|
|
46
|
+
tf.unlink
|
|
47
|
+
File.delete(File.join(Cosmos::USERPATH,'lib','my_bg_task1.rb'))
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "handles exceptions" do
|
|
51
|
+
tf = Tempfile.new('unittest')
|
|
52
|
+
tf.puts 'BACKGROUND_TASK my_bg_task2.rb'
|
|
53
|
+
tf.close
|
|
54
|
+
capture_io do |stdout|
|
|
55
|
+
File.open(File.join(Cosmos::USERPATH,'lib','my_bg_task2.rb'),'w') do |file|
|
|
56
|
+
file.puts "require 'cosmos/tools/cmd_tlm_server/background_task'"
|
|
57
|
+
file.puts "class MyBgTask2 < Cosmos::BackgroundTask"
|
|
58
|
+
file.puts " def call; raise 'Error'; end"
|
|
59
|
+
file.puts " def stop; raise 'Error'; end"
|
|
60
|
+
file.puts "end"
|
|
61
|
+
end
|
|
62
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
63
|
+
bt = BackgroundTasks.new(config)
|
|
64
|
+
bt.start
|
|
65
|
+
# 2 because the RSpec main thread plus the background task
|
|
66
|
+
expect(Thread.list.length).to eql(2)
|
|
67
|
+
sleep 1.1 # Allow the thread to crash
|
|
68
|
+
expect(Thread.list.length).to eql(1)
|
|
69
|
+
bt.stop
|
|
70
|
+
sleep 0.2
|
|
71
|
+
expect(Thread.list.length).to eql(1)
|
|
72
|
+
|
|
73
|
+
expect(stdout.string).to match "Background Task thread unexpectedly died"
|
|
74
|
+
end
|
|
75
|
+
tf.unlink
|
|
76
|
+
File.delete(File.join(Cosmos::USERPATH,'lib','my_bg_task2.rb'))
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -1,453 +1,453 @@
|
|
|
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/cmd_tlm_server_config'
|
|
15
|
-
require 'tempfile'
|
|
16
|
-
load 'cosmos.rb' # Ensure COSMOS::USERPATH/lib is set
|
|
17
|
-
|
|
18
|
-
module Cosmos
|
|
19
|
-
|
|
20
|
-
describe CmdTlmServerConfig do
|
|
21
|
-
before(:all) do
|
|
22
|
-
@interface_filename = File.join(Cosmos::USERPATH,'lib','cts_config_test_interface.rb')
|
|
23
|
-
File.open(@interface_filename,'w') do |file|
|
|
24
|
-
file.puts "require 'cosmos'"
|
|
25
|
-
file.puts "require 'cosmos/interfaces/interface'"
|
|
26
|
-
file.puts "module Cosmos"
|
|
27
|
-
file.puts " class CtsConfigTestInterface < Interface"
|
|
28
|
-
file.puts " def initialize(test = true)"
|
|
29
|
-
file.puts " super()"
|
|
30
|
-
file.puts " end"
|
|
31
|
-
file.puts " end"
|
|
32
|
-
file.puts "end"
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
@keywords = %w(TITLE PACKET_LOG_WRITER AUTO_INTERFACE_TARGETS INTERFACE_TARGET INTERFACE ROUTER)
|
|
36
|
-
@interface_keywords = %w(DONT_CONNECT DONT_RECONNECT RECONNECT_DELAY DISABLE_DISCONNECT LOG DONT_LOG TARGET)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
after(:all) do
|
|
40
|
-
clean_config()
|
|
41
|
-
File.delete @interface_filename
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
describe "process_file" do
|
|
45
|
-
it "complains if there is an unknown keyword" do
|
|
46
|
-
tf = Tempfile.new('unittest')
|
|
47
|
-
tf.puts "UNKNOWN"
|
|
48
|
-
tf.close
|
|
49
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown keyword: UNKNOWN")
|
|
50
|
-
tf.unlink
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
it "complains if there are not enough parameters" do
|
|
54
|
-
@keywords.each do |keyword|
|
|
55
|
-
next if %w(AUTO_INTERFACE_TARGETS).include? keyword
|
|
56
|
-
tf = Tempfile.new('unittest')
|
|
57
|
-
tf.puts keyword
|
|
58
|
-
tf.close
|
|
59
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Not enough parameters for #{keyword}.")
|
|
60
|
-
tf.unlink
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
@interface_keywords.each do |keyword|
|
|
64
|
-
next if %w(DONT_CONNECT DONT_RECONNECT DISABLE_DISCONNECT DONT_LOG).include? keyword
|
|
65
|
-
tf = Tempfile.new('unittest')
|
|
66
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
67
|
-
tf.puts keyword
|
|
68
|
-
tf.close
|
|
69
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Not enough parameters for #{keyword}.")
|
|
70
|
-
tf.unlink
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
context "with TITLE" do
|
|
75
|
-
it "complains about too many parameters" do
|
|
76
|
-
tf = Tempfile.new('unittest')
|
|
77
|
-
tf.puts 'TITLE HI THERE'
|
|
78
|
-
tf.close
|
|
79
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for TITLE.")
|
|
80
|
-
tf.unlink
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
it "sets the title" do
|
|
84
|
-
tf = Tempfile.new('unittest')
|
|
85
|
-
tf.puts 'TITLE TEST'
|
|
86
|
-
tf.close
|
|
87
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
88
|
-
expect(config.title).to eql "TEST"
|
|
89
|
-
tf.unlink
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
context "with PACKET_LOG_WRITER" do
|
|
94
|
-
it "sets the packet log writer" do
|
|
95
|
-
tf = Tempfile.new('unittest')
|
|
96
|
-
tf.puts 'PACKET_LOG_WRITER MY_WRITER packet_log_writer.rb'
|
|
97
|
-
tf.close
|
|
98
|
-
config =CmdTlmServerConfig.new(tf.path)
|
|
99
|
-
expect(config.packet_log_writer_pairs.keys).to eql ["DEFAULT","MY_WRITER"]
|
|
100
|
-
tf.unlink
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
it "sets the packet log writer with parameters" do
|
|
104
|
-
tf = Tempfile.new('unittest')
|
|
105
|
-
tf.puts 'PACKET_LOG_WRITER MY_WRITER packet_log_writer.rb test_log_name false 3 1000 C:\log false'
|
|
106
|
-
tf.close
|
|
107
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
108
|
-
expect(config.packet_log_writer_pairs.keys).to eql ["DEFAULT","MY_WRITER"]
|
|
109
|
-
expect(config.packet_log_writer_pairs["DEFAULT"].cmd_log_writer.logging_enabled).to be true
|
|
110
|
-
expect(config.packet_log_writer_pairs["MY_WRITER"].cmd_log_writer.logging_enabled).to be false
|
|
111
|
-
tf.unlink
|
|
112
|
-
config.packet_log_writer_pairs.each do |name, plwp|
|
|
113
|
-
plwp.cmd_log_writer.shutdown
|
|
114
|
-
plwp.tlm_log_writer.shutdown
|
|
115
|
-
end
|
|
116
|
-
sleep(0.2)
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
context "with AUTO_INTERFACE_TARGETS" do
|
|
121
|
-
it "complains about too many parameters" do
|
|
122
|
-
tf = Tempfile.new('unittest')
|
|
123
|
-
tf.puts 'AUTO_INTERFACE_TARGETS BLAH'
|
|
124
|
-
tf.close
|
|
125
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for AUTO_INTERFACE_TARGETS.")
|
|
126
|
-
tf.unlink
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
it "automatically processes interfaces" do
|
|
130
|
-
# Stub out the CmdTlmServer
|
|
131
|
-
allow(CmdTlmServer).to receive_message_chain(:instance, :subscribe_limits_events)
|
|
132
|
-
|
|
133
|
-
tf = Tempfile.new('unittest')
|
|
134
|
-
tf.puts 'AUTO_INTERFACE_TARGETS'
|
|
135
|
-
tf.close
|
|
136
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
137
|
-
expect(config.interfaces.keys).to eql %w(INST_INT COSMOSINT)
|
|
138
|
-
tf.unlink
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
context "with INTERFACE_TARGET" do
|
|
143
|
-
it "complains about too many parameters" do
|
|
144
|
-
tf = Tempfile.new('unittest')
|
|
145
|
-
tf.puts 'INTERFACE_TARGET BLAH config.txt MORE'
|
|
146
|
-
tf.close
|
|
147
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for INTERFACE_TARGET.")
|
|
148
|
-
tf.unlink
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
it "complains about unknown targets" do
|
|
152
|
-
tf = Tempfile.new('unittest')
|
|
153
|
-
tf.puts 'INTERFACE_TARGET BLAH'
|
|
154
|
-
tf.close
|
|
155
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown target: BLAH")
|
|
156
|
-
tf.unlink
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
it "complains about unknown target files" do
|
|
160
|
-
tf = Tempfile.new('unittest')
|
|
161
|
-
tf.puts 'INTERFACE_TARGET TEST'
|
|
162
|
-
tf.close
|
|
163
|
-
System.targets["TEST"] = Target.new("TEST")
|
|
164
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /TEST\/cmd_tlm_server.txt does not exist/)
|
|
165
|
-
tf.unlink
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
it "processes an interface" do
|
|
169
|
-
tf = Tempfile.new('unittest')
|
|
170
|
-
tf.puts 'INTERFACE_TARGET INST'
|
|
171
|
-
tf.close
|
|
172
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
173
|
-
expect(config.interfaces.keys).to eql %w(INST_INT)
|
|
174
|
-
tf.unlink
|
|
175
|
-
end
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
context "with DONT_CONNECT" do
|
|
179
|
-
it "complains about too many parameters" do
|
|
180
|
-
tf = Tempfile.new('unittest')
|
|
181
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
182
|
-
tf.puts 'DONT_CONNECT TRUE'
|
|
183
|
-
tf.close
|
|
184
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DONT_CONNECT.")
|
|
185
|
-
tf.unlink
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
it "sets the interface to not connect on startup" do
|
|
189
|
-
tf = Tempfile.new('unittest')
|
|
190
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
191
|
-
tf.puts 'DONT_CONNECT'
|
|
192
|
-
tf.close
|
|
193
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
194
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].connect_on_startup).to be false
|
|
195
|
-
tf.unlink
|
|
196
|
-
end
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
context "with DONT_RECONNECT" do
|
|
200
|
-
it "complains about too many parameters" do
|
|
201
|
-
tf = Tempfile.new('unittest')
|
|
202
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
203
|
-
tf.puts 'DONT_RECONNECT TRUE'
|
|
204
|
-
tf.close
|
|
205
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DONT_RECONNECT.")
|
|
206
|
-
tf.unlink
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
it "sets the interface to not auto reconnect" do
|
|
210
|
-
tf = Tempfile.new('unittest')
|
|
211
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
212
|
-
tf.puts 'DONT_RECONNECT'
|
|
213
|
-
tf.close
|
|
214
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
215
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].auto_reconnect).to be false
|
|
216
|
-
tf.unlink
|
|
217
|
-
end
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
context "with RECONNECT_DELAY" do
|
|
221
|
-
it "complains about too many parameters" do
|
|
222
|
-
tf = Tempfile.new('unittest')
|
|
223
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
224
|
-
tf.puts 'RECONNECT_DELAY 5.0 TRUE'
|
|
225
|
-
tf.close
|
|
226
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for RECONNECT_DELAY.")
|
|
227
|
-
tf.unlink
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
it "sets the delay between reconnect tries" do
|
|
231
|
-
tf = Tempfile.new('unittest')
|
|
232
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
233
|
-
tf.puts 'RECONNECT_DELAY 5.0'
|
|
234
|
-
tf.close
|
|
235
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
236
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].reconnect_delay).to eql 5.0
|
|
237
|
-
tf.unlink
|
|
238
|
-
end
|
|
239
|
-
end
|
|
240
|
-
|
|
241
|
-
context "with DISABLE_DISCONNECT" do
|
|
242
|
-
it "complains about too many parameters" do
|
|
243
|
-
tf = Tempfile.new('unittest')
|
|
244
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
245
|
-
tf.puts 'DISABLE_DISCONNECT TRUE'
|
|
246
|
-
tf.close
|
|
247
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DISABLE_DISCONNECT.")
|
|
248
|
-
tf.unlink
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
it "sets the interface to not allow disconnects" do
|
|
252
|
-
tf = Tempfile.new('unittest')
|
|
253
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
254
|
-
tf.puts 'DISABLE_DISCONNECT'
|
|
255
|
-
tf.close
|
|
256
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
257
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].disable_disconnect).to be true
|
|
258
|
-
tf.unlink
|
|
259
|
-
end
|
|
260
|
-
end
|
|
261
|
-
|
|
262
|
-
context "with OPTION" do
|
|
263
|
-
it "complains about too few parameters" do
|
|
264
|
-
tf = Tempfile.new('unittest')
|
|
265
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
266
|
-
tf.puts 'OPTION TRUE'
|
|
267
|
-
tf.close
|
|
268
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Not enough parameters for OPTION.")
|
|
269
|
-
tf.unlink
|
|
270
|
-
end
|
|
271
|
-
|
|
272
|
-
it "sets the interface to listen on a specific address" do
|
|
273
|
-
tf = Tempfile.new('unittest')
|
|
274
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
275
|
-
tf.puts 'OPTION LISTEN_ADDRESS 127.0.0.1'
|
|
276
|
-
tf.close
|
|
277
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
278
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].options['LISTEN_ADDRESS']).to eql(['127.0.0.1'])
|
|
279
|
-
tf.unlink
|
|
280
|
-
end
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
context "with LOG" do
|
|
284
|
-
it "complains about too many parameters" do
|
|
285
|
-
tf = Tempfile.new('unittest')
|
|
286
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
287
|
-
tf.puts 'LOG PacketLogWriter TRUE'
|
|
288
|
-
tf.close
|
|
289
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for LOG.")
|
|
290
|
-
tf.unlink
|
|
291
|
-
end
|
|
292
|
-
|
|
293
|
-
it "complains about unknown log writers" do
|
|
294
|
-
tf = Tempfile.new('unittest')
|
|
295
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
296
|
-
tf.puts 'LOG MyLogWriter'
|
|
297
|
-
tf.close
|
|
298
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown packet log writer: MYLOGWRITER")
|
|
299
|
-
tf.unlink
|
|
300
|
-
end
|
|
301
|
-
|
|
302
|
-
it "adds a packet log writer to the interface" do
|
|
303
|
-
tf = Tempfile.new('unittest')
|
|
304
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
305
|
-
tf.puts 'LOG DEFAULT'
|
|
306
|
-
tf.close
|
|
307
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
308
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].packet_log_writer_pairs.length).to eql 1
|
|
309
|
-
tf.unlink
|
|
310
|
-
|
|
311
|
-
tf = Tempfile.new('unittest')
|
|
312
|
-
tf.puts 'PACKET_LOG_WRITER MY_WRITER packet_log_writer.rb'
|
|
313
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
314
|
-
tf.puts 'LOG DEFAULT'
|
|
315
|
-
tf.puts 'LOG MY_WRITER'
|
|
316
|
-
tf.close
|
|
317
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
318
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].packet_log_writer_pairs.length).to eql 2
|
|
319
|
-
tf.unlink
|
|
320
|
-
end
|
|
321
|
-
end
|
|
322
|
-
|
|
323
|
-
context "with DONT_LOG" do
|
|
324
|
-
it "complains about too many parameters" do
|
|
325
|
-
tf = Tempfile.new('unittest')
|
|
326
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
327
|
-
tf.puts 'DONT_LOG TRUE'
|
|
328
|
-
tf.close
|
|
329
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DONT_LOG.")
|
|
330
|
-
tf.unlink
|
|
331
|
-
end
|
|
332
|
-
|
|
333
|
-
it "removes loggers from the interface" do
|
|
334
|
-
tf = Tempfile.new('unittest')
|
|
335
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
336
|
-
tf.puts 'DONT_LOG'
|
|
337
|
-
tf.close
|
|
338
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
339
|
-
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].packet_log_writer_pairs.length).to eql 0
|
|
340
|
-
tf.unlink
|
|
341
|
-
end
|
|
342
|
-
end
|
|
343
|
-
|
|
344
|
-
context "with TARGET" do
|
|
345
|
-
it "complains about too many parameters" do
|
|
346
|
-
tf = Tempfile.new('unittest')
|
|
347
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
348
|
-
tf.puts 'TARGET TEST TRUE'
|
|
349
|
-
tf.close
|
|
350
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for TARGET.")
|
|
351
|
-
tf.unlink
|
|
352
|
-
end
|
|
353
|
-
|
|
354
|
-
it "complains about unknown targets" do
|
|
355
|
-
tf = Tempfile.new('unittest')
|
|
356
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
357
|
-
tf.puts 'TARGET BLAH'
|
|
358
|
-
tf.close
|
|
359
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown target BLAH mapped to interface CTSCONFIGTESTINTERFACE")
|
|
360
|
-
tf.unlink
|
|
361
|
-
end
|
|
362
|
-
end
|
|
363
|
-
|
|
364
|
-
context "with two interfaces with the same name" do
|
|
365
|
-
it "complains about duplicate interface names" do
|
|
366
|
-
tf = Tempfile.new('unittest')
|
|
367
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
368
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
369
|
-
tf.close
|
|
370
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Interface 'CTSCONFIGTESTINTERFACE' defined twice")
|
|
371
|
-
tf.unlink
|
|
372
|
-
end
|
|
373
|
-
end
|
|
374
|
-
|
|
375
|
-
context "with two routers with the same name" do
|
|
376
|
-
it "complains about duplicate router names" do
|
|
377
|
-
tf = Tempfile.new('unittest')
|
|
378
|
-
tf.puts "ROUTER MY_ROUTER1 cts_config_test_interface.rb"
|
|
379
|
-
tf.puts "ROUTER MY_ROUTER1 cts_config_test_interface.rb"
|
|
380
|
-
tf.close
|
|
381
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Router 'MY_ROUTER1' defined twice")
|
|
382
|
-
tf.unlink
|
|
383
|
-
end
|
|
384
|
-
end
|
|
385
|
-
|
|
386
|
-
context "with ROUTER" do
|
|
387
|
-
it "creates a new router" do
|
|
388
|
-
tf = Tempfile.new('unittest')
|
|
389
|
-
tf.puts 'ROUTER MY_ROUTER1 cts_config_test_interface.rb'
|
|
390
|
-
tf.puts 'ROUTER MY_ROUTER2 cts_config_test_interface.rb false'
|
|
391
|
-
tf.close
|
|
392
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
393
|
-
expect(config.routers.keys).to eql %w(MY_ROUTER1 MY_ROUTER2)
|
|
394
|
-
tf.unlink
|
|
395
|
-
end
|
|
396
|
-
end
|
|
397
|
-
|
|
398
|
-
context "with ROUTE" do
|
|
399
|
-
it "complains about too many parameters" do
|
|
400
|
-
tf = Tempfile.new('unittest')
|
|
401
|
-
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
|
402
|
-
tf.puts 'ROUTE interface more'
|
|
403
|
-
tf.close
|
|
404
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for ROUTE.")
|
|
405
|
-
tf.unlink
|
|
406
|
-
end
|
|
407
|
-
|
|
408
|
-
it "complains if a router hasn't been defined" do
|
|
409
|
-
tf = Tempfile.new('unittest')
|
|
410
|
-
tf.puts 'ROUTE interface more'
|
|
411
|
-
tf.close
|
|
412
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "No current router for ROUTE")
|
|
413
|
-
tf.unlink
|
|
414
|
-
end
|
|
415
|
-
|
|
416
|
-
it "complains if the interface is undefined" do
|
|
417
|
-
tf = Tempfile.new('unittest')
|
|
418
|
-
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
|
419
|
-
tf.puts 'ROUTE CTSCONFIGTESTINTERFACE'
|
|
420
|
-
tf.close
|
|
421
|
-
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown interface CTSCONFIGTESTINTERFACE mapped to router ROUTER")
|
|
422
|
-
tf.unlink
|
|
423
|
-
end
|
|
424
|
-
|
|
425
|
-
it "creates the route" do
|
|
426
|
-
tf = Tempfile.new('unittest')
|
|
427
|
-
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
428
|
-
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
|
429
|
-
tf.puts 'ROUTE CTSCONFIGTESTINTERFACE'
|
|
430
|
-
tf.close
|
|
431
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
432
|
-
expect(config.routers['ROUTER'].interfaces[0]).to be_a CtsConfigTestInterface
|
|
433
|
-
tf.unlink
|
|
434
|
-
end
|
|
435
|
-
end
|
|
436
|
-
|
|
437
|
-
context "with BACKGROUND_TASK" do
|
|
438
|
-
it "creates a background task" do
|
|
439
|
-
tf = Tempfile.new('unittest')
|
|
440
|
-
tf.puts 'BACKGROUND_TASK cts_config_test_interface.rb'
|
|
441
|
-
tf.puts 'BACKGROUND_TASK cts_config_test_interface.rb false'
|
|
442
|
-
tf.close
|
|
443
|
-
config = CmdTlmServerConfig.new(tf.path)
|
|
444
|
-
expect(config.background_tasks.length).to eql 2
|
|
445
|
-
expect(config.background_tasks[0]).to be_a CtsConfigTestInterface
|
|
446
|
-
expect(config.background_tasks[1]).to be_a CtsConfigTestInterface
|
|
447
|
-
tf.unlink
|
|
448
|
-
end
|
|
449
|
-
end
|
|
450
|
-
|
|
451
|
-
end
|
|
452
|
-
end
|
|
453
|
-
end
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2014 Ball Aerospace & Technologies Corp.
|
|
4
|
+
# All Rights Reserved.
|
|
5
|
+
#
|
|
6
|
+
# This program is free software; you can modify and/or redistribute it
|
|
7
|
+
# under the terms of the GNU General Public License
|
|
8
|
+
# as published by the Free Software Foundation; version 3 with
|
|
9
|
+
# attribution addendums as found in the LICENSE.txt
|
|
10
|
+
|
|
11
|
+
require 'spec_helper'
|
|
12
|
+
require 'cosmos'
|
|
13
|
+
require 'cosmos/tools/cmd_tlm_server/cmd_tlm_server'
|
|
14
|
+
require 'cosmos/tools/cmd_tlm_server/cmd_tlm_server_config'
|
|
15
|
+
require 'tempfile'
|
|
16
|
+
load 'cosmos.rb' # Ensure COSMOS::USERPATH/lib is set
|
|
17
|
+
|
|
18
|
+
module Cosmos
|
|
19
|
+
|
|
20
|
+
describe CmdTlmServerConfig do
|
|
21
|
+
before(:all) do
|
|
22
|
+
@interface_filename = File.join(Cosmos::USERPATH,'lib','cts_config_test_interface.rb')
|
|
23
|
+
File.open(@interface_filename,'w') do |file|
|
|
24
|
+
file.puts "require 'cosmos'"
|
|
25
|
+
file.puts "require 'cosmos/interfaces/interface'"
|
|
26
|
+
file.puts "module Cosmos"
|
|
27
|
+
file.puts " class CtsConfigTestInterface < Interface"
|
|
28
|
+
file.puts " def initialize(test = true)"
|
|
29
|
+
file.puts " super()"
|
|
30
|
+
file.puts " end"
|
|
31
|
+
file.puts " end"
|
|
32
|
+
file.puts "end"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
@keywords = %w(TITLE PACKET_LOG_WRITER AUTO_INTERFACE_TARGETS INTERFACE_TARGET INTERFACE ROUTER)
|
|
36
|
+
@interface_keywords = %w(DONT_CONNECT DONT_RECONNECT RECONNECT_DELAY DISABLE_DISCONNECT LOG DONT_LOG TARGET)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
after(:all) do
|
|
40
|
+
clean_config()
|
|
41
|
+
File.delete @interface_filename
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe "process_file" do
|
|
45
|
+
it "complains if there is an unknown keyword" do
|
|
46
|
+
tf = Tempfile.new('unittest')
|
|
47
|
+
tf.puts "UNKNOWN"
|
|
48
|
+
tf.close
|
|
49
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown keyword: UNKNOWN")
|
|
50
|
+
tf.unlink
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "complains if there are not enough parameters" do
|
|
54
|
+
@keywords.each do |keyword|
|
|
55
|
+
next if %w(AUTO_INTERFACE_TARGETS).include? keyword
|
|
56
|
+
tf = Tempfile.new('unittest')
|
|
57
|
+
tf.puts keyword
|
|
58
|
+
tf.close
|
|
59
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Not enough parameters for #{keyword}.")
|
|
60
|
+
tf.unlink
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
@interface_keywords.each do |keyword|
|
|
64
|
+
next if %w(DONT_CONNECT DONT_RECONNECT DISABLE_DISCONNECT DONT_LOG).include? keyword
|
|
65
|
+
tf = Tempfile.new('unittest')
|
|
66
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
67
|
+
tf.puts keyword
|
|
68
|
+
tf.close
|
|
69
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Not enough parameters for #{keyword}.")
|
|
70
|
+
tf.unlink
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
context "with TITLE" do
|
|
75
|
+
it "complains about too many parameters" do
|
|
76
|
+
tf = Tempfile.new('unittest')
|
|
77
|
+
tf.puts 'TITLE HI THERE'
|
|
78
|
+
tf.close
|
|
79
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for TITLE.")
|
|
80
|
+
tf.unlink
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it "sets the title" do
|
|
84
|
+
tf = Tempfile.new('unittest')
|
|
85
|
+
tf.puts 'TITLE TEST'
|
|
86
|
+
tf.close
|
|
87
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
88
|
+
expect(config.title).to eql "TEST"
|
|
89
|
+
tf.unlink
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
context "with PACKET_LOG_WRITER" do
|
|
94
|
+
it "sets the packet log writer" do
|
|
95
|
+
tf = Tempfile.new('unittest')
|
|
96
|
+
tf.puts 'PACKET_LOG_WRITER MY_WRITER packet_log_writer.rb'
|
|
97
|
+
tf.close
|
|
98
|
+
config =CmdTlmServerConfig.new(tf.path)
|
|
99
|
+
expect(config.packet_log_writer_pairs.keys).to eql ["DEFAULT","MY_WRITER"]
|
|
100
|
+
tf.unlink
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it "sets the packet log writer with parameters" do
|
|
104
|
+
tf = Tempfile.new('unittest')
|
|
105
|
+
tf.puts 'PACKET_LOG_WRITER MY_WRITER packet_log_writer.rb test_log_name false 3 1000 C:\log false'
|
|
106
|
+
tf.close
|
|
107
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
108
|
+
expect(config.packet_log_writer_pairs.keys).to eql ["DEFAULT","MY_WRITER"]
|
|
109
|
+
expect(config.packet_log_writer_pairs["DEFAULT"].cmd_log_writer.logging_enabled).to be true
|
|
110
|
+
expect(config.packet_log_writer_pairs["MY_WRITER"].cmd_log_writer.logging_enabled).to be false
|
|
111
|
+
tf.unlink
|
|
112
|
+
config.packet_log_writer_pairs.each do |name, plwp|
|
|
113
|
+
plwp.cmd_log_writer.shutdown
|
|
114
|
+
plwp.tlm_log_writer.shutdown
|
|
115
|
+
end
|
|
116
|
+
sleep(0.2)
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
context "with AUTO_INTERFACE_TARGETS" do
|
|
121
|
+
it "complains about too many parameters" do
|
|
122
|
+
tf = Tempfile.new('unittest')
|
|
123
|
+
tf.puts 'AUTO_INTERFACE_TARGETS BLAH'
|
|
124
|
+
tf.close
|
|
125
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for AUTO_INTERFACE_TARGETS.")
|
|
126
|
+
tf.unlink
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it "automatically processes interfaces" do
|
|
130
|
+
# Stub out the CmdTlmServer
|
|
131
|
+
allow(CmdTlmServer).to receive_message_chain(:instance, :subscribe_limits_events)
|
|
132
|
+
|
|
133
|
+
tf = Tempfile.new('unittest')
|
|
134
|
+
tf.puts 'AUTO_INTERFACE_TARGETS'
|
|
135
|
+
tf.close
|
|
136
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
137
|
+
expect(config.interfaces.keys).to eql %w(INST_INT COSMOSINT)
|
|
138
|
+
tf.unlink
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
context "with INTERFACE_TARGET" do
|
|
143
|
+
it "complains about too many parameters" do
|
|
144
|
+
tf = Tempfile.new('unittest')
|
|
145
|
+
tf.puts 'INTERFACE_TARGET BLAH config.txt MORE'
|
|
146
|
+
tf.close
|
|
147
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for INTERFACE_TARGET.")
|
|
148
|
+
tf.unlink
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
it "complains about unknown targets" do
|
|
152
|
+
tf = Tempfile.new('unittest')
|
|
153
|
+
tf.puts 'INTERFACE_TARGET BLAH'
|
|
154
|
+
tf.close
|
|
155
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown target: BLAH")
|
|
156
|
+
tf.unlink
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
it "complains about unknown target files" do
|
|
160
|
+
tf = Tempfile.new('unittest')
|
|
161
|
+
tf.puts 'INTERFACE_TARGET TEST'
|
|
162
|
+
tf.close
|
|
163
|
+
System.targets["TEST"] = Target.new("TEST")
|
|
164
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, /TEST\/cmd_tlm_server.txt does not exist/)
|
|
165
|
+
tf.unlink
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
it "processes an interface" do
|
|
169
|
+
tf = Tempfile.new('unittest')
|
|
170
|
+
tf.puts 'INTERFACE_TARGET INST'
|
|
171
|
+
tf.close
|
|
172
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
173
|
+
expect(config.interfaces.keys).to eql %w(INST_INT)
|
|
174
|
+
tf.unlink
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
context "with DONT_CONNECT" do
|
|
179
|
+
it "complains about too many parameters" do
|
|
180
|
+
tf = Tempfile.new('unittest')
|
|
181
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
182
|
+
tf.puts 'DONT_CONNECT TRUE'
|
|
183
|
+
tf.close
|
|
184
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DONT_CONNECT.")
|
|
185
|
+
tf.unlink
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
it "sets the interface to not connect on startup" do
|
|
189
|
+
tf = Tempfile.new('unittest')
|
|
190
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
191
|
+
tf.puts 'DONT_CONNECT'
|
|
192
|
+
tf.close
|
|
193
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
194
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].connect_on_startup).to be false
|
|
195
|
+
tf.unlink
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
context "with DONT_RECONNECT" do
|
|
200
|
+
it "complains about too many parameters" do
|
|
201
|
+
tf = Tempfile.new('unittest')
|
|
202
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
203
|
+
tf.puts 'DONT_RECONNECT TRUE'
|
|
204
|
+
tf.close
|
|
205
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DONT_RECONNECT.")
|
|
206
|
+
tf.unlink
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
it "sets the interface to not auto reconnect" do
|
|
210
|
+
tf = Tempfile.new('unittest')
|
|
211
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
212
|
+
tf.puts 'DONT_RECONNECT'
|
|
213
|
+
tf.close
|
|
214
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
215
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].auto_reconnect).to be false
|
|
216
|
+
tf.unlink
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
context "with RECONNECT_DELAY" do
|
|
221
|
+
it "complains about too many parameters" do
|
|
222
|
+
tf = Tempfile.new('unittest')
|
|
223
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
224
|
+
tf.puts 'RECONNECT_DELAY 5.0 TRUE'
|
|
225
|
+
tf.close
|
|
226
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for RECONNECT_DELAY.")
|
|
227
|
+
tf.unlink
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
it "sets the delay between reconnect tries" do
|
|
231
|
+
tf = Tempfile.new('unittest')
|
|
232
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
233
|
+
tf.puts 'RECONNECT_DELAY 5.0'
|
|
234
|
+
tf.close
|
|
235
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
236
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].reconnect_delay).to eql 5.0
|
|
237
|
+
tf.unlink
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
context "with DISABLE_DISCONNECT" do
|
|
242
|
+
it "complains about too many parameters" do
|
|
243
|
+
tf = Tempfile.new('unittest')
|
|
244
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
245
|
+
tf.puts 'DISABLE_DISCONNECT TRUE'
|
|
246
|
+
tf.close
|
|
247
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DISABLE_DISCONNECT.")
|
|
248
|
+
tf.unlink
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
it "sets the interface to not allow disconnects" do
|
|
252
|
+
tf = Tempfile.new('unittest')
|
|
253
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
254
|
+
tf.puts 'DISABLE_DISCONNECT'
|
|
255
|
+
tf.close
|
|
256
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
257
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].disable_disconnect).to be true
|
|
258
|
+
tf.unlink
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
context "with OPTION" do
|
|
263
|
+
it "complains about too few parameters" do
|
|
264
|
+
tf = Tempfile.new('unittest')
|
|
265
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
266
|
+
tf.puts 'OPTION TRUE'
|
|
267
|
+
tf.close
|
|
268
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Not enough parameters for OPTION.")
|
|
269
|
+
tf.unlink
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
it "sets the interface to listen on a specific address" do
|
|
273
|
+
tf = Tempfile.new('unittest')
|
|
274
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
275
|
+
tf.puts 'OPTION LISTEN_ADDRESS 127.0.0.1'
|
|
276
|
+
tf.close
|
|
277
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
278
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].options['LISTEN_ADDRESS']).to eql(['127.0.0.1'])
|
|
279
|
+
tf.unlink
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
context "with LOG" do
|
|
284
|
+
it "complains about too many parameters" do
|
|
285
|
+
tf = Tempfile.new('unittest')
|
|
286
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
287
|
+
tf.puts 'LOG PacketLogWriter TRUE'
|
|
288
|
+
tf.close
|
|
289
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for LOG.")
|
|
290
|
+
tf.unlink
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
it "complains about unknown log writers" do
|
|
294
|
+
tf = Tempfile.new('unittest')
|
|
295
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
296
|
+
tf.puts 'LOG MyLogWriter'
|
|
297
|
+
tf.close
|
|
298
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown packet log writer: MYLOGWRITER")
|
|
299
|
+
tf.unlink
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
it "adds a packet log writer to the interface" do
|
|
303
|
+
tf = Tempfile.new('unittest')
|
|
304
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
305
|
+
tf.puts 'LOG DEFAULT'
|
|
306
|
+
tf.close
|
|
307
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
308
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].packet_log_writer_pairs.length).to eql 1
|
|
309
|
+
tf.unlink
|
|
310
|
+
|
|
311
|
+
tf = Tempfile.new('unittest')
|
|
312
|
+
tf.puts 'PACKET_LOG_WRITER MY_WRITER packet_log_writer.rb'
|
|
313
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
314
|
+
tf.puts 'LOG DEFAULT'
|
|
315
|
+
tf.puts 'LOG MY_WRITER'
|
|
316
|
+
tf.close
|
|
317
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
318
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].packet_log_writer_pairs.length).to eql 2
|
|
319
|
+
tf.unlink
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
context "with DONT_LOG" do
|
|
324
|
+
it "complains about too many parameters" do
|
|
325
|
+
tf = Tempfile.new('unittest')
|
|
326
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
327
|
+
tf.puts 'DONT_LOG TRUE'
|
|
328
|
+
tf.close
|
|
329
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for DONT_LOG.")
|
|
330
|
+
tf.unlink
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
it "removes loggers from the interface" do
|
|
334
|
+
tf = Tempfile.new('unittest')
|
|
335
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
336
|
+
tf.puts 'DONT_LOG'
|
|
337
|
+
tf.close
|
|
338
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
339
|
+
expect(config.interfaces['CTSCONFIGTESTINTERFACE'].packet_log_writer_pairs.length).to eql 0
|
|
340
|
+
tf.unlink
|
|
341
|
+
end
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
context "with TARGET" do
|
|
345
|
+
it "complains about too many parameters" do
|
|
346
|
+
tf = Tempfile.new('unittest')
|
|
347
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
348
|
+
tf.puts 'TARGET TEST TRUE'
|
|
349
|
+
tf.close
|
|
350
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for TARGET.")
|
|
351
|
+
tf.unlink
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
it "complains about unknown targets" do
|
|
355
|
+
tf = Tempfile.new('unittest')
|
|
356
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
357
|
+
tf.puts 'TARGET BLAH'
|
|
358
|
+
tf.close
|
|
359
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown target BLAH mapped to interface CTSCONFIGTESTINTERFACE")
|
|
360
|
+
tf.unlink
|
|
361
|
+
end
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
context "with two interfaces with the same name" do
|
|
365
|
+
it "complains about duplicate interface names" do
|
|
366
|
+
tf = Tempfile.new('unittest')
|
|
367
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
368
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
369
|
+
tf.close
|
|
370
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Interface 'CTSCONFIGTESTINTERFACE' defined twice")
|
|
371
|
+
tf.unlink
|
|
372
|
+
end
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
context "with two routers with the same name" do
|
|
376
|
+
it "complains about duplicate router names" do
|
|
377
|
+
tf = Tempfile.new('unittest')
|
|
378
|
+
tf.puts "ROUTER MY_ROUTER1 cts_config_test_interface.rb"
|
|
379
|
+
tf.puts "ROUTER MY_ROUTER1 cts_config_test_interface.rb"
|
|
380
|
+
tf.close
|
|
381
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Router 'MY_ROUTER1' defined twice")
|
|
382
|
+
tf.unlink
|
|
383
|
+
end
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
context "with ROUTER" do
|
|
387
|
+
it "creates a new router" do
|
|
388
|
+
tf = Tempfile.new('unittest')
|
|
389
|
+
tf.puts 'ROUTER MY_ROUTER1 cts_config_test_interface.rb'
|
|
390
|
+
tf.puts 'ROUTER MY_ROUTER2 cts_config_test_interface.rb false'
|
|
391
|
+
tf.close
|
|
392
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
393
|
+
expect(config.routers.keys).to eql %w(MY_ROUTER1 MY_ROUTER2)
|
|
394
|
+
tf.unlink
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
context "with ROUTE" do
|
|
399
|
+
it "complains about too many parameters" do
|
|
400
|
+
tf = Tempfile.new('unittest')
|
|
401
|
+
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
|
402
|
+
tf.puts 'ROUTE interface more'
|
|
403
|
+
tf.close
|
|
404
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Too many parameters for ROUTE.")
|
|
405
|
+
tf.unlink
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
it "complains if a router hasn't been defined" do
|
|
409
|
+
tf = Tempfile.new('unittest')
|
|
410
|
+
tf.puts 'ROUTE interface more'
|
|
411
|
+
tf.close
|
|
412
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "No current router for ROUTE")
|
|
413
|
+
tf.unlink
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
it "complains if the interface is undefined" do
|
|
417
|
+
tf = Tempfile.new('unittest')
|
|
418
|
+
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
|
419
|
+
tf.puts 'ROUTE CTSCONFIGTESTINTERFACE'
|
|
420
|
+
tf.close
|
|
421
|
+
expect { CmdTlmServerConfig.new(tf.path) }.to raise_error(ConfigParser::Error, "Unknown interface CTSCONFIGTESTINTERFACE mapped to router ROUTER")
|
|
422
|
+
tf.unlink
|
|
423
|
+
end
|
|
424
|
+
|
|
425
|
+
it "creates the route" do
|
|
426
|
+
tf = Tempfile.new('unittest')
|
|
427
|
+
tf.puts "INTERFACE CtsConfigTestInterface cts_config_test_interface.rb"
|
|
428
|
+
tf.puts 'ROUTER ROUTER cts_config_test_interface.rb'
|
|
429
|
+
tf.puts 'ROUTE CTSCONFIGTESTINTERFACE'
|
|
430
|
+
tf.close
|
|
431
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
432
|
+
expect(config.routers['ROUTER'].interfaces[0]).to be_a CtsConfigTestInterface
|
|
433
|
+
tf.unlink
|
|
434
|
+
end
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
context "with BACKGROUND_TASK" do
|
|
438
|
+
it "creates a background task" do
|
|
439
|
+
tf = Tempfile.new('unittest')
|
|
440
|
+
tf.puts 'BACKGROUND_TASK cts_config_test_interface.rb'
|
|
441
|
+
tf.puts 'BACKGROUND_TASK cts_config_test_interface.rb false'
|
|
442
|
+
tf.close
|
|
443
|
+
config = CmdTlmServerConfig.new(tf.path)
|
|
444
|
+
expect(config.background_tasks.length).to eql 2
|
|
445
|
+
expect(config.background_tasks[0]).to be_a CtsConfigTestInterface
|
|
446
|
+
expect(config.background_tasks[1]).to be_a CtsConfigTestInterface
|
|
447
|
+
tf.unlink
|
|
448
|
+
end
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
end
|
|
452
|
+
end
|
|
453
|
+
end
|