cosmos 4.0.3-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitattributes +3 -0
- data/.gitignore +48 -0
- data/.rubocop.yml +23 -0
- data/.travis.yml +10 -0
- data/.yardopts +3 -0
- data/CONTRIBUTING.txt +50 -0
- data/Gemfile +10 -0
- data/Guardfile +27 -0
- data/LICENSE.txt +879 -0
- data/Manifest.txt +1549 -0
- data/README.md +111 -0
- data/Rakefile +264 -0
- data/autohotkey/config/data/attitude.bin +0 -0
- data/autohotkey/config/data/diamond.STL +58 -0
- data/autohotkey/config/data/groundoff.gif +0 -0
- data/autohotkey/config/data/groundon.gif +0 -0
- data/autohotkey/config/data/position.bin +0 -0
- data/autohotkey/config/data/satellite.gif +0 -0
- data/autohotkey/config/data/tada.wav +0 -0
- data/autohotkey/config/system/system.txt +29 -0
- data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +126 -0
- data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +270 -0
- data/autohotkey/config/targets/INST/cmd_tlm_server.txt +5 -0
- data/autohotkey/config/targets/INST/doc/README.txt +1 -0
- data/autohotkey/config/targets/INST/lib/example_limits_response.rb +30 -0
- data/autohotkey/config/targets/INST/lib/sim_inst.rb +305 -0
- data/autohotkey/config/targets/INST/screens/_footer.txt +4 -0
- data/autohotkey/config/targets/INST/screens/adcs.txt +46 -0
- data/autohotkey/config/targets/INST/screens/array.txt +7 -0
- data/autohotkey/config/targets/INST/screens/block.txt +8 -0
- data/autohotkey/config/targets/INST/screens/commanding.txt +30 -0
- data/autohotkey/config/targets/INST/screens/extra.txt +19 -0
- data/autohotkey/config/targets/INST/screens/graphs.txt +14 -0
- data/autohotkey/config/targets/INST/screens/ground.txt +25 -0
- data/autohotkey/config/targets/INST/screens/health_status.txt +33 -0
- data/autohotkey/config/targets/INST/screens/hs.txt +46 -0
- data/autohotkey/config/targets/INST/screens/image.txt +21 -0
- data/autohotkey/config/targets/INST/screens/latest.txt +23 -0
- data/autohotkey/config/targets/INST/screens/mech.txt +25 -0
- data/autohotkey/config/targets/INST/screens/other.txt +25 -0
- data/autohotkey/config/targets/INST/screens/params.txt +25 -0
- data/autohotkey/config/targets/INST/screens/tabs.txt +68 -0
- data/autohotkey/config/targets/INST/sequences/run_sequence.txt +1 -0
- data/autohotkey/config/targets/INST/target.txt +27 -0
- data/autohotkey/config/targets/META/cmd_tlm/meta_cmd.txt +10 -0
- data/autohotkey/config/targets/META/cmd_tlm/meta_tlm.txt +9 -0
- data/autohotkey/config/targets/META/screens/data.txt +12 -0
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -0
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +16 -0
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/system_cmds.txt +41 -0
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
- data/autohotkey/config/targets/SYSTEM/screens/error.txt +11 -0
- data/autohotkey/config/targets/SYSTEM/screens/limits_change.txt +14 -0
- data/autohotkey/config/targets/SYSTEM/screens/meta.txt +14 -0
- data/autohotkey/config/targets/SYSTEM/target.txt +12 -0
- data/autohotkey/config/tools/cmd_sender/cmd_sender.txt +1 -0
- data/autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt +22 -0
- data/autohotkey/config/tools/data_viewer/data_viewer.txt +11 -0
- data/autohotkey/config/tools/handbook_creator/default_toc.xsl +59 -0
- data/autohotkey/config/tools/handbook_creator/handbook_creator.txt +49 -0
- data/autohotkey/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
- data/autohotkey/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
- data/autohotkey/config/tools/handbook_creator/templates/footer.html.erb +9 -0
- data/autohotkey/config/tools/handbook_creator/templates/header.html.erb +25 -0
- data/autohotkey/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
- data/autohotkey/config/tools/handbook_creator/templates/nav.html.erb +27 -0
- data/autohotkey/config/tools/handbook_creator/templates/overview.html.erb +1 -0
- data/autohotkey/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
- data/autohotkey/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
- data/autohotkey/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
- data/autohotkey/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
- data/autohotkey/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
- data/autohotkey/config/tools/handbook_creator/templates/title.html.erb +1 -0
- data/autohotkey/config/tools/launcher/launcher.txt +38 -0
- data/autohotkey/config/tools/limits_monitor/README.txt +1 -0
- data/autohotkey/config/tools/opengl_builder/error.txt +1 -0
- data/autohotkey/config/tools/script_runner/script_runner.txt +3 -0
- data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +8 -0
- data/autohotkey/config/tools/table_manager/OldOneDimensionalTable_def.txt +19 -0
- data/autohotkey/config/tools/table_manager/OldTwoDimensionalTable_def.txt +248 -0
- data/autohotkey/config/tools/table_manager/OneDimensionalTable_def.txt +31 -0
- data/autohotkey/config/tools/table_manager/TwoDimensionalTable_def.txt +28 -0
- data/autohotkey/config/tools/test_runner/test_runner.txt +8 -0
- data/autohotkey/config/tools/test_runner/test_runner2.txt +11 -0
- data/autohotkey/config/tools/test_runner/test_runner3.txt +7 -0
- data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -0
- data/autohotkey/config/tools/tlm_extractor/tlm_extractor.txt +14 -0
- data/autohotkey/config/tools/tlm_extractor/tlm_extractor2.txt +9 -0
- data/autohotkey/config/tools/tlm_grapher/README.txt +1 -0
- data/autohotkey/config/tools/tlm_grapher/bad.txt +50 -0
- data/autohotkey/config/tools/tlm_grapher/temp1-4.txt +51 -0
- data/autohotkey/config/tools/tlm_grapher/test2.txt +111 -0
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer.txt +24 -0
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer2.txt +4 -0
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer3.txt +3 -0
- data/autohotkey/lib/example_background_task.rb +42 -0
- data/autohotkey/lib/user_version.rb +3 -0
- data/autohotkey/procedures/clear_util.rb +7 -0
- data/autohotkey/procedures/collect.rb +18 -0
- data/autohotkey/procedures/collect_util.rb +14 -0
- data/autohotkey/procedures/example_test.rb +71 -0
- data/autohotkey/procedures/example_test2.rb +74 -0
- data/autohotkey/procedures/script_test.rb +21 -0
- data/autohotkey/procedures/syntax_error.rb +18 -0
- data/autohotkey/tools/CmdExtractorAHK +16 -0
- data/autohotkey/tools/CmdSender +14 -0
- data/autohotkey/tools/CmdSenderAHK +18 -0
- data/autohotkey/tools/CmdSequence +14 -0
- data/autohotkey/tools/CmdSequenceAHK +23 -0
- data/autohotkey/tools/CmdSequenceAHK2 +16 -0
- data/autohotkey/tools/CmdTlmServer +14 -0
- data/autohotkey/tools/CmdTlmServerAHK +28 -0
- data/autohotkey/tools/CmdTlmServerAHK2 +17 -0
- data/autohotkey/tools/ConfigEditor +16 -0
- data/autohotkey/tools/DataViewer +14 -0
- data/autohotkey/tools/DataViewerAHK +17 -0
- data/autohotkey/tools/HandbookCreatorAHK +20 -0
- data/autohotkey/tools/LauncherAHK +17 -0
- data/autohotkey/tools/LimitsMonitorAHK +20 -0
- data/autohotkey/tools/OpenGLBuilderAHK +24 -0
- data/autohotkey/tools/PacketViewer +14 -0
- data/autohotkey/tools/PacketViewerAHK +18 -0
- data/autohotkey/tools/PacketViewerAHK2 +17 -0
- data/autohotkey/tools/Replay +14 -0
- data/autohotkey/tools/ReplayAHK +17 -0
- data/autohotkey/tools/ScriptRunner +14 -0
- data/autohotkey/tools/ScriptRunnerAHK +20 -0
- data/autohotkey/tools/ScriptRunnerAHK2 +17 -0
- data/autohotkey/tools/TableManager +14 -0
- data/autohotkey/tools/TableManagerAHK +25 -0
- data/autohotkey/tools/TableManagerAHK2 +18 -0
- data/autohotkey/tools/TableManagerAHK3 +18 -0
- data/autohotkey/tools/TableManagerAHK4 +24 -0
- data/autohotkey/tools/TestRunner +15 -0
- data/autohotkey/tools/TestRunnerAHK +17 -0
- data/autohotkey/tools/TestRunnerAHK2 +17 -0
- data/autohotkey/tools/TestRunnerAHK3 +17 -0
- data/autohotkey/tools/TestRunnerAHK4 +17 -0
- data/autohotkey/tools/TestRunnerAHK5 +17 -0
- data/autohotkey/tools/TestRunnerAHK6 +17 -0
- data/autohotkey/tools/TlmExtractor +15 -0
- data/autohotkey/tools/TlmExtractorAHK +19 -0
- data/autohotkey/tools/TlmExtractorAHK2 +16 -0
- data/autohotkey/tools/TlmExtractorAHK3 +16 -0
- data/autohotkey/tools/TlmGrapher +14 -0
- data/autohotkey/tools/TlmGrapherAHK +19 -0
- data/autohotkey/tools/TlmGrapherAHK2 +23 -0
- data/autohotkey/tools/TlmGrapherAHK3 +17 -0
- data/autohotkey/tools/TlmGrapherAHK4 +17 -0
- data/autohotkey/tools/TlmViewer +14 -0
- data/autohotkey/tools/TlmViewerAHK +28 -0
- data/autohotkey/tools/TlmViewerAHK2 +22 -0
- data/autohotkey/tools/TlmViewerAHK3 +23 -0
- data/autohotkey/tools/TlmViewerAHK4 +22 -0
- data/autohotkey/tools/TlmViewerAHK5 +18 -0
- data/autohotkey/tools/autohotkey.rb +38 -0
- data/autohotkey/tools/cmd_extractor.ahk +50 -0
- data/autohotkey/tools/cmd_sender.ahk +180 -0
- data/autohotkey/tools/cmd_sequence.ahk +215 -0
- data/autohotkey/tools/cmd_sequence2.ahk +23 -0
- data/autohotkey/tools/cmd_tlm_server.ahk +90 -0
- data/autohotkey/tools/cmd_tlm_server2.ahk +45 -0
- data/autohotkey/tools/data_viewer.ahk +140 -0
- data/autohotkey/tools/handbook_creator.ahk +32 -0
- data/autohotkey/tools/launcher.ahk +41 -0
- data/autohotkey/tools/limits_monitor.ahk +121 -0
- data/autohotkey/tools/open_gl_builder.ahk +133 -0
- data/autohotkey/tools/packet_viewer.ahk +217 -0
- data/autohotkey/tools/packet_viewer2.ahk +9 -0
- data/autohotkey/tools/replay.ahk +103 -0
- data/autohotkey/tools/script_runner.ahk +588 -0
- data/autohotkey/tools/script_runner2.ahk +50 -0
- data/autohotkey/tools/table_manager.ahk +291 -0
- data/autohotkey/tools/test_runner.ahk +262 -0
- data/autohotkey/tools/test_runner2.ahk +49 -0
- data/autohotkey/tools/test_runner3.ahk +11 -0
- data/autohotkey/tools/test_runner5.ahk +8 -0
- data/autohotkey/tools/test_runner6.ahk +5 -0
- data/autohotkey/tools/tlm_extractor.ahk +357 -0
- data/autohotkey/tools/tlm_grapher.ahk +658 -0
- data/autohotkey/tools/tlm_grapher2.ahk +115 -0
- data/autohotkey/tools/tlm_grapher3.ahk +23 -0
- data/autohotkey/tools/tlm_viewer.ahk +140 -0
- data/autohotkey/tools/tlm_viewer2.ahk +49 -0
- data/autohotkey/tools/tlm_viewer4.ahk +4 -0
- data/autohotkey/tools/tlm_viewer5.ahk +19 -0
- data/autohotkey/tools/tool_launch.rb +38 -0
- data/bin/cosmos +266 -0
- data/bin/cstol_converter +1166 -0
- data/bin/exchndl20-x64.dll +0 -0
- data/bin/exchndl20.dll +0 -0
- data/bin/exchndl21-x64.dll +0 -0
- data/bin/exchndl21.dll +0 -0
- data/bin/exchndl22-x64.dll +0 -0
- data/bin/exchndl22.dll +0 -0
- data/bin/mgwhelp-x64.dll +0 -0
- data/bin/mgwhelp.dll +0 -0
- data/bin/rubysloc +85 -0
- data/bin/xtce_converter +83 -0
- data/cosmos.gemspec +109 -0
- data/data/COSMOS_64x64.bmp +0 -0
- data/data/COSMOS_64x64.ico +0 -0
- data/data/COSMOS_64x64.png +0 -0
- data/data/COSMOS_Architecture.png +0 -0
- data/data/CheckBoxCheck.gif +0 -0
- data/data/CheckBoxEmpty.gif +0 -0
- data/data/Earthmap1024x512.gif +0 -0
- data/data/about.txt +4 -0
- data/data/add_database.png +0 -0
- data/data/add_plot.png +0 -0
- data/data/add_tab.png +0 -0
- data/data/blank.png +0 -0
- data/data/bug.png +0 -0
- data/data/checkmark.png +0 -0
- data/data/close.png +0 -0
- data/data/cmd_extractor.png +0 -0
- data/data/cmd_sender.png +0 -0
- data/data/cmd_sequence.png +0 -0
- data/data/config/_array_params.yaml +23 -0
- data/data/config/_id_items.yaml +24 -0
- data/data/config/_id_params.yaml +58 -0
- data/data/config/_interfaces.yaml +206 -0
- data/data/config/_items.yaml +20 -0
- data/data/config/_params.yaml +58 -0
- data/data/config/cmd_tlm_server.yaml +124 -0
- data/data/config/command.yaml +40 -0
- data/data/config/command_modifiers.yaml +145 -0
- data/data/config/command_telemetry.yaml +3 -0
- data/data/config/data_viewer.yaml +43 -0
- data/data/config/handbook_creator.yaml +23 -0
- data/data/config/housekeeping_params.yaml +71 -0
- data/data/config/interface_modifiers.yaml +44 -0
- data/data/config/item_modifiers.yaml +211 -0
- data/data/config/launcher.yaml +117 -0
- data/data/config/limits_monitor.yaml +53 -0
- data/data/config/linegraph_params.yaml +30 -0
- data/data/config/linegraph_plot.yaml +106 -0
- data/data/config/page_modifiers.yaml +128 -0
- data/data/config/param_item_modifiers.yaml +46 -0
- data/data/config/parameter_modifiers.yaml +180 -0
- data/data/config/protocols.yaml +273 -0
- data/data/config/screen.yaml +151 -0
- data/data/config/script_runner.yaml +15 -0
- data/data/config/system.yaml +247 -0
- data/data/config/table_manager.yaml +76 -0
- data/data/config/table_parameter_modifiers.yaml +9 -0
- data/data/config/target.yaml +80 -0
- data/data/config/telemetry.yaml +80 -0
- data/data/config/telemetry_modifiers.yaml +142 -0
- data/data/config/test_runner.yaml +118 -0
- data/data/config/tlm_extractor.yaml +109 -0
- data/data/config/tlm_grapher.yaml +78 -0
- data/data/config/tlm_viewer.yaml +112 -0
- data/data/config/unknown.yaml +3 -0
- data/data/config/widgets.yaml +1339 -0
- data/data/config/xy_params.yaml +50 -0
- data/data/config/xy_plot.yaml +12 -0
- data/data/config_editor.png +0 -0
- data/data/copy.png +0 -0
- data/data/cosmos.xcf +0 -0
- data/data/cosmos_word.gif +0 -0
- data/data/crc.txt +351 -0
- data/data/critical.wav +0 -0
- data/data/cts.png +0 -0
- data/data/cut.png +0 -0
- data/data/data_viewer.png +0 -0
- data/data/delete.png +0 -0
- data/data/delete_database.png +0 -0
- data/data/delete_plot.png +0 -0
- data/data/delete_tab.png +0 -0
- data/data/diamond.STL +58 -0
- data/data/disconnected.png +0 -0
- data/data/edit.png +0 -0
- data/data/edit_database.png +0 -0
- data/data/edit_plot.png +0 -0
- data/data/edit_tab.png +0 -0
- data/data/end-26.png +0 -0
- data/data/fast_forward-26.png +0 -0
- data/data/file.png +0 -0
- data/data/handbook_creator.png +0 -0
- data/data/help.png +0 -0
- data/data/html-32.png +0 -0
- data/data/information.wav +0 -0
- data/data/input.wav +0 -0
- data/data/launcher.png +0 -0
- data/data/legal.gif +0 -0
- data/data/legal.txt +8 -0
- data/data/limits_monitor.png +0 -0
- data/data/message.wav +0 -0
- data/data/moonmap1k.gif +0 -0
- data/data/multi.png +0 -0
- data/data/open.png +0 -0
- data/data/open_in_browser-32.png +0 -0
- data/data/opengl_builder.png +0 -0
- data/data/packet_viewer.png +0 -0
- data/data/pdf-32.png +0 -0
- data/data/play-26.png +0 -0
- data/data/question.wav +0 -0
- data/data/redo.png +0 -0
- data/data/replay.png +0 -0
- data/data/reverse-play-26.png +0 -0
- data/data/rewind-26.png +0 -0
- data/data/running.png +0 -0
- data/data/save.png +0 -0
- data/data/save_as.png +0 -0
- data/data/screenshot.png +0 -0
- data/data/script_runner.png +0 -0
- data/data/search-14.png +0 -0
- data/data/search.png +0 -0
- data/data/send_file.png +0 -0
- data/data/skip_to_start-26.png +0 -0
- data/data/spinner.gif +0 -0
- data/data/splash.gif +0 -0
- data/data/stop-26.png +0 -0
- data/data/table_manager.png +0 -0
- data/data/test_runner.png +0 -0
- data/data/tlm_extractor.png +0 -0
- data/data/tlm_grapher.png +0 -0
- data/data/tlm_viewer.png +0 -0
- data/data/undo.png +0 -0
- data/data/warning.wav +0 -0
- data/demo/Gemfile +10 -0
- data/demo/Launcher +16 -0
- data/demo/Launcher.bat +9 -0
- data/demo/Rakefile +77 -0
- data/demo/config/data/attitude.bin +0 -0
- data/demo/config/data/crc.txt +258 -0
- data/demo/config/data/diamond.STL +58 -0
- data/demo/config/data/groundoff.gif +0 -0
- data/demo/config/data/groundon.gif +0 -0
- data/demo/config/data/hselectoff.gif +0 -0
- data/demo/config/data/hselecton.gif +0 -0
- data/demo/config/data/hswitchoff.gif +0 -0
- data/demo/config/data/hswitchon.gif +0 -0
- data/demo/config/data/meta_init.txt +1 -0
- data/demo/config/data/position.bin +0 -0
- data/demo/config/data/poweroff.gif +0 -0
- data/demo/config/data/poweron.gif +0 -0
- data/demo/config/data/satellite.gif +0 -0
- data/demo/config/data/tada.wav +0 -0
- data/demo/config/data/vswitchoff.gif +0 -0
- data/demo/config/data/vswitchon.gif +0 -0
- data/demo/config/system/system.txt +47 -0
- data/demo/config/system/system2.txt +43 -0
- data/demo/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +2 -0
- data/demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +5 -0
- data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -0
- data/demo/config/targets/EXAMPLE/lib/example_interface.rb +18 -0
- data/demo/config/targets/EXAMPLE/target.txt +9 -0
- data/demo/config/targets/INST/cmd_tlm/_ccsds_cmd.txt +9 -0
- data/demo/config/targets/INST/cmd_tlm/_ccsds_tlm.txt +19 -0
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +57 -0
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +164 -0
- data/demo/config/targets/INST/cmd_tlm_server.txt +5 -0
- data/demo/config/targets/INST/doc/README.txt +1 -0
- data/demo/config/targets/INST/lib/example_limits_response.rb +30 -0
- data/demo/config/targets/INST/lib/inst_dump_component.rb +34 -0
- data/demo/config/targets/INST/lib/sim_inst.rb +321 -0
- data/demo/config/targets/INST/procedures/checks.rb +11 -0
- data/demo/config/targets/INST/procedures/collect.rb +18 -0
- data/demo/config/targets/INST/procedures/disconnect.rb +29 -0
- data/demo/config/targets/INST/procedures/utilities/clear.rb +7 -0
- data/demo/config/targets/INST/procedures/utilities/collect.rb +14 -0
- data/demo/config/targets/INST/screens/_footer.txt +4 -0
- data/demo/config/targets/INST/screens/adcs.txt +70 -0
- data/demo/config/targets/INST/screens/array.txt +15 -0
- data/demo/config/targets/INST/screens/block.txt +8 -0
- data/demo/config/targets/INST/screens/commanding.txt +37 -0
- data/demo/config/targets/INST/screens/graphs.txt +14 -0
- data/demo/config/targets/INST/screens/ground.txt +25 -0
- data/demo/config/targets/INST/screens/hs.txt +42 -0
- data/demo/config/targets/INST/screens/latest.txt +23 -0
- data/demo/config/targets/INST/screens/limits.txt +43 -0
- data/demo/config/targets/INST/screens/other.txt +24 -0
- data/demo/config/targets/INST/screens/spacing_box.txt +44 -0
- data/demo/config/targets/INST/screens/spacing_grid.txt +78 -0
- data/demo/config/targets/INST/screens/tabs.txt +68 -0
- data/demo/config/targets/INST/sequences/sequence.tsv +3 -0
- data/demo/config/targets/INST/tables/EventAction.csv +9 -0
- data/demo/config/targets/INST/tables/EventAction.dat +0 -0
- data/demo/config/targets/INST/tables/McConfigTable.csv +20 -0
- data/demo/config/targets/INST/tables/McConfigTable.dat +0 -0
- data/demo/config/targets/INST/target.txt +37 -0
- data/demo/config/targets/INST/tools/data_viewer/data_viewer.txt +2 -0
- data/demo/config/targets/INST/tools/data_viewer/data_viewer2.txt +2 -0
- data/demo/config/targets/INST/tools/table_manager/EventAction_def.txt +6 -0
- data/demo/config/targets/INST/tools/table_manager/McConfigTable_def.txt +38 -0
- data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +6 -0
- data/demo/config/targets/SYSTEM/cmd_tlm/meta_tlm.txt +10 -0
- data/demo/config/targets/SYSTEM/cmd_tlm/override.txt +29 -0
- data/demo/config/targets/SYSTEM/cmd_tlm/system_cmds.txt +41 -0
- data/demo/config/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
- data/demo/config/targets/SYSTEM/cmd_tlm_server.txt +6 -0
- data/demo/config/targets/SYSTEM/lib/limits_groups.rb +55 -0
- data/demo/config/targets/SYSTEM/screens/status.txt +12 -0
- data/demo/config/targets/SYSTEM/target.txt +12 -0
- data/demo/config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +13 -0
- data/demo/config/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -0
- data/demo/config/targets/TEMPLATED/cmd_tlm_server.txt +6 -0
- data/demo/config/targets/TEMPLATED/lib/templated_interface.rb +59 -0
- data/demo/config/targets/TEMPLATED/target.txt +8 -0
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +49 -0
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +42 -0
- data/demo/config/tools/data_viewer/data_viewer.txt +20 -0
- data/demo/config/tools/example_application.css +58 -0
- data/demo/config/tools/handbook_creator/default_toc.xsl +59 -0
- data/demo/config/tools/handbook_creator/handbook_creator.txt +66 -0
- data/demo/config/tools/handbook_creator/templates/command_packets.html.erb +88 -0
- data/demo/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
- data/demo/config/tools/handbook_creator/templates/footer.html.erb +9 -0
- data/demo/config/tools/handbook_creator/templates/header.html.erb +25 -0
- data/demo/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
- data/demo/config/tools/handbook_creator/templates/nav.html.erb +27 -0
- data/demo/config/tools/handbook_creator/templates/overview.html.erb +1 -0
- data/demo/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
- data/demo/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
- data/demo/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
- data/demo/config/tools/handbook_creator/templates/telemetry_packets.html.erb +82 -0
- data/demo/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
- data/demo/config/tools/handbook_creator/templates/title.html.erb +1 -0
- data/demo/config/tools/launcher/launcher.css +7 -0
- data/demo/config/tools/launcher/launcher.txt +48 -0
- data/demo/config/tools/launcher/launcher2.css +10 -0
- data/demo/config/tools/launcher/launcher2.txt +48 -0
- data/demo/config/tools/launcher/launcher_mini.txt +45 -0
- data/demo/config/tools/limits_monitor/README.txt +1 -0
- data/demo/config/tools/opengl_builder/README.txt +1 -0
- data/demo/config/tools/script_runner/script_runner.txt +3 -0
- data/demo/config/tools/table_manager/ConfigTables_def.txt +8 -0
- data/demo/config/tools/table_manager/ExampleTableDefinition.txt +24 -0
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +37 -0
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +34 -0
- data/demo/config/tools/table_manager/PPSSelectionTable_def.txt +9 -0
- data/demo/config/tools/table_manager/TLMMonitoringTable_def.txt +31 -0
- data/demo/config/tools/test_runner/test_runner.css +45 -0
- data/demo/config/tools/test_runner/test_runner.txt +17 -0
- data/demo/config/tools/tlm_extractor/_adcs_time.txt +2 -0
- data/demo/config/tools/tlm_extractor/tlm_extractor.txt +13 -0
- data/demo/config/tools/tlm_extractor/tlm_extractor2.txt +2 -0
- data/demo/config/tools/tlm_extractor/tlm_extractor3.txt +2 -0
- data/demo/config/tools/tlm_extractor/tlm_extractor4.txt +2 -0
- data/demo/config/tools/tlm_grapher/README.txt +1 -0
- data/demo/config/tools/tlm_viewer/tlm_viewer.txt +41 -0
- data/demo/lib/example_background_task.rb +55 -0
- data/demo/lib/example_target.rb +103 -0
- data/demo/lib/scpi_target.rb +68 -0
- data/demo/lib/user_version.rb +3 -0
- data/demo/procedures/cosmos_api_test.rb +310 -0
- data/demo/procedures/example_test.rb +192 -0
- data/demo/procedures/plot_test.rb +8 -0
- data/demo/procedures/run_example_test.rb +3 -0
- data/demo/procedures/test.rb +51 -0
- data/demo/tools/CmdExtractor +16 -0
- data/demo/tools/CmdExtractor.bat +9 -0
- data/demo/tools/CmdSender +16 -0
- data/demo/tools/CmdSender.bat +9 -0
- data/demo/tools/CmdSequence +16 -0
- data/demo/tools/CmdSequence.bat +9 -0
- data/demo/tools/CmdTlmServer +16 -0
- data/demo/tools/CmdTlmServer.bat +9 -0
- data/demo/tools/ConfigEditor +16 -0
- data/demo/tools/ConfigEditor.bat +9 -0
- data/demo/tools/DataViewer +16 -0
- data/demo/tools/DataViewer.bat +9 -0
- data/demo/tools/ExampleTarget +16 -0
- data/demo/tools/ExampleTarget.bat +9 -0
- data/demo/tools/HandbookCreator +16 -0
- data/demo/tools/HandbookCreator.bat +9 -0
- data/demo/tools/Launcher +16 -0
- data/demo/tools/Launcher.bat +9 -0
- data/demo/tools/LimitsMonitor +16 -0
- data/demo/tools/LimitsMonitor.bat +9 -0
- data/demo/tools/OpenGLBuilder +16 -0
- data/demo/tools/OpenGLBuilder.bat +9 -0
- data/demo/tools/PacketViewer +16 -0
- data/demo/tools/PacketViewer.bat +9 -0
- data/demo/tools/Replay +16 -0
- data/demo/tools/Replay.bat +9 -0
- data/demo/tools/ScpiTarget +16 -0
- data/demo/tools/ScpiTarget.bat +9 -0
- data/demo/tools/ScriptRunner +16 -0
- data/demo/tools/ScriptRunner.bat +9 -0
- data/demo/tools/TableManager +16 -0
- data/demo/tools/TableManager.bat +9 -0
- data/demo/tools/TestRunner +16 -0
- data/demo/tools/TestRunner.bat +9 -0
- data/demo/tools/TlmExtractor +16 -0
- data/demo/tools/TlmExtractor.bat +9 -0
- data/demo/tools/TlmGrapher +16 -0
- data/demo/tools/TlmGrapher.bat +9 -0
- data/demo/tools/TlmViewer +16 -0
- data/demo/tools/TlmViewer.bat +9 -0
- data/demo/tools/ToolLaunch.bat +72 -0
- data/demo/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +16 -0
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +16 -0
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/CmdSequence.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/CmdSequence.rb +16 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/CmdSequence.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +16 -0
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/ConfigEditor.rb +16 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +16 -0
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +16 -0
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/Launcher.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +16 -0
- data/demo/tools/mac/Launcher.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +16 -0
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +16 -0
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +16 -0
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/Replay.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +16 -0
- data/demo/tools/mac/Replay.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +16 -0
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/TableManager.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +16 -0
- data/demo/tools/mac/TableManager.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +16 -0
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +16 -0
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +16 -0
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +16 -0
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/demo/tools/tool_launch.rb +38 -0
- data/ext/cosmos/ext/array/array.c +111 -0
- data/ext/cosmos/ext/array/extconf.rb +13 -0
- data/ext/cosmos/ext/buffered_file/buffered_file.c +167 -0
- data/ext/cosmos/ext/buffered_file/extconf.rb +13 -0
- data/ext/cosmos/ext/config_parser/config_parser.c +237 -0
- data/ext/cosmos/ext/config_parser/extconf.rb +13 -0
- data/ext/cosmos/ext/cosmos_io/cosmos_io.c +117 -0
- data/ext/cosmos/ext/cosmos_io/extconf.rb +13 -0
- data/ext/cosmos/ext/crc/crc.c +341 -0
- data/ext/cosmos/ext/crc/extconf.rb +13 -0
- data/ext/cosmos/ext/line_graph/extconf.rb +13 -0
- data/ext/cosmos/ext/line_graph/line_graph.c +501 -0
- data/ext/cosmos/ext/low_fragmentation_array/extconf.rb +13 -0
- data/ext/cosmos/ext/low_fragmentation_array/low_fragmentation_array.c +265 -0
- data/ext/cosmos/ext/packet/extconf.rb +13 -0
- data/ext/cosmos/ext/packet/packet.c +350 -0
- data/ext/cosmos/ext/platform/extconf.rb +13 -0
- data/ext/cosmos/ext/platform/platform.c +101 -0
- data/ext/cosmos/ext/polynomial_conversion/extconf.rb +13 -0
- data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +73 -0
- data/ext/cosmos/ext/string/extconf.rb +13 -0
- data/ext/cosmos/ext/string/string.c +49 -0
- data/ext/cosmos/ext/structure/structure.c +1433 -0
- data/ext/cosmos/ext/tabbed_plots_config/extconf.rb +13 -0
- data/ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c +51 -0
- data/ext/cosmos/ext/telemetry/extconf.rb +13 -0
- data/ext/cosmos/ext/telemetry/telemetry.c +307 -0
- data/ext/mkrf_conf.rb +40 -0
- data/install/Gemfile +10 -0
- data/install/Launcher +16 -0
- data/install/Launcher.bat +9 -0
- data/install/Rakefile +77 -0
- data/install/config/data/README.txt +1 -0
- data/install/config/data/crc.txt +160 -0
- data/install/config/system/system.txt +39 -0
- data/install/config/targets/SYSTEM/cmd_tlm/meta_tlm.txt +9 -0
- data/install/config/targets/SYSTEM/target.txt +12 -0
- data/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -0
- data/install/config/tools/data_viewer/data_viewer.txt +4 -0
- data/install/config/tools/handbook_creator/default_toc.xsl +59 -0
- data/install/config/tools/handbook_creator/handbook_creator.txt +49 -0
- data/install/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
- data/install/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
- data/install/config/tools/handbook_creator/templates/footer.html.erb +9 -0
- data/install/config/tools/handbook_creator/templates/header.html.erb +25 -0
- data/install/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
- data/install/config/tools/handbook_creator/templates/nav.html.erb +27 -0
- data/install/config/tools/handbook_creator/templates/overview.html.erb +1 -0
- data/install/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
- data/install/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
- data/install/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
- data/install/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
- data/install/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
- data/install/config/tools/handbook_creator/templates/title.html.erb +1 -0
- data/install/config/tools/launcher/launcher.txt +40 -0
- data/install/config/tools/limits_monitor/README.txt +1 -0
- data/install/config/tools/opengl_builder/README.txt +1 -0
- data/install/config/tools/script_runner/script_runner.txt +3 -0
- data/install/config/tools/table_manager/README.txt +1 -0
- data/install/config/tools/test_runner/test_runner.txt +8 -0
- data/install/config/tools/tlm_extractor/README.txt +1 -0
- data/install/config/tools/tlm_grapher/README.txt +1 -0
- data/install/config/tools/tlm_viewer/tlm_viewer.txt +5 -0
- data/install/lib/user_version.rb +3 -0
- data/install/procedures/README.txt +1 -0
- data/install/tools/CmdExtractor +16 -0
- data/install/tools/CmdExtractor.bat +9 -0
- data/install/tools/CmdSender +16 -0
- data/install/tools/CmdSender.bat +9 -0
- data/install/tools/CmdSequence +16 -0
- data/install/tools/CmdSequence.bat +9 -0
- data/install/tools/CmdTlmServer +16 -0
- data/install/tools/CmdTlmServer.bat +9 -0
- data/install/tools/ConfigEditor +16 -0
- data/install/tools/ConfigEditor.bat +9 -0
- data/install/tools/DataViewer +16 -0
- data/install/tools/DataViewer.bat +9 -0
- data/install/tools/HandbookCreator +16 -0
- data/install/tools/HandbookCreator.bat +9 -0
- data/install/tools/Launcher +16 -0
- data/install/tools/Launcher.bat +9 -0
- data/install/tools/LimitsMonitor +16 -0
- data/install/tools/LimitsMonitor.bat +9 -0
- data/install/tools/OpenGLBuilder +16 -0
- data/install/tools/OpenGLBuilder.bat +9 -0
- data/install/tools/PacketViewer +16 -0
- data/install/tools/PacketViewer.bat +9 -0
- data/install/tools/Replay +16 -0
- data/install/tools/Replay.bat +9 -0
- data/install/tools/ScriptRunner +16 -0
- data/install/tools/ScriptRunner.bat +9 -0
- data/install/tools/TableManager +16 -0
- data/install/tools/TableManager.bat +9 -0
- data/install/tools/TestRunner +16 -0
- data/install/tools/TestRunner.bat +9 -0
- data/install/tools/TlmExtractor +16 -0
- data/install/tools/TlmExtractor.bat +9 -0
- data/install/tools/TlmGrapher +16 -0
- data/install/tools/TlmGrapher.bat +9 -0
- data/install/tools/TlmViewer +16 -0
- data/install/tools/TlmViewer.bat +9 -0
- data/install/tools/ToolLaunch.bat +72 -0
- data/install/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +16 -0
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
- data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +16 -0
- data/install/tools/mac/CmdSender.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/CmdSequence.app/Contents/Info.plist +38 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/CmdSequence.rb +16 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/CmdSequence.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +16 -0
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/ConfigEditor.app/Contents/Info.plist +38 -0
- data/install/tools/mac/ConfigEditor.app/Contents/MacOS/ConfigEditor.rb +16 -0
- data/install/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/ConfigEditor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/ConfigEditor.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
- data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +16 -0
- data/install/tools/mac/DataViewer.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +16 -0
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/Launcher.app/Contents/Info.plist +38 -0
- data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +16 -0
- data/install/tools/mac/Launcher.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +16 -0
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +16 -0
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +16 -0
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/Replay.app/Contents/Info.plist +38 -0
- data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +16 -0
- data/install/tools/mac/Replay.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +16 -0
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/TableManager.app/Contents/Info.plist +38 -0
- data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +16 -0
- data/install/tools/mac/TableManager.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
- data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +16 -0
- data/install/tools/mac/TestRunner.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +16 -0
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +16 -0
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +16 -0
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/install/tools/tool_launch.rb +38 -0
- data/lib/cosmos.rb +63 -0
- data/lib/cosmos/ccsds/ccsds_packet.rb +63 -0
- data/lib/cosmos/ccsds/ccsds_parser.rb +143 -0
- data/lib/cosmos/config/config_parser.rb +508 -0
- data/lib/cosmos/config/meta_config_parser.rb +57 -0
- data/lib/cosmos/conversions.rb +13 -0
- data/lib/cosmos/conversions/conversion.rb +52 -0
- data/lib/cosmos/conversions/generic_conversion.rb +67 -0
- data/lib/cosmos/conversions/new_packet_log_conversion.rb +52 -0
- data/lib/cosmos/conversions/polynomial_conversion.rb +79 -0
- data/lib/cosmos/conversions/processor_conversion.rb +56 -0
- data/lib/cosmos/conversions/received_count_conversion.rb +33 -0
- data/lib/cosmos/conversions/received_time_formatted_conversion.rb +37 -0
- data/lib/cosmos/conversions/received_time_seconds_conversion.rb +37 -0
- data/lib/cosmos/conversions/segmented_polynomial_conversion.rb +139 -0
- data/lib/cosmos/conversions/unix_time_conversion.rb +57 -0
- data/lib/cosmos/conversions/unix_time_formatted_conversion.rb +44 -0
- data/lib/cosmos/conversions/unix_time_seconds_conversion.rb +44 -0
- data/lib/cosmos/core_ext.rb +18 -0
- data/lib/cosmos/core_ext/array.rb +397 -0
- data/lib/cosmos/core_ext/class.rb +53 -0
- data/lib/cosmos/core_ext/cosmos_io.rb +45 -0
- data/lib/cosmos/core_ext/exception.rb +52 -0
- data/lib/cosmos/core_ext/file.rb +76 -0
- data/lib/cosmos/core_ext/hash.rb +28 -0
- data/lib/cosmos/core_ext/io.rb +93 -0
- data/lib/cosmos/core_ext/kernel.rb +33 -0
- data/lib/cosmos/core_ext/math.rb +119 -0
- data/lib/cosmos/core_ext/matrix.rb +149 -0
- data/lib/cosmos/core_ext/objectspace.rb +27 -0
- data/lib/cosmos/core_ext/range.rb +18 -0
- data/lib/cosmos/core_ext/socket.rb +32 -0
- data/lib/cosmos/core_ext/string.rb +351 -0
- data/lib/cosmos/core_ext/stringio.rb +24 -0
- data/lib/cosmos/core_ext/time.rb +481 -0
- data/lib/cosmos/ext/.keep +0 -0
- data/lib/cosmos/gui/choosers/combobox_chooser.rb +141 -0
- data/lib/cosmos/gui/choosers/file_chooser.rb +85 -0
- data/lib/cosmos/gui/choosers/float_chooser.rb +67 -0
- data/lib/cosmos/gui/choosers/integer_chooser.rb +69 -0
- data/lib/cosmos/gui/choosers/string_chooser.rb +35 -0
- data/lib/cosmos/gui/choosers/telemetry_chooser.rb +326 -0
- data/lib/cosmos/gui/choosers/value_chooser.rb +67 -0
- data/lib/cosmos/gui/dialogs/about_dialog.rb +166 -0
- data/lib/cosmos/gui/dialogs/calendar_dialog.rb +140 -0
- data/lib/cosmos/gui/dialogs/cmd_details_dialog.rb +51 -0
- data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +163 -0
- data/lib/cosmos/gui/dialogs/details_dialog.rb +190 -0
- data/lib/cosmos/gui/dialogs/exception_dialog.rb +106 -0
- data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +60 -0
- data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +272 -0
- data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +143 -0
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +183 -0
- data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +97 -0
- data/lib/cosmos/gui/dialogs/progress_dialog.rb +313 -0
- data/lib/cosmos/gui/dialogs/pry_dialog.rb +169 -0
- data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +51 -0
- data/lib/cosmos/gui/dialogs/select_dialog.rb +59 -0
- data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +159 -0
- data/lib/cosmos/gui/dialogs/splash.rb +145 -0
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +201 -0
- data/lib/cosmos/gui/dialogs/tlm_edit_dialog.rb +79 -0
- data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +108 -0
- data/lib/cosmos/gui/line_graph/line_graph.rb +482 -0
- data/lib/cosmos/gui/line_graph/line_graph_dialog.rb +36 -0
- data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +521 -0
- data/lib/cosmos/gui/line_graph/line_graph_popups.rb +112 -0
- data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +452 -0
- data/lib/cosmos/gui/line_graph/line_graph_script.rb +81 -0
- data/lib/cosmos/gui/line_graph/lines.rb +304 -0
- data/lib/cosmos/gui/line_graph/overview_graph.rb +474 -0
- data/lib/cosmos/gui/opengl/earth_model.rb +25 -0
- data/lib/cosmos/gui/opengl/gl_bounds.rb +55 -0
- data/lib/cosmos/gui/opengl/gl_light.rb +38 -0
- data/lib/cosmos/gui/opengl/gl_material.rb +28 -0
- data/lib/cosmos/gui/opengl/gl_scene.rb +78 -0
- data/lib/cosmos/gui/opengl/gl_shape.rb +150 -0
- data/lib/cosmos/gui/opengl/gl_viewer.rb +712 -0
- data/lib/cosmos/gui/opengl/gl_viewport.rb +34 -0
- data/lib/cosmos/gui/opengl/moon_model.rb +25 -0
- data/lib/cosmos/gui/opengl/opengl.rb +8 -0
- data/lib/cosmos/gui/opengl/stl_reader.rb +210 -0
- data/lib/cosmos/gui/opengl/stl_shape.rb +127 -0
- data/lib/cosmos/gui/opengl/texture_mapped_sphere.rb +202 -0
- data/lib/cosmos/gui/qt.rb +841 -0
- data/lib/cosmos/gui/qt_tool.rb +489 -0
- data/lib/cosmos/gui/text/completion.rb +402 -0
- data/lib/cosmos/gui/text/completion_line_edit.rb +30 -0
- data/lib/cosmos/gui/text/completion_text_edit.rb +194 -0
- data/lib/cosmos/gui/text/ruby_editor.rb +463 -0
- data/lib/cosmos/gui/utilities/analyze_log.rb +153 -0
- data/lib/cosmos/gui/utilities/screenshot.rb +33 -0
- data/lib/cosmos/gui/utilities/script_module_gui.rb +364 -0
- data/lib/cosmos/gui/widgets/full_text_search_line_edit.rb +171 -0
- data/lib/cosmos/gui/widgets/packet_log_frame.rb +344 -0
- data/lib/cosmos/gui/widgets/realtime_button_bar.rb +98 -0
- data/lib/cosmos/interfaces.rb +21 -0
- data/lib/cosmos/interfaces/cmd_tlm_server_interface.rb +134 -0
- data/lib/cosmos/interfaces/interface.rb +449 -0
- data/lib/cosmos/interfaces/linc_interface.rb +459 -0
- data/lib/cosmos/interfaces/protocols/burst_protocol.rb +173 -0
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +141 -0
- data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +114 -0
- data/lib/cosmos/interfaces/protocols/length_protocol.rb +147 -0
- data/lib/cosmos/interfaces/protocols/override_protocol.rb +52 -0
- data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +141 -0
- data/lib/cosmos/interfaces/protocols/protocol.rb +60 -0
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +240 -0
- data/lib/cosmos/interfaces/protocols/terminated_protocol.rb +81 -0
- data/lib/cosmos/interfaces/serial_interface.rb +81 -0
- data/lib/cosmos/interfaces/simulated_target_interface.rb +140 -0
- data/lib/cosmos/interfaces/stream_interface.rb +64 -0
- data/lib/cosmos/interfaces/tcpip_client_interface.rb +60 -0
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +625 -0
- data/lib/cosmos/interfaces/udp_interface.rb +141 -0
- data/lib/cosmos/io/buffered_file.rb +101 -0
- data/lib/cosmos/io/cosmos_snmp.rb +50 -0
- data/lib/cosmos/io/io_multiplexer.rb +71 -0
- data/lib/cosmos/io/json_drb.rb +386 -0
- data/lib/cosmos/io/json_drb_object.rb +201 -0
- data/lib/cosmos/io/json_rpc.rb +365 -0
- data/lib/cosmos/io/posix_serial_driver.rb +147 -0
- data/lib/cosmos/io/raw_logger.rb +170 -0
- data/lib/cosmos/io/raw_logger_pair.rb +71 -0
- data/lib/cosmos/io/serial_driver.rb +94 -0
- data/lib/cosmos/io/stderr.rb +36 -0
- data/lib/cosmos/io/stdout.rb +36 -0
- data/lib/cosmos/io/udp_sockets.rb +152 -0
- data/lib/cosmos/io/win32_serial_driver.rb +165 -0
- data/lib/cosmos/packet_logs.rb +6 -0
- data/lib/cosmos/packet_logs/ccsds_log_reader.rb +104 -0
- data/lib/cosmos/packet_logs/packet_log_reader.rb +461 -0
- data/lib/cosmos/packet_logs/packet_log_writer.rb +341 -0
- data/lib/cosmos/packet_logs/packet_log_writer_pair.rb +30 -0
- data/lib/cosmos/packets/binary_accessor.rb +1201 -0
- data/lib/cosmos/packets/commands.rb +318 -0
- data/lib/cosmos/packets/limits.rb +264 -0
- data/lib/cosmos/packets/limits_response.rb +42 -0
- data/lib/cosmos/packets/packet.rb +994 -0
- data/lib/cosmos/packets/packet_config.rb +1393 -0
- data/lib/cosmos/packets/packet_item.rb +585 -0
- data/lib/cosmos/packets/packet_item_limits.rb +140 -0
- data/lib/cosmos/packets/parsers/format_string_parser.rb +59 -0
- data/lib/cosmos/packets/parsers/limits_parser.rb +147 -0
- data/lib/cosmos/packets/parsers/limits_response_parser.rb +52 -0
- data/lib/cosmos/packets/parsers/macro_parser.rb +118 -0
- data/lib/cosmos/packets/parsers/packet_item_parser.rb +234 -0
- data/lib/cosmos/packets/parsers/packet_parser.rb +131 -0
- data/lib/cosmos/packets/parsers/processor_parser.rb +63 -0
- data/lib/cosmos/packets/parsers/state_parser.rb +119 -0
- data/lib/cosmos/packets/structure.rb +508 -0
- data/lib/cosmos/packets/structure_item.rb +292 -0
- data/lib/cosmos/packets/telemetry.rb +444 -0
- data/lib/cosmos/processors.rb +6 -0
- data/lib/cosmos/processors/new_packet_log_processor.rb +39 -0
- data/lib/cosmos/processors/processor.rb +76 -0
- data/lib/cosmos/processors/statistics_processor.rb +70 -0
- data/lib/cosmos/processors/watermark_processor.rb +49 -0
- data/lib/cosmos/script.rb +9 -0
- data/lib/cosmos/script/api_shared.rb +972 -0
- data/lib/cosmos/script/cmd_tlm_server.rb +138 -0
- data/lib/cosmos/script/commands.rb +189 -0
- data/lib/cosmos/script/extract.rb +139 -0
- data/lib/cosmos/script/limits.rb +116 -0
- data/lib/cosmos/script/script.rb +76 -0
- data/lib/cosmos/script/scripting.rb +144 -0
- data/lib/cosmos/script/telemetry.rb +216 -0
- data/lib/cosmos/script/tools.rb +97 -0
- data/lib/cosmos/streams/serial_stream.rb +150 -0
- data/lib/cosmos/streams/stream.rb +54 -0
- data/lib/cosmos/streams/tcpip_client_stream.rb +113 -0
- data/lib/cosmos/streams/tcpip_socket_stream.rb +186 -0
- data/lib/cosmos/system.rb +4 -0
- data/lib/cosmos/system/system.rb +778 -0
- data/lib/cosmos/system/target.rb +228 -0
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +268 -0
- data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +78 -0
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +773 -0
- data/lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb +70 -0
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +652 -0
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +510 -0
- data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +194 -0
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +1337 -0
- data/lib/cosmos/tools/cmd_tlm_server/background_task.rb +54 -0
- data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +77 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +537 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +274 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +480 -0
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +121 -0
- data/lib/cosmos/tools/cmd_tlm_server/connections.rb +175 -0
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +213 -0
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +176 -0
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +151 -0
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +255 -0
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +85 -0
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +274 -0
- data/lib/cosmos/tools/cmd_tlm_server/interfaces.rb +153 -0
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +122 -0
- data/lib/cosmos/tools/cmd_tlm_server/packet_logging.rb +161 -0
- data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +66 -0
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +134 -0
- data/lib/cosmos/tools/config_editor/config_editor.rb +728 -0
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +690 -0
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +633 -0
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +120 -0
- data/lib/cosmos/tools/data_viewer/dump_component.rb +40 -0
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +156 -0
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +382 -0
- data/lib/cosmos/tools/launcher/launcher.rb +194 -0
- data/lib/cosmos/tools/launcher/launcher_config.rb +256 -0
- data/lib/cosmos/tools/launcher/launcher_multitool.rb +40 -0
- data/lib/cosmos/tools/launcher/launcher_tool.rb +116 -0
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +972 -0
- data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +416 -0
- data/lib/cosmos/tools/opengl_builder/scene_config.rb +118 -0
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +608 -0
- data/lib/cosmos/tools/replay/replay.rb +517 -0
- data/lib/cosmos/tools/replay/replay_server.rb +91 -0
- data/lib/cosmos/tools/script_runner/script_audit.rb +147 -0
- data/lib/cosmos/tools/script_runner/script_runner.rb +979 -0
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +40 -0
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +1838 -0
- data/lib/cosmos/tools/table_manager/table.rb +61 -0
- data/lib/cosmos/tools/table_manager/table_config.rb +189 -0
- data/lib/cosmos/tools/table_manager/table_item.rb +58 -0
- data/lib/cosmos/tools/table_manager/table_item_parser.rb +46 -0
- data/lib/cosmos/tools/table_manager/table_manager.rb +1152 -0
- data/lib/cosmos/tools/table_manager/table_manager_core.rb +321 -0
- data/lib/cosmos/tools/table_manager/table_parser.rb +75 -0
- data/lib/cosmos/tools/test_runner/results_writer.rb +283 -0
- data/lib/cosmos/tools/test_runner/test.rb +539 -0
- data/lib/cosmos/tools/test_runner/test_runner.rb +1271 -0
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +341 -0
- data/lib/cosmos/tools/tlm_extractor/text_item_chooser.rb +60 -0
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +1152 -0
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +441 -0
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +60 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/housekeeping_data_object_adder.rb +92 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/singlexy_data_object_adder.rb +44 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +95 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/data_object_editor.rb +61 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +222 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/linegraph_data_object_editor.rb +141 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/singlexy_data_object_editor.rb +30 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +174 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +193 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +422 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +176 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +25 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +325 -0
- data/lib/cosmos/tools/tlm_grapher/plot_editors/linegraph_plot_editor.rb +191 -0
- data/lib/cosmos/tools/tlm_grapher/plot_editors/plot_editor.rb +28 -0
- data/lib/cosmos/tools/tlm_grapher/plot_editors/singlexy_plot_editor.rb +30 -0
- data/lib/cosmos/tools/tlm_grapher/plot_editors/xy_plot_editor.rb +59 -0
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/linegraph_plot_gui_object.rb +173 -0
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/singlexy_plot_gui_object.rb +27 -0
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/xy_plot_gui_object.rb +74 -0
- data/lib/cosmos/tools/tlm_grapher/plots/linegraph_plot.rb +209 -0
- data/lib/cosmos/tools/tlm_grapher/plots/plot.rb +69 -0
- data/lib/cosmos/tools/tlm_grapher/plots/singlexy_plot.rb +20 -0
- data/lib/cosmos/tools/tlm_grapher/plots/xy_plot.rb +61 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +1291 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +451 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb +107 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +114 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb +101 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +78 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tab.rb +57 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +1004 -0
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +103 -0
- data/lib/cosmos/tools/tlm_viewer/screen.rb +502 -0
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +571 -0
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +293 -0
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +61 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +110 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +66 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +57 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +39 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +33 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +70 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +77 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +43 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +59 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +44 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +54 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +53 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +63 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +123 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +38 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +30 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +31 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +35 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +27 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +31 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +26 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +29 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +39 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +38 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +38 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +57 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +42 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +37 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitscolumn_widget.rb +38 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +37 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb +39 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +34 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +113 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +116 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb +102 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb +116 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +63 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +58 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +116 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +34 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +38 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +65 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb +65 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +34 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +35 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +33 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +55 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +26 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +28 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +47 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +26 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +91 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +27 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +130 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +46 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +43 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +37 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitscolumn_widget.rb +37 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +37 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangecolumn_widget.rb +37 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +36 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +38 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +257 -0
- data/lib/cosmos/top_level.rb +790 -0
- data/lib/cosmos/utilities.rb +11 -0
- data/lib/cosmos/utilities/crc.rb +268 -0
- data/lib/cosmos/utilities/csv.rb +137 -0
- data/lib/cosmos/utilities/logger.rb +137 -0
- data/lib/cosmos/utilities/low_fragmentation_array.rb +19 -0
- data/lib/cosmos/utilities/message_log.rb +79 -0
- data/lib/cosmos/utilities/quaternion.rb +258 -0
- data/lib/cosmos/utilities/ruby_lex_utils.rb +313 -0
- data/lib/cosmos/utilities/simulated_target.rb +100 -0
- data/lib/cosmos/utilities/sleeper.rb +44 -0
- data/lib/cosmos/version.rb +12 -0
- data/lib/cosmos/win32/excel.rb +66 -0
- data/lib/cosmos/win32/win32.rb +387 -0
- data/lib/cosmos/win32/win32_main.rb +325 -0
- data/roodi.yml +24 -0
- data/run_gui_tests.bat +44 -0
- data/spec/ccsds/ccsds_packet_spec.rb +67 -0
- data/spec/ccsds/ccsds_parser_spec.rb +148 -0
- data/spec/config/config_parser_spec.rb +353 -0
- data/spec/conversions/conversion_spec.rb +31 -0
- data/spec/conversions/generic_conversion_spec.rb +45 -0
- data/spec/conversions/new_packet_log_conversion_spec.rb +39 -0
- data/spec/conversions/polynomial_conversion_spec.rb +40 -0
- data/spec/conversions/processor_conversion_spec.rb +45 -0
- data/spec/conversions/received_count_conversion_spec.rb +43 -0
- data/spec/conversions/received_time_formatted_conversion_spec.rb +49 -0
- data/spec/conversions/received_time_seconds_conversion_spec.rb +50 -0
- data/spec/conversions/segmented_polynomial_conversion_spec.rb +51 -0
- data/spec/conversions/unix_time_formatted_conversion_spec.rb +74 -0
- data/spec/conversions/unix_time_seconds_conversion_spec.rb +76 -0
- data/spec/core_ext/array_spec.rb +247 -0
- data/spec/core_ext/class_spec.rb +36 -0
- data/spec/core_ext/cosmos_io_spec.rb +77 -0
- data/spec/core_ext/exception_spec.rb +91 -0
- data/spec/core_ext/file_spec.rb +72 -0
- data/spec/core_ext/hash_spec.rb +24 -0
- data/spec/core_ext/io_spec.rb +46 -0
- data/spec/core_ext/kernel_spec.rb +54 -0
- data/spec/core_ext/math_spec.rb +116 -0
- data/spec/core_ext/matrix_spec.rb +127 -0
- data/spec/core_ext/objectspace_spec.rb +32 -0
- data/spec/core_ext/range_spec.rb +21 -0
- data/spec/core_ext/socket_spec.rb +32 -0
- data/spec/core_ext/string_spec.rb +239 -0
- data/spec/core_ext/stringio_spec.rb +21 -0
- data/spec/core_ext/time_spec.rb +220 -0
- data/spec/gui/line_graph/line_clip_spec.rb +324 -0
- data/spec/gui/qt_spec.rb +104 -0
- data/spec/install/config/system/system.txt +27 -0
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmd_linc.txt +30 -0
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +111 -0
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +236 -0
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm_linc.txt +25 -0
- data/spec/install/config/targets/INST/cmd_tlm_server.txt +5 -0
- data/spec/install/config/targets/INST/lib/sim_inst.rb +305 -0
- data/spec/install/config/targets/INST/target.txt +10 -0
- data/spec/install/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -0
- data/spec/install/config/targets/SYSTEM/cmd_tlm/meta_tlm.txt +10 -0
- data/spec/install/config/targets/SYSTEM/cmd_tlm/system_cmds.txt +41 -0
- data/spec/install/config/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
- data/spec/install/config/targets/SYSTEM/cmd_tlm_server.txt +6 -0
- data/spec/install/config/targets/SYSTEM/screens/status.txt +12 -0
- data/spec/install/config/targets/SYSTEM/target.txt +12 -0
- data/spec/install/lib/README.txt +1 -0
- data/spec/interfaces/cmd_tlm_server_interface_spec.rb +146 -0
- data/spec/interfaces/interface_spec.rb +514 -0
- data/spec/interfaces/linc_interface_spec.rb +248 -0
- data/spec/interfaces/protocols/burst_protocol_spec.rb +300 -0
- data/spec/interfaces/protocols/crc_protocol_spec.rb +709 -0
- data/spec/interfaces/protocols/fixed_protocol_spec.rb +119 -0
- data/spec/interfaces/protocols/length_protocol_spec.rb +499 -0
- data/spec/interfaces/protocols/override_protocol_spec.rb +158 -0
- data/spec/interfaces/protocols/preidentified_protocol_spec.rb +149 -0
- data/spec/interfaces/protocols/template_protocol_spec.rb +322 -0
- data/spec/interfaces/protocols/terminated_protocol_spec.rb +174 -0
- data/spec/interfaces/serial_interface_spec.rb +57 -0
- data/spec/interfaces/simulated_target_interface_spec.rb +128 -0
- data/spec/interfaces/tcpip_client_interface_spec.rb +60 -0
- data/spec/interfaces/tcpip_server_interface_spec.rb +157 -0
- data/spec/interfaces/udp_interface_spec.rb +246 -0
- data/spec/io/buffered_file_spec.rb +113 -0
- data/spec/io/io_multiplexer_spec.rb +102 -0
- data/spec/io/json_drb_object_spec.rb +119 -0
- data/spec/io/json_drb_spec.rb +297 -0
- data/spec/io/json_rpc_spec.rb +264 -0
- data/spec/io/raw_logger_pair_spec.rb +76 -0
- data/spec/io/raw_logger_spec.rb +137 -0
- data/spec/io/serial_driver_spec.rb +62 -0
- data/spec/io/stderr_spec.rb +32 -0
- data/spec/io/stdout_spec.rb +32 -0
- data/spec/io/udp_sockets_spec.rb +99 -0
- data/spec/io/win32_serial_driver_spec.rb +91 -0
- data/spec/packet_logs/packet_log_reader_spec.rb +553 -0
- data/spec/packet_logs/packet_log_writer_pair_spec.rb +30 -0
- data/spec/packet_logs/packet_log_writer_spec.rb +227 -0
- data/spec/packets/binary_accessor_spec.rb +2326 -0
- data/spec/packets/commands_spec.rb +379 -0
- data/spec/packets/limits_response_spec.rb +25 -0
- data/spec/packets/limits_spec.rb +344 -0
- data/spec/packets/packet_config_spec.rb +960 -0
- data/spec/packets/packet_item_limits_spec.rb +188 -0
- data/spec/packets/packet_item_spec.rb +386 -0
- data/spec/packets/packet_spec.rb +1456 -0
- data/spec/packets/parsers/format_string_parser_spec.rb +133 -0
- data/spec/packets/parsers/limits_parser_spec.rb +293 -0
- data/spec/packets/parsers/limits_response_parser_spec.rb +149 -0
- data/spec/packets/parsers/macro_parser_spec.rb +220 -0
- data/spec/packets/parsers/packet_item_parser_spec.rb +366 -0
- data/spec/packets/parsers/packet_parser_spec.rb +99 -0
- data/spec/packets/parsers/processor_parser_spec.rb +114 -0
- data/spec/packets/parsers/state_parser_spec.rb +189 -0
- data/spec/packets/structure_item_spec.rb +213 -0
- data/spec/packets/structure_spec.rb +565 -0
- data/spec/packets/telemetry_spec.rb +578 -0
- data/spec/processors/new_packet_log_processor_spec.rb +39 -0
- data/spec/processors/processor_spec.rb +55 -0
- data/spec/processors/statistics_processor_spec.rb +60 -0
- data/spec/processors/watermark_processor_spec.rb +51 -0
- data/spec/script/cmd_tlm_server_spec.rb +176 -0
- data/spec/script/commands_disconnect_spec.rb +270 -0
- data/spec/script/commands_spec.rb +303 -0
- data/spec/script/extract_spec.rb +158 -0
- data/spec/script/limits_spec.rb +153 -0
- data/spec/script/script_spec.rb +90 -0
- data/spec/script/scripting_spec.rb +745 -0
- data/spec/script/telemetry_spec.rb +176 -0
- data/spec/script/tools_spec.rb +134 -0
- data/spec/spec_helper.rb +225 -0
- data/spec/streams/serial_stream_spec.rb +122 -0
- data/spec/streams/stream_spec.rb +30 -0
- data/spec/streams/tcpip_client_stream_spec.rb +65 -0
- data/spec/streams/tcpip_socket_stream_spec.rb +226 -0
- data/spec/system/system_spec.rb +891 -0
- data/spec/system/target_spec.rb +304 -0
- data/spec/tools/cmd_tlm_server/api_spec.rb +1123 -0
- data/spec/tools/cmd_tlm_server/background_task_spec.rb +44 -0
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +227 -0
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +610 -0
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +431 -0
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +151 -0
- data/spec/tools/cmd_tlm_server/connections_spec.rb +235 -0
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +401 -0
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +252 -0
- data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +145 -0
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +143 -0
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +191 -0
- data/spec/tools/cmd_tlm_server/routers_spec.rb +223 -0
- data/spec/tools/launcher/launcher_config_spec.rb +474 -0
- data/spec/tools/table_manager/table_config_spec.rb +226 -0
- data/spec/tools/table_manager/table_item_parser_spec.rb +61 -0
- data/spec/tools/table_manager/table_item_spec.rb +57 -0
- data/spec/tools/table_manager/table_parser_spec.rb +96 -0
- data/spec/tools/table_manager/table_spec.rb +90 -0
- data/spec/tools/table_manager/tablemanager_core_spec.rb +556 -0
- data/spec/top_level/top_level_spec.rb +373 -0
- data/spec/utilities/crc_spec.rb +45 -0
- data/spec/utilities/csv_spec.rb +139 -0
- data/spec/utilities/logger_spec.rb +102 -0
- data/spec/utilities/message_log_spec.rb +89 -0
- data/spec/utilities/quaternion_spec.rb +107 -0
- data/spec/utilities/ruby_lex_utils_spec.rb +86 -0
- data/tasks/gemfile_stats.rake +79 -0
- data/tasks/manifest.rake +22 -0
- data/tasks/spec.rake +23 -0
- data/test/benchmarks/binary_accessor_benchmark.rb +14 -0
- data/test/benchmarks/gsub_benchmark.rb +152 -0
- data/test/benchmarks/is_a_benchmark.rb +34 -0
- data/test/performance/PACKETS.bat +1 -0
- data/test/performance/Rakefile +77 -0
- data/test/performance/THREADS.bat +1 -0
- data/test/performance/config/data/attitude.bin +0 -0
- data/test/performance/config/data/crc.txt +196 -0
- data/test/performance/config/data/diamond.STL +58 -0
- data/test/performance/config/data/groundoff.gif +0 -0
- data/test/performance/config/data/groundon.gif +0 -0
- data/test/performance/config/data/hselectoff.gif +0 -0
- data/test/performance/config/data/hselecton.gif +0 -0
- data/test/performance/config/data/hswitchoff.gif +0 -0
- data/test/performance/config/data/hswitchon.gif +0 -0
- data/test/performance/config/data/meta_init.txt +4 -0
- data/test/performance/config/data/position.bin +0 -0
- data/test/performance/config/data/poweroff.gif +0 -0
- data/test/performance/config/data/poweron.gif +0 -0
- data/test/performance/config/data/satellite.gif +0 -0
- data/test/performance/config/data/tada.wav +0 -0
- data/test/performance/config/data/vswitchoff.gif +0 -0
- data/test/performance/config/data/vswitchon.gif +0 -0
- data/test/performance/config/system/system_packets.txt +38 -0
- data/test/performance/config/system/system_threads.txt +58 -0
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +46 -0
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
- data/test/performance/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
- data/test/performance/config/targets/COSMOS/screens/limits_change.txt +20 -0
- data/test/performance/config/targets/COSMOS/screens/version.txt +19 -0
- data/test/performance/config/targets/COSMOS/target.txt +11 -0
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_cmds.txt +20 -0
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +98 -0
- data/test/performance/config/targets/PACKET/cmd_tlm_server.txt +6 -0
- data/test/performance/config/targets/PACKET/lib/packet_interface.rb +22 -0
- data/test/performance/config/targets/PACKET/lib/packet_limits_response.rb +24 -0
- data/test/performance/config/targets/PACKET/screens/status.txt +25 -0
- data/test/performance/config/targets/PACKET/target.txt +28 -0
- data/test/performance/config/targets/SYSTEM/screens/status.txt +12 -0
- data/test/performance/config/targets/THREAD/cmd_tlm/thread_cmds.txt +17 -0
- data/test/performance/config/targets/THREAD/cmd_tlm/thread_tlm.txt +18 -0
- data/test/performance/config/targets/THREAD/cmd_tlm_server.txt +6 -0
- data/test/performance/config/targets/THREAD/lib/thread_interface.rb +22 -0
- data/test/performance/config/targets/THREAD/screens/status.txt +25 -0
- data/test/performance/config/targets/THREAD/target.txt +7 -0
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +28 -0
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +68 -0
- data/test/performance/config/tools/data_viewer/data_viewer.txt +11 -0
- data/test/performance/config/tools/handbook_creator/default_toc.xsl +59 -0
- data/test/performance/config/tools/handbook_creator/handbook_creator.txt +66 -0
- data/test/performance/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
- data/test/performance/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
- data/test/performance/config/tools/handbook_creator/templates/footer.html.erb +9 -0
- data/test/performance/config/tools/handbook_creator/templates/header.html.erb +25 -0
- data/test/performance/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
- data/test/performance/config/tools/handbook_creator/templates/nav.html.erb +27 -0
- data/test/performance/config/tools/handbook_creator/templates/overview.html.erb +1 -0
- data/test/performance/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
- data/test/performance/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
- data/test/performance/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
- data/test/performance/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
- data/test/performance/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
- data/test/performance/config/tools/handbook_creator/templates/title.html.erb +1 -0
- data/test/performance/config/tools/launcher/launcher_packets.txt +34 -0
- data/test/performance/config/tools/launcher/launcher_threads.txt +83 -0
- data/test/performance/config/tools/limits_monitor/README.txt +1 -0
- data/test/performance/config/tools/opengl_builder/README.txt +1 -0
- data/test/performance/config/tools/script_runner/script_runner.txt +3 -0
- data/test/performance/config/tools/table_manager/ConfigTables_def.txt +8 -0
- data/test/performance/config/tools/table_manager/ExampleTableDefinition.txt +24 -0
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -0
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -0
- data/test/performance/config/tools/table_manager/PPSSelectionTable_def.txt +8 -0
- data/test/performance/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -0
- data/test/performance/config/tools/test_runner/test_runner.txt +17 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor.txt +13 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor2.txt +2 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor3.txt +2 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor4.txt +2 -0
- data/test/performance/config/tools/tlm_grapher/README.txt +1 -0
- data/test/performance/config/tools/tlm_grapher/tlm_grapher.txt +204 -0
- data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +13 -0
- data/test/performance/lib/packet_target.rb +126 -0
- data/test/performance/lib/thread_target.rb +120 -0
- data/test/performance/lib/user_version.rb +3 -0
- data/test/performance/outputs/handbooks/README.txt +1 -0
- data/test/performance/outputs/logs/README.txt +1 -0
- data/test/performance/outputs/saved_config/README.txt +1 -0
- data/test/performance/outputs/tables/README.txt +1 -0
- data/test/performance/outputs/tmp/README.txt +1 -0
- data/test/performance/procedures/checks.rb +11 -0
- data/test/performance/procedures/clear_util.rb +7 -0
- data/test/performance/procedures/collect.rb +18 -0
- data/test/performance/procedures/collect_util.rb +14 -0
- data/test/performance/procedures/cosmos_api_test.rb +293 -0
- data/test/performance/procedures/disconnect.rb +29 -0
- data/test/performance/procedures/example_test.rb +182 -0
- data/test/performance/procedures/plot_test.rb +8 -0
- data/test/performance/procedures/procedure.rb +3 -0
- data/test/performance/procedures/run_example_test.rb +3 -0
- data/test/performance/procedures/test.rb +51 -0
- data/test/performance/tools/CmdExtractor +14 -0
- data/test/performance/tools/CmdExtractor.bat +59 -0
- data/test/performance/tools/CmdSender +14 -0
- data/test/performance/tools/CmdSender.bat +59 -0
- data/test/performance/tools/CmdTlmServer +16 -0
- data/test/performance/tools/CmdTlmServer.bat +59 -0
- data/test/performance/tools/CmdTlmServerMemProf +20 -0
- data/test/performance/tools/CmdTlmServerMemProf.bat +59 -0
- data/test/performance/tools/DataViewer +14 -0
- data/test/performance/tools/DataViewer.bat +59 -0
- data/test/performance/tools/HandbookCreator +14 -0
- data/test/performance/tools/HandbookCreator.bat +61 -0
- data/test/performance/tools/Launcher +14 -0
- data/test/performance/tools/Launcher.bat +59 -0
- data/test/performance/tools/LimitsMonitor +14 -0
- data/test/performance/tools/LimitsMonitor.bat +59 -0
- data/test/performance/tools/OpenGLBuilder +14 -0
- data/test/performance/tools/OpenGLBuilder.bat +59 -0
- data/test/performance/tools/PacketTarget +14 -0
- data/test/performance/tools/PacketTarget.bat +59 -0
- data/test/performance/tools/PacketViewer +14 -0
- data/test/performance/tools/PacketViewer.bat +59 -0
- data/test/performance/tools/Replay +14 -0
- data/test/performance/tools/Replay.bat +59 -0
- data/test/performance/tools/ScpiTarget +14 -0
- data/test/performance/tools/ScpiTarget.bat +59 -0
- data/test/performance/tools/ScriptRunner +14 -0
- data/test/performance/tools/ScriptRunner.bat +59 -0
- data/test/performance/tools/TableManager +14 -0
- data/test/performance/tools/TableManager.bat +59 -0
- data/test/performance/tools/TestRunner +14 -0
- data/test/performance/tools/TestRunner.bat +59 -0
- data/test/performance/tools/ThreadTarget +14 -0
- data/test/performance/tools/ThreadTarget.bat +59 -0
- data/test/performance/tools/TlmExtractor +14 -0
- data/test/performance/tools/TlmExtractor.bat +59 -0
- data/test/performance/tools/TlmGrapher +14 -0
- data/test/performance/tools/TlmGrapher.bat +59 -0
- data/test/performance/tools/TlmGrapherMemProf +19 -0
- data/test/performance/tools/TlmGrapherMemProf.bat +59 -0
- data/test/performance/tools/TlmViewer +14 -0
- data/test/performance/tools/TlmViewer.bat +59 -0
- data/test/performance/tools/TlmViewerMemProf +19 -0
- data/test/performance/tools/TlmViewerMemProf.bat +59 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/Launcher.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -0
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/Replay.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -0
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TableManager.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -0
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
- metadata +1964 -0
|
@@ -0,0 +1,292 @@
|
|
|
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 Lesser 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 'cosmos/ext/packet' if RUBY_ENGINE == 'ruby' and !ENV['COSMOS_NO_EXT']
|
|
12
|
+
|
|
13
|
+
module Cosmos
|
|
14
|
+
|
|
15
|
+
# Maintains knowledge of an item in a Structure. Multiple StructureItems
|
|
16
|
+
# compose a Structure.
|
|
17
|
+
class StructureItem
|
|
18
|
+
include Comparable
|
|
19
|
+
|
|
20
|
+
# Valid data types adds :DERIVED to those defined by BinaryAccessor
|
|
21
|
+
DATA_TYPES = BinaryAccessor::DATA_TYPES << :DERIVED
|
|
22
|
+
|
|
23
|
+
# Name is used by higher level classes to access the StructureItem.
|
|
24
|
+
# @return [String] Name of the item
|
|
25
|
+
attr_reader :name
|
|
26
|
+
|
|
27
|
+
# Indicates where in the binary buffer the StructureItem exists.
|
|
28
|
+
# @return [Integer] 0 based bit offset
|
|
29
|
+
attr_reader :bit_offset
|
|
30
|
+
|
|
31
|
+
# The number of bits which represent this StructureItem in the binary buffer.
|
|
32
|
+
# @return [Integer] Size in bits
|
|
33
|
+
attr_reader :bit_size
|
|
34
|
+
|
|
35
|
+
# The data type is what kind of data this StructureItem
|
|
36
|
+
# represents when extracted from the binary buffer. :INT and :UINT are
|
|
37
|
+
# turned into Integers (Ruby Fixnum). :FLOAT are turned into floating point
|
|
38
|
+
# numbers (Ruby Float). :STRING is turned into an ASCII string (Ruby
|
|
39
|
+
# String). :BLOCK is turned into a binary buffer (Ruby String). :DERIVED is
|
|
40
|
+
# interpreted by the subclass and can result in any type.
|
|
41
|
+
# @return [Symbol] {DATA_TYPES}
|
|
42
|
+
attr_reader :data_type
|
|
43
|
+
|
|
44
|
+
# Used to interpret how to read the item from the binary data buffer.
|
|
45
|
+
# @return [Symbol] {BinaryAccessor::ENDIANNESS}
|
|
46
|
+
attr_reader :endianness
|
|
47
|
+
|
|
48
|
+
# The total number of bits in the binary buffer that create the array.
|
|
49
|
+
# The array size can be set to nil to indicate the StructureItem is
|
|
50
|
+
# not represented as an array. For example, if the bit_size is 8 bits,
|
|
51
|
+
# an array_size of 16 would result in two 8 bit items.
|
|
52
|
+
# @return [Integer, nil] Array size of the item in bits
|
|
53
|
+
attr_reader :array_size
|
|
54
|
+
|
|
55
|
+
# How to handle overflow for :INT, :UINT, :STRING, and :BLOCK data types
|
|
56
|
+
# Note: Has no meaning for :FLOAT data types
|
|
57
|
+
# @return [Symbol] {BinaryAccessor::OVERFLOW_TYPES}
|
|
58
|
+
attr_reader :overflow
|
|
59
|
+
|
|
60
|
+
# A large buffer size in bits (1 Megabyte)
|
|
61
|
+
LARGE_BUFFER_SIZE_BITS = 1024 * 1024 * 8
|
|
62
|
+
|
|
63
|
+
# Create a StructureItem by setting all the attributes. It
|
|
64
|
+
# calls all the setter routines to do the attribute verification and then
|
|
65
|
+
# verifies the overall integrity.
|
|
66
|
+
#
|
|
67
|
+
# @param name [String] The item name
|
|
68
|
+
# @param bit_offset [Integer] Offset to the item starting at 0
|
|
69
|
+
# @param bit_size [Integer] Size of the items in bits
|
|
70
|
+
# @param data_type [Symbol] {DATA_TYPES}
|
|
71
|
+
# @param endianness [Symbol] {BinaryAccessor::ENDIANNESS}
|
|
72
|
+
# @param array_size [Integer, nil] Size of the array item in bits. For
|
|
73
|
+
# example, if the bit_size is 8, an array_size of 16 holds two values.
|
|
74
|
+
def initialize(name, bit_offset, bit_size, data_type, endianness, array_size = nil, overflow = :ERROR)
|
|
75
|
+
@structure_item_constructed = false
|
|
76
|
+
# Assignment order matters due to verifications!
|
|
77
|
+
self.name = name
|
|
78
|
+
self.endianness = endianness
|
|
79
|
+
self.data_type = data_type
|
|
80
|
+
self.bit_offset = bit_offset
|
|
81
|
+
self.bit_size = bit_size
|
|
82
|
+
self.array_size = array_size
|
|
83
|
+
self.overflow = overflow
|
|
84
|
+
@structure_item_constructed = true
|
|
85
|
+
verify_overall()
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def name=(name)
|
|
89
|
+
raise ArgumentError, "name must be a String but is a #{name.class}" unless String === name
|
|
90
|
+
raise ArgumentError, "name must contain at least one character" if name.empty?
|
|
91
|
+
|
|
92
|
+
@name = name.upcase.clone.freeze
|
|
93
|
+
verify_overall() if @structure_item_constructed
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def endianness=(endianness)
|
|
97
|
+
raise ArgumentError, "#{@name}: endianness must be a Symbol" unless Symbol === endianness
|
|
98
|
+
unless BinaryAccessor::ENDIANNESS.include? endianness
|
|
99
|
+
raise ArgumentError, "#{@name}: unknown endianness: #{endianness} - Must be :BIG_ENDIAN or :LITTLE_ENDIAN"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
@endianness = endianness
|
|
103
|
+
verify_overall() if @structure_item_constructed
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def bit_offset=(bit_offset)
|
|
107
|
+
if 0.class == Integer
|
|
108
|
+
# Ruby version >= 2.4.0
|
|
109
|
+
raise ArgumentError, "#{@name}: bit_offset must be an Integer" unless Integer === bit_offset
|
|
110
|
+
else
|
|
111
|
+
# Ruby version < 2.4.0
|
|
112
|
+
raise ArgumentError, "#{@name}: bit_offset must be a Fixnum" unless Fixnum === bit_offset
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
byte_aligned = ((bit_offset % 8) == 0)
|
|
116
|
+
if (@data_type == :FLOAT or @data_type == :STRING or @data_type == :BLOCK) and !byte_aligned
|
|
117
|
+
raise ArgumentError, "#{@name}: bit_offset for :FLOAT, :STRING, and :BLOCK items must be byte aligned"
|
|
118
|
+
end
|
|
119
|
+
if @data_type == :DERIVED and bit_offset != 0
|
|
120
|
+
raise ArgumentError, "#{@name}: DERIVED items must have bit_offset of zero"
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
@bit_offset = bit_offset
|
|
124
|
+
verify_overall() if @structure_item_constructed
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def bit_size=(bit_size)
|
|
128
|
+
if 0.class == Integer
|
|
129
|
+
# Ruby version >= 2.4.0
|
|
130
|
+
raise ArgumentError, "#{name}: bit_size must be an Integer" unless Integer === bit_size
|
|
131
|
+
else
|
|
132
|
+
# Ruby version < 2.4.0
|
|
133
|
+
raise ArgumentError, "#{name}: bit_size must be a Fixnum" unless Fixnum === bit_size
|
|
134
|
+
end
|
|
135
|
+
byte_multiple = ((bit_size % 8) == 0)
|
|
136
|
+
if bit_size <= 0 and (@data_type == :INT or @data_type == :UINT or @data_type == :FLOAT)
|
|
137
|
+
raise ArgumentError, "#{@name}: bit_size cannot be negative or zero for :INT, :UINT, and :FLOAT items: #{bit_size}"
|
|
138
|
+
end
|
|
139
|
+
raise ArgumentError, "#{@name}: bit_size for STRING and BLOCK items must be byte multiples" if (@data_type == :STRING or @data_type == :BLOCK) and !byte_multiple
|
|
140
|
+
if @data_type == :FLOAT and bit_size != 32 and bit_size != 64
|
|
141
|
+
raise ArgumentError, "#{@name}: bit_size for FLOAT items must be 32 or 64. Given: #{bit_size}"
|
|
142
|
+
end
|
|
143
|
+
if @data_type == :DERIVED and bit_size != 0
|
|
144
|
+
raise ArgumentError, "#{@name}: DERIVED items must have bit_size of zero"
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
@bit_size = bit_size
|
|
148
|
+
verify_overall() if @structure_item_constructed
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def data_type=(data_type)
|
|
152
|
+
raise ArgumentError, "#{@name}: data_type must be a Symbol" unless Symbol === data_type
|
|
153
|
+
case data_type
|
|
154
|
+
when *DATA_TYPES
|
|
155
|
+
# Valid data_type
|
|
156
|
+
else
|
|
157
|
+
raise ArgumentError, "#{@name}: unknown data_type: #{data_type} - Must be :INT, :UINT, :FLOAT, :STRING, :BLOCK, or :DERIVED"
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
@data_type = data_type
|
|
161
|
+
verify_overall() if @structure_item_constructed
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def array_size=(array_size)
|
|
165
|
+
if array_size
|
|
166
|
+
if 0.class == Integer
|
|
167
|
+
# Ruby version >= 2.4.0
|
|
168
|
+
raise ArgumentError, "#{@name}: array_size must be an Integer" unless Integer === array_size
|
|
169
|
+
else
|
|
170
|
+
# Ruby version < 2.4.0
|
|
171
|
+
raise ArgumentError, "#{@name}: array_size must be a Fixnum" unless Fixnum === array_size
|
|
172
|
+
end
|
|
173
|
+
raise ArgumentError, "#{@name}: array_size must be a multiple of bit_size" unless (@bit_size == 0 or (array_size % @bit_size == 0) or array_size < 0)
|
|
174
|
+
raise ArgumentError, "#{@name}: bit_size cannot be negative or zero for array items" if @bit_size <= 0
|
|
175
|
+
end
|
|
176
|
+
@array_size = array_size
|
|
177
|
+
verify_overall() if @structure_item_constructed
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def overflow=(overflow)
|
|
181
|
+
raise ArgumentError, "#{@name}: overflow type must be a Symbol" unless Symbol === overflow
|
|
182
|
+
case overflow
|
|
183
|
+
when *BinaryAccessor::OVERFLOW_TYPES
|
|
184
|
+
# Valid overflow
|
|
185
|
+
else
|
|
186
|
+
raise ArgumentError, "#{@name}: unknown overflow type: #{overflow} - Must be :ERROR, :ERROR_ALLOW_HEX, :TRUNCATE, or :SATURATE"
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
@overflow = overflow
|
|
190
|
+
verify_overall() if @structure_item_constructed
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
if RUBY_ENGINE != 'ruby' or ENV['COSMOS_NO_EXT']
|
|
194
|
+
# Comparison Operator based on bit_offset. This means that StructureItems
|
|
195
|
+
# with different names or bit sizes are equal if they have the same bit
|
|
196
|
+
# offset.
|
|
197
|
+
def <=>(other_item)
|
|
198
|
+
other_bit_offset = other_item.bit_offset
|
|
199
|
+
other_bit_size = other_item.bit_size
|
|
200
|
+
|
|
201
|
+
# Handle same bit offset case
|
|
202
|
+
if (@bit_offset == 0) && (other_bit_offset == 0)
|
|
203
|
+
# Both bit_offsets are 0 so sort by bit_size
|
|
204
|
+
# This allows derived items with bit_size of 0 to be listed first
|
|
205
|
+
# Compare based on bit size
|
|
206
|
+
if @bit_size == other_bit_size
|
|
207
|
+
return 0
|
|
208
|
+
elsif @bit_size < other_bit_size
|
|
209
|
+
return -1
|
|
210
|
+
else
|
|
211
|
+
return 1
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
# Handle different bit offsets
|
|
216
|
+
if ((@bit_offset >= 0) && (other_bit_offset >= 0)) || ((@bit_offset < 0) && (other_bit_offset < 0))
|
|
217
|
+
# Both Have Same Sign
|
|
218
|
+
if @bit_offset == other_bit_offset
|
|
219
|
+
return 0
|
|
220
|
+
elsif @bit_offset < other_bit_offset
|
|
221
|
+
return -1
|
|
222
|
+
else
|
|
223
|
+
return 1
|
|
224
|
+
end
|
|
225
|
+
else
|
|
226
|
+
# Different Signs
|
|
227
|
+
if @bit_offset == other_bit_offset
|
|
228
|
+
return 0
|
|
229
|
+
elsif @bit_offset < other_bit_offset
|
|
230
|
+
return 1
|
|
231
|
+
else
|
|
232
|
+
return -1
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# Make a light weight clone of this item
|
|
239
|
+
def clone
|
|
240
|
+
item = super()
|
|
241
|
+
item.name = self.name.clone if self.name
|
|
242
|
+
item
|
|
243
|
+
end
|
|
244
|
+
alias dup clone
|
|
245
|
+
|
|
246
|
+
def to_hash
|
|
247
|
+
hash = {}
|
|
248
|
+
hash['name'] = self.name
|
|
249
|
+
hash['bit_offset'] = self.bit_offset
|
|
250
|
+
hash['bit_size'] = self.bit_size
|
|
251
|
+
hash['data_type'] = self.data_type
|
|
252
|
+
hash['endianness'] = self.endianness
|
|
253
|
+
hash['array_size'] = self.array_size
|
|
254
|
+
hash['overflow'] = self.overflow
|
|
255
|
+
hash
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
protected
|
|
259
|
+
|
|
260
|
+
# Verifies overall integrity of the StructureItem by checking for correct
|
|
261
|
+
# LITTLE_ENDIAN bit fields
|
|
262
|
+
def verify_overall
|
|
263
|
+
# Verify negative bit_offset conditions
|
|
264
|
+
if @bit_offset < 0
|
|
265
|
+
raise ArgumentError, "#{@name}: Can't define an item with negative bit_size #{@bit_size} and negative bit_offset #{@bit_offset}" if @bit_size < 0
|
|
266
|
+
raise ArgumentError, "#{@name}: Can't define an item with negative array_size #{@array_size} and negative bit_offset #{@bit_offset}" if @array_size and @array_size < 0
|
|
267
|
+
if @array_size and @array_size > @bit_offset.abs
|
|
268
|
+
raise ArgumentError, "#{@name}: Can't define an item with array_size #{@array_size} greater than negative bit_offset #{@bit_offset}"
|
|
269
|
+
elsif @bit_size > @bit_offset.abs
|
|
270
|
+
raise ArgumentError, "#{@name}: Can't define an item with bit_size #{@bit_size} greater than negative bit_offset #{@bit_offset}"
|
|
271
|
+
end
|
|
272
|
+
else
|
|
273
|
+
# Check for byte alignment and byte multiple
|
|
274
|
+
byte_aligned = ((@bit_offset % 8) == 0)
|
|
275
|
+
|
|
276
|
+
# Verify little-endian bit fields
|
|
277
|
+
if @endianness == :LITTLE_ENDIAN and (@data_type == :INT or @data_type == :UINT) and !(byte_aligned and (@bit_size == 8 or @bit_size == 16 or @bit_size == 32 or @bit_size == 64))
|
|
278
|
+
# Bitoffset always refers to the most significant bit of a bitfield
|
|
279
|
+
num_bytes = (((@bit_offset % 8) + @bit_size - 1) / 8) + 1
|
|
280
|
+
upper_bound = @bit_offset / 8
|
|
281
|
+
lower_bound = upper_bound - num_bytes + 1
|
|
282
|
+
|
|
283
|
+
if lower_bound < 0
|
|
284
|
+
raise ArgumentError, "#{@name}: LITTLE_ENDIAN bitfield with bit_offset #{@bit_offset} and bit_size #{@bit_size} is invalid"
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
end # class StructureItem
|
|
291
|
+
|
|
292
|
+
end # module Cosmos
|
|
@@ -0,0 +1,444 @@
|
|
|
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 'cosmos/packets/packet_config'
|
|
12
|
+
require 'cosmos/ext/telemetry' if RUBY_ENGINE == 'ruby' and !ENV['COSMOS_NO_EXT']
|
|
13
|
+
|
|
14
|
+
module Cosmos
|
|
15
|
+
|
|
16
|
+
# Telemetry uses PacketConfig to parse the command and telemetry
|
|
17
|
+
# configuration files. It contains all the knowledge of which telemetry packets
|
|
18
|
+
# exist in the system and how to access them. This class is the API layer
|
|
19
|
+
# which other classes use to access telemetry.
|
|
20
|
+
#
|
|
21
|
+
# This should not be confused with the Api module which implements the JSON
|
|
22
|
+
# API that is used by tools when accessing the Server. The Api module always
|
|
23
|
+
# provides Ruby primatives where the Telemetry class can return actual
|
|
24
|
+
# Packet or PacketItem objects. While there are some overlapping methods between
|
|
25
|
+
# the two, these are separate interfaces into the system.
|
|
26
|
+
class Telemetry
|
|
27
|
+
attr_accessor :config
|
|
28
|
+
|
|
29
|
+
LATEST_PACKET_NAME = 'LATEST'.freeze
|
|
30
|
+
|
|
31
|
+
# @param config [PacketConfig] Packet configuration to use to access the
|
|
32
|
+
# telemetry
|
|
33
|
+
def initialize(config)
|
|
34
|
+
@config = config
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# (see PacketConfig#warnings)
|
|
38
|
+
def warnings
|
|
39
|
+
return @config.warnings
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @return [Array<String>] The telemetry target names (excluding UNKNOWN)
|
|
43
|
+
def target_names
|
|
44
|
+
result = @config.telemetry.keys.sort
|
|
45
|
+
result.delete('UNKNOWN'.freeze)
|
|
46
|
+
return result
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
if RUBY_ENGINE != 'ruby' or ENV['COSMOS_NO_EXT']
|
|
50
|
+
# @param target_name [String] The target name
|
|
51
|
+
# @return [Hash<packet_name=>Packet>] Hash of the telemetry packets for the given
|
|
52
|
+
# target name keyed by the packet name
|
|
53
|
+
def packets(target_name)
|
|
54
|
+
upcase_target_name = target_name.to_s.upcase
|
|
55
|
+
target_packets = @config.telemetry[upcase_target_name]
|
|
56
|
+
raise "Telemetry target '#{upcase_target_name}' does not exist" unless target_packets
|
|
57
|
+
target_packets
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# @param target_name [String] The target name
|
|
61
|
+
# @param packet_name [String] The packet name. Must be a defined packet name
|
|
62
|
+
# and not 'LATEST'.
|
|
63
|
+
# @return [Packet] The telemetry packet for the given target and packet name
|
|
64
|
+
def packet(target_name, packet_name)
|
|
65
|
+
target_packets = packets(target_name)
|
|
66
|
+
upcase_packet_name = packet_name.to_s.upcase
|
|
67
|
+
packet = target_packets[upcase_packet_name]
|
|
68
|
+
unless packet
|
|
69
|
+
upcase_target_name = target_name.to_s.upcase
|
|
70
|
+
raise "Telemetry packet '#{upcase_target_name} #{upcase_packet_name}' does not exist"
|
|
71
|
+
end
|
|
72
|
+
packet
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# @param target_name (see #packet)
|
|
76
|
+
# @param packet_name [String] The packet name. 'LATEST' can also be given
|
|
77
|
+
# to specify the last received (or defined if no packets have been
|
|
78
|
+
# received) packet within the given target that contains the
|
|
79
|
+
# item_name.
|
|
80
|
+
# @param item_name [String] The item name
|
|
81
|
+
# @return [Packet, PacketItem] The packet and the packet item
|
|
82
|
+
def packet_and_item(target_name, packet_name, item_name)
|
|
83
|
+
upcase_packet_name = packet_name.to_s.upcase
|
|
84
|
+
if upcase_packet_name == "LATEST".freeze
|
|
85
|
+
return_packet = newest_packet(target_name, item_name)
|
|
86
|
+
else
|
|
87
|
+
return_packet = packet(target_name, packet_name)
|
|
88
|
+
end
|
|
89
|
+
item = return_packet.get_item(item_name)
|
|
90
|
+
return [return_packet, item]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Return a telemetry value from a packet.
|
|
94
|
+
#
|
|
95
|
+
# @param target_name (see #packet_and_item)
|
|
96
|
+
# @param packet_name (see #packet_and_item)
|
|
97
|
+
# @param item_name (see #packet_and_item)
|
|
98
|
+
# @param value_type [Symbol] How to convert the item before returning.
|
|
99
|
+
# Must be one of {Packet::VALUE_TYPES}
|
|
100
|
+
# @return The value. :FORMATTED and :WITH_UNITS values are always returned
|
|
101
|
+
# as Strings. :RAW values will match their data_type. :CONVERTED values
|
|
102
|
+
# can be any type.
|
|
103
|
+
def value(target_name, packet_name, item_name, value_type = :CONVERTED)
|
|
104
|
+
packet, _ = packet_and_item(target_name, packet_name, item_name) # Handles LATEST
|
|
105
|
+
return packet.read(item_name, value_type)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Reads the specified list of items and returns their values and limits
|
|
109
|
+
# state.
|
|
110
|
+
#
|
|
111
|
+
# @param item_array [Array<Array(String String String)>] An array
|
|
112
|
+
# consisting of [target name, packet name, item name]
|
|
113
|
+
# @param value_types [Symbol|Array<Symbol>] How to convert the items before
|
|
114
|
+
# returning. A single symbol of {Packet::VALUE_TYPES}
|
|
115
|
+
# can be passed which will convert all items the same way. Or
|
|
116
|
+
# an array of symbols can be passed to control how each item is
|
|
117
|
+
# converted.
|
|
118
|
+
# @return [Array, Array, Array] The first array contains the item values and the
|
|
119
|
+
# second their limits state, and the third their limits settings which includes
|
|
120
|
+
# the red, yellow, and green (if given) limits values.
|
|
121
|
+
def values_and_limits_states(item_array, value_types = :CONVERTED)
|
|
122
|
+
items = []
|
|
123
|
+
|
|
124
|
+
# Verify item_array is a nested array
|
|
125
|
+
raise(ArgumentError, "item_array must be a nested array consisting of [[tgt,pkt,item],[tgt,pkt,item],...]") unless Array === item_array[0]
|
|
126
|
+
|
|
127
|
+
states = []
|
|
128
|
+
settings = []
|
|
129
|
+
limits_set = System.limits_set
|
|
130
|
+
|
|
131
|
+
raise(ArgumentError, "Passed #{item_array.length} items but only #{value_types.length} value types") if (Array === value_types) and item_array.length != value_types.length
|
|
132
|
+
|
|
133
|
+
value_type = value_types.intern unless Array === value_types
|
|
134
|
+
item_array.length.times do |index|
|
|
135
|
+
entry = item_array[index]
|
|
136
|
+
target_name = entry[0]
|
|
137
|
+
packet_name = entry[1]
|
|
138
|
+
item_name = entry[2]
|
|
139
|
+
value_type = value_types[index].intern if Array === value_types
|
|
140
|
+
|
|
141
|
+
packet, item = packet_and_item(target_name, packet_name, item_name) # Handles LATEST
|
|
142
|
+
items << packet.read(item_name, value_type)
|
|
143
|
+
limits = item.limits
|
|
144
|
+
states << limits.state
|
|
145
|
+
limits_values = limits.values
|
|
146
|
+
if limits_values
|
|
147
|
+
limits_settings = limits_values[limits_set]
|
|
148
|
+
else
|
|
149
|
+
limits_settings = nil
|
|
150
|
+
end
|
|
151
|
+
settings << limits_settings
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
return [items, states, settings]
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# @param target_name (see #packet)
|
|
159
|
+
# @param packet_name (see #packet)
|
|
160
|
+
# @return [Array<PacketItem>] The telemetry items for the given target and packet name
|
|
161
|
+
def items(target_name, packet_name)
|
|
162
|
+
return packet(target_name, packet_name).sorted_items
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# @param target_name (see #packet)
|
|
166
|
+
# @param packet_name (see #packet) The packet name. LATEST is supported.
|
|
167
|
+
# @return [Array<PacketItem>] The telemetry item names for the given target and packet name
|
|
168
|
+
def item_names(target_name, packet_name)
|
|
169
|
+
if LATEST_PACKET_NAME.casecmp(packet_name).zero?
|
|
170
|
+
target_upcase = target_name.to_s.upcase
|
|
171
|
+
target_latest_data = @config.latest_data[target_upcase]
|
|
172
|
+
raise "Telemetry Target '#{target_upcase}' does not exist" unless target_latest_data
|
|
173
|
+
item_names = target_latest_data.keys
|
|
174
|
+
else
|
|
175
|
+
tlm_packet = packet(target_name, packet_name)
|
|
176
|
+
item_names = []
|
|
177
|
+
tlm_packet.sorted_items.each {|item| item_names << item.name}
|
|
178
|
+
end
|
|
179
|
+
item_names
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# Set a telemetry value in a packet.
|
|
183
|
+
#
|
|
184
|
+
# @param target_name (see #packet_and_item)
|
|
185
|
+
# @param packet_name (see #packet_and_item)
|
|
186
|
+
# @param item_name (see #packet_and_item)
|
|
187
|
+
# @param value The value to set in the packet
|
|
188
|
+
# @param value_type (see #tlm)
|
|
189
|
+
def set_value(target_name, packet_name, item_name, value, value_type = :CONVERTED)
|
|
190
|
+
packet, _ = packet_and_item(target_name, packet_name, item_name)
|
|
191
|
+
packet.write(item_name, value, value_type)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# @param target_name (see #packet_and_item)
|
|
195
|
+
# @param item_name (see #packet_and_item)
|
|
196
|
+
# @return [Array<Packet>] The latest (most recently arrived) packets with
|
|
197
|
+
# the specified target and item.
|
|
198
|
+
def latest_packets(target_name, item_name)
|
|
199
|
+
target_upcase = target_name.to_s.upcase
|
|
200
|
+
item_upcase = item_name.to_s.upcase
|
|
201
|
+
target_latest_data = @config.latest_data[target_upcase]
|
|
202
|
+
raise "Telemetry target '#{target_upcase}' does not exist" unless target_latest_data
|
|
203
|
+
packets = @config.latest_data[target_upcase][item_upcase]
|
|
204
|
+
raise "Telemetry item '#{target_upcase} #{LATEST_PACKET_NAME} #{item_upcase}' does not exist" unless packets
|
|
205
|
+
return packets
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# @param target_name (see #packet_and_item)
|
|
209
|
+
# @param item_name (see #packet_and_item)
|
|
210
|
+
# @return [Packet] The packet with the most recent timestamp that contains
|
|
211
|
+
# the specified target and item.
|
|
212
|
+
def newest_packet(target_name, item_name)
|
|
213
|
+
# Handle LATEST_PACKET_NAME - Lookup packets for this target/item
|
|
214
|
+
packets = latest_packets(target_name, item_name)
|
|
215
|
+
|
|
216
|
+
# Find packet with newest timestamp
|
|
217
|
+
newest_packet = nil
|
|
218
|
+
newest_received_time = nil
|
|
219
|
+
packets.each do |packet|
|
|
220
|
+
received_time = packet.received_time
|
|
221
|
+
if newest_received_time
|
|
222
|
+
# See if the received time from this packet is newer.
|
|
223
|
+
# Having the >= makes this method return the last defined packet
|
|
224
|
+
# whether the timestamps are both nil or both equal.
|
|
225
|
+
if received_time and received_time >= newest_received_time
|
|
226
|
+
newest_packet = packet
|
|
227
|
+
newest_received_time = newest_packet.received_time
|
|
228
|
+
end
|
|
229
|
+
else
|
|
230
|
+
# No received time yet so take this packet
|
|
231
|
+
newest_packet = packet
|
|
232
|
+
newest_received_time = newest_packet.received_time
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
return newest_packet
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# Identifies an unknown buffer of data as a defined packet and sets the
|
|
239
|
+
# packet's data to the given buffer. Identifying a packet uses the fields
|
|
240
|
+
# marked as ID_ITEM to identify if the buffer passed represents the
|
|
241
|
+
# packet defined. Incorrectly sized buffers are still processed but an
|
|
242
|
+
# error is logged.
|
|
243
|
+
#
|
|
244
|
+
# Note: This affects all subsequent requests for the packet (for example
|
|
245
|
+
# using packet) which is why the method is marked with a bang!
|
|
246
|
+
#
|
|
247
|
+
# @param packet_data [String] The binary packet data buffer
|
|
248
|
+
# @param target_names [Array<String>] List of target names to limit the search. The
|
|
249
|
+
# default value of nil means to search all known targets.
|
|
250
|
+
# @return [Packet] The identified packet with its data set to the given
|
|
251
|
+
# packet_data buffer. Returns nil if no packet could be identified.
|
|
252
|
+
def identify!(packet_data, target_names = nil)
|
|
253
|
+
identified_packet = identify(packet_data, target_names)
|
|
254
|
+
identified_packet.buffer = packet_data if identified_packet
|
|
255
|
+
return identified_packet
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
# Finds a packet from the Current Value Table that matches the given data
|
|
259
|
+
# and returns it. Does not fill the packets buffer. Use identify! to update the CVT.
|
|
260
|
+
#
|
|
261
|
+
# @param packet_data [String] The binary packet data buffer
|
|
262
|
+
# @param target_names [Array<String>] List of target names to limit the search. The
|
|
263
|
+
# default value of nil means to search all known targets.
|
|
264
|
+
# @return [Packet] The identified packet, Returns nil if no packet could be identified.
|
|
265
|
+
def identify(packet_data, target_names = nil)
|
|
266
|
+
target_names = target_names() unless target_names
|
|
267
|
+
|
|
268
|
+
target_names.each do |target_name|
|
|
269
|
+
target_packets = nil
|
|
270
|
+
begin
|
|
271
|
+
target_packets = packets(target_name)
|
|
272
|
+
rescue RuntimeError
|
|
273
|
+
# No telemetry for this target
|
|
274
|
+
next
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# Iterate through the packets and see if any represent the buffer
|
|
278
|
+
target_packets.each do |packet_name, packet|
|
|
279
|
+
return packet if packet.identify?(packet_data)
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
return nil
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
def identify_and_define_packet(packet, target_names = nil)
|
|
287
|
+
if !packet.identified?
|
|
288
|
+
identified_packet = identify(packet.buffer(false), target_names)
|
|
289
|
+
return nil unless identified_packet
|
|
290
|
+
identified_packet = identified_packet.clone
|
|
291
|
+
identified_packet.buffer = packet.buffer
|
|
292
|
+
identified_packet.received_time = packet.received_time
|
|
293
|
+
return identified_packet
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
if !packet.defined?
|
|
297
|
+
begin
|
|
298
|
+
identified_packet = self.packet(packet.target_name, packet.packet_name)
|
|
299
|
+
rescue RuntimeError
|
|
300
|
+
return nil
|
|
301
|
+
end
|
|
302
|
+
identified_packet = identified_packet.clone
|
|
303
|
+
identified_packet.buffer = packet.buffer
|
|
304
|
+
identified_packet.received_time = packet.received_time
|
|
305
|
+
return identified_packet
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
return packet
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
# Updates the specified packet with the given packet data. Raises an error
|
|
312
|
+
# if the packet could not be found.
|
|
313
|
+
#
|
|
314
|
+
# Note: This affects all subsequent requests for the packet which is why
|
|
315
|
+
# the method is marked with a bang!
|
|
316
|
+
#
|
|
317
|
+
# @param target_name (see #packet)
|
|
318
|
+
# @param packet_name (see #packet)
|
|
319
|
+
# @param packet_data (see #identify_tlm!)
|
|
320
|
+
# @return [Packet] The packet with its data set to the given packet_data
|
|
321
|
+
# buffer.
|
|
322
|
+
def update!(target_name, packet_name, packet_data)
|
|
323
|
+
identified_packet = packet(target_name, packet_name)
|
|
324
|
+
identified_packet.buffer = packet_data
|
|
325
|
+
return identified_packet
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
# Assigns a limits change callback to all telemetry packets
|
|
329
|
+
#
|
|
330
|
+
# @param limits_change_callback
|
|
331
|
+
def limits_change_callback=(limits_change_callback)
|
|
332
|
+
@config.telemetry.each do |target_name, packets|
|
|
333
|
+
packets.each do |packet_name, packet|
|
|
334
|
+
packet.limits_change_callback = limits_change_callback
|
|
335
|
+
end
|
|
336
|
+
end
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
# Iterates through all the telemetry packets and marks them stale if they
|
|
340
|
+
# haven't been received for over the System.staleness_seconds value.
|
|
341
|
+
#
|
|
342
|
+
# @return [Array(Packet)] Array of the stale packets
|
|
343
|
+
def check_stale
|
|
344
|
+
stale = []
|
|
345
|
+
time = Time.now.sys
|
|
346
|
+
@config.telemetry.each do |target_name, target_packets|
|
|
347
|
+
target_packets.each do |packet_name, packet|
|
|
348
|
+
if packet.received_time and (!packet.stale) and (time - packet.received_time > System.staleness_seconds)
|
|
349
|
+
packet.set_stale
|
|
350
|
+
stale << packet
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
end
|
|
354
|
+
stale
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
# @param with_limits_only [Boolean] Return only the stale packets
|
|
358
|
+
# that have limits items and thus affect the overall limits
|
|
359
|
+
# state of the system
|
|
360
|
+
# @param target [String] Target name or nil for all targets
|
|
361
|
+
# @return [Array(Packet)] Array of the stale packets
|
|
362
|
+
def stale(with_limits_only = false, target = nil)
|
|
363
|
+
if target && !target_names.include?(target)
|
|
364
|
+
raise "Telemetry target '#{target.upcase}' does not exist"
|
|
365
|
+
end
|
|
366
|
+
stale = []
|
|
367
|
+
@config.telemetry.each do |target_name, target_packets|
|
|
368
|
+
next if (target && target != target_name)
|
|
369
|
+
next if target_name == 'UNKNOWN'
|
|
370
|
+
target_packets.each do |packet_name, packet|
|
|
371
|
+
if packet.stale
|
|
372
|
+
next if (with_limits_only && packet.limits_items.empty?)
|
|
373
|
+
stale << packet
|
|
374
|
+
end
|
|
375
|
+
end
|
|
376
|
+
end
|
|
377
|
+
stale
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
# Clears the received_count value on every packet in every target
|
|
381
|
+
def clear_counters
|
|
382
|
+
@config.telemetry.each do |target_name, target_packets|
|
|
383
|
+
target_packets.each do |packet_name, packet|
|
|
384
|
+
packet.received_count = 0
|
|
385
|
+
end
|
|
386
|
+
end
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
# Resets metadata on every packet in every target
|
|
390
|
+
def reset
|
|
391
|
+
@config.telemetry.each do |target_name, target_packets|
|
|
392
|
+
target_packets.each do |packet_name, packet|
|
|
393
|
+
packet.reset
|
|
394
|
+
end
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
# Returns the first non-hidden packet
|
|
399
|
+
def first_non_hidden
|
|
400
|
+
@config.telemetry.each do |target_name, target_packets|
|
|
401
|
+
next if target_name == 'UNKNOWN'
|
|
402
|
+
target_packets.each do |packet_name, packet|
|
|
403
|
+
return packet unless packet.hidden
|
|
404
|
+
end
|
|
405
|
+
end
|
|
406
|
+
nil
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
# Returns an array with a "TARGET_NAME PACKET_NAME ITEM_NAME" string for every item in the system
|
|
410
|
+
def all_item_strings(include_hidden = false, splash = nil)
|
|
411
|
+
strings = []
|
|
412
|
+
tnames = target_names()
|
|
413
|
+
total = tnames.length.to_f
|
|
414
|
+
tnames.each_with_index do |target_name, index|
|
|
415
|
+
if splash
|
|
416
|
+
splash.message = "Processing #{target_name} telemetry"
|
|
417
|
+
splash.progress = index / total
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
ignored_items = System.targets[target_name].ignored_items
|
|
421
|
+
|
|
422
|
+
packets(target_name).each do |packet_name, packet|
|
|
423
|
+
# We don't audit against hidden or disabled packets
|
|
424
|
+
next if !include_hidden and (packet.hidden || packet.disabled)
|
|
425
|
+
packet.items.each_key do |item_name|
|
|
426
|
+
# Skip ignored items
|
|
427
|
+
next if !include_hidden and ignored_items.include? item_name
|
|
428
|
+
strings << "#{target_name} #{packet_name} #{item_name}"
|
|
429
|
+
end
|
|
430
|
+
end
|
|
431
|
+
end
|
|
432
|
+
strings
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
# @return [Hash{String=>Hash{String=>Packet}}] Hash of all the telemetry
|
|
436
|
+
# packets keyed by the target name. The value is another hash keyed by the
|
|
437
|
+
# packet name returning the packet.
|
|
438
|
+
def all
|
|
439
|
+
@config.telemetry
|
|
440
|
+
end
|
|
441
|
+
|
|
442
|
+
end # class Telemetry
|
|
443
|
+
|
|
444
|
+
end # module Cosmos
|