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,161 +1,161 @@
|
|
|
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/packet_item_limits'
|
|
14
|
-
|
|
15
|
-
module Cosmos
|
|
16
|
-
|
|
17
|
-
describe PacketItemLimits do
|
|
18
|
-
before(:each) do
|
|
19
|
-
@l = PacketItemLimits.new
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
describe "values=" do
|
|
23
|
-
it "should set the values Hash" do
|
|
24
|
-
@l.values = {:DEFAULT => [0,1,2,3,4,5]}
|
|
25
|
-
@l.values[:DEFAULT].should eql [0,1,2,3,4,5]
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "should allow nil values" do
|
|
29
|
-
@l.values = nil
|
|
30
|
-
@l.values.should be_nil
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should complain about non Hash values" do
|
|
34
|
-
expect { @l.values = [] }.to raise_error(ArgumentError, "values must be a Hash but is a Array")
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should complain about Hash values without a :DEFAULT key" do
|
|
38
|
-
expect { @l.values = {} }.to raise_error(ArgumentError, "values must be a Hash with a :DEFAULT key")
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
describe "state=" do
|
|
43
|
-
it "should set the state to a Symbol" do
|
|
44
|
-
PacketItemLimits::LIMITS_STATES.each do |state|
|
|
45
|
-
@l.state = state
|
|
46
|
-
@l.state.should eql state
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
it "should set the state to nil" do
|
|
51
|
-
@l.state = nil
|
|
52
|
-
@l.state.should be_nil
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should complain about bad Symbol states" do
|
|
56
|
-
expect { @l.state = :ORANGE }.to raise_error(ArgumentError, "state must be one of #{PacketItemLimits::LIMITS_STATES} but is ORANGE")
|
|
57
|
-
expect { @l.state = "RED" }.to raise_error(ArgumentError, "state must be one of #{PacketItemLimits::LIMITS_STATES} but is RED")
|
|
58
|
-
expect { @l.state = 5 }.to raise_error(ArgumentError, "state must be one of #{PacketItemLimits::LIMITS_STATES} but is 5")
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
describe "response=" do
|
|
63
|
-
it "should accept LimitsResponse instances" do
|
|
64
|
-
r = LimitsResponse.new()
|
|
65
|
-
@l.response = r
|
|
66
|
-
(LimitsResponse === @l.response).should be_truthy
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "should set the response to nil" do
|
|
70
|
-
@l.response = nil
|
|
71
|
-
@l.response.should be_nil
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should complain about non LimitsResponse responses" do
|
|
75
|
-
expect { @l.response = "HI" }.to raise_error(ArgumentError, "response must be a Cosmos::LimitsResponse but is a String")
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
describe "persistence_setting=" do
|
|
80
|
-
it "should accept persistence_setting as a Fixnum" do
|
|
81
|
-
persistence_setting = 1
|
|
82
|
-
@l.persistence_setting = persistence_setting
|
|
83
|
-
@l.persistence_setting.should eql persistence_setting
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it "should complain about persistence_setting = nil" do
|
|
87
|
-
expect { @l.persistence_setting = nil}.to raise_error(ArgumentError, "persistence_setting must be a Fixnum but is a NilClass")
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
it "should complain about persistence_setting that aren't Fixnum" do
|
|
91
|
-
expect { @l.persistence_setting = 5.5}.to raise_error(ArgumentError, "persistence_setting must be a Fixnum but is a Float")
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
describe "persistence_count=" do
|
|
96
|
-
it "should accept persistence_count as a String" do
|
|
97
|
-
persistence_count = 1
|
|
98
|
-
@l.persistence_count = persistence_count
|
|
99
|
-
@l.persistence_count.should eql persistence_count
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
it "should complain about persistence_count = nil" do
|
|
103
|
-
expect { @l.persistence_count = nil}.to raise_error(ArgumentError, "persistence_count must be a Fixnum but is a NilClass")
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
it "should complain about persistence_count that aren't Fixnum" do
|
|
107
|
-
expect { @l.persistence_count = 5.5}.to raise_error(ArgumentError, "persistence_count must be a Fixnum but is a Float")
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
describe "clone" do
|
|
112
|
-
it "should duplicate the entire Limits" do
|
|
113
|
-
l2 = @l.clone
|
|
114
|
-
@l.values.should eql l2.values
|
|
115
|
-
@l.response.should eql l2.response
|
|
116
|
-
@l.state.should eql l2.state
|
|
117
|
-
@l.persistence_count.should eql l2.persistence_count
|
|
118
|
-
@l.persistence_setting.should eql l2.persistence_setting
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
describe "to_hash" do
|
|
123
|
-
it "should create a Hash" do
|
|
124
|
-
@l.enabled = true
|
|
125
|
-
@l.values = {:DEFAULT => [0,1,2,3,4,5]}
|
|
126
|
-
@l.state = :RED_LOW
|
|
127
|
-
r = LimitsResponse.new()
|
|
128
|
-
@l.response = r
|
|
129
|
-
@l.persistence_setting = 1
|
|
130
|
-
@l.persistence_count = 2
|
|
131
|
-
|
|
132
|
-
hash = @l.to_hash
|
|
133
|
-
hash.keys.length.should eql 6
|
|
134
|
-
hash.keys.should include('values','enabled','state','response','persistence_setting','persistence_count')
|
|
135
|
-
hash["enabled"].should be_truthy
|
|
136
|
-
hash["values"].should include(:DEFAULT => [0,1,2,3,4,5])
|
|
137
|
-
hash["state"].should eql :RED_LOW
|
|
138
|
-
hash["response"].should match "LimitsResponse"
|
|
139
|
-
hash["persistence_setting"].should eql 1
|
|
140
|
-
hash["persistence_count"].should eql 2
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
it "should create a Hash without a response" do
|
|
144
|
-
@l.enabled = true
|
|
145
|
-
@l.values = {:DEFAULT => [0,1,2,3,4,5]}
|
|
146
|
-
@l.state = :RED_LOW
|
|
147
|
-
@l.persistence_setting = 1
|
|
148
|
-
@l.persistence_count = 2
|
|
149
|
-
|
|
150
|
-
hash = @l.to_hash
|
|
151
|
-
hash["enabled"].should be_truthy
|
|
152
|
-
hash["values"].should include(:DEFAULT => [0,1,2,3,4,5])
|
|
153
|
-
hash["state"].should eql :RED_LOW
|
|
154
|
-
hash["response"].should be_nil
|
|
155
|
-
hash["persistence_setting"].should eql 1
|
|
156
|
-
hash["persistence_count"].should eql 2
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
end
|
|
161
|
-
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/packets/packet_item_limits'
|
|
14
|
+
|
|
15
|
+
module Cosmos
|
|
16
|
+
|
|
17
|
+
describe PacketItemLimits do
|
|
18
|
+
before(:each) do
|
|
19
|
+
@l = PacketItemLimits.new
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "values=" do
|
|
23
|
+
it "should set the values Hash" do
|
|
24
|
+
@l.values = {:DEFAULT => [0,1,2,3,4,5]}
|
|
25
|
+
@l.values[:DEFAULT].should eql [0,1,2,3,4,5]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should allow nil values" do
|
|
29
|
+
@l.values = nil
|
|
30
|
+
@l.values.should be_nil
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should complain about non Hash values" do
|
|
34
|
+
expect { @l.values = [] }.to raise_error(ArgumentError, "values must be a Hash but is a Array")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should complain about Hash values without a :DEFAULT key" do
|
|
38
|
+
expect { @l.values = {} }.to raise_error(ArgumentError, "values must be a Hash with a :DEFAULT key")
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe "state=" do
|
|
43
|
+
it "should set the state to a Symbol" do
|
|
44
|
+
PacketItemLimits::LIMITS_STATES.each do |state|
|
|
45
|
+
@l.state = state
|
|
46
|
+
@l.state.should eql state
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should set the state to nil" do
|
|
51
|
+
@l.state = nil
|
|
52
|
+
@l.state.should be_nil
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should complain about bad Symbol states" do
|
|
56
|
+
expect { @l.state = :ORANGE }.to raise_error(ArgumentError, "state must be one of #{PacketItemLimits::LIMITS_STATES} but is ORANGE")
|
|
57
|
+
expect { @l.state = "RED" }.to raise_error(ArgumentError, "state must be one of #{PacketItemLimits::LIMITS_STATES} but is RED")
|
|
58
|
+
expect { @l.state = 5 }.to raise_error(ArgumentError, "state must be one of #{PacketItemLimits::LIMITS_STATES} but is 5")
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
describe "response=" do
|
|
63
|
+
it "should accept LimitsResponse instances" do
|
|
64
|
+
r = LimitsResponse.new()
|
|
65
|
+
@l.response = r
|
|
66
|
+
(LimitsResponse === @l.response).should be_truthy
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "should set the response to nil" do
|
|
70
|
+
@l.response = nil
|
|
71
|
+
@l.response.should be_nil
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "should complain about non LimitsResponse responses" do
|
|
75
|
+
expect { @l.response = "HI" }.to raise_error(ArgumentError, "response must be a Cosmos::LimitsResponse but is a String")
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
describe "persistence_setting=" do
|
|
80
|
+
it "should accept persistence_setting as a Fixnum" do
|
|
81
|
+
persistence_setting = 1
|
|
82
|
+
@l.persistence_setting = persistence_setting
|
|
83
|
+
@l.persistence_setting.should eql persistence_setting
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "should complain about persistence_setting = nil" do
|
|
87
|
+
expect { @l.persistence_setting = nil}.to raise_error(ArgumentError, "persistence_setting must be a Fixnum but is a NilClass")
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
it "should complain about persistence_setting that aren't Fixnum" do
|
|
91
|
+
expect { @l.persistence_setting = 5.5}.to raise_error(ArgumentError, "persistence_setting must be a Fixnum but is a Float")
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
describe "persistence_count=" do
|
|
96
|
+
it "should accept persistence_count as a String" do
|
|
97
|
+
persistence_count = 1
|
|
98
|
+
@l.persistence_count = persistence_count
|
|
99
|
+
@l.persistence_count.should eql persistence_count
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "should complain about persistence_count = nil" do
|
|
103
|
+
expect { @l.persistence_count = nil}.to raise_error(ArgumentError, "persistence_count must be a Fixnum but is a NilClass")
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it "should complain about persistence_count that aren't Fixnum" do
|
|
107
|
+
expect { @l.persistence_count = 5.5}.to raise_error(ArgumentError, "persistence_count must be a Fixnum but is a Float")
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
describe "clone" do
|
|
112
|
+
it "should duplicate the entire Limits" do
|
|
113
|
+
l2 = @l.clone
|
|
114
|
+
@l.values.should eql l2.values
|
|
115
|
+
@l.response.should eql l2.response
|
|
116
|
+
@l.state.should eql l2.state
|
|
117
|
+
@l.persistence_count.should eql l2.persistence_count
|
|
118
|
+
@l.persistence_setting.should eql l2.persistence_setting
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
describe "to_hash" do
|
|
123
|
+
it "should create a Hash" do
|
|
124
|
+
@l.enabled = true
|
|
125
|
+
@l.values = {:DEFAULT => [0,1,2,3,4,5]}
|
|
126
|
+
@l.state = :RED_LOW
|
|
127
|
+
r = LimitsResponse.new()
|
|
128
|
+
@l.response = r
|
|
129
|
+
@l.persistence_setting = 1
|
|
130
|
+
@l.persistence_count = 2
|
|
131
|
+
|
|
132
|
+
hash = @l.to_hash
|
|
133
|
+
hash.keys.length.should eql 6
|
|
134
|
+
hash.keys.should include('values','enabled','state','response','persistence_setting','persistence_count')
|
|
135
|
+
hash["enabled"].should be_truthy
|
|
136
|
+
hash["values"].should include(:DEFAULT => [0,1,2,3,4,5])
|
|
137
|
+
hash["state"].should eql :RED_LOW
|
|
138
|
+
hash["response"].should match "LimitsResponse"
|
|
139
|
+
hash["persistence_setting"].should eql 1
|
|
140
|
+
hash["persistence_count"].should eql 2
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
it "should create a Hash without a response" do
|
|
144
|
+
@l.enabled = true
|
|
145
|
+
@l.values = {:DEFAULT => [0,1,2,3,4,5]}
|
|
146
|
+
@l.state = :RED_LOW
|
|
147
|
+
@l.persistence_setting = 1
|
|
148
|
+
@l.persistence_count = 2
|
|
149
|
+
|
|
150
|
+
hash = @l.to_hash
|
|
151
|
+
hash["enabled"].should be_truthy
|
|
152
|
+
hash["values"].should include(:DEFAULT => [0,1,2,3,4,5])
|
|
153
|
+
hash["state"].should eql :RED_LOW
|
|
154
|
+
hash["response"].should be_nil
|
|
155
|
+
hash["persistence_setting"].should eql 1
|
|
156
|
+
hash["persistence_count"].should eql 2
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
end
|
|
161
|
+
end
|
|
@@ -1,386 +1,386 @@
|
|
|
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/packet_item'
|
|
14
|
-
require 'cosmos/conversions/generic_conversion'
|
|
15
|
-
|
|
16
|
-
module Cosmos
|
|
17
|
-
|
|
18
|
-
describe PacketItem do
|
|
19
|
-
before(:each) do
|
|
20
|
-
@pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
describe "format_string=" do
|
|
24
|
-
it "should set the format_string" do
|
|
25
|
-
@pi.format_string = "%5.1f"
|
|
26
|
-
@pi.format_string.should eql "%5.1f"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it "should set the format_string to nil" do
|
|
30
|
-
@pi.format_string = nil
|
|
31
|
-
@pi.format_string.should be_nil
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "should complain about non String format_strings" do
|
|
35
|
-
expect { @pi.format_string = 5 }.to raise_error(ArgumentError, "#{@pi.name}: format_string must be a String but is a Fixnum")
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it "should complain about badly formatted format_strings" do
|
|
39
|
-
expect { @pi.format_string = "%" }.to raise_error(ArgumentError, "#{@pi.name}: format_string invalid '%'")
|
|
40
|
-
expect { @pi.format_string = "5" }.to raise_error(ArgumentError, "#{@pi.name}: format_string invalid '5'")
|
|
41
|
-
expect { @pi.format_string = "%Q" }.to raise_error(ArgumentError, "#{@pi.name}: format_string invalid '%Q'")
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
describe "read_conversion=" do
|
|
46
|
-
it "should accept Conversion instances" do
|
|
47
|
-
c = GenericConversion.new("value / 2")
|
|
48
|
-
@pi.read_conversion = c
|
|
49
|
-
(@pi.read_conversion.to_s == c.to_s).should be_truthy
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it "should set the read_conversion to nil" do
|
|
53
|
-
@pi.read_conversion = nil
|
|
54
|
-
@pi.read_conversion.should be_nil
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "should complain about non Conversion read_conversions" do
|
|
58
|
-
expect { @pi.read_conversion = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: read_conversion must be a Cosmos::Conversion but is a String")
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
describe "write_conversion=" do
|
|
63
|
-
it "should accept Conversion instances" do
|
|
64
|
-
c = GenericConversion.new("value / 2")
|
|
65
|
-
@pi.write_conversion = c
|
|
66
|
-
(@pi.write_conversion.to_s == c.to_s).should be_truthy
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "should set the write_conversion to nil" do
|
|
70
|
-
@pi.write_conversion = nil
|
|
71
|
-
@pi.write_conversion.should be_nil
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should complain about non Conversion write_conversions" do
|
|
75
|
-
expect { @pi.write_conversion = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: write_conversion must be a Cosmos::Conversion but is a String")
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
describe "id_value=" do
|
|
80
|
-
it "should accept id values according to data_type" do
|
|
81
|
-
@pi.id_value = 10
|
|
82
|
-
@pi.id_value.should eql 10
|
|
83
|
-
@pi.data_type = :FLOAT
|
|
84
|
-
@pi.id_value = 10.0
|
|
85
|
-
@pi.id_value.should eql 10.0
|
|
86
|
-
@pi.data_type = :STRING
|
|
87
|
-
@pi.id_value = "HI"
|
|
88
|
-
@pi.id_value.should eql "HI"
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it "should set the id_value to nil" do
|
|
92
|
-
@pi.id_value = nil
|
|
93
|
-
@pi.id_value.should be_nil
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
it "should complain about id_values that don't match the data_type" do
|
|
97
|
-
expect { @pi.id_value = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: Invalid value: HI for data type: UINT")
|
|
98
|
-
@pi.data_type = :FLOAT
|
|
99
|
-
expect { @pi.id_value = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: Invalid value: HI for data type: FLOAT")
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
describe "states=" do
|
|
104
|
-
it "should accept states as a Hash" do
|
|
105
|
-
states = {"TRUE"=>1, "FALSE"=>0}
|
|
106
|
-
@pi.states = states
|
|
107
|
-
@pi.states.should eql states
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
it "should set the states to nil" do
|
|
111
|
-
@pi.states = nil
|
|
112
|
-
@pi.states.should be_nil
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
it "should complain about states that aren't Hashes" do
|
|
116
|
-
expect { @pi.states = "state" }.to raise_error(ArgumentError, "#{@pi.name}: states must be a Hash but is a String")
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
describe "description=" do
|
|
121
|
-
it "should accept description as a String" do
|
|
122
|
-
description = "this is it"
|
|
123
|
-
@pi.description = description
|
|
124
|
-
@pi.description.should eql description
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
it "should set the description to nil" do
|
|
128
|
-
@pi.description = nil
|
|
129
|
-
@pi.description.should be_nil
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
it "should complain about description that aren't Strings" do
|
|
133
|
-
expect { @pi.description = 5}.to raise_error(ArgumentError, "#{@pi.name}: description must be a String but is a Fixnum")
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
describe "units_full=" do
|
|
138
|
-
it "should accept units_full as a String" do
|
|
139
|
-
units_full = "Volts"
|
|
140
|
-
@pi.units_full = units_full
|
|
141
|
-
@pi.units_full.should eql units_full
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
it "should set the units_full to nil" do
|
|
145
|
-
@pi.units_full = nil
|
|
146
|
-
@pi.units_full.should be_nil
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
it "should complain about units_full that aren't Strings" do
|
|
150
|
-
expect { @pi.units_full = 5}.to raise_error(ArgumentError, "#{@pi.name}: units_full must be a String but is a Fixnum")
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
describe "units=" do
|
|
155
|
-
it "should accept units as a String" do
|
|
156
|
-
units = "V"
|
|
157
|
-
@pi.units = units
|
|
158
|
-
@pi.units.should eql units
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
it "should set the units to nil" do
|
|
162
|
-
@pi.units = nil
|
|
163
|
-
@pi.units.should be_nil
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
it "should complain about units that aren't Strings" do
|
|
167
|
-
expect { @pi.units = 5}.to raise_error(ArgumentError, "#{@pi.name}: units must be a String but is a Fixnum")
|
|
168
|
-
end
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
describe "default=" do
|
|
172
|
-
it "should accept default according to the data_type" do
|
|
173
|
-
pi = PacketItem.new("test", 0, 8, :INT, :BIG_ENDIAN, 16)
|
|
174
|
-
pi.default = [1, -1]
|
|
175
|
-
pi.default.should eql [1, -1]
|
|
176
|
-
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
177
|
-
pi.default = 0x01020304
|
|
178
|
-
pi.default.should eql 0x01020304
|
|
179
|
-
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
180
|
-
pi.default = 5.5
|
|
181
|
-
pi.default.should eql 5.5
|
|
182
|
-
pi = PacketItem.new("test", 0, 32, :STRING, :BIG_ENDIAN, nil)
|
|
183
|
-
pi.default = "HI"
|
|
184
|
-
pi.default.should eql "HI"
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
it "should set the default to nil" do
|
|
188
|
-
@pi.default = nil
|
|
189
|
-
@pi.default.should be_nil
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
describe "check_default_and_range_data_types" do
|
|
194
|
-
it "should complain about default not matching data_type" do
|
|
195
|
-
pi = PacketItem.new("test", 0, 8, :UINT, :BIG_ENDIAN, 16)
|
|
196
|
-
pi.default = 1
|
|
197
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be an Array but is a Fixnum")
|
|
198
|
-
pi = PacketItem.new("test", 0, 8, :UINT, :BIG_ENDIAN, 16)
|
|
199
|
-
pi.default = []
|
|
200
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
201
|
-
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
202
|
-
pi.default = 5.5
|
|
203
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a Integer but is a Float")
|
|
204
|
-
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
205
|
-
pi.default = 5
|
|
206
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
207
|
-
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
208
|
-
pi.default = "test"
|
|
209
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a Float but is a String")
|
|
210
|
-
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
211
|
-
pi.default = 5
|
|
212
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
213
|
-
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
214
|
-
pi.default = 5.5
|
|
215
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
216
|
-
pi = PacketItem.new("test", 0, 32, :STRING, :BIG_ENDIAN, nil)
|
|
217
|
-
pi.default = 5
|
|
218
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a String but is a Fixnum")
|
|
219
|
-
pi = PacketItem.new("test", 0, 32, :STRING, :BIG_ENDIAN, nil)
|
|
220
|
-
pi.default = ''
|
|
221
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
222
|
-
pi = PacketItem.new("test", 0, 32, :BLOCK, :BIG_ENDIAN, nil)
|
|
223
|
-
pi.default = 5.5
|
|
224
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a String but is a Float")
|
|
225
|
-
pi = PacketItem.new("test", 0, 32, :BLOCK, :BIG_ENDIAN, nil)
|
|
226
|
-
pi.default = ''
|
|
227
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
it "should complain about range not matching data_type" do
|
|
231
|
-
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
232
|
-
pi.default = 5
|
|
233
|
-
pi.range = (5.5..10)
|
|
234
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: minimum must be a Integer but is a Float")
|
|
235
|
-
pi.range = (5..10.5)
|
|
236
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: maximum must be a Integer but is a Float")
|
|
237
|
-
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
238
|
-
pi.default = 5.5
|
|
239
|
-
pi.range = (5..10)
|
|
240
|
-
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
241
|
-
pi.range = ('a'..'z')
|
|
242
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: minimum must be a Float but is a String")
|
|
243
|
-
pi.range = (1.0..Rational(2))
|
|
244
|
-
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: maximum must be a Float but is a Rational")
|
|
245
|
-
end
|
|
246
|
-
end
|
|
247
|
-
|
|
248
|
-
describe "range=" do
|
|
249
|
-
it "should accept range as a String" do
|
|
250
|
-
range = (0..1)
|
|
251
|
-
@pi.range = range
|
|
252
|
-
@pi.range.should eql range
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
it "should set the range to nil" do
|
|
256
|
-
@pi.range = nil
|
|
257
|
-
@pi.range.should be_nil
|
|
258
|
-
end
|
|
259
|
-
|
|
260
|
-
it "should complain about ranges that aren't Ranges" do
|
|
261
|
-
expect { @pi.range = 5}.to raise_error(ArgumentError, "#{@pi.name}: range must be a Range but is a Fixnum")
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
describe "hazardous=" do
|
|
266
|
-
it "should accept hazardous as a Hash" do
|
|
267
|
-
hazardous = {"TRUE"=>nil,"FALSE"=>"NO FALSE ALLOWED"}
|
|
268
|
-
@pi.hazardous = hazardous
|
|
269
|
-
@pi.hazardous.should eql hazardous
|
|
270
|
-
@pi.hazardous["TRUE"].should eql hazardous["TRUE"]
|
|
271
|
-
@pi.hazardous["FALSE"].should eql hazardous["FALSE"]
|
|
272
|
-
end
|
|
273
|
-
|
|
274
|
-
it "should set hazardous to nil" do
|
|
275
|
-
@pi.hazardous = nil
|
|
276
|
-
@pi.hazardous.should be_nil
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
it "should complain about hazardous that aren't Hashes" do
|
|
280
|
-
expect { @pi.hazardous = ""}.to raise_error(ArgumentError, "#{@pi.name}: hazardous must be a Hash but is a String")
|
|
281
|
-
end
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
describe "state_colors=" do
|
|
285
|
-
it "should accept state_colors as a Hash" do
|
|
286
|
-
state_colors = {"TRUE"=>:GREEN, "FALSE"=>:RED}
|
|
287
|
-
@pi.state_colors = state_colors
|
|
288
|
-
@pi.state_colors.should eql state_colors
|
|
289
|
-
end
|
|
290
|
-
|
|
291
|
-
it "should set the state_colors to nil" do
|
|
292
|
-
@pi.state_colors = nil
|
|
293
|
-
@pi.state_colors.should be_nil
|
|
294
|
-
end
|
|
295
|
-
|
|
296
|
-
it "should complain about state_colors that aren't Hashes" do
|
|
297
|
-
expect { @pi.state_colors = ""}.to raise_error(ArgumentError, "#{@pi.name}: state_colors must be a Hash but is a String")
|
|
298
|
-
end
|
|
299
|
-
end
|
|
300
|
-
|
|
301
|
-
describe "limits=" do
|
|
302
|
-
it "should accept limits as a PacketItemLimits" do
|
|
303
|
-
limits = PacketItemLimits.new
|
|
304
|
-
@pi.limits = limits
|
|
305
|
-
end
|
|
306
|
-
|
|
307
|
-
it "should set the limits to nil" do
|
|
308
|
-
@pi.limits = nil
|
|
309
|
-
@pi.limits.should be_nil
|
|
310
|
-
end
|
|
311
|
-
|
|
312
|
-
it "should complain about limits that aren't PacketItemLimits" do
|
|
313
|
-
expect { @pi.limits = ""}.to raise_error(ArgumentError, "#{@pi.name}: limits must be a PacketItemLimits but is a String")
|
|
314
|
-
end
|
|
315
|
-
end
|
|
316
|
-
|
|
317
|
-
describe "meta" do
|
|
318
|
-
it "should allow adding items to the meta hash" do
|
|
319
|
-
@pi.meta['TYPE'] = 'float32'
|
|
320
|
-
@pi.meta['TYPE'].should eql 'float32'
|
|
321
|
-
end
|
|
322
|
-
end
|
|
323
|
-
|
|
324
|
-
describe "clone" do
|
|
325
|
-
it "should duplicate the entire PacketItem" do
|
|
326
|
-
pi2 = @pi.clone
|
|
327
|
-
(@pi == pi2).should be_truthy
|
|
328
|
-
end
|
|
329
|
-
end
|
|
330
|
-
|
|
331
|
-
describe "to_hash" do
|
|
332
|
-
it "should convert to a Hash" do
|
|
333
|
-
@pi.format_string = "%5.1f"
|
|
334
|
-
@pi.id_value = 10
|
|
335
|
-
@pi.states = {"TRUE"=>1, "FALSE"=>0}
|
|
336
|
-
@pi.read_conversion = GenericConversion.new("value / 2")
|
|
337
|
-
@pi.write_conversion = GenericConversion.new("value * 2")
|
|
338
|
-
@pi.description = "description"
|
|
339
|
-
@pi.units_full = "Celcius"
|
|
340
|
-
@pi.units = "C"
|
|
341
|
-
@pi.default = 0
|
|
342
|
-
@pi.range = (0..100)
|
|
343
|
-
@pi.required = true
|
|
344
|
-
@pi.hazardous = {"TRUE"=>nil,"FALSE"=>"NO!"}
|
|
345
|
-
@pi.state_colors = {"TRUE"=>:GREEN, "FALSE"=>:RED}
|
|
346
|
-
@pi.limits = PacketItemLimits.new
|
|
347
|
-
|
|
348
|
-
hash = @pi.to_hash
|
|
349
|
-
hash.keys.length.should eql 22
|
|
350
|
-
# Check the values from StructureItem
|
|
351
|
-
hash.keys.should include('name','bit_offset','bit_size','data_type','endianness','array_size','overflow')
|
|
352
|
-
hash["name"].should eql "test"
|
|
353
|
-
hash["bit_offset"].should eql 0
|
|
354
|
-
hash["bit_size"].should eql 32
|
|
355
|
-
hash["data_type"].should eql :UINT
|
|
356
|
-
hash["endianness"].should eql :BIG_ENDIAN
|
|
357
|
-
hash["array_size"].should be_nil
|
|
358
|
-
hash["overflow"].should eql :ERROR
|
|
359
|
-
# Check the unique PacketItem values
|
|
360
|
-
hash.keys.should include('format_string','read_conversion','write_conversion','id_value','states','description','units_full','units','default','range','required','hazardous','state_colors','limits')
|
|
361
|
-
hash["format_string"].should eql "%5.1f"
|
|
362
|
-
hash["read_conversion"].should match "value / 2"
|
|
363
|
-
hash["write_conversion"].should match /value \* 2/
|
|
364
|
-
hash["id_value"].should eql 10
|
|
365
|
-
hash["states"].should include("TRUE"=>1,"FALSE"=>0)
|
|
366
|
-
hash["description"].should eql "description"
|
|
367
|
-
hash["units_full"].should eql "Celcius"
|
|
368
|
-
hash["units"].should eql "C"
|
|
369
|
-
hash["default"].should eql 0
|
|
370
|
-
hash["range"].should eql (0..100)
|
|
371
|
-
hash["required"].should be_truthy
|
|
372
|
-
hash["hazardous"].should include("TRUE"=>nil,"FALSE"=>"NO!")
|
|
373
|
-
hash["state_colors"].should include("TRUE"=>:GREEN,"FALSE"=>:RED)
|
|
374
|
-
hash["limits"].should eql PacketItemLimits.new.to_hash
|
|
375
|
-
hash["meta"].should be_nil
|
|
376
|
-
end
|
|
377
|
-
|
|
378
|
-
it "should convert to a Hash with no conversions" do
|
|
379
|
-
hash = @pi.to_hash
|
|
380
|
-
hash["read_conversion"].should be_nil
|
|
381
|
-
hash["write_conversion"].should be_nil
|
|
382
|
-
end
|
|
383
|
-
end
|
|
384
|
-
|
|
385
|
-
end
|
|
386
|
-
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/packets/packet_item'
|
|
14
|
+
require 'cosmos/conversions/generic_conversion'
|
|
15
|
+
|
|
16
|
+
module Cosmos
|
|
17
|
+
|
|
18
|
+
describe PacketItem do
|
|
19
|
+
before(:each) do
|
|
20
|
+
@pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe "format_string=" do
|
|
24
|
+
it "should set the format_string" do
|
|
25
|
+
@pi.format_string = "%5.1f"
|
|
26
|
+
@pi.format_string.should eql "%5.1f"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should set the format_string to nil" do
|
|
30
|
+
@pi.format_string = nil
|
|
31
|
+
@pi.format_string.should be_nil
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should complain about non String format_strings" do
|
|
35
|
+
expect { @pi.format_string = 5 }.to raise_error(ArgumentError, "#{@pi.name}: format_string must be a String but is a Fixnum")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should complain about badly formatted format_strings" do
|
|
39
|
+
expect { @pi.format_string = "%" }.to raise_error(ArgumentError, "#{@pi.name}: format_string invalid '%'")
|
|
40
|
+
expect { @pi.format_string = "5" }.to raise_error(ArgumentError, "#{@pi.name}: format_string invalid '5'")
|
|
41
|
+
expect { @pi.format_string = "%Q" }.to raise_error(ArgumentError, "#{@pi.name}: format_string invalid '%Q'")
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe "read_conversion=" do
|
|
46
|
+
it "should accept Conversion instances" do
|
|
47
|
+
c = GenericConversion.new("value / 2")
|
|
48
|
+
@pi.read_conversion = c
|
|
49
|
+
(@pi.read_conversion.to_s == c.to_s).should be_truthy
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should set the read_conversion to nil" do
|
|
53
|
+
@pi.read_conversion = nil
|
|
54
|
+
@pi.read_conversion.should be_nil
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should complain about non Conversion read_conversions" do
|
|
58
|
+
expect { @pi.read_conversion = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: read_conversion must be a Cosmos::Conversion but is a String")
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
describe "write_conversion=" do
|
|
63
|
+
it "should accept Conversion instances" do
|
|
64
|
+
c = GenericConversion.new("value / 2")
|
|
65
|
+
@pi.write_conversion = c
|
|
66
|
+
(@pi.write_conversion.to_s == c.to_s).should be_truthy
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "should set the write_conversion to nil" do
|
|
70
|
+
@pi.write_conversion = nil
|
|
71
|
+
@pi.write_conversion.should be_nil
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "should complain about non Conversion write_conversions" do
|
|
75
|
+
expect { @pi.write_conversion = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: write_conversion must be a Cosmos::Conversion but is a String")
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
describe "id_value=" do
|
|
80
|
+
it "should accept id values according to data_type" do
|
|
81
|
+
@pi.id_value = 10
|
|
82
|
+
@pi.id_value.should eql 10
|
|
83
|
+
@pi.data_type = :FLOAT
|
|
84
|
+
@pi.id_value = 10.0
|
|
85
|
+
@pi.id_value.should eql 10.0
|
|
86
|
+
@pi.data_type = :STRING
|
|
87
|
+
@pi.id_value = "HI"
|
|
88
|
+
@pi.id_value.should eql "HI"
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it "should set the id_value to nil" do
|
|
92
|
+
@pi.id_value = nil
|
|
93
|
+
@pi.id_value.should be_nil
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it "should complain about id_values that don't match the data_type" do
|
|
97
|
+
expect { @pi.id_value = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: Invalid value: HI for data type: UINT")
|
|
98
|
+
@pi.data_type = :FLOAT
|
|
99
|
+
expect { @pi.id_value = "HI" }.to raise_error(ArgumentError, "#{@pi.name}: Invalid value: HI for data type: FLOAT")
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
describe "states=" do
|
|
104
|
+
it "should accept states as a Hash" do
|
|
105
|
+
states = {"TRUE"=>1, "FALSE"=>0}
|
|
106
|
+
@pi.states = states
|
|
107
|
+
@pi.states.should eql states
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it "should set the states to nil" do
|
|
111
|
+
@pi.states = nil
|
|
112
|
+
@pi.states.should be_nil
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
it "should complain about states that aren't Hashes" do
|
|
116
|
+
expect { @pi.states = "state" }.to raise_error(ArgumentError, "#{@pi.name}: states must be a Hash but is a String")
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
describe "description=" do
|
|
121
|
+
it "should accept description as a String" do
|
|
122
|
+
description = "this is it"
|
|
123
|
+
@pi.description = description
|
|
124
|
+
@pi.description.should eql description
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it "should set the description to nil" do
|
|
128
|
+
@pi.description = nil
|
|
129
|
+
@pi.description.should be_nil
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
it "should complain about description that aren't Strings" do
|
|
133
|
+
expect { @pi.description = 5}.to raise_error(ArgumentError, "#{@pi.name}: description must be a String but is a Fixnum")
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
describe "units_full=" do
|
|
138
|
+
it "should accept units_full as a String" do
|
|
139
|
+
units_full = "Volts"
|
|
140
|
+
@pi.units_full = units_full
|
|
141
|
+
@pi.units_full.should eql units_full
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it "should set the units_full to nil" do
|
|
145
|
+
@pi.units_full = nil
|
|
146
|
+
@pi.units_full.should be_nil
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
it "should complain about units_full that aren't Strings" do
|
|
150
|
+
expect { @pi.units_full = 5}.to raise_error(ArgumentError, "#{@pi.name}: units_full must be a String but is a Fixnum")
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
describe "units=" do
|
|
155
|
+
it "should accept units as a String" do
|
|
156
|
+
units = "V"
|
|
157
|
+
@pi.units = units
|
|
158
|
+
@pi.units.should eql units
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
it "should set the units to nil" do
|
|
162
|
+
@pi.units = nil
|
|
163
|
+
@pi.units.should be_nil
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
it "should complain about units that aren't Strings" do
|
|
167
|
+
expect { @pi.units = 5}.to raise_error(ArgumentError, "#{@pi.name}: units must be a String but is a Fixnum")
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
describe "default=" do
|
|
172
|
+
it "should accept default according to the data_type" do
|
|
173
|
+
pi = PacketItem.new("test", 0, 8, :INT, :BIG_ENDIAN, 16)
|
|
174
|
+
pi.default = [1, -1]
|
|
175
|
+
pi.default.should eql [1, -1]
|
|
176
|
+
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
177
|
+
pi.default = 0x01020304
|
|
178
|
+
pi.default.should eql 0x01020304
|
|
179
|
+
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
180
|
+
pi.default = 5.5
|
|
181
|
+
pi.default.should eql 5.5
|
|
182
|
+
pi = PacketItem.new("test", 0, 32, :STRING, :BIG_ENDIAN, nil)
|
|
183
|
+
pi.default = "HI"
|
|
184
|
+
pi.default.should eql "HI"
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
it "should set the default to nil" do
|
|
188
|
+
@pi.default = nil
|
|
189
|
+
@pi.default.should be_nil
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
describe "check_default_and_range_data_types" do
|
|
194
|
+
it "should complain about default not matching data_type" do
|
|
195
|
+
pi = PacketItem.new("test", 0, 8, :UINT, :BIG_ENDIAN, 16)
|
|
196
|
+
pi.default = 1
|
|
197
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be an Array but is a Fixnum")
|
|
198
|
+
pi = PacketItem.new("test", 0, 8, :UINT, :BIG_ENDIAN, 16)
|
|
199
|
+
pi.default = []
|
|
200
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
201
|
+
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
202
|
+
pi.default = 5.5
|
|
203
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a Integer but is a Float")
|
|
204
|
+
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
205
|
+
pi.default = 5
|
|
206
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
207
|
+
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
208
|
+
pi.default = "test"
|
|
209
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a Float but is a String")
|
|
210
|
+
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
211
|
+
pi.default = 5
|
|
212
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
213
|
+
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
214
|
+
pi.default = 5.5
|
|
215
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
216
|
+
pi = PacketItem.new("test", 0, 32, :STRING, :BIG_ENDIAN, nil)
|
|
217
|
+
pi.default = 5
|
|
218
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a String but is a Fixnum")
|
|
219
|
+
pi = PacketItem.new("test", 0, 32, :STRING, :BIG_ENDIAN, nil)
|
|
220
|
+
pi.default = ''
|
|
221
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
222
|
+
pi = PacketItem.new("test", 0, 32, :BLOCK, :BIG_ENDIAN, nil)
|
|
223
|
+
pi.default = 5.5
|
|
224
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: default must be a String but is a Float")
|
|
225
|
+
pi = PacketItem.new("test", 0, 32, :BLOCK, :BIG_ENDIAN, nil)
|
|
226
|
+
pi.default = ''
|
|
227
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
it "should complain about range not matching data_type" do
|
|
231
|
+
pi = PacketItem.new("test", 0, 32, :UINT, :BIG_ENDIAN, nil)
|
|
232
|
+
pi.default = 5
|
|
233
|
+
pi.range = (5.5..10)
|
|
234
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: minimum must be a Integer but is a Float")
|
|
235
|
+
pi.range = (5..10.5)
|
|
236
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: maximum must be a Integer but is a Float")
|
|
237
|
+
pi = PacketItem.new("test", 0, 32, :FLOAT, :BIG_ENDIAN, nil)
|
|
238
|
+
pi.default = 5.5
|
|
239
|
+
pi.range = (5..10)
|
|
240
|
+
expect { pi.check_default_and_range_data_types }.to_not raise_error
|
|
241
|
+
pi.range = ('a'..'z')
|
|
242
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: minimum must be a Float but is a String")
|
|
243
|
+
pi.range = (1.0..Rational(2))
|
|
244
|
+
expect { pi.check_default_and_range_data_types }.to raise_error(ArgumentError, "test: maximum must be a Float but is a Rational")
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
describe "range=" do
|
|
249
|
+
it "should accept range as a String" do
|
|
250
|
+
range = (0..1)
|
|
251
|
+
@pi.range = range
|
|
252
|
+
@pi.range.should eql range
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
it "should set the range to nil" do
|
|
256
|
+
@pi.range = nil
|
|
257
|
+
@pi.range.should be_nil
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
it "should complain about ranges that aren't Ranges" do
|
|
261
|
+
expect { @pi.range = 5}.to raise_error(ArgumentError, "#{@pi.name}: range must be a Range but is a Fixnum")
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
describe "hazardous=" do
|
|
266
|
+
it "should accept hazardous as a Hash" do
|
|
267
|
+
hazardous = {"TRUE"=>nil,"FALSE"=>"NO FALSE ALLOWED"}
|
|
268
|
+
@pi.hazardous = hazardous
|
|
269
|
+
@pi.hazardous.should eql hazardous
|
|
270
|
+
@pi.hazardous["TRUE"].should eql hazardous["TRUE"]
|
|
271
|
+
@pi.hazardous["FALSE"].should eql hazardous["FALSE"]
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
it "should set hazardous to nil" do
|
|
275
|
+
@pi.hazardous = nil
|
|
276
|
+
@pi.hazardous.should be_nil
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
it "should complain about hazardous that aren't Hashes" do
|
|
280
|
+
expect { @pi.hazardous = ""}.to raise_error(ArgumentError, "#{@pi.name}: hazardous must be a Hash but is a String")
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
describe "state_colors=" do
|
|
285
|
+
it "should accept state_colors as a Hash" do
|
|
286
|
+
state_colors = {"TRUE"=>:GREEN, "FALSE"=>:RED}
|
|
287
|
+
@pi.state_colors = state_colors
|
|
288
|
+
@pi.state_colors.should eql state_colors
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
it "should set the state_colors to nil" do
|
|
292
|
+
@pi.state_colors = nil
|
|
293
|
+
@pi.state_colors.should be_nil
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
it "should complain about state_colors that aren't Hashes" do
|
|
297
|
+
expect { @pi.state_colors = ""}.to raise_error(ArgumentError, "#{@pi.name}: state_colors must be a Hash but is a String")
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
describe "limits=" do
|
|
302
|
+
it "should accept limits as a PacketItemLimits" do
|
|
303
|
+
limits = PacketItemLimits.new
|
|
304
|
+
@pi.limits = limits
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
it "should set the limits to nil" do
|
|
308
|
+
@pi.limits = nil
|
|
309
|
+
@pi.limits.should be_nil
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
it "should complain about limits that aren't PacketItemLimits" do
|
|
313
|
+
expect { @pi.limits = ""}.to raise_error(ArgumentError, "#{@pi.name}: limits must be a PacketItemLimits but is a String")
|
|
314
|
+
end
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
describe "meta" do
|
|
318
|
+
it "should allow adding items to the meta hash" do
|
|
319
|
+
@pi.meta['TYPE'] = 'float32'
|
|
320
|
+
@pi.meta['TYPE'].should eql 'float32'
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
describe "clone" do
|
|
325
|
+
it "should duplicate the entire PacketItem" do
|
|
326
|
+
pi2 = @pi.clone
|
|
327
|
+
(@pi == pi2).should be_truthy
|
|
328
|
+
end
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
describe "to_hash" do
|
|
332
|
+
it "should convert to a Hash" do
|
|
333
|
+
@pi.format_string = "%5.1f"
|
|
334
|
+
@pi.id_value = 10
|
|
335
|
+
@pi.states = {"TRUE"=>1, "FALSE"=>0}
|
|
336
|
+
@pi.read_conversion = GenericConversion.new("value / 2")
|
|
337
|
+
@pi.write_conversion = GenericConversion.new("value * 2")
|
|
338
|
+
@pi.description = "description"
|
|
339
|
+
@pi.units_full = "Celcius"
|
|
340
|
+
@pi.units = "C"
|
|
341
|
+
@pi.default = 0
|
|
342
|
+
@pi.range = (0..100)
|
|
343
|
+
@pi.required = true
|
|
344
|
+
@pi.hazardous = {"TRUE"=>nil,"FALSE"=>"NO!"}
|
|
345
|
+
@pi.state_colors = {"TRUE"=>:GREEN, "FALSE"=>:RED}
|
|
346
|
+
@pi.limits = PacketItemLimits.new
|
|
347
|
+
|
|
348
|
+
hash = @pi.to_hash
|
|
349
|
+
hash.keys.length.should eql 22
|
|
350
|
+
# Check the values from StructureItem
|
|
351
|
+
hash.keys.should include('name','bit_offset','bit_size','data_type','endianness','array_size','overflow')
|
|
352
|
+
hash["name"].should eql "test"
|
|
353
|
+
hash["bit_offset"].should eql 0
|
|
354
|
+
hash["bit_size"].should eql 32
|
|
355
|
+
hash["data_type"].should eql :UINT
|
|
356
|
+
hash["endianness"].should eql :BIG_ENDIAN
|
|
357
|
+
hash["array_size"].should be_nil
|
|
358
|
+
hash["overflow"].should eql :ERROR
|
|
359
|
+
# Check the unique PacketItem values
|
|
360
|
+
hash.keys.should include('format_string','read_conversion','write_conversion','id_value','states','description','units_full','units','default','range','required','hazardous','state_colors','limits')
|
|
361
|
+
hash["format_string"].should eql "%5.1f"
|
|
362
|
+
hash["read_conversion"].should match "value / 2"
|
|
363
|
+
hash["write_conversion"].should match /value \* 2/
|
|
364
|
+
hash["id_value"].should eql 10
|
|
365
|
+
hash["states"].should include("TRUE"=>1,"FALSE"=>0)
|
|
366
|
+
hash["description"].should eql "description"
|
|
367
|
+
hash["units_full"].should eql "Celcius"
|
|
368
|
+
hash["units"].should eql "C"
|
|
369
|
+
hash["default"].should eql 0
|
|
370
|
+
hash["range"].should eql (0..100)
|
|
371
|
+
hash["required"].should be_truthy
|
|
372
|
+
hash["hazardous"].should include("TRUE"=>nil,"FALSE"=>"NO!")
|
|
373
|
+
hash["state_colors"].should include("TRUE"=>:GREEN,"FALSE"=>:RED)
|
|
374
|
+
hash["limits"].should eql PacketItemLimits.new.to_hash
|
|
375
|
+
hash["meta"].should be_nil
|
|
376
|
+
end
|
|
377
|
+
|
|
378
|
+
it "should convert to a Hash with no conversions" do
|
|
379
|
+
hash = @pi.to_hash
|
|
380
|
+
hash["read_conversion"].should be_nil
|
|
381
|
+
hash["write_conversion"].should be_nil
|
|
382
|
+
end
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
end
|
|
386
|
+
end
|