cosmos 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Manifest.txt +195 -0
- data/README.md +3 -3
- data/data/crc.txt +52 -52
- data/lib/cosmos.rb +1 -1
- data/lib/cosmos/core_ext/time.rb +11 -9
- data/lib/cosmos/gui/choosers/telemetry_chooser.rb +0 -2
- data/lib/cosmos/gui/dialogs/about_dialog.rb +2 -2
- data/lib/cosmos/gui/dialogs/exception_dialog.rb +2 -2
- data/lib/cosmos/gui/dialogs/progress_dialog.rb +11 -5
- data/lib/cosmos/gui/dialogs/splash.rb +32 -10
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +1 -1
- data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +2 -2
- data/lib/cosmos/gui/qt.rb +22 -22
- data/lib/cosmos/io/json_drb.rb +4 -4
- data/lib/cosmos/io/json_rpc.rb +21 -21
- data/lib/cosmos/packet_logs/packet_log_writer.rb +18 -20
- data/lib/cosmos/packets/commands.rb +8 -6
- data/lib/cosmos/packets/limits.rb +3 -2
- data/lib/cosmos/packets/packet.rb +14 -11
- data/lib/cosmos/packets/parsers/limits_parser.rb +1 -1
- data/lib/cosmos/packets/parsers/macro_parser.rb +4 -4
- data/lib/cosmos/packets/parsers/state_parser.rb +1 -1
- data/lib/cosmos/packets/structure.rb +2 -2
- data/lib/cosmos/packets/telemetry.rb +5 -4
- data/lib/cosmos/script/script.rb +6 -6
- data/lib/cosmos/streams/tcpip_socket_stream.rb +2 -1
- data/lib/cosmos/streams/template_stream_protocol.rb +1 -1
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +5 -8
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +4 -3
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +9 -3
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +15 -11
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +1 -1
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +2 -2
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +2 -2
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +0 -2
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +1 -1
- data/lib/cosmos/tools/replay/replay.rb +2 -2
- data/lib/cosmos/tools/script_runner/script_audit.rb +1 -1
- data/lib/cosmos/tools/script_runner/script_runner.rb +1 -1
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +3 -7
- data/lib/cosmos/tools/table_manager/table_config.rb +1 -1
- data/lib/cosmos/tools/test_runner/results_writer.rb +1 -1
- data/lib/cosmos/tools/test_runner/test_runner.rb +2 -2
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +2 -1
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +1 -1
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +1 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +1 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +1 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +3 -3
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +1 -3
- data/lib/cosmos/top_level.rb +2 -6
- data/lib/cosmos/utilities/ruby_lex_utils.rb +1 -1
- data/lib/cosmos/version.rb +5 -5
- data/lib/cosmos/win32/win32_main.rb +11 -7
- data/spec/ccsds/ccsds_packet_spec.rb +28 -28
- data/spec/ccsds/ccsds_parser_spec.rb +27 -27
- data/spec/config/config_parser_spec.rb +88 -88
- data/spec/conversions/conversion_spec.rb +3 -3
- data/spec/conversions/generic_conversion_spec.rb +9 -9
- data/spec/conversions/new_packet_log_conversion_spec.rb +4 -4
- data/spec/conversions/polynomial_conversion_spec.rb +7 -7
- data/spec/conversions/processor_conversion_spec.rb +9 -9
- data/spec/conversions/received_count_conversion_spec.rb +7 -7
- data/spec/conversions/received_time_formatted_conversion_spec.rb +9 -9
- data/spec/conversions/received_time_seconds_conversion_spec.rb +9 -9
- data/spec/conversions/segmented_polynomial_conversion_spec.rb +11 -11
- data/spec/conversions/unix_time_formatted_conversion_spec.rb +13 -13
- data/spec/conversions/unix_time_seconds_conversion_spec.rb +13 -13
- data/spec/core_ext/array_spec.rb +76 -76
- data/spec/core_ext/class_spec.rb +3 -3
- data/spec/core_ext/cosmos_io_spec.rb +16 -16
- data/spec/core_ext/exception_spec.rb +19 -19
- data/spec/core_ext/file_spec.rb +16 -16
- data/spec/core_ext/hash_spec.rb +3 -3
- data/spec/core_ext/io_spec.rb +2 -2
- data/spec/core_ext/kernel_spec.rb +2 -2
- data/spec/core_ext/math_spec.rb +43 -43
- data/spec/core_ext/matrix_spec.rb +22 -22
- data/spec/core_ext/objectspace_spec.rb +6 -6
- data/spec/core_ext/range_spec.rb +2 -2
- data/spec/core_ext/socket_spec.rb +4 -4
- data/spec/core_ext/string_spec.rb +67 -67
- data/spec/core_ext/stringio_spec.rb +2 -2
- data/spec/core_ext/time_spec.rb +82 -82
- data/spec/gui/line_graph/line_clip_spec.rb +34 -34
- data/spec/interfaces/interface_spec.rb +46 -46
- data/spec/interfaces/linc_interface_spec.rb +26 -26
- data/spec/interfaces/serial_interface_spec.rb +16 -16
- data/spec/interfaces/simulated_target_interface_spec.rb +21 -21
- data/spec/interfaces/stream_interface_spec.rb +22 -22
- data/spec/interfaces/tcpip_client_interface_spec.rb +14 -14
- data/spec/interfaces/tcpip_server_interface_spec.rb +41 -41
- data/spec/interfaces/udp_interface_spec.rb +46 -46
- data/spec/io/buffered_file_spec.rb +50 -50
- data/spec/io/io_multiplexer_spec.rb +9 -9
- data/spec/io/json_drb_object_spec.rb +7 -7
- data/spec/io/json_drb_spec.rb +55 -55
- data/spec/io/json_rpc_spec.rb +68 -68
- data/spec/io/raw_logger_pair_spec.rb +28 -28
- data/spec/io/raw_logger_spec.rb +22 -22
- data/spec/io/serial_driver_spec.rb +3 -3
- data/spec/io/stderr_spec.rb +2 -2
- data/spec/io/stdout_spec.rb +2 -2
- data/spec/io/tcpip_server_spec.rb +62 -62
- data/spec/io/udp_sockets_spec.rb +19 -19
- data/spec/io/win32_serial_driver_spec.rb +10 -10
- data/spec/packet_logs/meta_packet_log_writer_spec.rb +32 -32
- data/spec/packet_logs/packet_log_reader_spec.rb +138 -138
- data/spec/packet_logs/packet_log_writer_pair_spec.rb +3 -3
- data/spec/packet_logs/packet_log_writer_spec.rb +26 -26
- data/spec/packets/binary_accessor_spec.rb +672 -672
- data/spec/packets/commands_spec.rb +123 -123
- data/spec/packets/limits_response_spec.rb +1 -1
- data/spec/packets/limits_spec.rb +69 -69
- data/spec/packets/packet_config_spec.rb +93 -93
- data/spec/packets/packet_item_limits_spec.rb +46 -46
- data/spec/packets/packet_item_spec.rb +108 -108
- data/spec/packets/packet_spec.rb +364 -348
- data/spec/packets/parsers/format_string_parser_spec.rb +13 -13
- data/spec/packets/parsers/limits_parser_spec.rb +8 -8
- data/spec/packets/parsers/limits_response_parser_spec.rb +9 -9
- data/spec/packets/parsers/macro_parser_spec.rb +34 -6
- data/spec/packets/parsers/packet_parser_spec.rb +6 -6
- data/spec/packets/parsers/processor_parser_spec.rb +7 -7
- data/spec/packets/parsers/state_parser_spec.rb +23 -23
- data/spec/packets/structure_item_spec.rb +62 -62
- data/spec/packets/structure_spec.rb +183 -183
- data/spec/packets/telemetry_spec.rb +174 -174
- data/spec/processors/new_packet_log_processor_spec.rb +4 -4
- data/spec/processors/processor_spec.rb +9 -9
- data/spec/processors/statistics_processor_spec.rb +21 -21
- data/spec/processors/watermark_processor_spec.rb +12 -12
- data/spec/script/script_spec.rb +158 -158
- data/spec/spec_helper.rb +44 -13
- data/spec/streams/burst_stream_protocol_spec.rb +8 -8
- data/spec/streams/fixed_stream_protocol_spec.rb +26 -26
- data/spec/streams/length_stream_protocol_spec.rb +27 -27
- data/spec/streams/preidentified_stream_protocol_spec.rb +25 -25
- data/spec/streams/serial_stream_spec.rb +19 -19
- data/spec/streams/stream_protocol_spec.rb +52 -52
- data/spec/streams/stream_spec.rb +1 -1
- data/spec/streams/tcpip_client_stream_spec.rb +7 -7
- data/spec/streams/tcpip_socket_stream_spec.rb +84 -49
- data/spec/streams/template_stream_protocol_spec.rb +17 -17
- data/spec/streams/terminated_stream_protocol_spec.rb +19 -19
- data/spec/system/system_spec.rb +95 -95
- data/spec/system/target_spec.rb +32 -32
- data/spec/tools/cmd_tlm_server/api_spec.rb +386 -386
- data/spec/tools/cmd_tlm_server/background_task_spec.rb +3 -3
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +8 -8
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +57 -57
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +85 -85
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +11 -11
- data/spec/tools/cmd_tlm_server/connections_spec.rb +23 -23
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +57 -57
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +32 -32
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +17 -17
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +15 -15
- data/spec/tools/cmd_tlm_server/routers_spec.rb +36 -36
- data/spec/top_level/top_level_spec.rb +60 -60
- data/spec/utilities/crc_spec.rb +6 -6
- data/spec/utilities/csv_spec.rb +13 -13
- data/spec/utilities/logger_spec.rb +20 -20
- data/spec/utilities/message_log_spec.rb +13 -13
- data/spec/utilities/quaternion_spec.rb +30 -30
- data/spec/utilities/ruby_lex_utils_spec.rb +14 -14
- data/test/benchmarks/binary_accessor_benchmark.rb +14 -0
- data/test/benchmarks/gsub_benchmark.rb +114 -0
- data/test/performance/PACKETS.bat +1 -0
- data/test/performance/Rakefile +77 -0
- data/test/performance/THREADS.bat +1 -0
- data/test/performance/config/data/attitude.bin +0 -0
- data/test/performance/config/data/crc.txt +206 -0
- data/test/performance/config/data/diamond.STL +58 -0
- data/test/performance/config/data/groundoff.gif +0 -0
- data/test/performance/config/data/groundon.gif +0 -0
- data/test/performance/config/data/hselectoff.gif +0 -0
- data/test/performance/config/data/hselecton.gif +0 -0
- data/test/performance/config/data/hswitchoff.gif +0 -0
- data/test/performance/config/data/hswitchon.gif +0 -0
- data/test/performance/config/data/meta_init.txt +4 -0
- data/test/performance/config/data/position.bin +0 -0
- data/test/performance/config/data/poweroff.gif +0 -0
- data/test/performance/config/data/poweron.gif +0 -0
- data/test/performance/config/data/satellite.gif +0 -0
- data/test/performance/config/data/tada.wav +0 -0
- data/test/performance/config/data/vswitchoff.gif +0 -0
- data/test/performance/config/data/vswitchon.gif +0 -0
- data/test/performance/config/system/system_packets.txt +39 -0
- data/test/performance/config/system/system_threads.txt +59 -0
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
- data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
- data/test/performance/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
- data/test/performance/config/targets/COSMOS/screens/limits_change.txt +20 -0
- data/test/performance/config/targets/COSMOS/screens/version.txt +19 -0
- data/test/performance/config/targets/COSMOS/target.txt +11 -0
- data/test/performance/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt +17 -0
- data/test/performance/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +18 -0
- data/test/performance/config/targets/EXAMPLE/cmd_tlm_server.txt +6 -0
- data/test/performance/config/targets/EXAMPLE/lib/example_interface.rb +22 -0
- data/test/performance/config/targets/EXAMPLE/target.txt +7 -0
- data/test/performance/config/targets/SYSTEM/screens/status.txt +12 -0
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +34 -0
- data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +68 -0
- data/test/performance/config/tools/data_viewer/data_viewer.txt +11 -0
- data/test/performance/config/tools/handbook_creator/default_toc.xsl +59 -0
- data/test/performance/config/tools/handbook_creator/handbook_creator.txt +66 -0
- data/test/performance/config/tools/handbook_creator/templates/command_packets.html.erb +86 -0
- data/test/performance/config/tools/handbook_creator/templates/command_toc.html.erb +38 -0
- data/test/performance/config/tools/handbook_creator/templates/footer.html.erb +9 -0
- data/test/performance/config/tools/handbook_creator/templates/header.html.erb +25 -0
- data/test/performance/config/tools/handbook_creator/templates/limits_groups.html.erb +13 -0
- data/test/performance/config/tools/handbook_creator/templates/nav.html.erb +27 -0
- data/test/performance/config/tools/handbook_creator/templates/overview.html.erb +1 -0
- data/test/performance/config/tools/handbook_creator/templates/pdf_cover.html.erb +23 -0
- data/test/performance/config/tools/handbook_creator/templates/pdf_footer.html.erb +33 -0
- data/test/performance/config/tools/handbook_creator/templates/pdf_header.html.erb +41 -0
- data/test/performance/config/tools/handbook_creator/templates/telemetry_packets.html.erb +80 -0
- data/test/performance/config/tools/handbook_creator/templates/telemetry_toc.html.erb +38 -0
- data/test/performance/config/tools/handbook_creator/templates/title.html.erb +1 -0
- data/test/performance/config/tools/launcher/launcher_packets.txt +29 -0
- data/test/performance/config/tools/launcher/launcher_threads.txt +70 -0
- data/test/performance/config/tools/limits_monitor/README.txt +1 -0
- data/test/performance/config/tools/opengl_builder/README.txt +1 -0
- data/test/performance/config/tools/script_runner/script_runner.txt +3 -0
- data/test/performance/config/tools/table_manager/ConfigTables_def.txt +8 -0
- data/test/performance/config/tools/table_manager/ExampleTableDefinition.txt +24 -0
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +25 -0
- data/test/performance/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +25 -0
- data/test/performance/config/tools/table_manager/PPSSelectionTable_def.txt +8 -0
- data/test/performance/config/tools/table_manager/TLMMonitoringTable_def.txt +248 -0
- data/test/performance/config/tools/test_runner/test_runner.txt +17 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor.txt +13 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor2.txt +2 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor3.txt +2 -0
- data/test/performance/config/tools/tlm_extractor/tlm_extractor4.txt +2 -0
- data/test/performance/config/tools/tlm_grapher/README.txt +1 -0
- data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +41 -0
- data/test/performance/lib/example_background_task.rb +57 -0
- data/test/performance/lib/example_target.rb +120 -0
- data/test/performance/lib/scpi_target.rb +74 -0
- data/test/performance/lib/user_version.rb +3 -0
- data/test/performance/outputs/handbooks/README.txt +1 -0
- data/test/performance/outputs/logs/README.txt +1 -0
- data/test/performance/outputs/saved_config/README.txt +1 -0
- data/test/performance/outputs/tables/README.txt +1 -0
- data/test/performance/outputs/tmp/README.txt +1 -0
- data/test/performance/procedures/checks.rb +11 -0
- data/test/performance/procedures/clear_util.rb +7 -0
- data/test/performance/procedures/collect.rb +18 -0
- data/test/performance/procedures/collect_util.rb +14 -0
- data/test/performance/procedures/cosmos_api_test.rb +293 -0
- data/test/performance/procedures/disconnect.rb +29 -0
- data/test/performance/procedures/example_test.rb +182 -0
- data/test/performance/procedures/plot_test.rb +8 -0
- data/test/performance/procedures/procedure.rb +3 -0
- data/test/performance/procedures/run_example_test.rb +3 -0
- data/test/performance/procedures/test.rb +51 -0
- data/test/performance/tools/CmdExtractor +14 -0
- data/test/performance/tools/CmdExtractor.bat +59 -0
- data/test/performance/tools/CmdSender +14 -0
- data/test/performance/tools/CmdSender.bat +59 -0
- data/test/performance/tools/CmdTlmServer +16 -0
- data/test/performance/tools/CmdTlmServer.bat +59 -0
- data/test/performance/tools/CmdTlmServerMemProf +20 -0
- data/test/performance/tools/CmdTlmServerMemProf.bat +59 -0
- data/test/performance/tools/DataViewer +14 -0
- data/test/performance/tools/DataViewer.bat +59 -0
- data/test/performance/tools/ExampleTarget +14 -0
- data/test/performance/tools/ExampleTarget.bat +59 -0
- data/test/performance/tools/HandbookCreator +14 -0
- data/test/performance/tools/HandbookCreator.bat +61 -0
- data/test/performance/tools/Launcher +14 -0
- data/test/performance/tools/Launcher.bat +59 -0
- data/test/performance/tools/LimitsMonitor +14 -0
- data/test/performance/tools/LimitsMonitor.bat +59 -0
- data/test/performance/tools/OpenGLBuilder +14 -0
- data/test/performance/tools/OpenGLBuilder.bat +59 -0
- data/test/performance/tools/PacketViewer +14 -0
- data/test/performance/tools/PacketViewer.bat +59 -0
- data/test/performance/tools/Replay +14 -0
- data/test/performance/tools/Replay.bat +59 -0
- data/test/performance/tools/ScpiTarget +14 -0
- data/test/performance/tools/ScpiTarget.bat +59 -0
- data/test/performance/tools/ScriptRunner +14 -0
- data/test/performance/tools/ScriptRunner.bat +59 -0
- data/test/performance/tools/TableManager +14 -0
- data/test/performance/tools/TableManager.bat +59 -0
- data/test/performance/tools/TestRunner +14 -0
- data/test/performance/tools/TestRunner.bat +59 -0
- data/test/performance/tools/TlmExtractor +14 -0
- data/test/performance/tools/TlmExtractor.bat +59 -0
- data/test/performance/tools/TlmGrapher +14 -0
- data/test/performance/tools/TlmGrapher.bat +59 -0
- data/test/performance/tools/TlmViewer +14 -0
- data/test/performance/tools/TlmViewer.bat +59 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +15 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +15 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/CmdSender.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +15 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +15 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/DataViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +15 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/Launcher.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +15 -0
- data/test/performance/tools/mac/Launcher.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/Launcher.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +15 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +15 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +15 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/Replay.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/Replay.rb +15 -0
- data/test/performance/tools/mac/Replay.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/Replay.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +15 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TableManager.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +15 -0
- data/test/performance/tools/mac/TableManager.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TableManager.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +15 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TestRunner.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +15 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +15 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/Info.plist +38 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +15 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/MacOS/main.sh +6 -0
- data/test/performance/tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns +0 -0
- data/test/performance/userpath.txt +1 -0
- metadata +197 -2
@@ -0,0 +1,17 @@
|
|
1
|
+
REQUIRE_UTILITY 'example_test'
|
2
|
+
LINE_DELAY 0
|
3
|
+
# RESULTS_WRITER 'results_writer.rb'
|
4
|
+
ALLOW_DEBUG
|
5
|
+
PAUSE_ON_ERROR TRUE
|
6
|
+
CONTINUE_TEST_CASE_AFTER_ERROR TRUE
|
7
|
+
ABORT_TESTING_AFTER_ERROR FALSE
|
8
|
+
MANUAL TRUE
|
9
|
+
LOOP_TESTING FALSE
|
10
|
+
BREAK_LOOP_AFTER_ERROR FALSE
|
11
|
+
CREATE_DATA_PACKAGE
|
12
|
+
AUTO_CYCLE_LOGS
|
13
|
+
COLLECT_METADATA META DATA
|
14
|
+
# IGNORE_TEST_SUITE EmptyTestSuite
|
15
|
+
# IGNORE_TEST EmptyTest
|
16
|
+
# MONITOR_LIMITS
|
17
|
+
# PAUSE_ON_RED
|
@@ -0,0 +1,13 @@
|
|
1
|
+
ITEM INST ADCS TIMEFORMATTED
|
2
|
+
ITEM INST ADCS Q1 RAW
|
3
|
+
ITEM INST ADCS Q1
|
4
|
+
ITEM INST ADCS Q1 FORMATTED
|
5
|
+
ITEM INST ADCS Q1 WITH_UNITS
|
6
|
+
ITEM INST ADCS VELX RAW
|
7
|
+
ITEM INST ADCS VELX
|
8
|
+
ITEM INST ADCS VELX FORMATTED
|
9
|
+
ITEM INST ADCS VELX WITH_UNITS
|
10
|
+
ITEM INST ADCS CCSDSSEQFLAGS RAW
|
11
|
+
ITEM INST ADCS CCSDSSEQFLAGS
|
12
|
+
ITEM INST ADCS CCSDSSEQFLAGS FORMATTED
|
13
|
+
ITEM INST ADCS CCSDSSEQFLAGS WITH_UNITS
|
@@ -0,0 +1 @@
|
|
1
|
+
This file is here to make sure this folder is included in the release.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Automatically pull in screens from all targets
|
2
|
+
AUTO_TARGETS
|
3
|
+
|
4
|
+
# Create a new dropdown with a few specific sceens
|
5
|
+
GROUP "My group"
|
6
|
+
GROUP_SCREEN "COSMOS" "version.txt"
|
7
|
+
GROUP_SCREEN "INST" "hs.txt"
|
8
|
+
GROUP_SCREEN "INST2" "hs.txt"
|
9
|
+
|
10
|
+
# NEW_COLUMN
|
11
|
+
|
12
|
+
# AUTO_TARGET INST
|
13
|
+
|
14
|
+
# TARGET "INST"
|
15
|
+
# SCREEN "adcs.txt"
|
16
|
+
# SCREEN "array.txt"
|
17
|
+
# SCREEN "block.txt"
|
18
|
+
# SCREEN "commanding.txt"
|
19
|
+
# SCREEN "graphs.txt"
|
20
|
+
# SCREEN "ground.txt"
|
21
|
+
# SCREEN "hs.txt"
|
22
|
+
# SCREEN "latest.txt" 480 324
|
23
|
+
# SHOW_ON_STARTUP
|
24
|
+
# SCREEN "other.txt"
|
25
|
+
# SCREEN "tabs.txt"
|
26
|
+
|
27
|
+
#TARGET "INST2"
|
28
|
+
# SCREEN "adcs.txt"
|
29
|
+
# SCREEN "array.txt"
|
30
|
+
# SCREEN "block.txt"
|
31
|
+
# SCREEN "commanding.txt" 898 317
|
32
|
+
# SHOW_ON_STARTUP
|
33
|
+
# SCREEN "graphs.txt"
|
34
|
+
# SCREEN "ground.txt"
|
35
|
+
# SCREEN "hs.txt"
|
36
|
+
# SCREEN "latest.txt"
|
37
|
+
# SCREEN "other.txt"
|
38
|
+
# SCREEN "tabs.txt"
|
39
|
+
|
40
|
+
# ADD_SHOW_ON_STARTUP INST ADCS 10 10
|
41
|
+
# ADD_SHOW_ON_STARTUP INST HS 500 500
|
@@ -0,0 +1,57 @@
|
|
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
|
+
# This file implements an example background task
|
12
|
+
|
13
|
+
require 'cosmos/tools/cmd_tlm_server/background_task'
|
14
|
+
|
15
|
+
module Cosmos
|
16
|
+
|
17
|
+
# ExampleBackgroundTask class
|
18
|
+
#
|
19
|
+
# This class is an example background task
|
20
|
+
#
|
21
|
+
class ExampleBackgroundTask < BackgroundTask
|
22
|
+
|
23
|
+
def initialize
|
24
|
+
super()
|
25
|
+
@name = 'Example Background Task'
|
26
|
+
@sleeper = Sleeper.new
|
27
|
+
end
|
28
|
+
|
29
|
+
def call
|
30
|
+
sent_count = 0
|
31
|
+
@status = "Sleeping for 5 seconds"
|
32
|
+
return if @sleeper.sleep(5) # allow interfaces time to start
|
33
|
+
loop do
|
34
|
+
#Make sure we start up with 3 collects
|
35
|
+
if (tlm('INST', 'HEALTH_STATUS', 'COLLECTS') < 3)
|
36
|
+
begin
|
37
|
+
cmd('INST', 'COLLECT', 'TYPE' => 'NORMAL', 'DURATION' => 1)
|
38
|
+
sent_count += 1
|
39
|
+
@status = "Sent COLLECT ##{sent_count} at #{Time.now.formatted}"
|
40
|
+
rescue
|
41
|
+
# Oh well - probably disconnected
|
42
|
+
end
|
43
|
+
else
|
44
|
+
break
|
45
|
+
end
|
46
|
+
return if @sleeper.sleep(1)
|
47
|
+
end
|
48
|
+
@status = "Finished at #{Time.now.formatted}"
|
49
|
+
end
|
50
|
+
|
51
|
+
def stop
|
52
|
+
@sleeper.cancel
|
53
|
+
end
|
54
|
+
|
55
|
+
end # class ExampleBackgroundTask
|
56
|
+
|
57
|
+
end # module Cosmos
|
@@ -0,0 +1,120 @@
|
|
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/interfaces'
|
13
|
+
require 'cosmos/tools/cmd_tlm_server/interface_thread'
|
14
|
+
|
15
|
+
module Cosmos
|
16
|
+
|
17
|
+
class ExampleTarget
|
18
|
+
|
19
|
+
class ExampleServerInterface < TcpipServerInterface
|
20
|
+
def initialize(port)
|
21
|
+
@port = port
|
22
|
+
super(port, port, 5.0, nil, 'LENGTH', 0, 32, 4, 1, 'BIG_ENDIAN', 4)
|
23
|
+
end
|
24
|
+
|
25
|
+
def pre_write_packet(packet)
|
26
|
+
[packet.length].pack('N') << packet.buffer(false)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class ExampleInterfaceThread < InterfaceThread
|
31
|
+
|
32
|
+
protected
|
33
|
+
|
34
|
+
def handle_packet(packet)
|
35
|
+
identified_packet = System.commands.identify(packet.buffer, [@port.to_s])
|
36
|
+
if identified_packet
|
37
|
+
Logger.info "Received command: #{identified_packet.target_name} #{identified_packet.packet_name}"
|
38
|
+
else
|
39
|
+
Logger.info "Received UNKNOWN command"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
class ExampleTelemetryThread
|
45
|
+
attr_reader :thread
|
46
|
+
|
47
|
+
def initialize(interface, port, packet, rate)
|
48
|
+
@interface = interface
|
49
|
+
@port = port.to_s
|
50
|
+
@packet = packet.to_s
|
51
|
+
@rate = rate.to_i
|
52
|
+
@sleeper = Sleeper.new
|
53
|
+
end
|
54
|
+
|
55
|
+
def start
|
56
|
+
packet = System.telemetry.packet(@port, @packet)
|
57
|
+
packet.write("PACKET_ID", packet.get_item("PACKET_ID").id_value)
|
58
|
+
@thread = Thread.new do
|
59
|
+
@stop_thread = false
|
60
|
+
begin
|
61
|
+
while true
|
62
|
+
@rate.times do
|
63
|
+
packet.write('STRING', "The time is now: #{Time.now.formatted}")
|
64
|
+
@interface.write(packet)
|
65
|
+
break if @sleeper.sleep(1.0 / @rate)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
rescue Exception => err
|
69
|
+
Logger.error "ExampleTelemetryThread unexpectedly died\n#{err.formatted}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def stop
|
75
|
+
Cosmos.kill_thread(self, @thread)
|
76
|
+
end
|
77
|
+
|
78
|
+
def graceful_kill
|
79
|
+
@sleeper.cancel
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def initialize(arguments)
|
84
|
+
@port = arguments[0]
|
85
|
+
@packet = arguments[1]
|
86
|
+
@rate = arguments[2]
|
87
|
+
# Create interface to receive commands and send telemetry
|
88
|
+
@interface = ExampleServerInterface.new(@port)
|
89
|
+
@interface_thread = nil
|
90
|
+
@telemetry_thread = nil
|
91
|
+
end
|
92
|
+
|
93
|
+
def start
|
94
|
+
@interface_thread = ExampleInterfaceThread.new(@interface)
|
95
|
+
@interface_thread.start
|
96
|
+
@telemetry_thread = ExampleTelemetryThread.new(@interface, @port, @packet, @rate)
|
97
|
+
@telemetry_thread.start
|
98
|
+
end
|
99
|
+
|
100
|
+
def stop
|
101
|
+
@telemetry_thread.stop if @telemetry_thread
|
102
|
+
@interface_thread.stop if @interface_thread
|
103
|
+
end
|
104
|
+
|
105
|
+
def self.run
|
106
|
+
Logger.level = Logger::INFO
|
107
|
+
target = self.new(ARGV)
|
108
|
+
begin
|
109
|
+
target.start
|
110
|
+
while true
|
111
|
+
sleep 1
|
112
|
+
end
|
113
|
+
rescue SystemExit, Interrupt
|
114
|
+
target.stop
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
end # class ExampleTarget
|
119
|
+
|
120
|
+
end # module Cosmos
|
@@ -0,0 +1,74 @@
|
|
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/interfaces'
|
13
|
+
require 'cosmos/tools/cmd_tlm_server/interface_thread'
|
14
|
+
|
15
|
+
module Cosmos
|
16
|
+
|
17
|
+
class ScpiTarget
|
18
|
+
|
19
|
+
class ScpiServerInterface < TcpipServerInterface
|
20
|
+
PORT = 5025
|
21
|
+
|
22
|
+
def initialize
|
23
|
+
super(PORT, PORT, 5.0, nil, 'TERMINATED', '0xA', '0xA')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class ScpiInterfaceThread < InterfaceThread
|
28
|
+
def initialize(interface)
|
29
|
+
super(interface)
|
30
|
+
@index = 0
|
31
|
+
end
|
32
|
+
|
33
|
+
protected
|
34
|
+
|
35
|
+
def handle_packet(packet)
|
36
|
+
Logger.info "Received command: #{packet.buffer}"
|
37
|
+
if packet.buffer.include?('?')
|
38
|
+
@interface.write_raw(@index.to_s)
|
39
|
+
end
|
40
|
+
@index += 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def initialize
|
45
|
+
# Create interface to receive commands and send telemetry
|
46
|
+
@target_interface = ScpiServerInterface.new
|
47
|
+
@interface_thread = nil
|
48
|
+
end
|
49
|
+
|
50
|
+
def start
|
51
|
+
@interface_thread = ScpiInterfaceThread.new(@target_interface)
|
52
|
+
@interface_thread.start
|
53
|
+
end
|
54
|
+
|
55
|
+
def stop
|
56
|
+
@interface_thread.stop if @interface_thread
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.run
|
60
|
+
Logger.level = Logger::INFO
|
61
|
+
target = self.new
|
62
|
+
begin
|
63
|
+
target.start
|
64
|
+
while true
|
65
|
+
sleep 1
|
66
|
+
end
|
67
|
+
rescue SystemExit, Interrupt
|
68
|
+
target.stop
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end # class ScpiTarget
|
73
|
+
|
74
|
+
end # module Cosmos
|
@@ -0,0 +1 @@
|
|
1
|
+
This file is here to make sure this folder is included in the release.
|
@@ -0,0 +1 @@
|
|
1
|
+
This file is here to make sure this folder is included in the release.
|
@@ -0,0 +1 @@
|
|
1
|
+
This file is here to make sure this folder is included in the release.
|
@@ -0,0 +1 @@
|
|
1
|
+
This file is here to make sure this folder is included in the release.
|
@@ -0,0 +1 @@
|
|
1
|
+
This file is here to make sure this folder is included in the release.
|
@@ -0,0 +1,11 @@
|
|
1
|
+
collect_cnt = tlm("INST HEALTH_STATUS COLLECTS")
|
2
|
+
cmd("INST COLLECT with DURATION 11, TYPE NORMAL")
|
3
|
+
cmd_no_range_check("INST COLLECT with DURATION 11, TYPE NORMAL")
|
4
|
+
cmd_no_hazardous_check("INST COLLECT with DURATION 11, TYPE NORMAL")
|
5
|
+
cmd_no_checks("INST COLLECT with DURATION 11, TYPE NORMAL")
|
6
|
+
wait_check("INST HEALTH_STATUS COLLECTS == #{collect_cnt + 2}", 10)
|
7
|
+
cmd("INST CLEAR")
|
8
|
+
cmd_no_range_check("INST CLEAR")
|
9
|
+
cmd_no_hazardous_check("INST CLEAR")
|
10
|
+
cmd_no_checks("INST CLEAR")
|
11
|
+
puts tlm("INST HEALTH_STATUS COLLECTS")
|
@@ -0,0 +1,18 @@
|
|
1
|
+
load_utility 'collect_util.rb'
|
2
|
+
load_utility 'clear_util.rb'
|
3
|
+
|
4
|
+
number = ask("Enter a number.")
|
5
|
+
raise "Bad return" unless number.is_a? Numeric
|
6
|
+
number = ask_string("Enter a number.")
|
7
|
+
raise "Bad return" unless number.is_a? String
|
8
|
+
|
9
|
+
result = message_box("Click something.", "BLAH", "WHAT")
|
10
|
+
raise "Bad return" unless result == 'BLAH' or result == 'WHAT'
|
11
|
+
|
12
|
+
prompt("Press Ok to start NORMAL Collect")
|
13
|
+
collect('NORMAL', 1)
|
14
|
+
prompt("Press Ok to start SPECIAL Collect")
|
15
|
+
collect('SPECIAL', 2, true)
|
16
|
+
clear()
|
17
|
+
|
18
|
+
wait_check("INST HEALTH_STATUS COLLECTS == 0", 10)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
load_utility 'clear_util.rb'
|
2
|
+
|
3
|
+
def collect (type, duration, call_clear = false)
|
4
|
+
# Get the current collects telemetry point
|
5
|
+
collects = tlm('INST HEALTH_STATUS COLLECTS')
|
6
|
+
|
7
|
+
#Command the collect
|
8
|
+
cmd("INST COLLECT with TYPE #{type}, DURATION #{duration}")
|
9
|
+
|
10
|
+
#Wait for telemetry to update
|
11
|
+
wait_check("INST HEALTH_STATUS COLLECTS == #{collects + 1}", 10)
|
12
|
+
|
13
|
+
clear() if call_clear
|
14
|
+
end
|
@@ -0,0 +1,293 @@
|
|
1
|
+
# cmd
|
2
|
+
cmd("INST ABORT")
|
3
|
+
cmd("INST ARYCMD with ARRAY []")
|
4
|
+
cmd("INST CLEAR")
|
5
|
+
cmd("INST COLLECT with DURATION 1.0, TEMP 0.0, TYPE 'NORMAL'")
|
6
|
+
cmd("INST FLTCMD with FLOAT32 0.0, FLOAT64 0.0")
|
7
|
+
cmd("INST SETPARAMS with VALUE1 0, VALUE2 0, VALUE3 0, VALUE4 0, VALUE5 0")
|
8
|
+
cmd("INST SLRPNLDEPLOY")
|
9
|
+
cmd("INST SLRPNLRESET")
|
10
|
+
cmd("INST ASCIICMD with STRING 'ARM LASER'")
|
11
|
+
|
12
|
+
cmd("INST", "ABORT")
|
13
|
+
cmd("INST", "ARYCMD", "ARRAY" => [])
|
14
|
+
cmd("INST", "CLEAR")
|
15
|
+
cmd("INST", "COLLECT", "DURATION" => 1.0, "TEMP" => 0.0, "TYPE" => 'NORMAL')
|
16
|
+
cmd("INST", "FLTCMD", "FLOAT32" => 0.0, "FLOAT64" => 0.0)
|
17
|
+
cmd("INST", "SETPARAMS", "VALUE1" => 0, "VALUE2" => 0, "VALUE3" => 0, "VALUE4" => 0, "VALUE5" => 0)
|
18
|
+
cmd("INST", "SLRPNLDEPLOY")
|
19
|
+
cmd("INST", "SLRPNLRESET")
|
20
|
+
cmd("INST", "ASCIICMD", "STRING" => 'ARM LASER')
|
21
|
+
|
22
|
+
# cmd should fail
|
23
|
+
begin
|
24
|
+
cmd("INST COLLECT with DURATION 11, TYPE 'NORMAL'")
|
25
|
+
rescue RuntimeError => e
|
26
|
+
raise "Fail" if e.message != "Command parameter 'INST COLLECT DURATION' = 11 not in valid range of 0.0 to 10.0"
|
27
|
+
rescue
|
28
|
+
raise "Fail"
|
29
|
+
end
|
30
|
+
|
31
|
+
cmd()
|
32
|
+
cmd("BOB")
|
33
|
+
cmd("BOB", "ABORT")
|
34
|
+
cmd("INST", "BOB")
|
35
|
+
cmd("INST", "ABORT", "BOB" => "BOB")
|
36
|
+
cmd("INST", "ABORT", "TED", "BOB" => "BOB")
|
37
|
+
cmd("BOB")
|
38
|
+
cmd("BOB ABORT")
|
39
|
+
cmd("INST BOB")
|
40
|
+
|
41
|
+
# cmd_no_range_check
|
42
|
+
cmd_no_range_check("INST ABORT")
|
43
|
+
cmd_no_range_check("INST ARYCMD with ARRAY []")
|
44
|
+
cmd_no_range_check("INST CLEAR")
|
45
|
+
cmd_no_range_check("INST COLLECT with DURATION 1.0, TEMP 0.0, TYPE 'NORMAL'")
|
46
|
+
cmd_no_range_check("INST FLTCMD with FLOAT32 0.0, FLOAT64 0.0")
|
47
|
+
cmd_no_range_check("INST SETPARAMS with VALUE1 0, VALUE2 0, VALUE3 0, VALUE4 0, VALUE5 0")
|
48
|
+
cmd_no_range_check("INST SLRPNLDEPLOY")
|
49
|
+
cmd_no_range_check("INST SLRPNLRESET")
|
50
|
+
cmd_no_range_check("INST ASCIICMD with STRING 'ARM LASER'")
|
51
|
+
cmd_no_range_check("INST COLLECT with DURATION 11, TYPE 'NORMAL'")
|
52
|
+
|
53
|
+
cmd_no_range_check("INST", "ABORT")
|
54
|
+
cmd_no_range_check("INST", "ARYCMD", "ARRAY" => [])
|
55
|
+
cmd_no_range_check("INST", "CLEAR")
|
56
|
+
cmd_no_range_check("INST", "COLLECT", "DURATION" => 1.0, "TEMP" => 0.0, "TYPE" => 'NORMAL')
|
57
|
+
cmd_no_range_check("INST", "FLTCMD", "FLOAT32" => 0.0, "FLOAT64" => 0.0)
|
58
|
+
cmd_no_range_check("INST", "SETPARAMS", "VALUE1" => 0, "VALUE2" => 0, "VALUE3" => 0, "VALUE4" => 0, "VALUE5" => 0)
|
59
|
+
cmd_no_range_check("INST", "SLRPNLDEPLOY")
|
60
|
+
cmd_no_range_check("INST", "SLRPNLRESET")
|
61
|
+
cmd_no_range_check("INST", "ASCIICMD", "STRING" => 'ARM LASER')
|
62
|
+
cmd_no_range_check("INST", "COLLECT", "DURATION" => 11, "TYPE" => 'NORMAL')
|
63
|
+
|
64
|
+
# cmd_no_range_check should fail
|
65
|
+
cmd_no_range_check()
|
66
|
+
cmd_no_range_check("BOB")
|
67
|
+
cmd_no_range_check("BOB", "ABORT")
|
68
|
+
cmd_no_range_check("INST", "BOB")
|
69
|
+
cmd_no_range_check("INST", "ABORT", "BOB" => "BOB")
|
70
|
+
cmd_no_range_check("INST", "ABORT", "TED", "BOB" => "BOB")
|
71
|
+
cmd_no_range_check("BOB")
|
72
|
+
cmd_no_range_check("BOB ABORT")
|
73
|
+
cmd_no_range_check("INST BOB")
|
74
|
+
|
75
|
+
# cmd_no_hazardous_check
|
76
|
+
cmd_no_hazardous_check("INST ABORT")
|
77
|
+
cmd_no_hazardous_check("INST ARYCMD with ARRAY []")
|
78
|
+
cmd_no_hazardous_check("INST CLEAR")
|
79
|
+
cmd_no_hazardous_check("INST COLLECT with DURATION 1.0, TEMP 0.0, TYPE 'NORMAL'")
|
80
|
+
cmd_no_hazardous_check("INST FLTCMD with FLOAT32 0.0, FLOAT64 0.0")
|
81
|
+
cmd_no_hazardous_check("INST SETPARAMS with VALUE1 0, VALUE2 0, VALUE3 0, VALUE4 0, VALUE5 0")
|
82
|
+
cmd_no_hazardous_check("INST SLRPNLDEPLOY")
|
83
|
+
cmd_no_hazardous_check("INST SLRPNLRESET")
|
84
|
+
cmd_no_hazardous_check("INST ASCIICMD with STRING 'ARM LASER'")
|
85
|
+
|
86
|
+
cmd_no_hazardous_check("INST", "ABORT")
|
87
|
+
cmd_no_hazardous_check("INST", "ARYCMD", "ARRAY" => [])
|
88
|
+
cmd_no_hazardous_check("INST", "CLEAR")
|
89
|
+
cmd_no_hazardous_check("INST", "COLLECT", "DURATION" => 1.0, "TEMP" => 0.0, "TYPE" => 'NORMAL')
|
90
|
+
cmd_no_hazardous_check("INST", "FLTCMD", "FLOAT32" => 0.0, "FLOAT64" => 0.0)
|
91
|
+
cmd_no_hazardous_check("INST", "SETPARAMS", "VALUE1" => 0, "VALUE2" => 0, "VALUE3" => 0, "VALUE4" => 0, "VALUE5" => 0)
|
92
|
+
cmd_no_hazardous_check("INST", "SLRPNLDEPLOY")
|
93
|
+
cmd_no_hazardous_check("INST", "SLRPNLRESET")
|
94
|
+
cmd_no_hazardous_check("INST", "ASCIICMD", "STRING" => 'ARM LASER')
|
95
|
+
|
96
|
+
# cmd_no_hazardous_check should fail
|
97
|
+
cmd_no_hazardous_check("INST COLLECT with DURATION 11, TYPE 'NORMAL'")
|
98
|
+
cmd_no_hazardous_check()
|
99
|
+
cmd_no_hazardous_check("BOB")
|
100
|
+
cmd_no_hazardous_check("BOB", "ABORT")
|
101
|
+
cmd_no_hazardous_check("INST", "BOB")
|
102
|
+
cmd_no_hazardous_check("INST", "ABORT", "BOB" => "BOB")
|
103
|
+
cmd_no_hazardous_check("INST", "ABORT", "TED", "BOB" => "BOB")
|
104
|
+
cmd_no_hazardous_check("BOB")
|
105
|
+
cmd_no_hazardous_check("BOB ABORT")
|
106
|
+
cmd_no_hazardous_check("INST BOB")
|
107
|
+
|
108
|
+
# cmd_no_checks
|
109
|
+
cmd_no_checks("INST ABORT")
|
110
|
+
cmd_no_checks("INST ARYCMD with ARRAY []")
|
111
|
+
cmd_no_checks("INST CLEAR")
|
112
|
+
cmd_no_checks("INST COLLECT with DURATION 1.0, TEMP 0.0, TYPE 'NORMAL'")
|
113
|
+
cmd_no_checks("INST FLTCMD with FLOAT32 0.0, FLOAT64 0.0")
|
114
|
+
cmd_no_checks("INST SETPARAMS with VALUE1 0, VALUE2 0, VALUE3 0, VALUE4 0, VALUE5 0")
|
115
|
+
cmd_no_checks("INST SLRPNLDEPLOY")
|
116
|
+
cmd_no_checks("INST SLRPNLRESET")
|
117
|
+
cmd_no_checks("INST ASCIICMD with STRING 'ARM LASER'")
|
118
|
+
cmd_no_checks("INST COLLECT with DURATION 11, TYPE 'NORMAL'")
|
119
|
+
|
120
|
+
cmd_no_checks("INST", "ABORT")
|
121
|
+
cmd_no_checks("INST", "ARYCMD", "ARRAY" => [])
|
122
|
+
cmd_no_checks("INST", "CLEAR")
|
123
|
+
cmd_no_checks("INST", "COLLECT", "DURATION" => 1.0, "TEMP" => 0.0, "TYPE" => 'NORMAL')
|
124
|
+
cmd_no_checks("INST", "FLTCMD", "FLOAT32" => 0.0, "FLOAT64" => 0.0)
|
125
|
+
cmd_no_checks("INST", "SETPARAMS", "VALUE1" => 0, "VALUE2" => 0, "VALUE3" => 0, "VALUE4" => 0, "VALUE5" => 0)
|
126
|
+
cmd_no_checks("INST", "SLRPNLDEPLOY")
|
127
|
+
cmd_no_checks("INST", "SLRPNLRESET")
|
128
|
+
cmd_no_checks("INST", "ASCIICMD", "STRING" => 'ARM LASER')
|
129
|
+
cmd_no_checks("INST", "COLLECT", "DURATION" => 11, "TYPE" => 'NORMAL')
|
130
|
+
|
131
|
+
# cmd_no_checks should fail
|
132
|
+
cmd_no_checks()
|
133
|
+
cmd_no_checks("BOB")
|
134
|
+
cmd_no_checks("BOB", "ABORT")
|
135
|
+
cmd_no_checks("INST", "BOB")
|
136
|
+
cmd_no_checks("INST", "ABORT", "BOB" => "BOB")
|
137
|
+
cmd_no_checks("INST", "ABORT", "TED", "BOB" => "BOB")
|
138
|
+
cmd_no_checks("BOB")
|
139
|
+
cmd_no_checks("BOB ABORT")
|
140
|
+
cmd_no_checks("INST BOB")
|
141
|
+
|
142
|
+
# send_raw should fail (on demo cmd/tlm server)
|
143
|
+
send_raw()
|
144
|
+
send_raw("INT1")
|
145
|
+
send_raw("INT1", "\x00\x00")
|
146
|
+
send_raw("INT1", "\x00\x00", "\x00\x00")
|
147
|
+
|
148
|
+
# get_cmd_list
|
149
|
+
expected_list = [["ABORT", "Aborts a collect on the instrument"], ["ARYCMD", "Command with array parameter"], ["ASCIICMD", "Enumerated ASCII command"], ["CLEAR", "Clears counters on the instrument"], ["COLLECT", "Starts a collect on the instrument"], ["FLTCMD", "Command with float parameters"], ["SETPARAMS", "Sets numbered parameters"], ["SLRPNLDEPLOY", "Deploy solar array panels"], ["SLRPNLRESET", "Reset solar array panels"]]
|
150
|
+
list = get_cmd_list("INST")
|
151
|
+
raise "Fail" if list != expected_list
|
152
|
+
|
153
|
+
# get_cmd_list should fail
|
154
|
+
get_cmd_list()
|
155
|
+
get_cmd_list("BOB")
|
156
|
+
get_cmd_list("BOB", "TED")
|
157
|
+
|
158
|
+
# get_cmd_param_list
|
159
|
+
expected_list = [["CCSDSVER", 0, nil, "CCSDS primary header version number", nil, nil, false],
|
160
|
+
["CCSDSTYPE", 1, nil, "CCSDS primary header packet type", nil, nil, false],
|
161
|
+
["CCSDSSHF", 0, nil, "CCSDS primary header secondary header flag", nil, nil, false],
|
162
|
+
["CCSDSAPID", 999, nil, "CCSDS primary header application id", nil, nil, false],
|
163
|
+
["CCSDSSEQFLAGS", 3, nil, "CCSDS primary header sequence flags", nil, nil, false],
|
164
|
+
["CCSDSSEQCNT", 0, nil, "CCSDS primary header sequence count", nil, nil, false],
|
165
|
+
["CCSDSLENGTH", 0, nil, "CCSDS primary header packet length", nil, nil, false],
|
166
|
+
["PKTID", 1, nil, "Packet id", nil, nil, false],
|
167
|
+
["TYPE", 0, {"NORMAL"=>0, "SPECIAL"=>1}, "Collect type", nil, nil, true],
|
168
|
+
["DURATION", 1.0, nil, "Collect duration", nil, nil, false],
|
169
|
+
["OPCODE", "0xAB", nil, "Collect opcode", nil, nil, false],
|
170
|
+
["TEMP", 0.0, nil, "Collect temperature", "Celcius", "C", false]]
|
171
|
+
list = get_cmd_param_list("INST", "COLLECT")
|
172
|
+
if list != expected_list
|
173
|
+
raise "Fail"
|
174
|
+
end
|
175
|
+
|
176
|
+
# get_cmd_param_list should fail
|
177
|
+
get_cmd_param_list()
|
178
|
+
get_cmd_param_list("INST")
|
179
|
+
get_cmd_param_list("INST", "BOB")
|
180
|
+
get_cmd_param_list("INST", "COLLECT", "DURATION")
|
181
|
+
|
182
|
+
# get_cmd_hazardous
|
183
|
+
hazardous, hazardous_description = get_cmd_hazardous("INST", "COLLECT", "TYPE" => "SPECIAL")
|
184
|
+
puts "#{hazardous}:#{hazardous_description}"
|
185
|
+
hazardous, hazardous_description = get_cmd_hazardous("INST", "COLLECT", "TYPE" => "NORMAL")
|
186
|
+
puts "#{hazardous}:#{hazardous_description}"
|
187
|
+
hazardous, hazardous_description = get_cmd_hazardous("INST", "ABORT")
|
188
|
+
puts "#{hazardous}:#{hazardous_description}"
|
189
|
+
hazardous, hazardous_description = get_cmd_hazardous("INST", "CLEAR")
|
190
|
+
puts "#{hazardous}:#{hazardous_description}"
|
191
|
+
|
192
|
+
# get_cmd_hazardous should fail
|
193
|
+
get_cmd_hazardous()
|
194
|
+
get_cmd_hazardous("INST")
|
195
|
+
get_cmd_hazardous("INST", "COLLECT", "BOB" => 5)
|
196
|
+
get_cmd_hazardous("INST", "COLLECT", 5)
|
197
|
+
|
198
|
+
# tlm
|
199
|
+
tlm("INST HEALTH_STATUS ARY")
|
200
|
+
tlm("INST HEALTH_STATUS ASCIICMD")
|
201
|
+
tlm("INST HEALTH_STATUS CCSDSAPID")
|
202
|
+
tlm("INST HEALTH_STATUS TEMP1")
|
203
|
+
|
204
|
+
tlm("INST", "HEALTH_STATUS", "ARY")
|
205
|
+
tlm("INST", "HEALTH_STATUS", "ASCIICMD")
|
206
|
+
tlm("INST", "HEALTH_STATUS", "CCSDSAPID")
|
207
|
+
tlm("INST", "HEALTH_STATUS", "TEMP1")
|
208
|
+
|
209
|
+
# tlm should fail
|
210
|
+
tlm()
|
211
|
+
tlm("BOB")
|
212
|
+
tlm("INST")
|
213
|
+
tlm("INST BOB")
|
214
|
+
tlm("INST HEALTH_STATUS")
|
215
|
+
tlm("INST HEALTH_STATUS BOB")
|
216
|
+
tlm("INST HEALTH_STATUS ARY BOB")
|
217
|
+
tlm("INST", "BOB")
|
218
|
+
tlm("INST", "HEALTH_STATUS")
|
219
|
+
tlm("INST", "HEALTH_STATUS", "BOB")
|
220
|
+
tlm("INST", "HEALTH_STATUS", "ARY", "BOB")
|
221
|
+
|
222
|
+
# tlm_raw
|
223
|
+
tlm_raw("INST HEALTH_STATUS ARY")
|
224
|
+
tlm_raw("INST HEALTH_STATUS ASCIICMD")
|
225
|
+
tlm_raw("INST HEALTH_STATUS CCSDSAPID")
|
226
|
+
tlm_raw("INST HEALTH_STATUS TEMP1")
|
227
|
+
|
228
|
+
tlm_raw("INST", "HEALTH_STATUS", "ARY")
|
229
|
+
tlm_raw("INST", "HEALTH_STATUS", "ASCIICMD")
|
230
|
+
tlm_raw("INST", "HEALTH_STATUS", "CCSDSAPID")
|
231
|
+
tlm_raw("INST", "HEALTH_STATUS", "TEMP1")
|
232
|
+
|
233
|
+
# tlm_raw should fail
|
234
|
+
tlm_raw()
|
235
|
+
tlm_raw("BOB")
|
236
|
+
tlm_raw("INST")
|
237
|
+
tlm_raw("INST BOB")
|
238
|
+
tlm_raw("INST HEALTH_STATUS")
|
239
|
+
tlm_raw("INST HEALTH_STATUS BOB")
|
240
|
+
tlm_raw("INST HEALTH_STATUS ARY BOB")
|
241
|
+
tlm_raw("INST", "BOB")
|
242
|
+
tlm_raw("INST", "HEALTH_STATUS")
|
243
|
+
tlm_raw("INST", "HEALTH_STATUS", "BOB")
|
244
|
+
tlm_raw("INST", "HEALTH_STATUS", "ARY", "BOB")
|
245
|
+
|
246
|
+
# tlm_formatted
|
247
|
+
tlm_formatted("INST HEALTH_STATUS ARY")
|
248
|
+
tlm_formatted("INST HEALTH_STATUS ASCIICMD")
|
249
|
+
tlm_formatted("INST HEALTH_STATUS CCSDSAPID")
|
250
|
+
tlm_formatted("INST HEALTH_STATUS TEMP1")
|
251
|
+
|
252
|
+
tlm_formatted("INST", "HEALTH_STATUS", "ARY")
|
253
|
+
tlm_formatted("INST", "HEALTH_STATUS", "ASCIICMD")
|
254
|
+
tlm_formatted("INST", "HEALTH_STATUS", "CCSDSAPID")
|
255
|
+
tlm_formatted("INST", "HEALTH_STATUS", "TEMP1")
|
256
|
+
|
257
|
+
# tlm_formatted should fail
|
258
|
+
tlm_formatted()
|
259
|
+
tlm_formatted("BOB")
|
260
|
+
tlm_formatted("INST")
|
261
|
+
tlm_formatted("INST BOB")
|
262
|
+
tlm_formatted("INST HEALTH_STATUS")
|
263
|
+
tlm_formatted("INST HEALTH_STATUS BOB")
|
264
|
+
tlm_formatted("INST HEALTH_STATUS ARY BOB")
|
265
|
+
tlm_formatted("INST", "BOB")
|
266
|
+
tlm_formatted("INST", "HEALTH_STATUS")
|
267
|
+
tlm_formatted("INST", "HEALTH_STATUS", "BOB")
|
268
|
+
tlm_formatted("INST", "HEALTH_STATUS", "ARY", "BOB")
|
269
|
+
|
270
|
+
# tlm_with_units
|
271
|
+
tlm_with_units("INST HEALTH_STATUS ARY")
|
272
|
+
tlm_with_units("INST HEALTH_STATUS ASCIICMD")
|
273
|
+
tlm_with_units("INST HEALTH_STATUS CCSDSAPID")
|
274
|
+
tlm_with_units("INST HEALTH_STATUS TEMP1")
|
275
|
+
|
276
|
+
tlm_with_units("INST", "HEALTH_STATUS", "ARY")
|
277
|
+
tlm_with_units("INST", "HEALTH_STATUS", "ASCIICMD")
|
278
|
+
tlm_with_units("INST", "HEALTH_STATUS", "CCSDSAPID")
|
279
|
+
tlm_with_units("INST", "HEALTH_STATUS", "TEMP1")
|
280
|
+
|
281
|
+
# tlm_with_units should fail
|
282
|
+
tlm_with_units()
|
283
|
+
tlm_with_units("BOB")
|
284
|
+
tlm_with_units("INST")
|
285
|
+
tlm_with_units("INST BOB")
|
286
|
+
tlm_with_units("INST HEALTH_STATUS")
|
287
|
+
tlm_with_units("INST HEALTH_STATUS BOB")
|
288
|
+
tlm_with_units("INST HEALTH_STATUS ARY BOB")
|
289
|
+
tlm_with_units("INST", "BOB")
|
290
|
+
tlm_with_units("INST", "HEALTH_STATUS")
|
291
|
+
tlm_with_units("INST", "HEALTH_STATUS", "BOB")
|
292
|
+
tlm_with_units("INST", "HEALTH_STATUS", "ARY", "BOB")
|
293
|
+
|