cosmos 3.5.1 → 3.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -1
- data/.gitattributes +3 -3
- data/.gitignore +48 -48
- data/.travis.yml +8 -8
- data/CONTRIBUTING.txt +50 -50
- data/Gemfile +10 -10
- data/Guardfile +27 -27
- data/LICENSE.txt +879 -879
- data/Manifest.txt +1414 -1414
- data/README.md +111 -111
- data/Rakefile +218 -214
- data/autohotkey/config/data/diamond.STL +57 -57
- data/autohotkey/config/system/system.txt +34 -34
- data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/autohotkey/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/autohotkey/config/targets/COSMOS/target.txt +5 -5
- data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -121
- data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +270 -270
- data/autohotkey/config/targets/INST/cmd_tlm_server.txt +5 -5
- data/autohotkey/config/targets/INST/lib/example_limits_response.rb +30 -30
- data/autohotkey/config/targets/INST/lib/sim_inst.rb +305 -305
- data/autohotkey/config/targets/INST/screens/adcs.txt +46 -46
- data/autohotkey/config/targets/INST/screens/array.txt +7 -7
- data/autohotkey/config/targets/INST/screens/block.txt +8 -8
- data/autohotkey/config/targets/INST/screens/commanding.txt +30 -30
- data/autohotkey/config/targets/INST/screens/graphs.txt +14 -14
- data/autohotkey/config/targets/INST/screens/ground.txt +25 -25
- data/autohotkey/config/targets/INST/screens/health_status.txt +33 -33
- data/autohotkey/config/targets/INST/screens/hs.txt +49 -49
- data/autohotkey/config/targets/INST/screens/image.txt +21 -21
- data/autohotkey/config/targets/INST/screens/latest.txt +23 -23
- data/autohotkey/config/targets/INST/screens/mech.txt +25 -25
- data/autohotkey/config/targets/INST/screens/other.txt +25 -25
- data/autohotkey/config/targets/INST/screens/params.txt +25 -25
- data/autohotkey/config/targets/INST/screens/tabs.txt +68 -68
- data/autohotkey/config/targets/INST/target.txt +26 -26
- data/autohotkey/config/targets/META/cmd_tlm/meta_cmd.txt +10 -10
- data/autohotkey/config/targets/META/cmd_tlm/meta_tlm.txt +9 -9
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
- data/autohotkey/config/targets/SYSTEM/screens/error.txt +11 -11
- data/autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt +22 -22
- data/autohotkey/config/tools/data_viewer/data_viewer.txt +11 -11
- data/autohotkey/config/tools/handbook_creator/handbook_creator.txt +49 -49
- data/autohotkey/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
- data/autohotkey/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/autohotkey/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/autohotkey/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/autohotkey/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/autohotkey/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/autohotkey/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/autohotkey/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/autohotkey/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/autohotkey/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/autohotkey/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
- data/autohotkey/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/autohotkey/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/autohotkey/config/tools/launcher/launcher.txt +38 -38
- data/autohotkey/config/tools/script_runner/script_runner.txt +3 -3
- data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +8 -8
- data/autohotkey/config/tools/table_manager/OneDimensionalTable_def.txt +19 -19
- data/autohotkey/config/tools/table_manager/TwoDimensionalTable_def.txt +248 -248
- data/autohotkey/config/tools/test_runner/test_runner.txt +8 -8
- data/autohotkey/config/tools/test_runner/test_runner2.txt +11 -11
- data/autohotkey/config/tools/test_runner/test_runner3.txt +6 -6
- data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
- data/autohotkey/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
- data/autohotkey/config/tools/tlm_extractor/tlm_extractor2.txt +9 -9
- data/autohotkey/config/tools/tlm_grapher/bad.txt +50 -50
- data/autohotkey/config/tools/tlm_grapher/temp1-4.txt +51 -51
- data/autohotkey/config/tools/tlm_grapher/test2.txt +111 -111
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer.txt +24 -24
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer2.txt +4 -4
- data/autohotkey/config/tools/tlm_viewer/tlm_viewer3.txt +3 -3
- data/autohotkey/lib/example_background_task.rb +42 -42
- data/autohotkey/lib/user_version.rb +3 -3
- data/autohotkey/procedures/clear_util.rb +7 -7
- data/autohotkey/procedures/collect_util.rb +14 -14
- data/autohotkey/procedures/example_test.rb +67 -67
- data/autohotkey/procedures/example_test2.rb +74 -74
- data/autohotkey/procedures/script_test.rb +17 -17
- data/autohotkey/procedures/syntax_error.rb +18 -18
- data/autohotkey/tools/CmdExtractorAHK +16 -16
- data/autohotkey/tools/CmdSender +14 -14
- data/autohotkey/tools/CmdSenderAHK +18 -18
- data/autohotkey/tools/CmdTlmServer +14 -14
- data/autohotkey/tools/CmdTlmServerAHK +28 -28
- data/autohotkey/tools/CmdTlmServerAHK2 +17 -17
- data/autohotkey/tools/DataViewer +14 -14
- data/autohotkey/tools/DataViewerAHK +17 -17
- data/autohotkey/tools/HandbookCreatorAHK +20 -20
- data/autohotkey/tools/LauncherAHK +17 -17
- data/autohotkey/tools/LimitsMonitorAHK +20 -20
- data/autohotkey/tools/OpenGLBuilderAHK +24 -24
- data/autohotkey/tools/PacketViewer +14 -14
- data/autohotkey/tools/PacketViewerAHK +18 -18
- data/autohotkey/tools/PacketViewerAHK2 +17 -17
- data/autohotkey/tools/Replay +14 -14
- data/autohotkey/tools/ReplayAHK +17 -17
- data/autohotkey/tools/ScriptRunner +14 -14
- data/autohotkey/tools/ScriptRunnerAHK +20 -20
- data/autohotkey/tools/ScriptRunnerAHK2 +17 -17
- data/autohotkey/tools/TableManager +14 -14
- data/autohotkey/tools/TableManagerAHK +30 -30
- data/autohotkey/tools/TestRunner +15 -15
- data/autohotkey/tools/TestRunnerAHK +17 -17
- data/autohotkey/tools/TestRunnerAHK2 +17 -17
- data/autohotkey/tools/TestRunnerAHK3 +17 -17
- data/autohotkey/tools/TestRunnerAHK4 +17 -17
- data/autohotkey/tools/TestRunnerAHK5 +17 -17
- data/autohotkey/tools/TestRunnerAHK6 +17 -17
- data/autohotkey/tools/TlmExtractor +15 -15
- data/autohotkey/tools/TlmExtractorAHK +19 -19
- data/autohotkey/tools/TlmExtractorAHK2 +16 -16
- data/autohotkey/tools/TlmExtractorAHK3 +16 -16
- data/autohotkey/tools/TlmGrapher +14 -14
- data/autohotkey/tools/TlmGrapherAHK +19 -19
- data/autohotkey/tools/TlmGrapherAHK2 +23 -23
- data/autohotkey/tools/TlmGrapherAHK3 +17 -17
- data/autohotkey/tools/TlmGrapherAHK4 +17 -17
- data/autohotkey/tools/TlmViewer +14 -14
- data/autohotkey/tools/TlmViewerAHK +28 -28
- data/autohotkey/tools/TlmViewerAHK2 +22 -22
- data/autohotkey/tools/TlmViewerAHK3 +23 -23
- data/autohotkey/tools/TlmViewerAHK4 +22 -22
- data/autohotkey/tools/TlmViewerAHK5 +18 -18
- data/autohotkey/tools/autohotkey.rb +37 -37
- data/autohotkey/tools/cmd_extractor.ahk +33 -33
- data/autohotkey/tools/cmd_sender.ahk +182 -182
- data/autohotkey/tools/cmd_tlm_server.ahk +90 -90
- data/autohotkey/tools/cmd_tlm_server2.ahk +45 -45
- data/autohotkey/tools/data_viewer.ahk +141 -141
- data/autohotkey/tools/handbook_creator.ahk +32 -32
- data/autohotkey/tools/launcher.ahk +41 -41
- data/autohotkey/tools/limits_monitor.ahk +123 -123
- data/autohotkey/tools/open_gl_builder.ahk +134 -134
- data/autohotkey/tools/packet_viewer.ahk +196 -196
- data/autohotkey/tools/packet_viewer2.ahk +9 -9
- data/autohotkey/tools/replay.ahk +104 -104
- data/autohotkey/tools/script_runner.ahk +589 -589
- data/autohotkey/tools/script_runner2.ahk +38 -38
- data/autohotkey/tools/table_manager.ahk +220 -220
- data/autohotkey/tools/test_runner.ahk +262 -262
- data/autohotkey/tools/test_runner2.ahk +53 -53
- data/autohotkey/tools/test_runner3.ahk +13 -13
- data/autohotkey/tools/test_runner5.ahk +8 -8
- data/autohotkey/tools/test_runner6.ahk +5 -5
- data/autohotkey/tools/tlm_extractor.ahk +296 -296
- data/autohotkey/tools/tlm_grapher.ahk +660 -660
- data/autohotkey/tools/tlm_grapher2.ahk +115 -115
- data/autohotkey/tools/tlm_grapher3.ahk +24 -24
- data/autohotkey/tools/tlm_viewer.ahk +133 -133
- data/autohotkey/tools/tlm_viewer2.ahk +50 -50
- data/autohotkey/tools/tlm_viewer4.ahk +4 -4
- data/autohotkey/tools/tlm_viewer5.ahk +20 -20
- data/bin/cosmos +96 -96
- data/bin/cstol_converter +1166 -1166
- data/bin/rubysloc +85 -85
- data/cosmos.gemspec +99 -99
- data/data/about.txt +4 -4
- data/data/crc.txt +326 -326
- data/data/diamond.STL +57 -57
- data/data/legal.txt +9 -9
- data/demo/Gemfile +10 -10
- data/demo/Launcher +16 -16
- data/demo/Launcher.bat +0 -0
- data/demo/Rakefile +77 -77
- data/demo/config/data/crc.txt +224 -226
- data/demo/config/data/diamond.STL +57 -57
- data/demo/config/data/meta_init.txt +4 -4
- data/demo/config/system/system.txt +35 -35
- data/demo/config/system/system2.txt +33 -33
- data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/demo/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/demo/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/demo/config/targets/COSMOS/screens/version.txt +19 -19
- data/demo/config/targets/COSMOS/target.txt +11 -11
- data/demo/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +2 -2
- data/demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +5 -5
- data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -6
- data/demo/config/targets/EXAMPLE/lib/example_interface.rb +22 -22
- data/demo/config/targets/EXAMPLE/target.txt +6 -6
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +121 -121
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +247 -247
- data/demo/config/targets/INST/cmd_tlm_server.txt +5 -5
- data/demo/config/targets/INST/lib/example_limits_response.rb +30 -30
- data/demo/config/targets/INST/lib/sim_inst.rb +305 -305
- data/demo/config/targets/INST/screens/adcs.txt +46 -46
- data/demo/config/targets/INST/screens/array.txt +15 -15
- data/demo/config/targets/INST/screens/block.txt +8 -8
- data/demo/config/targets/INST/screens/commanding.txt +30 -30
- data/demo/config/targets/INST/screens/graphs.txt +14 -14
- data/demo/config/targets/INST/screens/ground.txt +25 -25
- data/demo/config/targets/INST/screens/hs.txt +44 -44
- data/demo/config/targets/INST/screens/latest.txt +23 -23
- data/demo/config/targets/INST/screens/other.txt +29 -29
- data/demo/config/targets/INST/screens/tabs.txt +70 -70
- data/demo/config/targets/INST/target.txt +33 -33
- data/demo/config/targets/META/cmd_tlm/meta_cmd.txt +10 -10
- data/demo/config/targets/META/cmd_tlm/meta_tlm.txt +13 -13
- data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
- data/demo/config/targets/SYSTEM/cmd_tlm/override.txt +29 -29
- data/demo/config/targets/SYSTEM/screens/status.txt +12 -12
- data/demo/config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt +13 -13
- data/demo/config/targets/TEMPLATED/cmd_tlm/templated_tlm.txt +3 -3
- data/demo/config/targets/TEMPLATED/cmd_tlm_server.txt +6 -6
- data/demo/config/targets/TEMPLATED/lib/templated_interface.rb +56 -56
- data/demo/config/targets/TEMPLATED/target.txt +6 -6
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +39 -39
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +34 -34
- data/demo/config/tools/data_viewer/data_viewer.txt +11 -11
- data/demo/config/tools/handbook_creator/handbook_creator.txt +66 -66
- data/demo/config/tools/handbook_creator/templates/command_packets.html.erb +88 -88
- data/demo/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/demo/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/demo/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/demo/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/demo/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/demo/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/demo/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/demo/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/demo/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/demo/config/tools/handbook_creator/templates/telemetry_packets.html.erb +82 -82
- data/demo/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/demo/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/demo/config/tools/launcher/launcher.txt +45 -45
- data/demo/config/tools/launcher/launcher2.txt +45 -45
- data/demo/config/tools/script_runner/script_runner.txt +3 -3
- data/demo/config/tools/table_manager/ConfigTables_def.txt +8 -8
- data/demo/config/tools/table_manager/ExampleTableDefinition.txt +24 -24
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -25
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -25
- data/demo/config/tools/table_manager/PPSSelectionTable_def.txt +8 -8
- data/demo/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -248
- data/demo/config/tools/test_runner/test_runner.txt +17 -17
- data/demo/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
- data/demo/config/tools/tlm_extractor/tlm_extractor2.txt +2 -2
- data/demo/config/tools/tlm_extractor/tlm_extractor3.txt +2 -2
- data/demo/config/tools/tlm_extractor/tlm_extractor4.txt +2 -2
- data/demo/config/tools/tlm_viewer/tlm_viewer.txt +41 -41
- data/demo/lib/example_background_task.rb +57 -57
- data/demo/lib/example_target.rb +113 -113
- data/demo/lib/scpi_target.rb +74 -74
- data/demo/lib/user_version.rb +3 -3
- data/demo/procedures/checks.rb +11 -11
- data/demo/procedures/clear_util.rb +7 -7
- data/demo/procedures/collect.rb +18 -18
- data/demo/procedures/collect_util.rb +14 -14
- data/demo/procedures/cosmos_api_test.rb +293 -293
- data/demo/procedures/disconnect.rb +29 -29
- data/demo/procedures/example_test.rb +183 -183
- data/demo/procedures/plot_test.rb +8 -8
- data/demo/procedures/run_example_test.rb +3 -3
- data/demo/procedures/test.rb +51 -51
- data/demo/tools/CmdExtractor +16 -16
- data/demo/tools/CmdExtractor.bat +0 -0
- data/demo/tools/CmdSender +16 -16
- data/demo/tools/CmdSender.bat +0 -0
- data/demo/tools/CmdTlmServer +16 -16
- data/demo/tools/CmdTlmServer.bat +0 -0
- data/demo/tools/DataViewer +16 -16
- data/demo/tools/DataViewer.bat +0 -0
- data/demo/tools/ExampleTarget +16 -16
- data/demo/tools/ExampleTarget.bat +0 -0
- data/demo/tools/HandbookCreator +16 -16
- data/demo/tools/HandbookCreator.bat +0 -0
- data/demo/tools/Launcher +16 -16
- data/demo/tools/Launcher.bat +0 -0
- data/demo/tools/LimitsMonitor +16 -16
- data/demo/tools/LimitsMonitor.bat +0 -0
- data/demo/tools/OpenGLBuilder +16 -16
- data/demo/tools/OpenGLBuilder.bat +0 -0
- data/demo/tools/PacketViewer +16 -16
- data/demo/tools/PacketViewer.bat +0 -0
- data/demo/tools/Replay +16 -16
- data/demo/tools/Replay.bat +0 -0
- data/demo/tools/ScpiTarget +16 -16
- data/demo/tools/ScpiTarget.bat +0 -0
- data/demo/tools/ScriptRunner +16 -16
- data/demo/tools/ScriptRunner.bat +0 -0
- data/demo/tools/TableManager +16 -16
- data/demo/tools/TableManager.bat +0 -0
- data/demo/tools/TestRunner +16 -16
- data/demo/tools/TestRunner.bat +0 -0
- data/demo/tools/TlmExtractor +16 -16
- data/demo/tools/TlmExtractor.bat +0 -0
- data/demo/tools/TlmGrapher +16 -16
- data/demo/tools/TlmGrapher.bat +0 -0
- data/demo/tools/TlmViewer +16 -16
- data/demo/tools/TlmViewer.bat +0 -0
- data/demo/tools/ToolLaunch.bat +14 -5
- data/demo/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +16 -16
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +16 -16
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +16 -16
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +16 -16
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +16 -16
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +16 -16
- data/demo/tools/mac/Launcher.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +16 -16
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +16 -16
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +16 -16
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +16 -16
- data/demo/tools/mac/Replay.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +16 -16
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +16 -16
- data/demo/tools/mac/TableManager.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +16 -16
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +16 -16
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +16 -16
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +16 -16
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +10 -10
- data/demo/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/demo/tools/tool_launch.rb +38 -38
- data/ext/cosmos/ext/array/array.c +111 -111
- data/ext/cosmos/ext/array/extconf.rb +13 -13
- data/ext/cosmos/ext/buffered_file/buffered_file.c +167 -167
- data/ext/cosmos/ext/buffered_file/extconf.rb +13 -13
- data/ext/cosmos/ext/config_parser/config_parser.c +237 -237
- data/ext/cosmos/ext/config_parser/extconf.rb +13 -13
- data/ext/cosmos/ext/cosmos_io/cosmos_io.c +117 -117
- data/ext/cosmos/ext/cosmos_io/extconf.rb +13 -13
- data/ext/cosmos/ext/crc/crc.c +341 -341
- data/ext/cosmos/ext/crc/extconf.rb +12 -12
- data/ext/cosmos/ext/line_graph/extconf.rb +13 -13
- data/ext/cosmos/ext/line_graph/line_graph.c +501 -501
- data/ext/cosmos/ext/low_fragmentation_array/extconf.rb +12 -12
- data/ext/cosmos/ext/low_fragmentation_array/low_fragmentation_array.c +265 -265
- data/ext/cosmos/ext/packet/extconf.rb +13 -13
- data/ext/cosmos/ext/packet/packet.c +339 -339
- data/ext/cosmos/ext/platform/extconf.rb +13 -13
- data/ext/cosmos/ext/platform/platform.c +101 -101
- data/ext/cosmos/ext/polynomial_conversion/extconf.rb +13 -13
- data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +73 -73
- data/ext/cosmos/ext/string/extconf.rb +13 -13
- data/ext/cosmos/ext/string/string.c +49 -49
- data/ext/cosmos/ext/structure/structure.c +1428 -1428
- data/ext/cosmos/ext/tabbed_plots_config/extconf.rb +13 -13
- data/ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c +51 -51
- data/ext/cosmos/ext/telemetry/extconf.rb +13 -13
- data/ext/cosmos/ext/telemetry/telemetry.c +307 -307
- data/ext/mkrf_conf.rb +40 -40
- data/install/Gemfile +10 -10
- data/install/Launcher +16 -16
- data/install/Launcher.bat +0 -0
- data/install/Rakefile +77 -77
- data/install/config/data/crc.txt +151 -151
- data/install/config/system/system.txt +29 -29
- data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/install/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/install/config/targets/COSMOS/screens/version.txt +19 -19
- data/install/config/targets/COSMOS/target.txt +8 -8
- data/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
- data/install/config/tools/data_viewer/data_viewer.txt +3 -3
- data/install/config/tools/handbook_creator/handbook_creator.txt +49 -49
- data/install/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
- data/install/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/install/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/install/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/install/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/install/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/install/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/install/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/install/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/install/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/install/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
- data/install/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/install/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/install/config/tools/launcher/launcher.txt +40 -40
- data/install/config/tools/script_runner/script_runner.txt +3 -3
- data/install/config/tools/test_runner/test_runner.txt +8 -8
- data/install/config/tools/tlm_viewer/tlm_viewer.txt +5 -5
- data/install/lib/user_version.rb +3 -3
- data/install/tools/CmdExtractor +16 -16
- data/install/tools/CmdExtractor.bat +0 -0
- data/install/tools/CmdSender +16 -16
- data/install/tools/CmdSender.bat +0 -0
- data/install/tools/CmdTlmServer +16 -16
- data/install/tools/CmdTlmServer.bat +0 -0
- data/install/tools/DataViewer +16 -16
- data/install/tools/DataViewer.bat +0 -0
- data/install/tools/HandbookCreator +16 -16
- data/install/tools/HandbookCreator.bat +0 -0
- data/install/tools/Launcher +16 -16
- data/install/tools/Launcher.bat +0 -0
- data/install/tools/LimitsMonitor +16 -16
- data/install/tools/LimitsMonitor.bat +0 -0
- data/install/tools/OpenGLBuilder +16 -16
- data/install/tools/OpenGLBuilder.bat +0 -0
- data/install/tools/PacketViewer +16 -16
- data/install/tools/PacketViewer.bat +0 -0
- data/install/tools/Replay +16 -16
- data/install/tools/Replay.bat +0 -0
- data/install/tools/ScriptRunner +16 -16
- data/install/tools/ScriptRunner.bat +0 -0
- data/install/tools/TableManager +16 -16
- data/install/tools/TableManager.bat +0 -0
- data/install/tools/TestRunner +16 -16
- data/install/tools/TestRunner.bat +0 -0
- data/install/tools/TlmExtractor +16 -16
- data/install/tools/TlmExtractor.bat +0 -0
- data/install/tools/TlmGrapher +16 -16
- data/install/tools/TlmGrapher.bat +0 -0
- data/install/tools/TlmViewer +16 -16
- data/install/tools/TlmViewer.bat +0 -0
- data/install/tools/ToolLaunch.bat +14 -5
- data/install/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +16 -16
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +16 -16
- data/install/tools/mac/CmdSender.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +16 -16
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +16 -16
- data/install/tools/mac/DataViewer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +16 -16
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +16 -16
- data/install/tools/mac/Launcher.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +16 -16
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +16 -16
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +16 -16
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +16 -16
- data/install/tools/mac/Replay.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +16 -16
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +16 -16
- data/install/tools/mac/TableManager.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +16 -16
- data/install/tools/mac/TestRunner.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +16 -16
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +16 -16
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +16 -16
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +10 -10
- data/install/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -38
- data/install/tools/tool_launch.rb +38 -38
- data/lib/cosmos.rb +63 -63
- data/lib/cosmos/ccsds/ccsds_packet.rb +63 -63
- data/lib/cosmos/ccsds/ccsds_parser.rb +143 -143
- data/lib/cosmos/config/config_parser.rb +324 -324
- data/lib/cosmos/conversions.rb +13 -13
- data/lib/cosmos/conversions/conversion.rb +47 -47
- data/lib/cosmos/conversions/generic_conversion.rb +55 -55
- data/lib/cosmos/conversions/new_packet_log_conversion.rb +45 -45
- data/lib/cosmos/conversions/polynomial_conversion.rb +57 -57
- data/lib/cosmos/conversions/processor_conversion.rb +46 -46
- data/lib/cosmos/conversions/received_count_conversion.rb +33 -33
- data/lib/cosmos/conversions/received_time_formatted_conversion.rb +37 -37
- data/lib/cosmos/conversions/received_time_seconds_conversion.rb +37 -37
- data/lib/cosmos/conversions/segmented_polynomial_conversion.rb +128 -128
- data/lib/cosmos/conversions/unix_time_conversion.rb +50 -50
- data/lib/cosmos/conversions/unix_time_formatted_conversion.rb +44 -44
- data/lib/cosmos/conversions/unix_time_seconds_conversion.rb +44 -44
- data/lib/cosmos/core_ext.rb +18 -18
- data/lib/cosmos/core_ext/array.rb +354 -354
- data/lib/cosmos/core_ext/class.rb +51 -51
- data/lib/cosmos/core_ext/cosmos_io.rb +29 -29
- data/lib/cosmos/core_ext/exception.rb +52 -52
- data/lib/cosmos/core_ext/file.rb +75 -75
- data/lib/cosmos/core_ext/hash.rb +28 -28
- data/lib/cosmos/core_ext/io.rb +75 -75
- data/lib/cosmos/core_ext/kernel.rb +38 -38
- data/lib/cosmos/core_ext/math.rb +119 -119
- data/lib/cosmos/core_ext/matrix.rb +146 -146
- data/lib/cosmos/core_ext/objectspace.rb +29 -29
- data/lib/cosmos/core_ext/range.rb +22 -22
- data/lib/cosmos/core_ext/socket.rb +32 -32
- data/lib/cosmos/core_ext/string.rb +311 -311
- data/lib/cosmos/core_ext/stringio.rb +24 -24
- data/lib/cosmos/core_ext/time.rb +448 -448
- data/lib/cosmos/gui/choosers/combobox_chooser.rb +130 -130
- data/lib/cosmos/gui/choosers/file_chooser.rb +68 -68
- data/lib/cosmos/gui/choosers/float_chooser.rb +82 -82
- data/lib/cosmos/gui/choosers/integer_chooser.rb +80 -80
- data/lib/cosmos/gui/choosers/string_chooser.rb +53 -53
- data/lib/cosmos/gui/choosers/telemetry_chooser.rb +326 -326
- data/lib/cosmos/gui/dialogs/about_dialog.rb +137 -137
- data/lib/cosmos/gui/dialogs/calendar_dialog.rb +136 -136
- data/lib/cosmos/gui/dialogs/cmd_details_dialog.rb +52 -52
- data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +149 -149
- data/lib/cosmos/gui/dialogs/details_dialog.rb +174 -174
- data/lib/cosmos/gui/dialogs/exception_dialog.rb +97 -97
- data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +59 -59
- data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +260 -260
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +169 -169
- data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +118 -118
- data/lib/cosmos/gui/dialogs/progress_dialog.rb +276 -276
- data/lib/cosmos/gui/dialogs/pry_dialog.rb +165 -165
- data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +37 -37
- data/lib/cosmos/gui/dialogs/select_dialog.rb +54 -54
- data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +131 -131
- data/lib/cosmos/gui/dialogs/splash.rb +135 -135
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +206 -206
- data/lib/cosmos/gui/dialogs/tlm_edit_dialog.rb +81 -81
- data/lib/cosmos/gui/line_graph/line_graph.rb +456 -456
- data/lib/cosmos/gui/line_graph/line_graph_dialog.rb +34 -34
- data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +473 -473
- data/lib/cosmos/gui/line_graph/line_graph_popups.rb +116 -116
- data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +451 -451
- data/lib/cosmos/gui/line_graph/line_graph_script.rb +26 -26
- data/lib/cosmos/gui/line_graph/lines.rb +290 -290
- data/lib/cosmos/gui/line_graph/overview_graph.rb +469 -469
- data/lib/cosmos/gui/opengl/earth_model.rb +22 -22
- data/lib/cosmos/gui/opengl/gl_bounds.rb +67 -67
- data/lib/cosmos/gui/opengl/gl_light.rb +39 -39
- data/lib/cosmos/gui/opengl/gl_material.rb +29 -29
- data/lib/cosmos/gui/opengl/gl_scene.rb +72 -72
- data/lib/cosmos/gui/opengl/gl_shape.rb +146 -146
- data/lib/cosmos/gui/opengl/gl_viewer.rb +724 -724
- data/lib/cosmos/gui/opengl/gl_viewport.rb +35 -35
- data/lib/cosmos/gui/opengl/moon_model.rb +22 -22
- data/lib/cosmos/gui/opengl/opengl.rb +8 -8
- data/lib/cosmos/gui/opengl/stl_reader.rb +211 -211
- data/lib/cosmos/gui/opengl/stl_shape.rb +124 -124
- data/lib/cosmos/gui/opengl/texture_mapped_sphere.rb +202 -202
- data/lib/cosmos/gui/qt.rb +860 -860
- data/lib/cosmos/gui/qt_tool.rb +380 -380
- data/lib/cosmos/gui/text/completion.rb +381 -381
- data/lib/cosmos/gui/text/completion_line_edit.rb +30 -30
- data/lib/cosmos/gui/text/completion_text_edit.rb +179 -179
- data/lib/cosmos/gui/text/ruby_editor.rb +415 -415
- data/lib/cosmos/gui/utilities/screenshot.rb +25 -25
- data/lib/cosmos/gui/utilities/script_module_gui.rb +330 -330
- data/lib/cosmos/gui/widgets/full_text_search_line_edit.rb +161 -161
- data/lib/cosmos/gui/widgets/packet_log_frame.rb +305 -305
- data/lib/cosmos/gui/widgets/realtime_button_bar.rb +98 -98
- data/lib/cosmos/interfaces.rb +11 -11
- data/lib/cosmos/interfaces/cmd_tlm_server_interface.rb +153 -153
- data/lib/cosmos/interfaces/interface.rb +225 -225
- data/lib/cosmos/interfaces/linc_interface.rb +360 -360
- data/lib/cosmos/interfaces/serial_interface.rb +76 -76
- data/lib/cosmos/interfaces/simulated_target_interface.rb +129 -129
- data/lib/cosmos/interfaces/stream_interface.rb +136 -136
- data/lib/cosmos/interfaces/tcpip_client_interface.rb +60 -60
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +164 -164
- data/lib/cosmos/interfaces/udp_interface.rb +161 -161
- data/lib/cosmos/io/buffered_file.rb +11 -11
- data/lib/cosmos/io/cosmos_snmp.rb +50 -50
- data/lib/cosmos/io/io_multiplexer.rb +89 -89
- data/lib/cosmos/io/json_drb.rb +376 -376
- data/lib/cosmos/io/json_drb_object.rb +198 -198
- data/lib/cosmos/io/json_rpc.rb +365 -365
- data/lib/cosmos/io/posix_serial_driver.rb +145 -145
- data/lib/cosmos/io/raw_logger.rb +174 -174
- data/lib/cosmos/io/raw_logger_pair.rb +71 -71
- data/lib/cosmos/io/serial_driver.rb +85 -85
- data/lib/cosmos/io/stderr.rb +36 -36
- data/lib/cosmos/io/stdout.rb +36 -36
- data/lib/cosmos/io/tcpip_server.rb +571 -571
- data/lib/cosmos/io/udp_sockets.rb +152 -152
- data/lib/cosmos/io/win32_serial_driver.rb +145 -145
- data/lib/cosmos/packet_logs.rb +7 -7
- data/lib/cosmos/packet_logs/ccsds_log_reader.rb +104 -104
- data/lib/cosmos/packet_logs/meta_packet_log_writer.rb +107 -107
- data/lib/cosmos/packet_logs/packet_log_reader.rb +450 -450
- data/lib/cosmos/packet_logs/packet_log_writer.rb +323 -323
- data/lib/cosmos/packet_logs/packet_log_writer_pair.rb +30 -30
- data/lib/cosmos/packets/binary_accessor.rb +634 -634
- data/lib/cosmos/packets/commands.rb +293 -293
- data/lib/cosmos/packets/limits.rb +267 -267
- data/lib/cosmos/packets/limits_response.rb +38 -38
- data/lib/cosmos/packets/packet.rb +786 -786
- data/lib/cosmos/packets/packet_config.rb +482 -482
- data/lib/cosmos/packets/packet_item.rb +317 -317
- data/lib/cosmos/packets/packet_item_limits.rb +128 -128
- data/lib/cosmos/packets/parsers/format_string_parser.rb +58 -58
- data/lib/cosmos/packets/parsers/limits_parser.rb +146 -146
- data/lib/cosmos/packets/parsers/limits_response_parser.rb +52 -52
- data/lib/cosmos/packets/parsers/macro_parser.rb +116 -116
- data/lib/cosmos/packets/parsers/packet_item_parser.rb +215 -215
- data/lib/cosmos/packets/parsers/packet_parser.rb +123 -123
- data/lib/cosmos/packets/parsers/processor_parser.rb +63 -63
- data/lib/cosmos/packets/parsers/state_parser.rb +116 -116
- data/lib/cosmos/packets/structure.rb +458 -458
- data/lib/cosmos/packets/structure_item.rb +233 -233
- data/lib/cosmos/packets/telemetry.rb +350 -350
- data/lib/cosmos/processors.rb +6 -6
- data/lib/cosmos/processors/new_packet_log_processor.rb +34 -34
- data/lib/cosmos/processors/processor.rb +71 -71
- data/lib/cosmos/processors/statistics_processor.rb +65 -65
- data/lib/cosmos/processors/watermark_processor.rb +44 -44
- data/lib/cosmos/script.rb +9 -9
- data/lib/cosmos/script/cmd_tlm_server.rb +110 -110
- data/lib/cosmos/script/commands.rb +184 -184
- data/lib/cosmos/script/extract.rb +123 -123
- data/lib/cosmos/script/limits.rb +114 -114
- data/lib/cosmos/script/script.rb +76 -76
- data/lib/cosmos/script/scripting.rb +897 -897
- data/lib/cosmos/script/telemetry.rb +174 -174
- data/lib/cosmos/script/tools.rb +138 -138
- data/lib/cosmos/streams/burst_stream_protocol.rb +25 -25
- data/lib/cosmos/streams/fixed_stream_protocol.rb +111 -111
- data/lib/cosmos/streams/length_stream_protocol.rb +140 -140
- data/lib/cosmos/streams/preidentified_stream_protocol.rb +118 -118
- data/lib/cosmos/streams/serial_stream.rb +157 -157
- data/lib/cosmos/streams/stream.rb +63 -63
- data/lib/cosmos/streams/stream_protocol.rb +373 -373
- data/lib/cosmos/streams/tcpip_client_stream.rb +113 -113
- data/lib/cosmos/streams/tcpip_socket_stream.rb +143 -143
- data/lib/cosmos/streams/template_stream_protocol.rb +140 -140
- data/lib/cosmos/streams/terminated_stream_protocol.rb +81 -81
- data/lib/cosmos/system.rb +4 -4
- data/lib/cosmos/system/system.rb +618 -618
- data/lib/cosmos/system/target.rb +197 -197
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +255 -255
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +717 -717
- data/lib/cosmos/tools/cmd_sender/cmd_sender_item_delegate.rb +77 -77
- data/lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb +70 -70
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +1034 -1034
- data/lib/cosmos/tools/cmd_tlm_server/background_task.rb +46 -46
- data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +67 -67
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +515 -515
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +253 -253
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +408 -408
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +112 -112
- data/lib/cosmos/tools/cmd_tlm_server/connections.rb +175 -175
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +200 -200
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +176 -176
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +150 -150
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +244 -244
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +90 -90
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +266 -266
- data/lib/cosmos/tools/cmd_tlm_server/interfaces.rb +127 -127
- data/lib/cosmos/tools/cmd_tlm_server/packet_logging.rb +132 -132
- data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +66 -66
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +97 -97
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +621 -621
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +134 -134
- data/lib/cosmos/tools/data_viewer/dump_component.rb +40 -40
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +156 -156
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +382 -382
- data/lib/cosmos/tools/launcher/launcher.rb +188 -188
- data/lib/cosmos/tools/launcher/launcher_config.rb +256 -256
- data/lib/cosmos/tools/launcher/launcher_multitool.rb +40 -40
- data/lib/cosmos/tools/launcher/launcher_tool.rb +116 -116
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +837 -837
- data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +416 -416
- data/lib/cosmos/tools/opengl_builder/scene_config.rb +118 -118
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +542 -542
- data/lib/cosmos/tools/replay/replay.rb +501 -501
- data/lib/cosmos/tools/replay/replay_server.rb +91 -91
- data/lib/cosmos/tools/script_runner/script_audit.rb +147 -147
- data/lib/cosmos/tools/script_runner/script_runner.rb +922 -922
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +40 -40
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +1798 -1798
- data/lib/cosmos/tools/table_manager/table.rb +70 -70
- data/lib/cosmos/tools/table_manager/table_config.rb +764 -764
- data/lib/cosmos/tools/table_manager/table_item.rb +74 -74
- data/lib/cosmos/tools/table_manager/table_manager.rb +1065 -1065
- data/lib/cosmos/tools/table_manager/table_manager_core.rb +539 -539
- data/lib/cosmos/tools/test_runner/results_writer.rb +283 -283
- data/lib/cosmos/tools/test_runner/test.rb +539 -539
- data/lib/cosmos/tools/test_runner/test_runner.rb +1189 -1189
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +341 -341
- data/lib/cosmos/tools/tlm_extractor/text_item_chooser.rb +60 -60
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +1016 -1016
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +371 -371
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +60 -60
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/housekeeping_data_object_adder.rb +75 -75
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/singlexy_data_object_adder.rb +44 -44
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +95 -95
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/data_object_editor.rb +61 -61
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +181 -181
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/linegraph_data_object_editor.rb +141 -141
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/singlexy_data_object_editor.rb +30 -30
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +174 -174
- data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +193 -193
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +407 -407
- data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +176 -176
- data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +25 -25
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +323 -323
- data/lib/cosmos/tools/tlm_grapher/plot_editors/linegraph_plot_editor.rb +181 -181
- data/lib/cosmos/tools/tlm_grapher/plot_editors/plot_editor.rb +28 -28
- data/lib/cosmos/tools/tlm_grapher/plot_editors/singlexy_plot_editor.rb +30 -30
- data/lib/cosmos/tools/tlm_grapher/plot_editors/xy_plot_editor.rb +59 -59
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/linegraph_plot_gui_object.rb +172 -172
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/singlexy_plot_gui_object.rb +27 -27
- data/lib/cosmos/tools/tlm_grapher/plot_gui_objects/xy_plot_gui_object.rb +74 -74
- data/lib/cosmos/tools/tlm_grapher/plots/linegraph_plot.rb +201 -201
- data/lib/cosmos/tools/tlm_grapher/plots/plot.rb +69 -69
- data/lib/cosmos/tools/tlm_grapher/plots/singlexy_plot.rb +20 -20
- data/lib/cosmos/tools/tlm_grapher/plots/xy_plot.rb +61 -61
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +1291 -1291
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +430 -430
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb +107 -107
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +114 -114
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb +101 -101
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +78 -78
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tab.rb +57 -57
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +1004 -1004
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +87 -87
- data/lib/cosmos/tools/tlm_viewer/screen.rb +486 -486
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +561 -561
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +290 -290
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +53 -53
- data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +110 -110
- data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +66 -66
- data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +57 -57
- data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +39 -39
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +62 -62
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +41 -41
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +57 -57
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +56 -56
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +55 -55
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +66 -66
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +124 -124
- data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +31 -31
- data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +30 -30
- data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +36 -36
- data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +35 -35
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +27 -27
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +31 -31
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +26 -26
- data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +29 -29
- data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +39 -39
- data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +38 -38
- data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +38 -38
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +39 -39
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +42 -42
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +34 -34
- data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +178 -178
- data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +54 -54
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +47 -47
- data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +116 -116
- data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +34 -34
- data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +30 -30
- data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +57 -57
- data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +34 -34
- data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +35 -35
- data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +33 -33
- data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +26 -26
- data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +28 -28
- data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +47 -47
- data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +26 -26
- data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +88 -88
- data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +27 -27
- data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +130 -130
- data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +46 -46
- data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +43 -43
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +35 -35
- data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +37 -37
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +257 -257
- data/lib/cosmos/top_level.rb +759 -759
- data/lib/cosmos/utilities.rb +11 -11
- data/lib/cosmos/utilities/crc.rb +166 -166
- data/lib/cosmos/utilities/csv.rb +83 -83
- data/lib/cosmos/utilities/logger.rb +137 -137
- data/lib/cosmos/utilities/low_fragmentation_array.rb +11 -11
- data/lib/cosmos/utilities/message_log.rb +79 -79
- data/lib/cosmos/utilities/quaternion.rb +258 -258
- data/lib/cosmos/utilities/ruby_lex_utils.rb +313 -313
- data/lib/cosmos/utilities/simulated_target.rb +99 -99
- data/lib/cosmos/utilities/sleeper.rb +44 -44
- data/lib/cosmos/version.rb +12 -12
- data/lib/cosmos/win32/excel.rb +66 -66
- data/lib/cosmos/win32/win32.rb +387 -387
- data/lib/cosmos/win32/win32_main.rb +321 -321
- data/roodi.yml +24 -24
- data/run_gui_tests.bat +0 -0
- data/spec/ccsds/ccsds_packet_spec.rb +67 -67
- data/spec/ccsds/ccsds_parser_spec.rb +148 -148
- data/spec/config/config_parser_spec.rb +322 -322
- data/spec/conversions/conversion_spec.rb +31 -31
- data/spec/conversions/generic_conversion_spec.rb +45 -45
- data/spec/conversions/new_packet_log_conversion_spec.rb +39 -39
- data/spec/conversions/polynomial_conversion_spec.rb +40 -40
- data/spec/conversions/processor_conversion_spec.rb +45 -45
- data/spec/conversions/received_count_conversion_spec.rb +43 -43
- data/spec/conversions/received_time_formatted_conversion_spec.rb +49 -49
- data/spec/conversions/received_time_seconds_conversion_spec.rb +50 -50
- data/spec/conversions/segmented_polynomial_conversion_spec.rb +51 -51
- data/spec/conversions/unix_time_formatted_conversion_spec.rb +74 -74
- data/spec/conversions/unix_time_seconds_conversion_spec.rb +76 -76
- data/spec/core_ext/array_spec.rb +186 -186
- data/spec/core_ext/class_spec.rb +36 -36
- data/spec/core_ext/cosmos_io_spec.rb +77 -77
- data/spec/core_ext/exception_spec.rb +91 -91
- data/spec/core_ext/file_spec.rb +72 -72
- data/spec/core_ext/hash_spec.rb +24 -24
- data/spec/core_ext/io_spec.rb +46 -46
- data/spec/core_ext/kernel_spec.rb +54 -54
- data/spec/core_ext/math_spec.rb +116 -116
- data/spec/core_ext/matrix_spec.rb +66 -66
- data/spec/core_ext/objectspace_spec.rb +29 -29
- data/spec/core_ext/range_spec.rb +21 -21
- data/spec/core_ext/socket_spec.rb +32 -32
- data/spec/core_ext/string_spec.rb +223 -223
- data/spec/core_ext/stringio_spec.rb +21 -21
- data/spec/core_ext/time_spec.rb +202 -202
- data/spec/gui/line_graph/line_clip_spec.rb +322 -322
- data/spec/gui/qt_spec.rb +102 -102
- data/spec/install/config/system/system.txt +33 -33
- data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -41
- data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/spec/install/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/spec/install/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/spec/install/config/targets/COSMOS/screens/version.txt +19 -19
- data/spec/install/config/targets/COSMOS/target.txt +5 -5
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmd_linc.txt +30 -30
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +111 -111
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +236 -236
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm_linc.txt +25 -25
- data/spec/install/config/targets/INST/cmd_tlm_server.txt +5 -5
- data/spec/install/config/targets/INST/lib/sim_inst.rb +305 -305
- data/spec/install/config/targets/INST/target.txt +10 -10
- data/spec/install/config/targets/META/cmd_tlm/meta_cmd.txt +4 -4
- data/spec/install/config/targets/META/cmd_tlm/meta_tlm.txt +4 -4
- data/spec/install/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -7
- data/spec/interfaces/cmd_tlm_server_interface_spec.rb +150 -150
- data/spec/interfaces/interface_spec.rb +130 -130
- data/spec/interfaces/linc_interface_spec.rb +259 -259
- data/spec/interfaces/serial_interface_spec.rb +56 -56
- data/spec/interfaces/simulated_target_interface_spec.rb +128 -128
- data/spec/interfaces/stream_interface_spec.rb +157 -157
- data/spec/interfaces/tcpip_client_interface_spec.rb +55 -55
- data/spec/interfaces/tcpip_server_interface_spec.rb +160 -160
- data/spec/interfaces/udp_interface_spec.rb +175 -175
- data/spec/io/buffered_file_spec.rb +113 -113
- data/spec/io/io_multiplexer_spec.rb +94 -94
- data/spec/io/json_drb_object_spec.rb +119 -119
- data/spec/io/json_drb_spec.rb +311 -311
- data/spec/io/json_rpc_spec.rb +264 -264
- data/spec/io/raw_logger_pair_spec.rb +76 -76
- data/spec/io/raw_logger_spec.rb +133 -133
- data/spec/io/serial_driver_spec.rb +60 -60
- data/spec/io/stderr_spec.rb +32 -32
- data/spec/io/stdout_spec.rb +32 -32
- data/spec/io/tcpip_server_spec.rb +338 -338
- data/spec/io/udp_sockets_spec.rb +94 -94
- data/spec/io/win32_serial_driver_spec.rb +88 -88
- data/spec/packet_logs/meta_packet_log_writer_spec.rb +170 -170
- data/spec/packet_logs/packet_log_reader_spec.rb +468 -468
- data/spec/packet_logs/packet_log_writer_pair_spec.rb +30 -30
- data/spec/packet_logs/packet_log_writer_spec.rb +225 -225
- data/spec/packets/binary_accessor_spec.rb +2326 -2326
- data/spec/packets/commands_spec.rb +369 -369
- data/spec/packets/limits_response_spec.rb +25 -25
- data/spec/packets/limits_spec.rb +344 -344
- data/spec/packets/packet_config_spec.rb +805 -805
- data/spec/packets/packet_item_limits_spec.rb +161 -161
- data/spec/packets/packet_item_spec.rb +386 -386
- data/spec/packets/packet_spec.rb +1317 -1317
- data/spec/packets/parsers/format_string_parser_spec.rb +122 -122
- data/spec/packets/parsers/limits_parser_spec.rb +282 -282
- data/spec/packets/parsers/limits_response_parser_spec.rb +149 -149
- data/spec/packets/parsers/macro_parser_spec.rb +212 -212
- data/spec/packets/parsers/packet_item_parser_spec.rb +306 -306
- data/spec/packets/parsers/packet_parser_spec.rb +99 -99
- data/spec/packets/parsers/processor_parser_spec.rb +114 -114
- data/spec/packets/parsers/state_parser_spec.rb +156 -156
- data/spec/packets/structure_item_spec.rb +195 -195
- data/spec/packets/structure_spec.rb +565 -565
- data/spec/packets/telemetry_spec.rb +578 -578
- data/spec/processors/new_packet_log_processor_spec.rb +39 -39
- data/spec/processors/processor_spec.rb +55 -55
- data/spec/processors/statistics_processor_spec.rb +60 -60
- data/spec/processors/watermark_processor_spec.rb +51 -51
- data/spec/script/cmd_tlm_server_spec.rb +110 -110
- data/spec/script/commands_disconnect_spec.rb +270 -270
- data/spec/script/commands_spec.rb +302 -302
- data/spec/script/limits_spec.rb +153 -153
- data/spec/script/script_spec.rb +86 -86
- data/spec/script/scripting_spec.rb +440 -440
- data/spec/script/telemetry_spec.rb +165 -165
- data/spec/script/tools_spec.rb +117 -117
- data/spec/spec_helper.rb +190 -190
- data/spec/streams/burst_stream_protocol_spec.rb +32 -32
- data/spec/streams/fixed_stream_protocol_spec.rb +113 -113
- data/spec/streams/length_stream_protocol_spec.rb +300 -300
- data/spec/streams/preidentified_stream_protocol_spec.rb +121 -121
- data/spec/streams/serial_stream_spec.rb +117 -117
- data/spec/streams/stream_protocol_spec.rb +346 -346
- data/spec/streams/stream_spec.rb +30 -30
- data/spec/streams/tcpip_client_stream_spec.rb +57 -57
- data/spec/streams/tcpip_socket_stream_spec.rb +193 -193
- data/spec/streams/template_stream_protocol_spec.rb +156 -156
- data/spec/streams/terminated_stream_protocol_spec.rb +127 -127
- data/spec/system/system_spec.rb +665 -665
- data/spec/system/target_spec.rb +250 -250
- data/spec/tools/cmd_tlm_server/api_spec.rb +1117 -1117
- data/spec/tools/cmd_tlm_server/background_task_spec.rb +32 -32
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +81 -81
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +453 -453
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +415 -415
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +151 -151
- data/spec/tools/cmd_tlm_server/connections_spec.rb +235 -235
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +306 -306
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +252 -252
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +143 -143
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +151 -151
- data/spec/tools/cmd_tlm_server/routers_spec.rb +223 -223
- data/spec/tools/launcher/launcher_config_spec.rb +464 -464
- data/spec/top_level/top_level_spec.rb +334 -334
- data/spec/utilities/crc_spec.rb +45 -45
- data/spec/utilities/csv_spec.rb +97 -97
- data/spec/utilities/logger_spec.rb +102 -102
- data/spec/utilities/message_log_spec.rb +89 -89
- data/spec/utilities/quaternion_spec.rb +107 -107
- data/spec/utilities/ruby_lex_utils_spec.rb +86 -86
- data/tasks/manifest.rake +22 -22
- data/tasks/spec.rake +23 -23
- data/test/benchmarks/binary_accessor_benchmark.rb +14 -14
- data/test/benchmarks/gsub_benchmark.rb +152 -152
- data/test/benchmarks/is_a_benchmark.rb +34 -34
- data/test/performance/PACKETS.bat +0 -0
- data/test/performance/Rakefile +77 -77
- data/test/performance/THREADS.bat +0 -0
- data/test/performance/config/data/crc.txt +196 -196
- data/test/performance/config/data/diamond.STL +57 -57
- data/test/performance/config/data/meta_init.txt +4 -4
- data/test/performance/config/system/system_packets.txt +39 -39
- data/test/performance/config/system/system_threads.txt +59 -59
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +46 -46
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -15
- data/test/performance/config/targets/COSMOS/cmd_tlm_server.txt +6 -6
- data/test/performance/config/targets/COSMOS/screens/limits_change.txt +20 -20
- data/test/performance/config/targets/COSMOS/screens/version.txt +19 -19
- data/test/performance/config/targets/COSMOS/target.txt +11 -11
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_cmds.txt +20 -20
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +98 -98
- data/test/performance/config/targets/PACKET/cmd_tlm_server.txt +6 -6
- data/test/performance/config/targets/PACKET/lib/packet_interface.rb +22 -22
- data/test/performance/config/targets/PACKET/lib/packet_limits_response.rb +24 -24
- data/test/performance/config/targets/PACKET/screens/status.txt +25 -25
- data/test/performance/config/targets/PACKET/target.txt +28 -28
- data/test/performance/config/targets/SYSTEM/screens/status.txt +12 -12
- data/test/performance/config/targets/THREAD/cmd_tlm/thread_cmds.txt +17 -17
- data/test/performance/config/targets/THREAD/cmd_tlm/thread_tlm.txt +18 -18
- data/test/performance/config/targets/THREAD/cmd_tlm_server.txt +6 -6
- data/test/performance/config/targets/THREAD/lib/thread_interface.rb +22 -22
- data/test/performance/config/targets/THREAD/screens/status.txt +25 -25
- data/test/performance/config/targets/THREAD/target.txt +6 -6
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +28 -28
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +68 -68
- data/test/performance/config/tools/data_viewer/data_viewer.txt +11 -11
- data/test/performance/config/tools/handbook_creator/handbook_creator.txt +66 -66
- data/test/performance/config/tools/handbook_creator/templates/command_packets.html.erb +86 -86
- data/test/performance/config/tools/handbook_creator/templates/command_toc.html.erb +38 -38
- data/test/performance/config/tools/handbook_creator/templates/footer.html.erb +9 -9
- data/test/performance/config/tools/handbook_creator/templates/header.html.erb +25 -25
- data/test/performance/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -13
- data/test/performance/config/tools/handbook_creator/templates/nav.html.erb +27 -27
- data/test/performance/config/tools/handbook_creator/templates/overview.html.erb +1 -1
- data/test/performance/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -23
- data/test/performance/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -33
- data/test/performance/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -41
- data/test/performance/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -80
- data/test/performance/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -38
- data/test/performance/config/tools/handbook_creator/templates/title.html.erb +1 -1
- data/test/performance/config/tools/launcher/launcher_packets.txt +34 -34
- data/test/performance/config/tools/launcher/launcher_threads.txt +83 -83
- data/test/performance/config/tools/script_runner/script_runner.txt +3 -3
- data/test/performance/config/tools/table_manager/ConfigTables_def.txt +8 -8
- data/test/performance/config/tools/table_manager/ExampleTableDefinition.txt +24 -24
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -25
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -25
- data/test/performance/config/tools/table_manager/PPSSelectionTable_def.txt +8 -8
- data/test/performance/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -248
- data/test/performance/config/tools/test_runner/test_runner.txt +17 -17
- data/test/performance/config/tools/tlm_extractor/tlm_extractor.txt +13 -13
- data/test/performance/config/tools/tlm_extractor/tlm_extractor2.txt +2 -2
- data/test/performance/config/tools/tlm_extractor/tlm_extractor3.txt +2 -2
- data/test/performance/config/tools/tlm_extractor/tlm_extractor4.txt +2 -2
- data/test/performance/config/tools/tlm_grapher/tlm_grapher.txt +204 -204
- data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +13 -13
- data/test/performance/lib/packet_target.rb +126 -126
- data/test/performance/lib/thread_target.rb +120 -120
- data/test/performance/lib/user_version.rb +3 -3
- data/test/performance/procedures/checks.rb +11 -11
- data/test/performance/procedures/clear_util.rb +7 -7
- data/test/performance/procedures/collect.rb +18 -18
- data/test/performance/procedures/collect_util.rb +14 -14
- data/test/performance/procedures/cosmos_api_test.rb +293 -293
- data/test/performance/procedures/disconnect.rb +29 -29
- data/test/performance/procedures/example_test.rb +182 -182
- data/test/performance/procedures/plot_test.rb +8 -8
- data/test/performance/procedures/procedure.rb +2 -2
- data/test/performance/procedures/run_example_test.rb +3 -3
- data/test/performance/procedures/test.rb +51 -51
- data/test/performance/tools/CmdExtractor +14 -14
- data/test/performance/tools/CmdExtractor.bat +0 -0
- data/test/performance/tools/CmdSender +14 -14
- data/test/performance/tools/CmdSender.bat +0 -0
- data/test/performance/tools/CmdTlmServer +16 -16
- data/test/performance/tools/CmdTlmServer.bat +0 -0
- data/test/performance/tools/CmdTlmServerMemProf +20 -20
- data/test/performance/tools/CmdTlmServerMemProf.bat +0 -0
- data/test/performance/tools/DataViewer +14 -14
- data/test/performance/tools/DataViewer.bat +0 -0
- data/test/performance/tools/HandbookCreator +14 -14
- data/test/performance/tools/HandbookCreator.bat +0 -0
- data/test/performance/tools/Launcher +14 -14
- data/test/performance/tools/Launcher.bat +0 -0
- data/test/performance/tools/LimitsMonitor +14 -14
- data/test/performance/tools/LimitsMonitor.bat +0 -0
- data/test/performance/tools/OpenGLBuilder +14 -14
- data/test/performance/tools/OpenGLBuilder.bat +0 -0
- data/test/performance/tools/PacketTarget +14 -14
- data/test/performance/tools/PacketTarget.bat +0 -0
- data/test/performance/tools/PacketViewer +14 -14
- data/test/performance/tools/PacketViewer.bat +0 -0
- data/test/performance/tools/Replay +14 -14
- data/test/performance/tools/Replay.bat +0 -0
- data/test/performance/tools/ScpiTarget +14 -14
- data/test/performance/tools/ScpiTarget.bat +0 -0
- data/test/performance/tools/ScriptRunner +14 -14
- data/test/performance/tools/ScriptRunner.bat +0 -0
- data/test/performance/tools/TableManager +14 -14
- data/test/performance/tools/TableManager.bat +0 -0
- data/test/performance/tools/TestRunner +14 -14
- data/test/performance/tools/TestRunner.bat +0 -0
- data/test/performance/tools/ThreadTarget +14 -14
- data/test/performance/tools/ThreadTarget.bat +0 -0
- data/test/performance/tools/TlmExtractor +14 -14
- data/test/performance/tools/TlmExtractor.bat +0 -0
- data/test/performance/tools/TlmGrapher +14 -14
- data/test/performance/tools/TlmGrapher.bat +0 -0
- data/test/performance/tools/TlmGrapherMemProf +19 -19
- data/test/performance/tools/TlmGrapherMemProf.bat +0 -0
- data/test/performance/tools/TlmViewer +14 -14
- data/test/performance/tools/TlmViewer.bat +0 -0
- data/test/performance/tools/TlmViewerMemProf +19 -19
- data/test/performance/tools/TlmViewerMemProf.bat +0 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -15
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/CmdSender.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -15
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -15
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/DataViewer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -15
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -15
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/Launcher.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -15
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -15
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -15
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/PacketViewer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -15
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/Replay.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -15
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -15
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TableManager.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -15
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TestRunner.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -15
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -15
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -15
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -6
- data/test/performance/tools/mac/TlmViewer.app/Contents/Info.plist +38 -38
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -15
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -6
- metadata +3 -3
|
@@ -1,456 +1,456 @@
|
|
|
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'
|
|
12
|
-
require 'cosmos/ext/line_graph'
|
|
13
|
-
require 'cosmos/gui/qt'
|
|
14
|
-
require 'cosmos/gui/dialogs/exception_dialog'
|
|
15
|
-
require 'cosmos/gui/line_graph/lines'
|
|
16
|
-
require 'cosmos/gui/line_graph/line_graph_drawing'
|
|
17
|
-
require 'cosmos/gui/line_graph/line_graph_scaling'
|
|
18
|
-
require 'cosmos/gui/line_graph/line_graph_popups'
|
|
19
|
-
|
|
20
|
-
module Cosmos
|
|
21
|
-
|
|
22
|
-
# GUI object to display a line graph
|
|
23
|
-
class LineGraph < Qt::Widget
|
|
24
|
-
|
|
25
|
-
# Create attr_accessors that automatically set the redraw_needed flag when
|
|
26
|
-
# they are set
|
|
27
|
-
def self.attr_accessor_with_redraw(*symbols)
|
|
28
|
-
symbols.each do |name|
|
|
29
|
-
self.class_eval("def #{name}; @#{name}; end")
|
|
30
|
-
self.class_eval(%Q{
|
|
31
|
-
def #{name}=(value)
|
|
32
|
-
@#{name} = value
|
|
33
|
-
@redraw_needed = true
|
|
34
|
-
end
|
|
35
|
-
})
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# Max seconds between clicks for a double click
|
|
40
|
-
DOUBLE_CLICK_SECONDS = 0.2
|
|
41
|
-
|
|
42
|
-
#########################################################################
|
|
43
|
-
# Configurable Attributes which when set result in a redraw needed
|
|
44
|
-
#########################################################################
|
|
45
|
-
|
|
46
|
-
# Draw a small square at each data point of this size
|
|
47
|
-
attr_accessor_with_redraw :point_size
|
|
48
|
-
# Draws the lines between points - true/false
|
|
49
|
-
attr_accessor_with_redraw :show_lines
|
|
50
|
-
# Show x and y gridlines - true/false
|
|
51
|
-
attr_accessor_with_redraw :show_x_grid_lines, :show_y_grid_lines
|
|
52
|
-
# Manual distance between x and y gridlines
|
|
53
|
-
# Note that right y grid lines are slave to left y grid lines
|
|
54
|
-
# unless there are only right lines
|
|
55
|
-
attr_accessor_with_redraw :manual_x_grid_line_scale, :manual_y_grid_line_scale
|
|
56
|
-
# Draw Legend - true/false
|
|
57
|
-
attr_accessor_with_redraw :show_legend
|
|
58
|
-
# Draw cursor / popups - true/false
|
|
59
|
-
attr_accessor_with_redraw :show_cursor_and_popups
|
|
60
|
-
# Overall frame color and size in pixels
|
|
61
|
-
attr_accessor_with_redraw :frame_color, :frame_size
|
|
62
|
-
# Canvas and graph background color
|
|
63
|
-
attr_accessor_with_redraw :back_color, :graph_back_color
|
|
64
|
-
# Label and Border Text Color
|
|
65
|
-
attr_accessor_with_redraw :label_and_border_color
|
|
66
|
-
# Graph Title Text
|
|
67
|
-
attr_accessor_with_redraw :title
|
|
68
|
-
# X axis and left and right Y axis text
|
|
69
|
-
attr_accessor_with_redraw :x_axis_title, :left_y_axis_title, :right_y_axis_title
|
|
70
|
-
# Maximum number of characters to show for a x and y axis label
|
|
71
|
-
attr_accessor_with_redraw :max_x_characters, :max_y_characters
|
|
72
|
-
# Minimum width and height of graph
|
|
73
|
-
attr_accessor_with_redraw :minimum_width, :minimum_height
|
|
74
|
-
# Error associated with the graph
|
|
75
|
-
attr_accessor_with_redraw :error
|
|
76
|
-
# Flag indicating if x data is ordered or not
|
|
77
|
-
attr_accessor_with_redraw :ordered_x_values
|
|
78
|
-
# Flag indicating if popups should always show both x and y values
|
|
79
|
-
attr_accessor_with_redraw :show_popup_x_y
|
|
80
|
-
# Use x_value as floating point UTC timestamp with unix epoch
|
|
81
|
-
attr_accessor_with_redraw :unix_epoch_x_values
|
|
82
|
-
|
|
83
|
-
#########################################################################
|
|
84
|
-
# Callback attributes
|
|
85
|
-
#########################################################################
|
|
86
|
-
|
|
87
|
-
# Callback called when a cursor line is drawn - call(self, graph_x, @left_button_pressed)
|
|
88
|
-
attr_accessor :draw_cursor_line_callback
|
|
89
|
-
# Callback called when the mouse leaves a graph - call(self)
|
|
90
|
-
attr_accessor :mouse_leave_callback
|
|
91
|
-
# Callback called when the mouse left button is pressed - call(self)
|
|
92
|
-
attr_accessor :mouse_left_button_press_callback
|
|
93
|
-
# Callback called before exception popup is displayed - call(self)
|
|
94
|
-
attr_accessor :pre_error_callback
|
|
95
|
-
# Callback called after exception popup is displayed - call(self)
|
|
96
|
-
attr_accessor :post_error_callback
|
|
97
|
-
|
|
98
|
-
#########################################################################
|
|
99
|
-
# Readable Attributes
|
|
100
|
-
#########################################################################
|
|
101
|
-
|
|
102
|
-
# Minimum and maximum shown x values
|
|
103
|
-
attr_reader :x_min, :x_max
|
|
104
|
-
# Minimum and maximum shown x value label
|
|
105
|
-
attr_reader :x_min_label, :x_max_label
|
|
106
|
-
# Minimm and maximum shown left y value
|
|
107
|
-
attr_reader :left_y_min, :left_y_max
|
|
108
|
-
# Minimum and maximum shown right y value
|
|
109
|
-
attr_reader :right_y_min, :right_y_max
|
|
110
|
-
# Extra horizontal lines
|
|
111
|
-
attr_reader :horizontal_lines
|
|
112
|
-
|
|
113
|
-
#########################################################################
|
|
114
|
-
# Public Interface Methods
|
|
115
|
-
#########################################################################
|
|
116
|
-
|
|
117
|
-
def initialize(parent = nil)
|
|
118
|
-
super(parent)
|
|
119
|
-
|
|
120
|
-
#######################################################################
|
|
121
|
-
# Initialize configurable attributes to default values
|
|
122
|
-
#######################################################################
|
|
123
|
-
@point_size = 5
|
|
124
|
-
@show_lines = true
|
|
125
|
-
@show_x_grid_lines = false
|
|
126
|
-
@manual_x_grid_line_scale = nil
|
|
127
|
-
@show_y_grid_lines = false
|
|
128
|
-
@manual_y_grid_line_scale = nil
|
|
129
|
-
@show_legend = false
|
|
130
|
-
@show_cursor_and_popups = true
|
|
131
|
-
@frame_color = 'black'
|
|
132
|
-
@frame_size = 0
|
|
133
|
-
@back_color = 'white'
|
|
134
|
-
@graph_back_color = 'grey'
|
|
135
|
-
@label_and_border_color = 'black'
|
|
136
|
-
@title = nil
|
|
137
|
-
@x_axis_title = nil
|
|
138
|
-
@left_y_axis_title = nil
|
|
139
|
-
@right_y_axis_title = nil
|
|
140
|
-
@max_x_characters = 15
|
|
141
|
-
@max_y_characters = 8
|
|
142
|
-
@minimum_width = 250
|
|
143
|
-
@minimum_height = 100
|
|
144
|
-
@error = nil
|
|
145
|
-
@ordered_x_values = true
|
|
146
|
-
@show_popup_x_y = false
|
|
147
|
-
@unix_epoch_x_values = true
|
|
148
|
-
|
|
149
|
-
# Initialize the callbacks
|
|
150
|
-
@draw_cursor_line_callback = nil
|
|
151
|
-
@mouse_leave_callback = nil
|
|
152
|
-
@mouse_left_button_press_callback = nil
|
|
153
|
-
@pre_error_callback = nil
|
|
154
|
-
@post_error_callback = nil
|
|
155
|
-
|
|
156
|
-
#######################################################################
|
|
157
|
-
# Initialize read-only attributes to default values
|
|
158
|
-
#######################################################################
|
|
159
|
-
|
|
160
|
-
@x_max = 1
|
|
161
|
-
@x_min = -1
|
|
162
|
-
@x_max_label = nil
|
|
163
|
-
@x_min_label = nil
|
|
164
|
-
@left_y_max = 1
|
|
165
|
-
@left_y_min = -1
|
|
166
|
-
@right_y_max = 1
|
|
167
|
-
@right_y_min = -1
|
|
168
|
-
@horizontal_lines = []
|
|
169
|
-
|
|
170
|
-
###########################
|
|
171
|
-
# Initialize internal state
|
|
172
|
-
###########################
|
|
173
|
-
|
|
174
|
-
# Create line data
|
|
175
|
-
@lines = Lines.new
|
|
176
|
-
|
|
177
|
-
# Painter to do all the drawing with
|
|
178
|
-
@painter = nil
|
|
179
|
-
|
|
180
|
-
# Value used to scale a x value to a x graph coordinate
|
|
181
|
-
@x_scale = 0
|
|
182
|
-
|
|
183
|
-
# Value used to scale a left y value to a y graph coordinate
|
|
184
|
-
@left_y_scale = 0
|
|
185
|
-
|
|
186
|
-
# Value used to scale a right y value to a y graph coordinate
|
|
187
|
-
@right_y_scale = 0
|
|
188
|
-
|
|
189
|
-
# Size of the font used to display text
|
|
190
|
-
@font_size = 10
|
|
191
|
-
|
|
192
|
-
# The font class used to display text
|
|
193
|
-
@font = Cosmos.getFont("Helvetica", @font_size)
|
|
194
|
-
|
|
195
|
-
# The font class used for titles
|
|
196
|
-
@title_font = Cosmos.getFont("Helvetica", @font_size + 4, Qt::Font::Bold)
|
|
197
|
-
|
|
198
|
-
# Auto scale left y-axis setting
|
|
199
|
-
@left_y_auto_scale = true
|
|
200
|
-
|
|
201
|
-
# Auto scale right y-axis setting
|
|
202
|
-
@right_y_auto_scale = true
|
|
203
|
-
|
|
204
|
-
# Auto scale x-axis setting
|
|
205
|
-
@x_auto_scale = true
|
|
206
|
-
|
|
207
|
-
# Values of x gridlines
|
|
208
|
-
@x_grid_lines = []
|
|
209
|
-
|
|
210
|
-
# Values of y gridlines on left x-axis unless no left lines
|
|
211
|
-
@y_grid_lines = []
|
|
212
|
-
|
|
213
|
-
# Distance between gridlines on the left y-axis unless no left lines
|
|
214
|
-
@y_grid_line_scale = 0.1
|
|
215
|
-
|
|
216
|
-
# Distance between gridlines on the x-axis
|
|
217
|
-
@x_grid_line_scale = 0.1
|
|
218
|
-
|
|
219
|
-
# Flag to note if the mouse in the the graph window
|
|
220
|
-
@mouse_in_window = false
|
|
221
|
-
|
|
222
|
-
# Graph right boundary in window coordinates
|
|
223
|
-
@graph_right_x = 0
|
|
224
|
-
|
|
225
|
-
# Graph left boundary in window coordinates
|
|
226
|
-
@graph_left_x = 0
|
|
227
|
-
|
|
228
|
-
# Graph top boundary in window coordinates
|
|
229
|
-
@graph_top_y = 0
|
|
230
|
-
|
|
231
|
-
# Graph bottom boundary in window coordinates
|
|
232
|
-
@graph_bottom_y = 0
|
|
233
|
-
|
|
234
|
-
# Array containing popup information
|
|
235
|
-
@popups = []
|
|
236
|
-
|
|
237
|
-
# Position of cursor line
|
|
238
|
-
@cursor_line_x = nil
|
|
239
|
-
|
|
240
|
-
# Indicates state of left mouse button
|
|
241
|
-
@left_button_pressed = false
|
|
242
|
-
|
|
243
|
-
# Flag to prevent recursion in update_graph_size
|
|
244
|
-
@in_update_graph_size = false
|
|
245
|
-
|
|
246
|
-
# Time of previous left button release
|
|
247
|
-
@previous_left_button_release_time = Time.now
|
|
248
|
-
|
|
249
|
-
@redraw_needed = true
|
|
250
|
-
|
|
251
|
-
setContentsMargins(0,0,0,0)
|
|
252
|
-
|
|
253
|
-
#setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff)
|
|
254
|
-
#setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff)
|
|
255
|
-
|
|
256
|
-
# Cause this widget to have a white background which we don't have to worry about painting
|
|
257
|
-
# This may leak memory - but it is only in initialize so that is ok.
|
|
258
|
-
p = palette()
|
|
259
|
-
p.setBrush(Qt::Palette::Active, Qt::Palette::Window, Cosmos.getBrush(Qt::white))
|
|
260
|
-
setPalette(p)
|
|
261
|
-
setBackgroundRole(Qt::Palette::Window)
|
|
262
|
-
setAutoFillBackground(true)
|
|
263
|
-
|
|
264
|
-
update_graph_size()
|
|
265
|
-
|
|
266
|
-
setMouseTracking(true) # enable mouseMoveEvents even when the mouse isn't pressed
|
|
267
|
-
end # def initialize
|
|
268
|
-
|
|
269
|
-
# Once a GraphicsView is displayed the size hint it set based on the initial display size.
|
|
270
|
-
# This causes a single GraphicsView in a layout takes to take a very large size hint.
|
|
271
|
-
# If this GraphicsView is then added to a new layout it will continue to remember that size hint
|
|
272
|
-
# and force other Widgets in that layout to be smaller than we want.
|
|
273
|
-
# Thus we set the sizeHint to 0 and allow the layout manager to do the right thing
|
|
274
|
-
#~ def sizeHint
|
|
275
|
-
#~ return Qt::Size.new(100, 100)
|
|
276
|
-
#~ end
|
|
277
|
-
|
|
278
|
-
# Handler for leaveEvent
|
|
279
|
-
def leaveEvent(event)
|
|
280
|
-
# Note that the mouse is no longer in the window
|
|
281
|
-
@mouse_in_window = false
|
|
282
|
-
|
|
283
|
-
# Clear cursor line
|
|
284
|
-
@cursor_line_x = nil
|
|
285
|
-
|
|
286
|
-
# Redraw the graph (to remove popups and cursor line)
|
|
287
|
-
graph()
|
|
288
|
-
|
|
289
|
-
# Call mouse_leave_callback so that cursor lines can be removed from
|
|
290
|
-
# other line graphs if needed
|
|
291
|
-
@mouse_leave_callback.call(self) if @mouse_leave_callback
|
|
292
|
-
end # def leaveEvent
|
|
293
|
-
|
|
294
|
-
# Handler for mouseMoveEvent
|
|
295
|
-
def mouseMoveEvent(event)
|
|
296
|
-
# Note that the mouse is in the window
|
|
297
|
-
@mouse_in_window = true
|
|
298
|
-
|
|
299
|
-
# Redraw the graph (to update popups and cursor line)
|
|
300
|
-
graph()
|
|
301
|
-
end # def mouseMoveEvent
|
|
302
|
-
|
|
303
|
-
# Handler for mousePressEvent
|
|
304
|
-
def mousePressEvent(event)
|
|
305
|
-
# Note that the left button is pressed
|
|
306
|
-
@left_button_pressed = true
|
|
307
|
-
|
|
308
|
-
@mouse_left_button_press_callback.call(self) if @mouse_left_button_press_callback
|
|
309
|
-
|
|
310
|
-
# Redraw the graph (to update popups)
|
|
311
|
-
graph()
|
|
312
|
-
end # def mousePressEvent
|
|
313
|
-
|
|
314
|
-
def mouseReleaseEvent(event)
|
|
315
|
-
left_button_release_time = Time.now
|
|
316
|
-
|
|
317
|
-
if @error and ((left_button_release_time - @previous_left_button_release_time) < DOUBLE_CLICK_SECONDS)
|
|
318
|
-
@pre_error_callback.call(self) if @pre_error_callback
|
|
319
|
-
if @error.is_a? FatalError
|
|
320
|
-
ExceptionDialog.new(self, @error, 'LineGraph', false, false) # don't log it, it is known
|
|
321
|
-
else
|
|
322
|
-
ExceptionDialog.new(self, @error, 'LineGraph', false, true) # log the error
|
|
323
|
-
end
|
|
324
|
-
@post_error_callback.call(self) if @post_error_callback
|
|
325
|
-
@error = nil
|
|
326
|
-
end
|
|
327
|
-
|
|
328
|
-
# Note that the left button is not pressed
|
|
329
|
-
@left_button_pressed = false
|
|
330
|
-
|
|
331
|
-
# Redraw the graph (to update popups)
|
|
332
|
-
graph()
|
|
333
|
-
|
|
334
|
-
# Update Previous left button release time
|
|
335
|
-
@previous_left_button_release_time = left_button_release_time
|
|
336
|
-
end
|
|
337
|
-
|
|
338
|
-
# Handler for paintEvent
|
|
339
|
-
def paintEvent(event)
|
|
340
|
-
return if @painter
|
|
341
|
-
@painter = Qt::Painter.new(self)
|
|
342
|
-
@painter.setFont(@font)
|
|
343
|
-
# Seems like on initialization sometimes we get some weird bad conditions so check for them
|
|
344
|
-
if @painter.isActive and @painter.paintEngine
|
|
345
|
-
draw_graph_into_back_buffer() if @redraw_needed
|
|
346
|
-
draw_graph_to_screen()
|
|
347
|
-
end
|
|
348
|
-
@painter.dispose
|
|
349
|
-
@painter = nil
|
|
350
|
-
end
|
|
351
|
-
|
|
352
|
-
# Handler for ResizeEvent
|
|
353
|
-
def resizeEvent(event)
|
|
354
|
-
# Update internal buffer to new graph size
|
|
355
|
-
update_graph_size()
|
|
356
|
-
|
|
357
|
-
# Force a complete redraw of the graph to handle the new size
|
|
358
|
-
@redraw_needed = true
|
|
359
|
-
graph()
|
|
360
|
-
end # def resizeEvent
|
|
361
|
-
|
|
362
|
-
# Clears all knowledge of line data - the graph is a clean slate
|
|
363
|
-
def clear_lines
|
|
364
|
-
@lines.clear
|
|
365
|
-
@redraw_needed = true
|
|
366
|
-
end # def clear_lines
|
|
367
|
-
|
|
368
|
-
# Adds a line to the graph - Afterwards the graph is ready to be drawn
|
|
369
|
-
def add_line(legend_text, y, x = nil, y_labels = nil, x_labels = nil, y_states = nil, x_states = nil, color = 'blue', axis = :LEFT, max_points_plotted = nil)
|
|
370
|
-
@unix_epoch_x_values = false unless x
|
|
371
|
-
|
|
372
|
-
@lines.add_line(legend_text, y, x, y_labels, x_labels, y_states, x_states, color, axis, max_points_plotted)
|
|
373
|
-
|
|
374
|
-
# Adding a line implies a redraw is needed
|
|
375
|
-
@redraw_needed = true
|
|
376
|
-
end # def add_line
|
|
377
|
-
|
|
378
|
-
# Draws the graph
|
|
379
|
-
def graph
|
|
380
|
-
method_missing(:update)
|
|
381
|
-
end
|
|
382
|
-
|
|
383
|
-
# Start auto scaling of the x axis
|
|
384
|
-
def auto_scale_x
|
|
385
|
-
@x_auto_scale = true
|
|
386
|
-
@redraw_needed = true
|
|
387
|
-
graph()
|
|
388
|
-
end # def auto_scale_x
|
|
389
|
-
|
|
390
|
-
# Start auto scaling of the y axis
|
|
391
|
-
def auto_scale_y(axis)
|
|
392
|
-
if axis == :LEFT
|
|
393
|
-
@left_y_auto_scale = true
|
|
394
|
-
else # axis == :RIGHT
|
|
395
|
-
@right_y_auto_scale = true
|
|
396
|
-
end
|
|
397
|
-
@redraw_needed = true
|
|
398
|
-
graph()
|
|
399
|
-
end # def auto_scale_y
|
|
400
|
-
|
|
401
|
-
# Start manual scaling of x axis
|
|
402
|
-
def manual_scale_x(x_min, x_max, redraw_now = true)
|
|
403
|
-
if x_min <= x_max
|
|
404
|
-
@x_max = x_max
|
|
405
|
-
@x_min = x_min
|
|
406
|
-
@x_max_label = nil
|
|
407
|
-
@x_min_label = nil
|
|
408
|
-
@x_auto_scale = false
|
|
409
|
-
else
|
|
410
|
-
Kernel.raise ArgumentError, "GraphView Manual X Max must be greater than X Min"
|
|
411
|
-
end
|
|
412
|
-
@redraw_needed = true
|
|
413
|
-
graph() if redraw_now
|
|
414
|
-
end # def manual_scale_x
|
|
415
|
-
|
|
416
|
-
# Start manual scaling of y axis
|
|
417
|
-
def manual_scale_y(y_min, y_max, axis)
|
|
418
|
-
if y_min < y_max
|
|
419
|
-
if axis == :LEFT
|
|
420
|
-
@left_y_auto_scale = false
|
|
421
|
-
@left_y_max = y_max
|
|
422
|
-
@left_y_min = y_min
|
|
423
|
-
else
|
|
424
|
-
@right_y_auto_scale = false
|
|
425
|
-
@right_y_max = y_max
|
|
426
|
-
@right_y_min = y_min
|
|
427
|
-
end
|
|
428
|
-
else
|
|
429
|
-
Kernel.raise ArgumentError, "GraphView Manual Y Max must be greater than Y Min"
|
|
430
|
-
end
|
|
431
|
-
@redraw_needed = true
|
|
432
|
-
graph()
|
|
433
|
-
end # def manual_scale_y
|
|
434
|
-
|
|
435
|
-
# Set the cursor position remotely
|
|
436
|
-
def remote_draw_cursor_line_at_x(x, left_button_pressed)
|
|
437
|
-
@cursor_line_x = x
|
|
438
|
-
@left_button_pressed = left_button_pressed
|
|
439
|
-
graph()
|
|
440
|
-
end # def remote_draw_cursor_line_at_x
|
|
441
|
-
|
|
442
|
-
# Clears all horizontal lines on the graph
|
|
443
|
-
def clear_horizontal_lines
|
|
444
|
-
@horizontal_lines = []
|
|
445
|
-
@redraw_needed = true
|
|
446
|
-
end
|
|
447
|
-
|
|
448
|
-
# Add a horizontal line to the graph
|
|
449
|
-
def add_horizontal_line(y_value, color, axis = :LEFT)
|
|
450
|
-
@horizontal_lines << [y_value, color, axis]
|
|
451
|
-
@redraw_needed = true
|
|
452
|
-
end
|
|
453
|
-
|
|
454
|
-
end # class LineGraph
|
|
455
|
-
end # module Cosmos
|
|
456
|
-
|
|
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'
|
|
12
|
+
require 'cosmos/ext/line_graph'
|
|
13
|
+
require 'cosmos/gui/qt'
|
|
14
|
+
require 'cosmos/gui/dialogs/exception_dialog'
|
|
15
|
+
require 'cosmos/gui/line_graph/lines'
|
|
16
|
+
require 'cosmos/gui/line_graph/line_graph_drawing'
|
|
17
|
+
require 'cosmos/gui/line_graph/line_graph_scaling'
|
|
18
|
+
require 'cosmos/gui/line_graph/line_graph_popups'
|
|
19
|
+
|
|
20
|
+
module Cosmos
|
|
21
|
+
|
|
22
|
+
# GUI object to display a line graph
|
|
23
|
+
class LineGraph < Qt::Widget
|
|
24
|
+
|
|
25
|
+
# Create attr_accessors that automatically set the redraw_needed flag when
|
|
26
|
+
# they are set
|
|
27
|
+
def self.attr_accessor_with_redraw(*symbols)
|
|
28
|
+
symbols.each do |name|
|
|
29
|
+
self.class_eval("def #{name}; @#{name}; end")
|
|
30
|
+
self.class_eval(%Q{
|
|
31
|
+
def #{name}=(value)
|
|
32
|
+
@#{name} = value
|
|
33
|
+
@redraw_needed = true
|
|
34
|
+
end
|
|
35
|
+
})
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Max seconds between clicks for a double click
|
|
40
|
+
DOUBLE_CLICK_SECONDS = 0.2
|
|
41
|
+
|
|
42
|
+
#########################################################################
|
|
43
|
+
# Configurable Attributes which when set result in a redraw needed
|
|
44
|
+
#########################################################################
|
|
45
|
+
|
|
46
|
+
# Draw a small square at each data point of this size
|
|
47
|
+
attr_accessor_with_redraw :point_size
|
|
48
|
+
# Draws the lines between points - true/false
|
|
49
|
+
attr_accessor_with_redraw :show_lines
|
|
50
|
+
# Show x and y gridlines - true/false
|
|
51
|
+
attr_accessor_with_redraw :show_x_grid_lines, :show_y_grid_lines
|
|
52
|
+
# Manual distance between x and y gridlines
|
|
53
|
+
# Note that right y grid lines are slave to left y grid lines
|
|
54
|
+
# unless there are only right lines
|
|
55
|
+
attr_accessor_with_redraw :manual_x_grid_line_scale, :manual_y_grid_line_scale
|
|
56
|
+
# Draw Legend - true/false
|
|
57
|
+
attr_accessor_with_redraw :show_legend
|
|
58
|
+
# Draw cursor / popups - true/false
|
|
59
|
+
attr_accessor_with_redraw :show_cursor_and_popups
|
|
60
|
+
# Overall frame color and size in pixels
|
|
61
|
+
attr_accessor_with_redraw :frame_color, :frame_size
|
|
62
|
+
# Canvas and graph background color
|
|
63
|
+
attr_accessor_with_redraw :back_color, :graph_back_color
|
|
64
|
+
# Label and Border Text Color
|
|
65
|
+
attr_accessor_with_redraw :label_and_border_color
|
|
66
|
+
# Graph Title Text
|
|
67
|
+
attr_accessor_with_redraw :title
|
|
68
|
+
# X axis and left and right Y axis text
|
|
69
|
+
attr_accessor_with_redraw :x_axis_title, :left_y_axis_title, :right_y_axis_title
|
|
70
|
+
# Maximum number of characters to show for a x and y axis label
|
|
71
|
+
attr_accessor_with_redraw :max_x_characters, :max_y_characters
|
|
72
|
+
# Minimum width and height of graph
|
|
73
|
+
attr_accessor_with_redraw :minimum_width, :minimum_height
|
|
74
|
+
# Error associated with the graph
|
|
75
|
+
attr_accessor_with_redraw :error
|
|
76
|
+
# Flag indicating if x data is ordered or not
|
|
77
|
+
attr_accessor_with_redraw :ordered_x_values
|
|
78
|
+
# Flag indicating if popups should always show both x and y values
|
|
79
|
+
attr_accessor_with_redraw :show_popup_x_y
|
|
80
|
+
# Use x_value as floating point UTC timestamp with unix epoch
|
|
81
|
+
attr_accessor_with_redraw :unix_epoch_x_values
|
|
82
|
+
|
|
83
|
+
#########################################################################
|
|
84
|
+
# Callback attributes
|
|
85
|
+
#########################################################################
|
|
86
|
+
|
|
87
|
+
# Callback called when a cursor line is drawn - call(self, graph_x, @left_button_pressed)
|
|
88
|
+
attr_accessor :draw_cursor_line_callback
|
|
89
|
+
# Callback called when the mouse leaves a graph - call(self)
|
|
90
|
+
attr_accessor :mouse_leave_callback
|
|
91
|
+
# Callback called when the mouse left button is pressed - call(self)
|
|
92
|
+
attr_accessor :mouse_left_button_press_callback
|
|
93
|
+
# Callback called before exception popup is displayed - call(self)
|
|
94
|
+
attr_accessor :pre_error_callback
|
|
95
|
+
# Callback called after exception popup is displayed - call(self)
|
|
96
|
+
attr_accessor :post_error_callback
|
|
97
|
+
|
|
98
|
+
#########################################################################
|
|
99
|
+
# Readable Attributes
|
|
100
|
+
#########################################################################
|
|
101
|
+
|
|
102
|
+
# Minimum and maximum shown x values
|
|
103
|
+
attr_reader :x_min, :x_max
|
|
104
|
+
# Minimum and maximum shown x value label
|
|
105
|
+
attr_reader :x_min_label, :x_max_label
|
|
106
|
+
# Minimm and maximum shown left y value
|
|
107
|
+
attr_reader :left_y_min, :left_y_max
|
|
108
|
+
# Minimum and maximum shown right y value
|
|
109
|
+
attr_reader :right_y_min, :right_y_max
|
|
110
|
+
# Extra horizontal lines
|
|
111
|
+
attr_reader :horizontal_lines
|
|
112
|
+
|
|
113
|
+
#########################################################################
|
|
114
|
+
# Public Interface Methods
|
|
115
|
+
#########################################################################
|
|
116
|
+
|
|
117
|
+
def initialize(parent = nil)
|
|
118
|
+
super(parent)
|
|
119
|
+
|
|
120
|
+
#######################################################################
|
|
121
|
+
# Initialize configurable attributes to default values
|
|
122
|
+
#######################################################################
|
|
123
|
+
@point_size = 5
|
|
124
|
+
@show_lines = true
|
|
125
|
+
@show_x_grid_lines = false
|
|
126
|
+
@manual_x_grid_line_scale = nil
|
|
127
|
+
@show_y_grid_lines = false
|
|
128
|
+
@manual_y_grid_line_scale = nil
|
|
129
|
+
@show_legend = false
|
|
130
|
+
@show_cursor_and_popups = true
|
|
131
|
+
@frame_color = 'black'
|
|
132
|
+
@frame_size = 0
|
|
133
|
+
@back_color = 'white'
|
|
134
|
+
@graph_back_color = 'grey'
|
|
135
|
+
@label_and_border_color = 'black'
|
|
136
|
+
@title = nil
|
|
137
|
+
@x_axis_title = nil
|
|
138
|
+
@left_y_axis_title = nil
|
|
139
|
+
@right_y_axis_title = nil
|
|
140
|
+
@max_x_characters = 15
|
|
141
|
+
@max_y_characters = 8
|
|
142
|
+
@minimum_width = 250
|
|
143
|
+
@minimum_height = 100
|
|
144
|
+
@error = nil
|
|
145
|
+
@ordered_x_values = true
|
|
146
|
+
@show_popup_x_y = false
|
|
147
|
+
@unix_epoch_x_values = true
|
|
148
|
+
|
|
149
|
+
# Initialize the callbacks
|
|
150
|
+
@draw_cursor_line_callback = nil
|
|
151
|
+
@mouse_leave_callback = nil
|
|
152
|
+
@mouse_left_button_press_callback = nil
|
|
153
|
+
@pre_error_callback = nil
|
|
154
|
+
@post_error_callback = nil
|
|
155
|
+
|
|
156
|
+
#######################################################################
|
|
157
|
+
# Initialize read-only attributes to default values
|
|
158
|
+
#######################################################################
|
|
159
|
+
|
|
160
|
+
@x_max = 1
|
|
161
|
+
@x_min = -1
|
|
162
|
+
@x_max_label = nil
|
|
163
|
+
@x_min_label = nil
|
|
164
|
+
@left_y_max = 1
|
|
165
|
+
@left_y_min = -1
|
|
166
|
+
@right_y_max = 1
|
|
167
|
+
@right_y_min = -1
|
|
168
|
+
@horizontal_lines = []
|
|
169
|
+
|
|
170
|
+
###########################
|
|
171
|
+
# Initialize internal state
|
|
172
|
+
###########################
|
|
173
|
+
|
|
174
|
+
# Create line data
|
|
175
|
+
@lines = Lines.new
|
|
176
|
+
|
|
177
|
+
# Painter to do all the drawing with
|
|
178
|
+
@painter = nil
|
|
179
|
+
|
|
180
|
+
# Value used to scale a x value to a x graph coordinate
|
|
181
|
+
@x_scale = 0
|
|
182
|
+
|
|
183
|
+
# Value used to scale a left y value to a y graph coordinate
|
|
184
|
+
@left_y_scale = 0
|
|
185
|
+
|
|
186
|
+
# Value used to scale a right y value to a y graph coordinate
|
|
187
|
+
@right_y_scale = 0
|
|
188
|
+
|
|
189
|
+
# Size of the font used to display text
|
|
190
|
+
@font_size = 10
|
|
191
|
+
|
|
192
|
+
# The font class used to display text
|
|
193
|
+
@font = Cosmos.getFont("Helvetica", @font_size)
|
|
194
|
+
|
|
195
|
+
# The font class used for titles
|
|
196
|
+
@title_font = Cosmos.getFont("Helvetica", @font_size + 4, Qt::Font::Bold)
|
|
197
|
+
|
|
198
|
+
# Auto scale left y-axis setting
|
|
199
|
+
@left_y_auto_scale = true
|
|
200
|
+
|
|
201
|
+
# Auto scale right y-axis setting
|
|
202
|
+
@right_y_auto_scale = true
|
|
203
|
+
|
|
204
|
+
# Auto scale x-axis setting
|
|
205
|
+
@x_auto_scale = true
|
|
206
|
+
|
|
207
|
+
# Values of x gridlines
|
|
208
|
+
@x_grid_lines = []
|
|
209
|
+
|
|
210
|
+
# Values of y gridlines on left x-axis unless no left lines
|
|
211
|
+
@y_grid_lines = []
|
|
212
|
+
|
|
213
|
+
# Distance between gridlines on the left y-axis unless no left lines
|
|
214
|
+
@y_grid_line_scale = 0.1
|
|
215
|
+
|
|
216
|
+
# Distance between gridlines on the x-axis
|
|
217
|
+
@x_grid_line_scale = 0.1
|
|
218
|
+
|
|
219
|
+
# Flag to note if the mouse in the the graph window
|
|
220
|
+
@mouse_in_window = false
|
|
221
|
+
|
|
222
|
+
# Graph right boundary in window coordinates
|
|
223
|
+
@graph_right_x = 0
|
|
224
|
+
|
|
225
|
+
# Graph left boundary in window coordinates
|
|
226
|
+
@graph_left_x = 0
|
|
227
|
+
|
|
228
|
+
# Graph top boundary in window coordinates
|
|
229
|
+
@graph_top_y = 0
|
|
230
|
+
|
|
231
|
+
# Graph bottom boundary in window coordinates
|
|
232
|
+
@graph_bottom_y = 0
|
|
233
|
+
|
|
234
|
+
# Array containing popup information
|
|
235
|
+
@popups = []
|
|
236
|
+
|
|
237
|
+
# Position of cursor line
|
|
238
|
+
@cursor_line_x = nil
|
|
239
|
+
|
|
240
|
+
# Indicates state of left mouse button
|
|
241
|
+
@left_button_pressed = false
|
|
242
|
+
|
|
243
|
+
# Flag to prevent recursion in update_graph_size
|
|
244
|
+
@in_update_graph_size = false
|
|
245
|
+
|
|
246
|
+
# Time of previous left button release
|
|
247
|
+
@previous_left_button_release_time = Time.now
|
|
248
|
+
|
|
249
|
+
@redraw_needed = true
|
|
250
|
+
|
|
251
|
+
setContentsMargins(0,0,0,0)
|
|
252
|
+
|
|
253
|
+
#setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff)
|
|
254
|
+
#setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff)
|
|
255
|
+
|
|
256
|
+
# Cause this widget to have a white background which we don't have to worry about painting
|
|
257
|
+
# This may leak memory - but it is only in initialize so that is ok.
|
|
258
|
+
p = palette()
|
|
259
|
+
p.setBrush(Qt::Palette::Active, Qt::Palette::Window, Cosmos.getBrush(Qt::white))
|
|
260
|
+
setPalette(p)
|
|
261
|
+
setBackgroundRole(Qt::Palette::Window)
|
|
262
|
+
setAutoFillBackground(true)
|
|
263
|
+
|
|
264
|
+
update_graph_size()
|
|
265
|
+
|
|
266
|
+
setMouseTracking(true) # enable mouseMoveEvents even when the mouse isn't pressed
|
|
267
|
+
end # def initialize
|
|
268
|
+
|
|
269
|
+
# Once a GraphicsView is displayed the size hint it set based on the initial display size.
|
|
270
|
+
# This causes a single GraphicsView in a layout takes to take a very large size hint.
|
|
271
|
+
# If this GraphicsView is then added to a new layout it will continue to remember that size hint
|
|
272
|
+
# and force other Widgets in that layout to be smaller than we want.
|
|
273
|
+
# Thus we set the sizeHint to 0 and allow the layout manager to do the right thing
|
|
274
|
+
#~ def sizeHint
|
|
275
|
+
#~ return Qt::Size.new(100, 100)
|
|
276
|
+
#~ end
|
|
277
|
+
|
|
278
|
+
# Handler for leaveEvent
|
|
279
|
+
def leaveEvent(event)
|
|
280
|
+
# Note that the mouse is no longer in the window
|
|
281
|
+
@mouse_in_window = false
|
|
282
|
+
|
|
283
|
+
# Clear cursor line
|
|
284
|
+
@cursor_line_x = nil
|
|
285
|
+
|
|
286
|
+
# Redraw the graph (to remove popups and cursor line)
|
|
287
|
+
graph()
|
|
288
|
+
|
|
289
|
+
# Call mouse_leave_callback so that cursor lines can be removed from
|
|
290
|
+
# other line graphs if needed
|
|
291
|
+
@mouse_leave_callback.call(self) if @mouse_leave_callback
|
|
292
|
+
end # def leaveEvent
|
|
293
|
+
|
|
294
|
+
# Handler for mouseMoveEvent
|
|
295
|
+
def mouseMoveEvent(event)
|
|
296
|
+
# Note that the mouse is in the window
|
|
297
|
+
@mouse_in_window = true
|
|
298
|
+
|
|
299
|
+
# Redraw the graph (to update popups and cursor line)
|
|
300
|
+
graph()
|
|
301
|
+
end # def mouseMoveEvent
|
|
302
|
+
|
|
303
|
+
# Handler for mousePressEvent
|
|
304
|
+
def mousePressEvent(event)
|
|
305
|
+
# Note that the left button is pressed
|
|
306
|
+
@left_button_pressed = true
|
|
307
|
+
|
|
308
|
+
@mouse_left_button_press_callback.call(self) if @mouse_left_button_press_callback
|
|
309
|
+
|
|
310
|
+
# Redraw the graph (to update popups)
|
|
311
|
+
graph()
|
|
312
|
+
end # def mousePressEvent
|
|
313
|
+
|
|
314
|
+
def mouseReleaseEvent(event)
|
|
315
|
+
left_button_release_time = Time.now
|
|
316
|
+
|
|
317
|
+
if @error and ((left_button_release_time - @previous_left_button_release_time) < DOUBLE_CLICK_SECONDS)
|
|
318
|
+
@pre_error_callback.call(self) if @pre_error_callback
|
|
319
|
+
if @error.is_a? FatalError
|
|
320
|
+
ExceptionDialog.new(self, @error, 'LineGraph', false, false) # don't log it, it is known
|
|
321
|
+
else
|
|
322
|
+
ExceptionDialog.new(self, @error, 'LineGraph', false, true) # log the error
|
|
323
|
+
end
|
|
324
|
+
@post_error_callback.call(self) if @post_error_callback
|
|
325
|
+
@error = nil
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
# Note that the left button is not pressed
|
|
329
|
+
@left_button_pressed = false
|
|
330
|
+
|
|
331
|
+
# Redraw the graph (to update popups)
|
|
332
|
+
graph()
|
|
333
|
+
|
|
334
|
+
# Update Previous left button release time
|
|
335
|
+
@previous_left_button_release_time = left_button_release_time
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
# Handler for paintEvent
|
|
339
|
+
def paintEvent(event)
|
|
340
|
+
return if @painter
|
|
341
|
+
@painter = Qt::Painter.new(self)
|
|
342
|
+
@painter.setFont(@font)
|
|
343
|
+
# Seems like on initialization sometimes we get some weird bad conditions so check for them
|
|
344
|
+
if @painter.isActive and @painter.paintEngine
|
|
345
|
+
draw_graph_into_back_buffer() if @redraw_needed
|
|
346
|
+
draw_graph_to_screen()
|
|
347
|
+
end
|
|
348
|
+
@painter.dispose
|
|
349
|
+
@painter = nil
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
# Handler for ResizeEvent
|
|
353
|
+
def resizeEvent(event)
|
|
354
|
+
# Update internal buffer to new graph size
|
|
355
|
+
update_graph_size()
|
|
356
|
+
|
|
357
|
+
# Force a complete redraw of the graph to handle the new size
|
|
358
|
+
@redraw_needed = true
|
|
359
|
+
graph()
|
|
360
|
+
end # def resizeEvent
|
|
361
|
+
|
|
362
|
+
# Clears all knowledge of line data - the graph is a clean slate
|
|
363
|
+
def clear_lines
|
|
364
|
+
@lines.clear
|
|
365
|
+
@redraw_needed = true
|
|
366
|
+
end # def clear_lines
|
|
367
|
+
|
|
368
|
+
# Adds a line to the graph - Afterwards the graph is ready to be drawn
|
|
369
|
+
def add_line(legend_text, y, x = nil, y_labels = nil, x_labels = nil, y_states = nil, x_states = nil, color = 'blue', axis = :LEFT, max_points_plotted = nil)
|
|
370
|
+
@unix_epoch_x_values = false unless x
|
|
371
|
+
|
|
372
|
+
@lines.add_line(legend_text, y, x, y_labels, x_labels, y_states, x_states, color, axis, max_points_plotted)
|
|
373
|
+
|
|
374
|
+
# Adding a line implies a redraw is needed
|
|
375
|
+
@redraw_needed = true
|
|
376
|
+
end # def add_line
|
|
377
|
+
|
|
378
|
+
# Draws the graph
|
|
379
|
+
def graph
|
|
380
|
+
method_missing(:update)
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
# Start auto scaling of the x axis
|
|
384
|
+
def auto_scale_x
|
|
385
|
+
@x_auto_scale = true
|
|
386
|
+
@redraw_needed = true
|
|
387
|
+
graph()
|
|
388
|
+
end # def auto_scale_x
|
|
389
|
+
|
|
390
|
+
# Start auto scaling of the y axis
|
|
391
|
+
def auto_scale_y(axis)
|
|
392
|
+
if axis == :LEFT
|
|
393
|
+
@left_y_auto_scale = true
|
|
394
|
+
else # axis == :RIGHT
|
|
395
|
+
@right_y_auto_scale = true
|
|
396
|
+
end
|
|
397
|
+
@redraw_needed = true
|
|
398
|
+
graph()
|
|
399
|
+
end # def auto_scale_y
|
|
400
|
+
|
|
401
|
+
# Start manual scaling of x axis
|
|
402
|
+
def manual_scale_x(x_min, x_max, redraw_now = true)
|
|
403
|
+
if x_min <= x_max
|
|
404
|
+
@x_max = x_max
|
|
405
|
+
@x_min = x_min
|
|
406
|
+
@x_max_label = nil
|
|
407
|
+
@x_min_label = nil
|
|
408
|
+
@x_auto_scale = false
|
|
409
|
+
else
|
|
410
|
+
Kernel.raise ArgumentError, "GraphView Manual X Max must be greater than X Min"
|
|
411
|
+
end
|
|
412
|
+
@redraw_needed = true
|
|
413
|
+
graph() if redraw_now
|
|
414
|
+
end # def manual_scale_x
|
|
415
|
+
|
|
416
|
+
# Start manual scaling of y axis
|
|
417
|
+
def manual_scale_y(y_min, y_max, axis)
|
|
418
|
+
if y_min < y_max
|
|
419
|
+
if axis == :LEFT
|
|
420
|
+
@left_y_auto_scale = false
|
|
421
|
+
@left_y_max = y_max
|
|
422
|
+
@left_y_min = y_min
|
|
423
|
+
else
|
|
424
|
+
@right_y_auto_scale = false
|
|
425
|
+
@right_y_max = y_max
|
|
426
|
+
@right_y_min = y_min
|
|
427
|
+
end
|
|
428
|
+
else
|
|
429
|
+
Kernel.raise ArgumentError, "GraphView Manual Y Max must be greater than Y Min"
|
|
430
|
+
end
|
|
431
|
+
@redraw_needed = true
|
|
432
|
+
graph()
|
|
433
|
+
end # def manual_scale_y
|
|
434
|
+
|
|
435
|
+
# Set the cursor position remotely
|
|
436
|
+
def remote_draw_cursor_line_at_x(x, left_button_pressed)
|
|
437
|
+
@cursor_line_x = x
|
|
438
|
+
@left_button_pressed = left_button_pressed
|
|
439
|
+
graph()
|
|
440
|
+
end # def remote_draw_cursor_line_at_x
|
|
441
|
+
|
|
442
|
+
# Clears all horizontal lines on the graph
|
|
443
|
+
def clear_horizontal_lines
|
|
444
|
+
@horizontal_lines = []
|
|
445
|
+
@redraw_needed = true
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
# Add a horizontal line to the graph
|
|
449
|
+
def add_horizontal_line(y_value, color, axis = :LEFT)
|
|
450
|
+
@horizontal_lines << [y_value, color, axis]
|
|
451
|
+
@redraw_needed = true
|
|
452
|
+
end
|
|
453
|
+
|
|
454
|
+
end # class LineGraph
|
|
455
|
+
end # module Cosmos
|
|
456
|
+
|