cosmos 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.gitignore +48 -48
- data/.travis.yml +7 -7
- data/CONTRIBUTING.txt +50 -50
- data/Gemfile +6 -6
- data/Guardfile +27 -27
- data/LICENSE.txt +879 -879
- data/Manifest.txt +1116 -1114
- data/README.md +109 -107
- data/Rakefile +214 -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 +247 -247
- 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 -294
- 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.rb +18 -18
- 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 +20 -20
- 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/Replay.bat +59 -59
- 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/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 +18 -18
- data/autohotkey/tools/TlmViewerAHK3 +18 -18
- data/autohotkey/tools/TlmViewerAHK4 +18 -18
- data/autohotkey/tools/TlmViewerAHK5 +18 -18
- data/autohotkey/tools/autohotkey.rb +37 -37
- data/autohotkey/tools/cmd_extractor.ahk +27 -27
- data/autohotkey/tools/cmd_sender.ahk +182 -162
- data/autohotkey/tools/cmd_tlm_server.ahk +89 -89
- data/autohotkey/tools/cmd_tlm_server2.ahk +45 -45
- data/autohotkey/tools/data_viewer.ahk +135 -135
- data/autohotkey/tools/handbook_creator.ahk +23 -23
- data/autohotkey/tools/launcher.ahk +41 -41
- data/autohotkey/tools/limits_monitor.ahk +70 -70
- data/autohotkey/tools/open_gl_builder.ahk +134 -134
- data/autohotkey/tools/packet_viewer.ahk +143 -143
- data/autohotkey/tools/packet_viewer2.ahk +9 -9
- data/autohotkey/tools/replay.ahk +98 -98
- data/autohotkey/tools/script_runner.ahk +589 -589
- data/autohotkey/tools/script_runner2.ahk +34 -31
- data/autohotkey/tools/table_manager.ahk +220 -220
- data/autohotkey/tools/test_runner.ahk +262 -259
- data/autohotkey/tools/test_runner2.ahk +52 -52
- data/autohotkey/tools/test_runner3.ahk +13 -13
- data/autohotkey/tools/tlm_extractor.ahk +272 -272
- data/autohotkey/tools/tlm_grapher.ahk +642 -642
- 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 -49
- 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 +98 -97
- data/data/about.txt +4 -4
- data/data/crc.txt +306 -305
- data/data/diamond.STL +57 -57
- data/data/legal.txt +9 -9
- data/demo/Gemfile +6 -6
- data/demo/Launcher +15 -15
- data/demo/Launcher.bat +59 -59
- data/demo/Rakefile +61 -61
- data/demo/config/data/crc.txt +222 -206
- data/demo/config/data/diamond.STL +57 -57
- data/demo/config/data/meta_init.txt +4 -4
- data/demo/config/system/system.txt +34 -34
- 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 +3 -3
- 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 -294
- 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 -12
- 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 +54 -48
- data/demo/config/targets/TEMPLATED/target.txt +6 -6
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +33 -33
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +29 -29
- 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 +86 -86
- 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 +80 -80
- 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 -52
- data/demo/lib/example_target.rb +113 -108
- 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 +182 -182
- 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 +15 -15
- data/demo/tools/CmdExtractor.bat +59 -59
- data/demo/tools/CmdSender +15 -15
- data/demo/tools/CmdSender.bat +59 -59
- data/demo/tools/CmdTlmServer +15 -15
- data/demo/tools/CmdTlmServer.bat +59 -59
- data/demo/tools/DataViewer +15 -15
- data/demo/tools/DataViewer.bat +59 -59
- data/demo/tools/ExampleTarget +15 -15
- data/demo/tools/ExampleTarget.bat +59 -59
- data/demo/tools/HandbookCreator +15 -15
- data/demo/tools/HandbookCreator.bat +61 -61
- data/demo/tools/Launcher +15 -15
- data/demo/tools/Launcher.bat +59 -59
- data/demo/tools/LimitsMonitor +15 -15
- data/demo/tools/LimitsMonitor.bat +59 -59
- data/demo/tools/OpenGLBuilder +15 -15
- data/demo/tools/OpenGLBuilder.bat +59 -59
- data/demo/tools/PacketViewer +15 -15
- data/demo/tools/PacketViewer.bat +59 -59
- data/demo/tools/Replay +15 -15
- data/demo/tools/Replay.bat +59 -59
- data/demo/tools/ScpiTarget +15 -15
- data/demo/tools/ScpiTarget.bat +59 -59
- data/demo/tools/ScriptRunner +15 -15
- data/demo/tools/ScriptRunner.bat +59 -59
- data/demo/tools/TableManager +15 -15
- data/demo/tools/TableManager.bat +59 -59
- data/demo/tools/TestRunner +15 -15
- data/demo/tools/TestRunner.bat +59 -59
- data/demo/tools/TlmExtractor +15 -15
- data/demo/tools/TlmExtractor.bat +59 -59
- data/demo/tools/TlmGrapher +15 -15
- data/demo/tools/TlmGrapher.bat +59 -59
- data/demo/tools/TlmViewer +15 -15
- data/demo/tools/TlmViewer.bat +59 -59
- data/demo/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -15
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -15
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -15
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -15
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -15
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -15
- data/demo/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -15
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -15
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -15
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -15
- data/demo/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -15
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -15
- data/demo/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -15
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -15
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -15
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -6
- data/demo/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -15
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -6
- 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 +261 -261
- 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 +81 -81
- 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 +894 -894
- 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 +306 -306
- data/ext/mkrf_conf.rb +40 -40
- data/install/Gemfile +6 -6
- data/install/Launcher +14 -14
- data/install/Launcher.bat +59 -59
- data/install/Rakefile +61 -61
- data/install/config/data/crc.txt +134 -133
- 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 +39 -39
- 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 +15 -15
- data/install/tools/CmdExtractor.bat +59 -59
- data/install/tools/CmdSender +15 -15
- data/install/tools/CmdSender.bat +59 -59
- data/install/tools/CmdTlmServer +15 -15
- data/install/tools/CmdTlmServer.bat +59 -59
- data/install/tools/DataViewer +15 -15
- data/install/tools/DataViewer.bat +59 -59
- data/install/tools/HandbookCreator +15 -15
- data/install/tools/HandbookCreator.bat +61 -61
- data/install/tools/Launcher +15 -15
- data/install/tools/Launcher.bat +59 -59
- data/install/tools/LimitsMonitor +15 -15
- data/install/tools/LimitsMonitor.bat +59 -59
- data/install/tools/OpenGLBuilder +15 -15
- data/install/tools/OpenGLBuilder.bat +59 -59
- data/install/tools/PacketViewer +15 -15
- data/install/tools/PacketViewer.bat +59 -59
- data/install/tools/Replay +15 -15
- data/install/tools/Replay.bat +59 -59
- data/install/tools/ScriptRunner +15 -15
- data/install/tools/ScriptRunner.bat +59 -59
- data/install/tools/TableManager +15 -15
- data/install/tools/TableManager.bat +59 -59
- data/install/tools/TestRunner +15 -15
- data/install/tools/TestRunner.bat +59 -59
- data/install/tools/TlmExtractor +15 -15
- data/install/tools/TlmExtractor.bat +59 -59
- data/install/tools/TlmGrapher +15 -15
- data/install/tools/TlmGrapher.bat +59 -59
- data/install/tools/TlmViewer +15 -15
- data/install/tools/TlmViewer.bat +59 -59
- data/install/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -15
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -15
- data/install/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -15
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -15
- data/install/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -15
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -15
- data/install/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -15
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -15
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -15
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -15
- data/install/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -15
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -15
- data/install/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -15
- data/install/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -15
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -15
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -6
- data/install/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -15
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -6
- 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 +310 -310
- data/lib/cosmos/core_ext/stringio.rb +24 -24
- data/lib/cosmos/core_ext/time.rb +446 -446
- 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 +317 -317
- data/lib/cosmos/gui/dialogs/about_dialog.rb +128 -128
- 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 +196 -196
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +169 -168
- data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +118 -118
- data/lib/cosmos/gui/dialogs/progress_dialog.rb +270 -262
- data/lib/cosmos/gui/dialogs/pry_dialog.rb +165 -161
- 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 +113 -113
- 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 +494 -494
- data/lib/cosmos/gui/line_graph/line_graph_popups.rb +116 -116
- data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +460 -460
- 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 +459 -459
- 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 -712
- 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 +813 -786
- data/lib/cosmos/gui/qt_tool.rb +378 -373
- 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 +395 -395
- data/lib/cosmos/gui/utilities/screenshot.rb +25 -25
- data/lib/cosmos/gui/utilities/script_module_gui.rb +203 -203
- 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 -149
- data/lib/cosmos/interfaces/interface.rb +213 -213
- 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 -128
- data/lib/cosmos/interfaces/stream_interface.rb +156 -156
- data/lib/cosmos/interfaces/tcpip_client_interface.rb +60 -60
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +154 -154
- data/lib/cosmos/interfaces/udp_interface.rb +173 -173
- 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 +344 -320
- data/lib/cosmos/io/json_drb_object.rb +137 -137
- 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 +583 -532
- data/lib/cosmos/io/udp_sockets.rb +152 -152
- data/lib/cosmos/io/win32_serial_driver.rb +147 -147
- data/lib/cosmos/packet_logs.rb +6 -6
- data/lib/cosmos/packet_logs/meta_packet_log_writer.rb +107 -107
- data/lib/cosmos/packet_logs/packet_log_reader.rb +441 -439
- data/lib/cosmos/packet_logs/packet_log_writer.rb +321 -309
- data/lib/cosmos/packet_logs/packet_log_writer_pair.rb +30 -30
- data/lib/cosmos/packets/binary_accessor.rb +921 -921
- data/lib/cosmos/packets/commands.rb +291 -291
- data/lib/cosmos/packets/limits.rb +263 -263
- data/lib/cosmos/packets/limits_response.rb +38 -38
- data/lib/cosmos/packets/packet.rb +714 -699
- data/lib/cosmos/packets/packet_config.rb +1034 -1034
- data/lib/cosmos/packets/packet_item.rb +317 -317
- data/lib/cosmos/packets/packet_item_limits.rb +128 -128
- data/lib/cosmos/packets/structure.rb +421 -386
- data/lib/cosmos/packets/structure_item.rb +233 -233
- data/lib/cosmos/packets/telemetry.rb +317 -317
- 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/extract.rb +115 -115
- data/lib/cosmos/script/script.rb +1513 -1493
- 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 +152 -143
- data/lib/cosmos/streams/stream.rb +57 -57
- data/lib/cosmos/streams/stream_protocol.rb +369 -369
- data/lib/cosmos/streams/tcpip_client_stream.rb +77 -77
- data/lib/cosmos/streams/tcpip_socket_stream.rb +139 -139
- 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 +558 -558
- data/lib/cosmos/system/target.rb +178 -178
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +254 -253
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +716 -716
- 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 +936 -940
- data/lib/cosmos/tools/cmd_tlm_server/background_task.rb +46 -46
- data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +67 -63
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +511 -497
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +241 -241
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1033 -1008
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +112 -112
- data/lib/cosmos/tools/cmd_tlm_server/connections.rb +176 -176
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +241 -221
- 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 +628 -600
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +167 -167
- data/lib/cosmos/tools/data_viewer/dump_component.rb +40 -40
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +149 -149
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +360 -360
- data/lib/cosmos/tools/launcher/launcher.rb +184 -184
- data/lib/cosmos/tools/launcher/launcher_config.rb +175 -167
- data/lib/cosmos/tools/launcher/launcher_multitool.rb +40 -41
- data/lib/cosmos/tools/launcher/launcher_tool.rb +104 -104
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +796 -768
- 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 +525 -525
- data/lib/cosmos/tools/replay/replay.rb +495 -488
- data/lib/cosmos/tools/replay/replay_server.rb +91 -91
- data/lib/cosmos/tools/script_runner/script_audit.rb +147 -139
- data/lib/cosmos/tools/script_runner/script_runner.rb +914 -914
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +40 -40
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +1892 -1859
- 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 +480 -480
- data/lib/cosmos/tools/test_runner/test_runner.rb +1157 -1157
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +338 -338
- data/lib/cosmos/tools/tlm_extractor/text_item_chooser.rb +60 -60
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +1008 -1008
- 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 +94 -94
- 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 +180 -180
- 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 +173 -173
- data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +177 -177
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +412 -409
- 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 -320
- 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 +1278 -1278
- 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 +111 -95
- 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 +72 -66
- 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 -458
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +563 -544
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +287 -287
- 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 +70 -70
- data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +61 -61
- 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 +647 -596
- data/lib/cosmos/utilities.rb +11 -10
- 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 +74 -74
- 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 -0
- 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 +311 -311
- data/roodi.yml +24 -24
- data/run_gui_tests.bat +32 -32
- 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 +151 -151
- data/spec/gui/line_graph/line_clip_spec.rb +322 -322
- 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 -294
- 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 -131
- data/spec/interfaces/linc_interface_spec.rb +199 -199
- 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 +54 -54
- data/spec/interfaces/tcpip_server_interface_spec.rb +151 -151
- data/spec/interfaces/udp_interface_spec.rb +175 -177
- 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 +99 -99
- 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 +61 -61
- 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 +408 -408
- data/spec/packet_logs/packet_log_writer_pair_spec.rb +30 -30
- data/spec/packet_logs/packet_log_writer_spec.rb +223 -223
- data/spec/packets/binary_accessor_spec.rb +2073 -2073
- data/spec/packets/commands_spec.rb +369 -369
- data/spec/packets/limits_response_spec.rb +25 -25
- data/spec/packets/limits_spec.rb +326 -326
- data/spec/packets/packet_config_spec.rb +1620 -1620
- 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 +1057 -949
- data/spec/packets/structure_item_spec.rb +195 -195
- data/spec/packets/structure_spec.rb +419 -419
- data/spec/packets/telemetry_spec.rb +535 -535
- 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/script_spec.rb +654 -654
- data/spec/spec_helper.rb +154 -148
- data/spec/streams/burst_stream_protocol_spec.rb +32 -32
- data/spec/streams/fixed_stream_protocol_spec.rb +110 -110
- data/spec/streams/length_stream_protocol_spec.rb +297 -297
- data/spec/streams/preidentified_stream_protocol_spec.rb +118 -118
- data/spec/streams/serial_stream_spec.rb +105 -105
- data/spec/streams/stream_protocol_spec.rb +332 -332
- data/spec/streams/stream_spec.rb +29 -29
- data/spec/streams/tcpip_client_stream_spec.rb +54 -54
- data/spec/streams/tcpip_socket_stream_spec.rb +146 -146
- data/spec/streams/template_stream_protocol_spec.rb +151 -151
- data/spec/streams/terminated_stream_protocol_spec.rb +123 -123
- data/spec/system/system_spec.rb +645 -645
- data/spec/system/target_spec.rb +248 -248
- data/spec/tools/cmd_tlm_server/api_spec.rb +1087 -1113
- 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 +411 -411
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +415 -415
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +123 -123
- data/spec/tools/cmd_tlm_server/connections_spec.rb +147 -147
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +306 -306
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +252 -238
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +143 -143
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +98 -101
- data/spec/tools/cmd_tlm_server/routers_spec.rb +223 -208
- data/spec/top_level/top_level_spec.rb +334 -321
- 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
- metadata +18 -2
|
@@ -1,369 +1,369 @@
|
|
|
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/packets/commands'
|
|
14
|
-
require 'tempfile'
|
|
15
|
-
|
|
16
|
-
module Cosmos
|
|
17
|
-
|
|
18
|
-
describe Commands do
|
|
19
|
-
|
|
20
|
-
describe "initialize" do
|
|
21
|
-
it "should have no warnings" do
|
|
22
|
-
Commands.new(PacketConfig.new).warnings.should be_empty
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
before(:each) do
|
|
27
|
-
tf = Tempfile.new('unittest')
|
|
28
|
-
tf.puts '# This is a comment'
|
|
29
|
-
tf.puts '#'
|
|
30
|
-
tf.puts 'COMMAND tgt1 pkt1 LITTLE_ENDIAN "TGT1 PKT1 Description"'
|
|
31
|
-
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 1 1 1 "Item1"'
|
|
32
|
-
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 254 2 "Item2"'
|
|
33
|
-
tf.puts ' APPEND_PARAMETER item3 8 UINT 0 254 3 "Item3"'
|
|
34
|
-
tf.puts ' APPEND_PARAMETER item4 8 UINT 0 254 4 "Item4"'
|
|
35
|
-
tf.puts 'COMMAND tgt1 pkt2 LITTLE_ENDIAN "TGT1 PKT2 Description"'
|
|
36
|
-
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 2 2 2 "Item1"'
|
|
37
|
-
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 255 2 "Item2"'
|
|
38
|
-
tf.puts ' STATE BAD1 0 HAZARDOUS "Hazardous"'
|
|
39
|
-
tf.puts ' STATE BAD2 1 HAZARDOUS'
|
|
40
|
-
tf.puts ' STATE GOOD 2'
|
|
41
|
-
tf.puts 'COMMAND tgt2 pkt3 LITTLE_ENDIAN "TGT2 PKT3 Description"'
|
|
42
|
-
tf.puts ' HAZARDOUS "Hazardous"'
|
|
43
|
-
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 3 3 3 "Item1"'
|
|
44
|
-
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 255 2 "Item2"'
|
|
45
|
-
tf.puts ' REQUIRED'
|
|
46
|
-
tf.puts 'COMMAND tgt2 pkt4 LITTLE_ENDIAN "TGT2 PKT4 Description"'
|
|
47
|
-
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 4 4 4 "Item1"'
|
|
48
|
-
tf.puts ' APPEND_PARAMETER item2 2048 STRING "Item2"'
|
|
49
|
-
tf.puts ' OVERFLOW TRUNCATE'
|
|
50
|
-
tf.puts 'COMMAND tgt2 pkt5 LITTLE_ENDIAN "TGT2 PKT5 Description"'
|
|
51
|
-
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 5 5 5 "Item1"'
|
|
52
|
-
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 100 0 "Item2"'
|
|
53
|
-
tf.puts ' POLY_WRITE_CONVERSION 0 2'
|
|
54
|
-
tf.close
|
|
55
|
-
|
|
56
|
-
pc = PacketConfig.new
|
|
57
|
-
pc.process_file(tf.path, "SYSTEM")
|
|
58
|
-
@cmd = Commands.new(pc)
|
|
59
|
-
tf.unlink
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
describe "target_names" do
|
|
63
|
-
it "should return an array with just UNKNOWN if no targets" do
|
|
64
|
-
Commands.new(PacketConfig.new).target_names.should eql ["UNKNOWN"]
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
it "should return all target names" do
|
|
68
|
-
@cmd.target_names.should eql ["TGT1","TGT2","UNKNOWN"]
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
describe "packets" do
|
|
73
|
-
it "should complain about non-existant targets" do
|
|
74
|
-
expect { @cmd.packets("tgtX") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it "should return all packets target TGT1" do
|
|
78
|
-
pkts = @cmd.packets("TGT1")
|
|
79
|
-
pkts.length.should eql 2
|
|
80
|
-
pkts.keys.should include("PKT1")
|
|
81
|
-
pkts.keys.should include("PKT2")
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
it "should return all packets target TGT2" do
|
|
85
|
-
pkts = @cmd.packets("TGT2")
|
|
86
|
-
pkts.length.should eql 3
|
|
87
|
-
pkts.keys.should include("PKT3")
|
|
88
|
-
pkts.keys.should include("PKT4")
|
|
89
|
-
pkts.keys.should include("PKT5")
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
describe "params" do
|
|
94
|
-
it "should complain about non-existant targets" do
|
|
95
|
-
expect { @cmd.params("TGTX","PKT1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it "should complain about non-existant packets" do
|
|
99
|
-
expect { @cmd.params("TGT1","PKTX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
it "should return all items from packet TGT1/PKT1" do
|
|
103
|
-
items = @cmd.params("TGT1","PKT1")
|
|
104
|
-
items.length.should eql 4
|
|
105
|
-
items[0].name.should eql "ITEM1"
|
|
106
|
-
items[1].name.should eql "ITEM2"
|
|
107
|
-
items[2].name.should eql "ITEM3"
|
|
108
|
-
items[3].name.should eql "ITEM4"
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
describe "packet" do
|
|
113
|
-
it "should complain about non-existant targets" do
|
|
114
|
-
expect { @cmd.packet("tgtX","pkt1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
it "should complain about non-existant packets" do
|
|
118
|
-
expect { @cmd.packet("TGT1","PKTX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
it "should return the specified packet" do
|
|
122
|
-
pkt = @cmd.packet("TGT1","PKT1")
|
|
123
|
-
pkt.target_name.should eql "TGT1"
|
|
124
|
-
pkt.packet_name.should eql "PKT1"
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
describe "identify" do
|
|
129
|
-
it "return nil with a nil buffer" do
|
|
130
|
-
@cmd.identify(nil).should be_nil
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
it "should only check the targets given" do
|
|
134
|
-
buffer = "\x01\x02\x03\x04"
|
|
135
|
-
pkt = @cmd.identify(buffer,["TGT1"])
|
|
136
|
-
pkt.enable_method_missing
|
|
137
|
-
pkt.item1.should eql 1
|
|
138
|
-
pkt.item2.should eql 2
|
|
139
|
-
pkt.item3.should eql 3
|
|
140
|
-
pkt.item4.should eql 4
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
it "should return nil with unknown targets given" do
|
|
144
|
-
buffer = "\x01\x02\x03\x04"
|
|
145
|
-
@cmd.identify(buffer,["TGTX"]).should be_nil
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
context "with an unknown buffer" do
|
|
149
|
-
it "should log an invalid sized buffer" do
|
|
150
|
-
capture_io do |stdout|
|
|
151
|
-
buffer = "\x01\x02\x03"
|
|
152
|
-
pkt = @cmd.identify(buffer)
|
|
153
|
-
pkt.enable_method_missing
|
|
154
|
-
pkt.item1.should eql 1
|
|
155
|
-
pkt.item2.should eql 2
|
|
156
|
-
pkt.item3.should eql 3
|
|
157
|
-
pkt.item4.should eql 0
|
|
158
|
-
stdout.string.should match(/ERROR: TGT1 PKT1 received with actual packet length of 3 but defined length of 4/)
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
it "should log an invalid sized buffer" do
|
|
163
|
-
capture_io do |stdout|
|
|
164
|
-
buffer = "\x01\x02\x03\x04\x05"
|
|
165
|
-
pkt = @cmd.identify(buffer)
|
|
166
|
-
pkt.enable_method_missing
|
|
167
|
-
pkt.item1.should eql 1
|
|
168
|
-
pkt.item2.should eql 2
|
|
169
|
-
pkt.item3.should eql 3
|
|
170
|
-
pkt.item4.should eql 4
|
|
171
|
-
stdout.string.should match(/ERROR: TGT1 PKT1 received with actual packet length of 5 but defined length of 4/)
|
|
172
|
-
end
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
it "should identify TGT1 PKT1 but not affect the latest data table" do
|
|
176
|
-
buffer = "\x01\x02\x03\x04"
|
|
177
|
-
pkt = @cmd.identify(buffer)
|
|
178
|
-
pkt.enable_method_missing
|
|
179
|
-
pkt.item1.should eql 1
|
|
180
|
-
pkt.item2.should eql 2
|
|
181
|
-
pkt.item3.should eql 3
|
|
182
|
-
pkt.item4.should eql 4
|
|
183
|
-
|
|
184
|
-
# Now request the packet from the latest data table
|
|
185
|
-
pkt = @cmd.packet("TGT1","PKT1")
|
|
186
|
-
pkt.enable_method_missing
|
|
187
|
-
pkt.item1.should eql 0
|
|
188
|
-
pkt.item2.should eql 0
|
|
189
|
-
pkt.item3.should eql 0
|
|
190
|
-
pkt.item4.should eql 0
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
it "should identify TGT1 PKT2" do
|
|
194
|
-
buffer = "\x02\x02"
|
|
195
|
-
pkt = @cmd.identify(buffer)
|
|
196
|
-
pkt.enable_method_missing
|
|
197
|
-
pkt.item1.should eql 2
|
|
198
|
-
pkt.item2.should eql "GOOD"
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
it "should identify TGT2 PKT1" do
|
|
202
|
-
buffer = "\x03\x02"
|
|
203
|
-
pkt = @cmd.identify(buffer)
|
|
204
|
-
pkt.enable_method_missing
|
|
205
|
-
pkt.item1.should eql 3
|
|
206
|
-
pkt.item2.should eql 2
|
|
207
|
-
end
|
|
208
|
-
end
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
describe "build_cmd" do
|
|
212
|
-
it "should complain about non-existant targets" do
|
|
213
|
-
expect { @cmd.build_cmd("tgtX","pkt1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
214
|
-
end
|
|
215
|
-
|
|
216
|
-
it "should complain about non-existant packets" do
|
|
217
|
-
expect { @cmd.build_cmd("tgt1","pktX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
it "should complain about non-existant items" do
|
|
221
|
-
expect { cmd = @cmd.build_cmd("tgt1","pkt1",{"itemX"=>1}) }.to raise_error(RuntimeError, "Packet item 'TGT1 PKT1 ITEMX' does not exist")
|
|
222
|
-
end
|
|
223
|
-
|
|
224
|
-
it "should create a populated command packet with default values" do
|
|
225
|
-
cmd = @cmd.build_cmd("TGT1","PKT1")
|
|
226
|
-
cmd.enable_method_missing
|
|
227
|
-
cmd.item1.should eql 1
|
|
228
|
-
cmd.item2.should eql 2
|
|
229
|
-
cmd.item3.should eql 3
|
|
230
|
-
cmd.item4.should eql 4
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
it "should complain about out of range item values" do
|
|
234
|
-
expect { @cmd.build_cmd("tgt1","pkt1",{"item2"=>1000}) }.to raise_error(RuntimeError, "Command parameter 'TGT1 PKT1 ITEM2' = 1000 not in valid range of 0 to 254")
|
|
235
|
-
end
|
|
236
|
-
|
|
237
|
-
it "should ignore out of range item values if requested" do
|
|
238
|
-
cmd = @cmd.build_cmd("tgt1","pkt1",{"item2"=>255}, false)
|
|
239
|
-
cmd.enable_method_missing
|
|
240
|
-
cmd.item1.should eql 1
|
|
241
|
-
cmd.item2.should eql 255
|
|
242
|
-
cmd.item3.should eql 3
|
|
243
|
-
cmd.item4.should eql 4
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
it "should create a command packet with override item values" do
|
|
247
|
-
items = {"ITEM2" => 10, "ITEM4" => 11}
|
|
248
|
-
cmd = @cmd.build_cmd("TGT1","PKT1",items)
|
|
249
|
-
cmd.enable_method_missing
|
|
250
|
-
cmd.item1.should eql 1
|
|
251
|
-
cmd.item2.should eql 10
|
|
252
|
-
cmd.item3.should eql 3
|
|
253
|
-
cmd.item4.should eql 11
|
|
254
|
-
end
|
|
255
|
-
|
|
256
|
-
it "should create a command packet with override item value states" do
|
|
257
|
-
items = {"ITEM2" => "GOOD"}
|
|
258
|
-
cmd = @cmd.build_cmd("TGT1","PKT2",items)
|
|
259
|
-
cmd.enable_method_missing
|
|
260
|
-
cmd.item1.should eql 2
|
|
261
|
-
cmd.item2.should eql "GOOD"
|
|
262
|
-
cmd.read("ITEM2",:RAW).should eql 2
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
it "should complain about missing required parameters" do
|
|
266
|
-
expect { @cmd.build_cmd("tgt2","pkt3") }.to raise_error(RuntimeError, "Required command parameter 'TGT2 PKT3 ITEM2' not given")
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
it "should support building raw commands" do
|
|
270
|
-
items = {"ITEM2" => 10}
|
|
271
|
-
cmd = @cmd.build_cmd("TGT2","PKT5",items,false,false)
|
|
272
|
-
cmd.raw.should eql false
|
|
273
|
-
cmd.read("ITEM2").should eql 20
|
|
274
|
-
items = {"ITEM2" => 10}
|
|
275
|
-
cmd = @cmd.build_cmd("TGT1","PKT1",items,false,true)
|
|
276
|
-
cmd.raw.should eql true
|
|
277
|
-
cmd.read("ITEM2").should eql 10
|
|
278
|
-
end
|
|
279
|
-
end
|
|
280
|
-
|
|
281
|
-
describe "format" do
|
|
282
|
-
it "should create a string representation of a command" do
|
|
283
|
-
pkt = @cmd.packet("TGT1","PKT1")
|
|
284
|
-
@cmd.format(pkt).should eql "cmd('TGT1 PKT1 with ITEM1 0, ITEM2 0, ITEM3 0, ITEM4 0')"
|
|
285
|
-
|
|
286
|
-
pkt = @cmd.packet("TGT2","PKT4")
|
|
287
|
-
string = ''
|
|
288
|
-
pkt.write("ITEM2","HELLO WORLD")
|
|
289
|
-
@cmd.format(pkt).should eql "cmd('TGT2 PKT4 with ITEM1 0, ITEM2 \"HELLO WORLD\"')"
|
|
290
|
-
|
|
291
|
-
pkt = @cmd.packet("TGT2","PKT4")
|
|
292
|
-
string = ''
|
|
293
|
-
pkt.write("ITEM2","HELLO WORLD")
|
|
294
|
-
pkt.raw = true
|
|
295
|
-
@cmd.format(pkt).should eql "cmd_raw('TGT2 PKT4 with ITEM1 0, ITEM2 \"HELLO WORLD\"')"
|
|
296
|
-
|
|
297
|
-
# If the string is too big it should truncate it
|
|
298
|
-
(1..2028).each {|i| string << 'A' }
|
|
299
|
-
pkt.write("ITEM2",string)
|
|
300
|
-
pkt.raw = false
|
|
301
|
-
result = @cmd.format(pkt)
|
|
302
|
-
result.should match(/cmd\('TGT2 PKT4 with ITEM1 0, ITEM2 \"AAAAAAAAAAA/)
|
|
303
|
-
result.should match(/AAAAAAAAAAA.../)
|
|
304
|
-
end
|
|
305
|
-
|
|
306
|
-
it "should ignore parameters" do
|
|
307
|
-
pkt = @cmd.packet("TGT1","PKT1")
|
|
308
|
-
@cmd.format(pkt,['ITEM3','ITEM4']).should eql "cmd('TGT1 PKT1 with ITEM1 0, ITEM2 0')"
|
|
309
|
-
end
|
|
310
|
-
end
|
|
311
|
-
|
|
312
|
-
describe "cmd_hazardous?" do
|
|
313
|
-
it "should complain about non-existant targets" do
|
|
314
|
-
expect { @cmd.cmd_hazardous?("tgtX","pkt1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
315
|
-
end
|
|
316
|
-
|
|
317
|
-
it "should complain about non-existant packets" do
|
|
318
|
-
expect { @cmd.cmd_hazardous?("tgt1","pktX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
319
|
-
end
|
|
320
|
-
|
|
321
|
-
it "should complain about non-existant items" do
|
|
322
|
-
expect { cmd = @cmd.cmd_hazardous?("tgt1","pkt1",{"itemX"=>1}) }.to raise_error(RuntimeError, "Packet item 'TGT1 PKT1 ITEMX' does not exist")
|
|
323
|
-
end
|
|
324
|
-
|
|
325
|
-
it "should return true if the command overall is hazardous" do
|
|
326
|
-
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT1")
|
|
327
|
-
hazardous.should be_falsey
|
|
328
|
-
description.should be_nil
|
|
329
|
-
hazardous, description = @cmd.cmd_hazardous?("tgt2","pkt3")
|
|
330
|
-
hazardous.should be_truthy
|
|
331
|
-
description.should eql "Hazardous"
|
|
332
|
-
end
|
|
333
|
-
|
|
334
|
-
it "should return true if a command parameter is hazardous" do
|
|
335
|
-
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT2",{"ITEM2"=>0})
|
|
336
|
-
hazardous.should be_truthy
|
|
337
|
-
description.should eql "Hazardous"
|
|
338
|
-
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT2",{"ITEM2"=>1})
|
|
339
|
-
hazardous.should be_truthy
|
|
340
|
-
description.should eql ""
|
|
341
|
-
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT2",{"ITEM2"=>2})
|
|
342
|
-
hazardous.should be_falsey
|
|
343
|
-
description.should be_nil
|
|
344
|
-
end
|
|
345
|
-
end
|
|
346
|
-
|
|
347
|
-
describe "clear_counters" do
|
|
348
|
-
it "should clear the received counters in all packets" do
|
|
349
|
-
@cmd.packet("TGT1","PKT1").received_count = 1
|
|
350
|
-
@cmd.packet("TGT1","PKT2").received_count = 2
|
|
351
|
-
@cmd.packet("TGT2","PKT3").received_count = 3
|
|
352
|
-
@cmd.packet("TGT2","PKT4").received_count = 4
|
|
353
|
-
@cmd.clear_counters
|
|
354
|
-
@cmd.packet("TGT1","PKT1").received_count.should eql 0
|
|
355
|
-
@cmd.packet("TGT1","PKT2").received_count.should eql 0
|
|
356
|
-
@cmd.packet("TGT2","PKT3").received_count.should eql 0
|
|
357
|
-
@cmd.packet("TGT2","PKT4").received_count.should eql 0
|
|
358
|
-
end
|
|
359
|
-
end
|
|
360
|
-
|
|
361
|
-
describe "all" do
|
|
362
|
-
it "should return all packets" do
|
|
363
|
-
@cmd.all.keys.should eql %w(UNKNOWN TGT1 TGT2)
|
|
364
|
-
end
|
|
365
|
-
end
|
|
366
|
-
|
|
367
|
-
end
|
|
368
|
-
end
|
|
369
|
-
|
|
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/packets/commands'
|
|
14
|
+
require 'tempfile'
|
|
15
|
+
|
|
16
|
+
module Cosmos
|
|
17
|
+
|
|
18
|
+
describe Commands do
|
|
19
|
+
|
|
20
|
+
describe "initialize" do
|
|
21
|
+
it "should have no warnings" do
|
|
22
|
+
Commands.new(PacketConfig.new).warnings.should be_empty
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
before(:each) do
|
|
27
|
+
tf = Tempfile.new('unittest')
|
|
28
|
+
tf.puts '# This is a comment'
|
|
29
|
+
tf.puts '#'
|
|
30
|
+
tf.puts 'COMMAND tgt1 pkt1 LITTLE_ENDIAN "TGT1 PKT1 Description"'
|
|
31
|
+
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 1 1 1 "Item1"'
|
|
32
|
+
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 254 2 "Item2"'
|
|
33
|
+
tf.puts ' APPEND_PARAMETER item3 8 UINT 0 254 3 "Item3"'
|
|
34
|
+
tf.puts ' APPEND_PARAMETER item4 8 UINT 0 254 4 "Item4"'
|
|
35
|
+
tf.puts 'COMMAND tgt1 pkt2 LITTLE_ENDIAN "TGT1 PKT2 Description"'
|
|
36
|
+
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 2 2 2 "Item1"'
|
|
37
|
+
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 255 2 "Item2"'
|
|
38
|
+
tf.puts ' STATE BAD1 0 HAZARDOUS "Hazardous"'
|
|
39
|
+
tf.puts ' STATE BAD2 1 HAZARDOUS'
|
|
40
|
+
tf.puts ' STATE GOOD 2'
|
|
41
|
+
tf.puts 'COMMAND tgt2 pkt3 LITTLE_ENDIAN "TGT2 PKT3 Description"'
|
|
42
|
+
tf.puts ' HAZARDOUS "Hazardous"'
|
|
43
|
+
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 3 3 3 "Item1"'
|
|
44
|
+
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 255 2 "Item2"'
|
|
45
|
+
tf.puts ' REQUIRED'
|
|
46
|
+
tf.puts 'COMMAND tgt2 pkt4 LITTLE_ENDIAN "TGT2 PKT4 Description"'
|
|
47
|
+
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 4 4 4 "Item1"'
|
|
48
|
+
tf.puts ' APPEND_PARAMETER item2 2048 STRING "Item2"'
|
|
49
|
+
tf.puts ' OVERFLOW TRUNCATE'
|
|
50
|
+
tf.puts 'COMMAND tgt2 pkt5 LITTLE_ENDIAN "TGT2 PKT5 Description"'
|
|
51
|
+
tf.puts ' APPEND_ID_PARAMETER item1 8 UINT 5 5 5 "Item1"'
|
|
52
|
+
tf.puts ' APPEND_PARAMETER item2 8 UINT 0 100 0 "Item2"'
|
|
53
|
+
tf.puts ' POLY_WRITE_CONVERSION 0 2'
|
|
54
|
+
tf.close
|
|
55
|
+
|
|
56
|
+
pc = PacketConfig.new
|
|
57
|
+
pc.process_file(tf.path, "SYSTEM")
|
|
58
|
+
@cmd = Commands.new(pc)
|
|
59
|
+
tf.unlink
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
describe "target_names" do
|
|
63
|
+
it "should return an array with just UNKNOWN if no targets" do
|
|
64
|
+
Commands.new(PacketConfig.new).target_names.should eql ["UNKNOWN"]
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "should return all target names" do
|
|
68
|
+
@cmd.target_names.should eql ["TGT1","TGT2","UNKNOWN"]
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
describe "packets" do
|
|
73
|
+
it "should complain about non-existant targets" do
|
|
74
|
+
expect { @cmd.packets("tgtX") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "should return all packets target TGT1" do
|
|
78
|
+
pkts = @cmd.packets("TGT1")
|
|
79
|
+
pkts.length.should eql 2
|
|
80
|
+
pkts.keys.should include("PKT1")
|
|
81
|
+
pkts.keys.should include("PKT2")
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it "should return all packets target TGT2" do
|
|
85
|
+
pkts = @cmd.packets("TGT2")
|
|
86
|
+
pkts.length.should eql 3
|
|
87
|
+
pkts.keys.should include("PKT3")
|
|
88
|
+
pkts.keys.should include("PKT4")
|
|
89
|
+
pkts.keys.should include("PKT5")
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe "params" do
|
|
94
|
+
it "should complain about non-existant targets" do
|
|
95
|
+
expect { @cmd.params("TGTX","PKT1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it "should complain about non-existant packets" do
|
|
99
|
+
expect { @cmd.params("TGT1","PKTX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "should return all items from packet TGT1/PKT1" do
|
|
103
|
+
items = @cmd.params("TGT1","PKT1")
|
|
104
|
+
items.length.should eql 4
|
|
105
|
+
items[0].name.should eql "ITEM1"
|
|
106
|
+
items[1].name.should eql "ITEM2"
|
|
107
|
+
items[2].name.should eql "ITEM3"
|
|
108
|
+
items[3].name.should eql "ITEM4"
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
describe "packet" do
|
|
113
|
+
it "should complain about non-existant targets" do
|
|
114
|
+
expect { @cmd.packet("tgtX","pkt1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "should complain about non-existant packets" do
|
|
118
|
+
expect { @cmd.packet("TGT1","PKTX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it "should return the specified packet" do
|
|
122
|
+
pkt = @cmd.packet("TGT1","PKT1")
|
|
123
|
+
pkt.target_name.should eql "TGT1"
|
|
124
|
+
pkt.packet_name.should eql "PKT1"
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
describe "identify" do
|
|
129
|
+
it "return nil with a nil buffer" do
|
|
130
|
+
@cmd.identify(nil).should be_nil
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it "should only check the targets given" do
|
|
134
|
+
buffer = "\x01\x02\x03\x04"
|
|
135
|
+
pkt = @cmd.identify(buffer,["TGT1"])
|
|
136
|
+
pkt.enable_method_missing
|
|
137
|
+
pkt.item1.should eql 1
|
|
138
|
+
pkt.item2.should eql 2
|
|
139
|
+
pkt.item3.should eql 3
|
|
140
|
+
pkt.item4.should eql 4
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
it "should return nil with unknown targets given" do
|
|
144
|
+
buffer = "\x01\x02\x03\x04"
|
|
145
|
+
@cmd.identify(buffer,["TGTX"]).should be_nil
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
context "with an unknown buffer" do
|
|
149
|
+
it "should log an invalid sized buffer" do
|
|
150
|
+
capture_io do |stdout|
|
|
151
|
+
buffer = "\x01\x02\x03"
|
|
152
|
+
pkt = @cmd.identify(buffer)
|
|
153
|
+
pkt.enable_method_missing
|
|
154
|
+
pkt.item1.should eql 1
|
|
155
|
+
pkt.item2.should eql 2
|
|
156
|
+
pkt.item3.should eql 3
|
|
157
|
+
pkt.item4.should eql 0
|
|
158
|
+
stdout.string.should match(/ERROR: TGT1 PKT1 received with actual packet length of 3 but defined length of 4/)
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
it "should log an invalid sized buffer" do
|
|
163
|
+
capture_io do |stdout|
|
|
164
|
+
buffer = "\x01\x02\x03\x04\x05"
|
|
165
|
+
pkt = @cmd.identify(buffer)
|
|
166
|
+
pkt.enable_method_missing
|
|
167
|
+
pkt.item1.should eql 1
|
|
168
|
+
pkt.item2.should eql 2
|
|
169
|
+
pkt.item3.should eql 3
|
|
170
|
+
pkt.item4.should eql 4
|
|
171
|
+
stdout.string.should match(/ERROR: TGT1 PKT1 received with actual packet length of 5 but defined length of 4/)
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
it "should identify TGT1 PKT1 but not affect the latest data table" do
|
|
176
|
+
buffer = "\x01\x02\x03\x04"
|
|
177
|
+
pkt = @cmd.identify(buffer)
|
|
178
|
+
pkt.enable_method_missing
|
|
179
|
+
pkt.item1.should eql 1
|
|
180
|
+
pkt.item2.should eql 2
|
|
181
|
+
pkt.item3.should eql 3
|
|
182
|
+
pkt.item4.should eql 4
|
|
183
|
+
|
|
184
|
+
# Now request the packet from the latest data table
|
|
185
|
+
pkt = @cmd.packet("TGT1","PKT1")
|
|
186
|
+
pkt.enable_method_missing
|
|
187
|
+
pkt.item1.should eql 0
|
|
188
|
+
pkt.item2.should eql 0
|
|
189
|
+
pkt.item3.should eql 0
|
|
190
|
+
pkt.item4.should eql 0
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
it "should identify TGT1 PKT2" do
|
|
194
|
+
buffer = "\x02\x02"
|
|
195
|
+
pkt = @cmd.identify(buffer)
|
|
196
|
+
pkt.enable_method_missing
|
|
197
|
+
pkt.item1.should eql 2
|
|
198
|
+
pkt.item2.should eql "GOOD"
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
it "should identify TGT2 PKT1" do
|
|
202
|
+
buffer = "\x03\x02"
|
|
203
|
+
pkt = @cmd.identify(buffer)
|
|
204
|
+
pkt.enable_method_missing
|
|
205
|
+
pkt.item1.should eql 3
|
|
206
|
+
pkt.item2.should eql 2
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
describe "build_cmd" do
|
|
212
|
+
it "should complain about non-existant targets" do
|
|
213
|
+
expect { @cmd.build_cmd("tgtX","pkt1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
it "should complain about non-existant packets" do
|
|
217
|
+
expect { @cmd.build_cmd("tgt1","pktX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
it "should complain about non-existant items" do
|
|
221
|
+
expect { cmd = @cmd.build_cmd("tgt1","pkt1",{"itemX"=>1}) }.to raise_error(RuntimeError, "Packet item 'TGT1 PKT1 ITEMX' does not exist")
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
it "should create a populated command packet with default values" do
|
|
225
|
+
cmd = @cmd.build_cmd("TGT1","PKT1")
|
|
226
|
+
cmd.enable_method_missing
|
|
227
|
+
cmd.item1.should eql 1
|
|
228
|
+
cmd.item2.should eql 2
|
|
229
|
+
cmd.item3.should eql 3
|
|
230
|
+
cmd.item4.should eql 4
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
it "should complain about out of range item values" do
|
|
234
|
+
expect { @cmd.build_cmd("tgt1","pkt1",{"item2"=>1000}) }.to raise_error(RuntimeError, "Command parameter 'TGT1 PKT1 ITEM2' = 1000 not in valid range of 0 to 254")
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
it "should ignore out of range item values if requested" do
|
|
238
|
+
cmd = @cmd.build_cmd("tgt1","pkt1",{"item2"=>255}, false)
|
|
239
|
+
cmd.enable_method_missing
|
|
240
|
+
cmd.item1.should eql 1
|
|
241
|
+
cmd.item2.should eql 255
|
|
242
|
+
cmd.item3.should eql 3
|
|
243
|
+
cmd.item4.should eql 4
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
it "should create a command packet with override item values" do
|
|
247
|
+
items = {"ITEM2" => 10, "ITEM4" => 11}
|
|
248
|
+
cmd = @cmd.build_cmd("TGT1","PKT1",items)
|
|
249
|
+
cmd.enable_method_missing
|
|
250
|
+
cmd.item1.should eql 1
|
|
251
|
+
cmd.item2.should eql 10
|
|
252
|
+
cmd.item3.should eql 3
|
|
253
|
+
cmd.item4.should eql 11
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
it "should create a command packet with override item value states" do
|
|
257
|
+
items = {"ITEM2" => "GOOD"}
|
|
258
|
+
cmd = @cmd.build_cmd("TGT1","PKT2",items)
|
|
259
|
+
cmd.enable_method_missing
|
|
260
|
+
cmd.item1.should eql 2
|
|
261
|
+
cmd.item2.should eql "GOOD"
|
|
262
|
+
cmd.read("ITEM2",:RAW).should eql 2
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it "should complain about missing required parameters" do
|
|
266
|
+
expect { @cmd.build_cmd("tgt2","pkt3") }.to raise_error(RuntimeError, "Required command parameter 'TGT2 PKT3 ITEM2' not given")
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
it "should support building raw commands" do
|
|
270
|
+
items = {"ITEM2" => 10}
|
|
271
|
+
cmd = @cmd.build_cmd("TGT2","PKT5",items,false,false)
|
|
272
|
+
cmd.raw.should eql false
|
|
273
|
+
cmd.read("ITEM2").should eql 20
|
|
274
|
+
items = {"ITEM2" => 10}
|
|
275
|
+
cmd = @cmd.build_cmd("TGT1","PKT1",items,false,true)
|
|
276
|
+
cmd.raw.should eql true
|
|
277
|
+
cmd.read("ITEM2").should eql 10
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
describe "format" do
|
|
282
|
+
it "should create a string representation of a command" do
|
|
283
|
+
pkt = @cmd.packet("TGT1","PKT1")
|
|
284
|
+
@cmd.format(pkt).should eql "cmd('TGT1 PKT1 with ITEM1 0, ITEM2 0, ITEM3 0, ITEM4 0')"
|
|
285
|
+
|
|
286
|
+
pkt = @cmd.packet("TGT2","PKT4")
|
|
287
|
+
string = ''
|
|
288
|
+
pkt.write("ITEM2","HELLO WORLD")
|
|
289
|
+
@cmd.format(pkt).should eql "cmd('TGT2 PKT4 with ITEM1 0, ITEM2 \"HELLO WORLD\"')"
|
|
290
|
+
|
|
291
|
+
pkt = @cmd.packet("TGT2","PKT4")
|
|
292
|
+
string = ''
|
|
293
|
+
pkt.write("ITEM2","HELLO WORLD")
|
|
294
|
+
pkt.raw = true
|
|
295
|
+
@cmd.format(pkt).should eql "cmd_raw('TGT2 PKT4 with ITEM1 0, ITEM2 \"HELLO WORLD\"')"
|
|
296
|
+
|
|
297
|
+
# If the string is too big it should truncate it
|
|
298
|
+
(1..2028).each {|i| string << 'A' }
|
|
299
|
+
pkt.write("ITEM2",string)
|
|
300
|
+
pkt.raw = false
|
|
301
|
+
result = @cmd.format(pkt)
|
|
302
|
+
result.should match(/cmd\('TGT2 PKT4 with ITEM1 0, ITEM2 \"AAAAAAAAAAA/)
|
|
303
|
+
result.should match(/AAAAAAAAAAA.../)
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
it "should ignore parameters" do
|
|
307
|
+
pkt = @cmd.packet("TGT1","PKT1")
|
|
308
|
+
@cmd.format(pkt,['ITEM3','ITEM4']).should eql "cmd('TGT1 PKT1 with ITEM1 0, ITEM2 0')"
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
describe "cmd_hazardous?" do
|
|
313
|
+
it "should complain about non-existant targets" do
|
|
314
|
+
expect { @cmd.cmd_hazardous?("tgtX","pkt1") }.to raise_error(RuntimeError, "Command target 'TGTX' does not exist")
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
it "should complain about non-existant packets" do
|
|
318
|
+
expect { @cmd.cmd_hazardous?("tgt1","pktX") }.to raise_error(RuntimeError, "Command packet 'TGT1 PKTX' does not exist")
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
it "should complain about non-existant items" do
|
|
322
|
+
expect { cmd = @cmd.cmd_hazardous?("tgt1","pkt1",{"itemX"=>1}) }.to raise_error(RuntimeError, "Packet item 'TGT1 PKT1 ITEMX' does not exist")
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
it "should return true if the command overall is hazardous" do
|
|
326
|
+
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT1")
|
|
327
|
+
hazardous.should be_falsey
|
|
328
|
+
description.should be_nil
|
|
329
|
+
hazardous, description = @cmd.cmd_hazardous?("tgt2","pkt3")
|
|
330
|
+
hazardous.should be_truthy
|
|
331
|
+
description.should eql "Hazardous"
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
it "should return true if a command parameter is hazardous" do
|
|
335
|
+
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT2",{"ITEM2"=>0})
|
|
336
|
+
hazardous.should be_truthy
|
|
337
|
+
description.should eql "Hazardous"
|
|
338
|
+
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT2",{"ITEM2"=>1})
|
|
339
|
+
hazardous.should be_truthy
|
|
340
|
+
description.should eql ""
|
|
341
|
+
hazardous, description = @cmd.cmd_hazardous?("TGT1","PKT2",{"ITEM2"=>2})
|
|
342
|
+
hazardous.should be_falsey
|
|
343
|
+
description.should be_nil
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
describe "clear_counters" do
|
|
348
|
+
it "should clear the received counters in all packets" do
|
|
349
|
+
@cmd.packet("TGT1","PKT1").received_count = 1
|
|
350
|
+
@cmd.packet("TGT1","PKT2").received_count = 2
|
|
351
|
+
@cmd.packet("TGT2","PKT3").received_count = 3
|
|
352
|
+
@cmd.packet("TGT2","PKT4").received_count = 4
|
|
353
|
+
@cmd.clear_counters
|
|
354
|
+
@cmd.packet("TGT1","PKT1").received_count.should eql 0
|
|
355
|
+
@cmd.packet("TGT1","PKT2").received_count.should eql 0
|
|
356
|
+
@cmd.packet("TGT2","PKT3").received_count.should eql 0
|
|
357
|
+
@cmd.packet("TGT2","PKT4").received_count.should eql 0
|
|
358
|
+
end
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
describe "all" do
|
|
362
|
+
it "should return all packets" do
|
|
363
|
+
@cmd.all.keys.should eql %w(UNKNOWN TGT1 TGT2)
|
|
364
|
+
end
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
end
|
|
368
|
+
end
|
|
369
|
+
|