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
@@ -88,6 +88,7 @@ module Cosmos
|
|
88
88
|
@file_size = 0
|
89
89
|
@filename = nil
|
90
90
|
@label = nil
|
91
|
+
@entry_header = String.new
|
91
92
|
@start_time = Time.now
|
92
93
|
|
93
94
|
@cancel_threads = false
|
@@ -246,10 +247,10 @@ module Cosmos
|
|
246
247
|
start_new_file()
|
247
248
|
end
|
248
249
|
if @file
|
249
|
-
entry_header = build_entry_header(packet)
|
250
|
-
if entry_header
|
251
|
-
@file.write(entry_header)
|
252
|
-
@file_size += entry_header.length
|
250
|
+
@entry_header = build_entry_header(packet) # populate @entry_header
|
251
|
+
if @entry_header
|
252
|
+
@file.write(@entry_header)
|
253
|
+
@file_size += @entry_header.length
|
253
254
|
end
|
254
255
|
buffer = packet.buffer
|
255
256
|
@file.write(buffer)
|
@@ -300,24 +301,21 @@ module Cosmos
|
|
300
301
|
def build_entry_header(packet)
|
301
302
|
received_time = packet.received_time
|
302
303
|
received_time = Time.now unless received_time
|
304
|
+
# This is an optimization to avoid creating a new entry_header object
|
305
|
+
# each time we create an entry_header which we do a LOT!
|
306
|
+
@entry_header.clear
|
307
|
+
@entry_header << [received_time.tv_sec].pack('N'.freeze)
|
308
|
+
@entry_header << [received_time.tv_usec].pack('N'.freeze)
|
303
309
|
target_name = packet.target_name
|
304
|
-
target_name = 'UNKNOWN' unless target_name
|
310
|
+
target_name = 'UNKNOWN'.freeze unless target_name
|
311
|
+
@entry_header << target_name.length
|
312
|
+
@entry_header << target_name
|
305
313
|
packet_name = packet.packet_name
|
306
|
-
packet_name = 'UNKNOWN' unless packet_name
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
header = ''
|
312
|
-
header << time_seconds
|
313
|
-
header << time_microseconds
|
314
|
-
header << target_name.length
|
315
|
-
header << target_name
|
316
|
-
header << packet_name.length
|
317
|
-
header << packet_name
|
318
|
-
header << data_length
|
319
|
-
|
320
|
-
return header
|
314
|
+
packet_name = 'UNKNOWN'.freeze unless packet_name
|
315
|
+
@entry_header << packet_name.length
|
316
|
+
@entry_header << packet_name
|
317
|
+
@entry_header << [packet.length].pack('N'.freeze)
|
318
|
+
return @entry_header
|
321
319
|
end
|
322
320
|
|
323
321
|
end # class PacketLogWriter
|
@@ -38,9 +38,11 @@ module Cosmos
|
|
38
38
|
return @config.warnings
|
39
39
|
end
|
40
40
|
|
41
|
-
# @return [Array<String>] The command target names
|
41
|
+
# @return [Array<String>] The command target names (excluding UNKNOWN)
|
42
42
|
def target_names
|
43
|
-
|
43
|
+
result = @config.commands.keys.sort
|
44
|
+
result.delete('UNKNOWN'.freeze)
|
45
|
+
return result
|
44
46
|
end
|
45
47
|
|
46
48
|
# @param target_name [String] The target name
|
@@ -194,17 +196,17 @@ module Cosmos
|
|
194
196
|
items.each do |item_name, item_value|
|
195
197
|
unless ignored_parameters.include?(item_name)
|
196
198
|
if first
|
197
|
-
string << ' with '
|
199
|
+
string << ' with '.freeze
|
198
200
|
first = false
|
199
201
|
else
|
200
|
-
string << ', '
|
202
|
+
string << ', '.freeze
|
201
203
|
end
|
202
204
|
|
203
205
|
item = packet.get_item(item_name)
|
204
206
|
if item.data_type ==:STRING or item.data_type == :BLOCK
|
205
207
|
item_value = item_value.inspect
|
206
208
|
if item_value.length > 256
|
207
|
-
item_value = item_value[0..255] + '..."'
|
209
|
+
item_value = item_value[0..255] + '..."'.freeze
|
208
210
|
end
|
209
211
|
string << "#{item_name} #{item_value}"
|
210
212
|
else
|
@@ -216,7 +218,7 @@ module Cosmos
|
|
216
218
|
end
|
217
219
|
end
|
218
220
|
end
|
219
|
-
string << "')"
|
221
|
+
string << "')".freeze
|
220
222
|
string
|
221
223
|
end
|
222
224
|
|
@@ -201,7 +201,8 @@ module Cosmos
|
|
201
201
|
# @return [Array<limits_set, persistence, enabled, red_low, yellow_low, red_high, yellow_high, green_low (optional), green_high (optional)] Limits information
|
202
202
|
def set(target_name, packet_name, item_name, red_low, yellow_low, yellow_high, red_high, green_low = nil, green_high = nil, limits_set = :CUSTOM, persistence = nil, enabled = true)
|
203
203
|
packet = get_packet(target_name, packet_name)
|
204
|
-
|
204
|
+
item = packet.get_item(item_name)
|
205
|
+
limits = item.limits
|
205
206
|
if limits_set
|
206
207
|
limits_set = limits_set.to_s.upcase.intern
|
207
208
|
else
|
@@ -231,7 +232,7 @@ module Cosmos
|
|
231
232
|
end
|
232
233
|
limits.enabled = enabled
|
233
234
|
limits.persistence_setting = Integer(persistence) if persistence
|
234
|
-
packet.update_limits_items_cache
|
235
|
+
packet.update_limits_items_cache(item)
|
235
236
|
@config.limits_sets << limits_set
|
236
237
|
@config.limits_sets.uniq!
|
237
238
|
return [limits_set, limits.persistence_setting, limits.enabled, limits_for_set[0], limits_for_set[1], limits_for_set[2], limits_for_set[3], limits_for_set[4], limits_for_set[5]]
|
@@ -279,7 +279,7 @@ module Cosmos
|
|
279
279
|
def define(item)
|
280
280
|
item = super(item)
|
281
281
|
update_id_items(item)
|
282
|
-
update_limits_items_cache()
|
282
|
+
update_limits_items_cache(item)
|
283
283
|
item
|
284
284
|
end
|
285
285
|
|
@@ -532,16 +532,19 @@ module Cosmos
|
|
532
532
|
end
|
533
533
|
end
|
534
534
|
|
535
|
-
#
|
536
|
-
#
|
535
|
+
# Add an item to the limits items cache if necessary.
|
536
|
+
# You MUST call this after adding limits to an item
|
537
|
+
#This is an optimization so we don't have to iterate through all the items when
|
537
538
|
# checking for limits.
|
538
|
-
def update_limits_items_cache
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
539
|
+
def update_limits_items_cache(item)
|
540
|
+
if item.limits.values || item.state_colors
|
541
|
+
@limits_items ||= []
|
542
|
+
@limits_items_hash ||= {}
|
543
|
+
unless @limits_items_hash[item]
|
544
|
+
@limits_items << item
|
545
|
+
@limits_items_hash[item] = true
|
546
|
+
end
|
543
547
|
end
|
544
|
-
@limits_items.compact!
|
545
548
|
end
|
546
549
|
|
547
550
|
# Return an array of arrays indicating all items in the packet that are out of limits
|
@@ -629,8 +632,8 @@ module Cosmos
|
|
629
632
|
# buffer of data and processors
|
630
633
|
def clone
|
631
634
|
packet = super()
|
632
|
-
if packet.instance_variable_get("@processors")
|
633
|
-
packet.instance_variable_set("@processors", packet.processors.clone)
|
635
|
+
if packet.instance_variable_get("@processors".freeze)
|
636
|
+
packet.instance_variable_set("@processors".freeze, packet.processors.clone)
|
634
637
|
packet.processors.each do |processor_name, processor|
|
635
638
|
packet.processors[processor_name] = processor.clone
|
636
639
|
end
|
@@ -71,7 +71,7 @@ module Cosmos
|
|
71
71
|
raise @parser.error("Missing MACRO_APPEND_START before this config.line.", @parser.keyword) unless @macro
|
72
72
|
raise @parser.error("No items appended in MACRO_APPEND list", @parser.keyword) if @macro.list.empty?
|
73
73
|
|
74
|
-
create_new_packet_items(packet)
|
74
|
+
create_new_packet_items(packet)
|
75
75
|
end
|
76
76
|
|
77
77
|
private
|
@@ -85,11 +85,11 @@ module Cosmos
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def create_new_packet_items(packet)
|
88
|
+
# Shift off the first macro index because since the first item(s) already exist we just rename
|
89
|
+
first_index = @macro.indices.shift
|
88
90
|
@macro.list.each do |name|
|
89
91
|
original_item_name = name
|
90
|
-
|
91
|
-
# exists we just rename it
|
92
|
-
new_name = format_item_name(name, @macro.indices.shift)
|
92
|
+
new_name = format_item_name(name, first_index)
|
93
93
|
item = packet.rename_item(name, new_name)
|
94
94
|
|
95
95
|
# The renaming indices create new items
|
@@ -371,7 +371,7 @@ module Cosmos
|
|
371
371
|
structure = super()
|
372
372
|
# Use instance_variable_set since we have overriden buffer= to do
|
373
373
|
# additional work that isn't neccessary here
|
374
|
-
structure.instance_variable_set("@buffer", @buffer.clone) if @buffer
|
374
|
+
structure.instance_variable_set("@buffer".freeze, @buffer.clone) if @buffer
|
375
375
|
return structure
|
376
376
|
end
|
377
377
|
alias dup clone
|
@@ -442,7 +442,7 @@ module Cosmos
|
|
442
442
|
def internal_buffer_equals(buffer)
|
443
443
|
raise ArgumentError, "Buffer class is #{buffer.class} but must be String" unless String === buffer
|
444
444
|
@buffer = buffer.dup
|
445
|
-
@buffer.force_encoding('ASCII-8BIT')
|
445
|
+
@buffer.force_encoding('ASCII-8BIT'.freeze)
|
446
446
|
if @buffer.length != @defined_length
|
447
447
|
if @buffer.length < @defined_length
|
448
448
|
resize_buffer()
|
@@ -39,9 +39,11 @@ module Cosmos
|
|
39
39
|
return @config.warnings
|
40
40
|
end
|
41
41
|
|
42
|
-
# @return [Array<String>] The telemetry target names
|
42
|
+
# @return [Array<String>] The telemetry target names (excluding UNKNOWN)
|
43
43
|
def target_names
|
44
|
-
|
44
|
+
result = @config.telemetry.keys.sort
|
45
|
+
result.delete('UNKNOWN'.freeze)
|
46
|
+
return result
|
45
47
|
end
|
46
48
|
|
47
49
|
# @param target_name [String] The target name
|
@@ -285,7 +287,6 @@ module Cosmos
|
|
285
287
|
tnames = target_names()
|
286
288
|
total = tnames.length.to_f
|
287
289
|
tnames.each_with_index do |target_name, index|
|
288
|
-
next if target_name == 'UNKNOWN'
|
289
290
|
if splash
|
290
291
|
splash.message = "Processing #{target_name} telemetry"
|
291
292
|
splash.progress = index / total
|
@@ -296,7 +297,7 @@ module Cosmos
|
|
296
297
|
packets(target_name).each do |packet_name, packet|
|
297
298
|
# We don't audit against hidden or disabled packets
|
298
299
|
next if !include_hidden and (packet.hidden || packet.disabled)
|
299
|
-
packet.items.
|
300
|
+
packet.items.each_key do |item_name|
|
300
301
|
# Skip ignored items
|
301
302
|
next if !include_hidden and ignored_items.include? item_name
|
302
303
|
strings << "#{target_name} #{packet_name} #{item_name}"
|
data/lib/cosmos/script/script.rb
CHANGED
@@ -598,7 +598,7 @@ module Cosmos
|
|
598
598
|
def _wait_tolerance(raw, *args)
|
599
599
|
type = (raw ? :RAW : :CONVERTED)
|
600
600
|
type_string = 'wait_tolerance'
|
601
|
-
type_string
|
601
|
+
type_string << '_raw' if raw
|
602
602
|
target_name, packet_name, item_name, expected_value, tolerance, timeout, polling_rate = wait_tolerance_process_args(args, type_string)
|
603
603
|
start_time = Time.now
|
604
604
|
success, value = cosmos_script_wait_implementation_tolerance(target_name, packet_name, item_name, type, expected_value, tolerance, timeout, polling_rate)
|
@@ -682,7 +682,7 @@ module Cosmos
|
|
682
682
|
|
683
683
|
def _wait_check_tolerance(raw, *args)
|
684
684
|
type_string = 'wait_check_tolerance'
|
685
|
-
type_string
|
685
|
+
type_string << '_raw' if raw
|
686
686
|
type = (raw ? :RAW : :CONVERTED)
|
687
687
|
target_name, packet_name, item_name, expected_value, tolerance, timeout, polling_rate = wait_tolerance_process_args(args, type_string)
|
688
688
|
start_time = Time.now
|
@@ -1067,7 +1067,7 @@ module Cosmos
|
|
1067
1067
|
|
1068
1068
|
if use_file_cache
|
1069
1069
|
# Check file based instrumented cache
|
1070
|
-
flat_path = path.
|
1070
|
+
flat_path = path.tr("/", "_").gsub("\\", "_").tr(":", "_").tr(" ", "_")
|
1071
1071
|
flat_path_with_md5 = flat_path + '_' + md5
|
1072
1072
|
cache_filename = File.join(cache_path, flat_path_with_md5)
|
1073
1073
|
end
|
@@ -1418,7 +1418,7 @@ module Cosmos
|
|
1418
1418
|
end
|
1419
1419
|
output_string << target_name + ' ' + cmd_name
|
1420
1420
|
if cmd_params.nil? or cmd_params.empty?
|
1421
|
-
output_string
|
1421
|
+
output_string << '")'
|
1422
1422
|
else
|
1423
1423
|
params = []
|
1424
1424
|
cmd_params.each do |key, value|
|
@@ -1428,13 +1428,13 @@ module Cosmos
|
|
1428
1428
|
if value.length > 256
|
1429
1429
|
value = value[0..255] + "...'"
|
1430
1430
|
end
|
1431
|
-
value.
|
1431
|
+
value.tr!('"',"'")
|
1432
1432
|
end
|
1433
1433
|
end
|
1434
1434
|
params << "#{key} #{value}"
|
1435
1435
|
end
|
1436
1436
|
params = params.join(", ")
|
1437
|
-
output_string
|
1437
|
+
output_string << ' with ' + params + '")'
|
1438
1438
|
end
|
1439
1439
|
return output_string
|
1440
1440
|
end
|
@@ -39,6 +39,7 @@ module Cosmos
|
|
39
39
|
# Mutex on write is needed to protect from commands coming in from more
|
40
40
|
# than one tool
|
41
41
|
@write_mutex = Mutex.new
|
42
|
+
@connected = false
|
42
43
|
end
|
43
44
|
|
44
45
|
# @return [String] Returns a binary string of data from the socket
|
@@ -50,7 +51,7 @@ module Cosmos
|
|
50
51
|
begin
|
51
52
|
data = @read_socket.recv_nonblock(65535)
|
52
53
|
@raw_logger_pair.read_logger.write(data) if @raw_logger_pair
|
53
|
-
rescue
|
54
|
+
rescue IO::WaitReadable
|
54
55
|
# Wait for the socket to be ready for reading or for the timeout
|
55
56
|
begin
|
56
57
|
result = IO.fast_select([@read_socket], nil, nil, @read_timeout)
|
@@ -126,7 +126,7 @@ module Cosmos
|
|
126
126
|
# Scan the response for the variables in brackets <VARIABLE>
|
127
127
|
# Write the packet value with each of the values received
|
128
128
|
response_values = response_string.scan(response_regexp)[0]
|
129
|
-
raise "Unexpected response received: #{response_string}" if response_values.length != response_item_names.length
|
129
|
+
raise "Unexpected response received: #{response_string}" if !response_values or (response_values.length != response_item_names.length)
|
130
130
|
response_values.each_with_index do |value, i|
|
131
131
|
result_packet.write(response_item_names[i], value)
|
132
132
|
end
|
@@ -443,7 +443,7 @@ module Cosmos
|
|
443
443
|
def update_targets
|
444
444
|
@target_select.clearItems()
|
445
445
|
target_names = System.commands.target_names
|
446
|
-
target_names_to_delete = [
|
446
|
+
target_names_to_delete = []
|
447
447
|
target_names.each do |target_name|
|
448
448
|
found_non_hidden = false
|
449
449
|
begin
|
@@ -149,7 +149,9 @@ module Cosmos
|
|
149
149
|
# Add the message output
|
150
150
|
@output = Qt::PlainTextEdit.new
|
151
151
|
@output.setReadOnly(true)
|
152
|
-
|
152
|
+
# Block count does NOT equal line numbers. Testing on Windows indicates
|
153
|
+
# 100 blocks equals a little over 27000 lines.
|
154
|
+
@output.setMaximumBlockCount(100)
|
153
155
|
|
154
156
|
@splitter.addWidget(@output)
|
155
157
|
# Set the stretch factor to give priority to the tab_widget (index 0) instead of the output (index 1)
|
@@ -218,16 +220,11 @@ module Cosmos
|
|
218
220
|
|
219
221
|
# Update the status tab of the server
|
220
222
|
def handle_status_tab
|
221
|
-
if CmdTlmServer.json_drb
|
222
|
-
previous_request_count = CmdTlmServer.json_drb.request_count
|
223
|
-
else
|
224
|
-
previous_request_count = 0
|
225
|
-
end
|
226
223
|
@tab_thread = Thread.new do
|
227
224
|
begin
|
228
225
|
while true
|
229
226
|
start_time = Time.now
|
230
|
-
Qt.execute_in_main_thread(true) { @status_tab.update
|
227
|
+
Qt.execute_in_main_thread(true) { @status_tab.update }
|
231
228
|
total_time = Time.now - start_time
|
232
229
|
if total_time > 0.0 and total_time < 1.0
|
233
230
|
break if @tab_sleeper.sleep(1.0 - total_time)
|
@@ -296,7 +293,7 @@ module Cosmos
|
|
296
293
|
lines_to_write = ''
|
297
294
|
string = @string_output.string.clone
|
298
295
|
@string_output.string = @string_output.string[string.length..-1]
|
299
|
-
string.each_line {|out_line| @output.add_formatted_text(out_line); lines_to_write
|
296
|
+
string.each_line {|out_line| @output.add_formatted_text(out_line); lines_to_write << out_line }
|
300
297
|
@output.flush
|
301
298
|
if @first_output < 2
|
302
299
|
# Scroll to the bottom on the first two outputs for Linux
|
@@ -17,6 +17,7 @@ module Cosmos
|
|
17
17
|
class InterfacesTab
|
18
18
|
INTERFACES = 'Interfaces'
|
19
19
|
ROUTERS = 'Routers'
|
20
|
+
ALIGN_CENTER = Qt::AlignCenter
|
20
21
|
|
21
22
|
def initialize
|
22
23
|
@interfaces_table = {}
|
@@ -116,7 +117,7 @@ module Cosmos
|
|
116
117
|
row = 0
|
117
118
|
interfaces.all.each do |interface_name, interface|
|
118
119
|
item = Qt::TableWidgetItem.new(Qt::Object.tr(interface_name))
|
119
|
-
item.setTextAlignment(
|
120
|
+
item.setTextAlignment(ALIGN_CENTER)
|
120
121
|
interfaces_table.setItem(row, 0, item)
|
121
122
|
interfaces_table.setCellWidget(row, 1, create_button(name, interface, interface_name))
|
122
123
|
interfaces_table.setItem(row, 2, create_state(interface))
|
@@ -126,8 +127,8 @@ module Cosmos
|
|
126
127
|
interface.bytes_written, interface.bytes_read,
|
127
128
|
interface.write_count, interface.read_count].each do |val|
|
128
129
|
|
129
|
-
item = Qt::TableWidgetItem.new(Qt::Object.tr(val.to_s))
|
130
|
-
item.setTextAlignment(
|
130
|
+
item = Qt::TableWidgetItem.new(val.to_s)#Qt::Object.tr(val.to_s))
|
131
|
+
item.setTextAlignment(ALIGN_CENTER)
|
131
132
|
interfaces_table.setItem(row, index, item)
|
132
133
|
index += 1
|
133
134
|
end
|
@@ -39,7 +39,7 @@ module Cosmos
|
|
39
39
|
return if cmd_tlm.nil? || cmd_tlm.target_names.empty?
|
40
40
|
|
41
41
|
row = 0
|
42
|
-
cmd_tlm.target_names.
|
42
|
+
cmd_tlm.target_names.each do |target_name|
|
43
43
|
packets = cmd_tlm.packets(target_name)
|
44
44
|
packets.sort.each do |packet_name, packet|
|
45
45
|
next if packet.hidden
|
@@ -47,6 +47,9 @@ module Cosmos
|
|
47
47
|
row += 1
|
48
48
|
end
|
49
49
|
end
|
50
|
+
packet = cmd_tlm.packet('UNKNOWN', 'UNKNOWN')
|
51
|
+
@packets_table[name].item(row, 2).setText(packet.received_count.to_s)
|
52
|
+
row += 1
|
50
53
|
end
|
51
54
|
|
52
55
|
private
|
@@ -55,12 +58,13 @@ module Cosmos
|
|
55
58
|
return if cmd_tlm.target_names.empty?
|
56
59
|
|
57
60
|
count = 0
|
58
|
-
cmd_tlm.target_names.
|
61
|
+
cmd_tlm.target_names.each do |target_name|
|
59
62
|
packets = cmd_tlm.packets(target_name)
|
60
63
|
packets.each do |packet_name, packet|
|
61
64
|
count += 1 unless packet.hidden
|
62
65
|
end
|
63
66
|
end
|
67
|
+
count += 1 # For UNKNOWN UNKNOWN
|
64
68
|
|
65
69
|
scroll = Qt::ScrollArea.new
|
66
70
|
widget = Qt::Widget.new
|
@@ -95,7 +99,9 @@ module Cosmos
|
|
95
99
|
|
96
100
|
def populate_packets_table(name, cmd_tlm, table)
|
97
101
|
row = 0
|
98
|
-
cmd_tlm.target_names
|
102
|
+
target_names = cmd_tlm.target_names
|
103
|
+
target_names << 'UNKNOWN'.freeze
|
104
|
+
target_names.each do |target_name|
|
99
105
|
packets = cmd_tlm.packets(target_name)
|
100
106
|
packets.sort.each do |packet_name, packet|
|
101
107
|
packet.received_count ||= 0
|