cosmos 4.2.4-java → 4.5.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.dockerignore +2 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- data/.github/ISSUE_TEMPLATE/help---usage---general-question.md +12 -0
- data/.gitignore +2 -0
- data/.travis.yml +6 -6
- data/Dockerfile +69 -0
- data/Gemfile +1 -1
- data/Manifest.txt +130 -46
- data/README.md +9 -0
- data/Rakefile +57 -0
- data/appveyor.yml +18 -7
- data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
- data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
- data/autohotkey/config/targets/INST/lib/sim_inst.rb +3 -1
- data/autohotkey/config/tools/cmd_sequence/cmd_sequence.txt +2 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +2 -4
- data/autohotkey/config/tools/table_manager/SubTables/OneDimensionalSubTable_def.txt +31 -0
- data/autohotkey/config/tools/table_manager/SubTables/TwoDimensionalSubTable_def.txt +28 -0
- data/autohotkey/config/tools/test_runner/test_runner.txt +1 -1
- data/autohotkey/config/tools/test_runner/test_runner2.txt +1 -1
- data/autohotkey/config/tools/test_runner/test_runner3.txt +1 -1
- data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
- data/autohotkey/lib/cmd_sequence_exporter.rb +52 -0
- data/autohotkey/procedures/collect.rb +2 -2
- data/autohotkey/procedures/collect_util.rb +1 -1
- data/autohotkey/procedures/script_test.rb +1 -1
- data/autohotkey/tools/CmdSenderAHK2 +18 -0
- data/autohotkey/tools/cmd_sender.ahk +34 -6
- data/autohotkey/tools/cmd_sender2.ahk +4 -0
- data/autohotkey/tools/cmd_sequence.ahk +36 -22
- data/autohotkey/tools/cmd_sequence2.ahk +1 -1
- data/autohotkey/tools/config_editor.ahk +5 -5
- data/autohotkey/tools/launcher.ahk +1 -0
- data/autohotkey/tools/limits_monitor.ahk +1 -1
- data/autohotkey/tools/packet_viewer.ahk +7 -6
- data/autohotkey/tools/script_runner.ahk +16 -4
- data/autohotkey/tools/test_runner.ahk +8 -8
- data/bin/cosmos +38 -1
- data/bin/cstol_converter +1 -1
- data/bin/dart_util +0 -0
- data/bin/rubysloc +73 -28
- data/bin/xtce_converter +1 -1
- data/cosmos.gemspec +7 -9
- data/data/config/_interfaces.yaml +4 -0
- data/data/config/cmd_sequence.yaml +14 -0
- data/data/config/command_modifiers.yaml +16 -1
- data/data/config/housekeeping_params.yaml +14 -0
- data/data/config/interface_modifiers.yaml +14 -2
- data/data/config/item_modifiers.yaml +11 -1
- data/data/config/launcher.yaml +12 -2
- data/data/config/param_item_modifiers.yaml +7 -2
- data/data/config/parameter_modifiers.yaml +20 -0
- data/data/config/screen.yaml +2 -0
- data/data/config/script_runner.yaml +9 -0
- data/data/config/system.yaml +152 -28
- data/data/config/table_manager.yaml +7 -0
- data/data/config/target.yaml +12 -0
- data/data/config/telemetry_modifiers.yaml +19 -2
- data/data/config/test_runner.yaml +10 -9
- data/data/config/widgets.yaml +174 -11
- data/data/crc.txt +428 -415
- data/demo/Gemfile +1 -1
- data/demo/Launcher.bat +1 -9
- data/demo/Launcher2.bat +1 -0
- data/demo/LauncherMini.bat +1 -0
- data/demo/Rakefile +2 -0
- data/demo/config/dart/Gemfile +2 -7
- data/demo/config/data/crc.txt +243 -219
- data/demo/config/system/system.txt +42 -3
- data/demo/config/system/system2.txt +34 -5
- data/demo/config/system/system_alt_ports.txt +80 -0
- data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +1 -0
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +5 -4
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +12 -7
- data/demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
- data/demo/config/targets/INST/cmd_tlm_server.txt +2 -0
- data/demo/config/targets/INST/lib/sim_inst.rb +15 -3
- data/demo/config/targets/INST/screens/adcs.txt +2 -2
- data/demo/config/targets/INST/screens/block.txt +1 -1
- data/demo/config/targets/INST/screens/commanding.txt +1 -1
- data/demo/config/targets/INST/screens/ground.txt +27 -5
- data/demo/config/targets/INST/screens/ground_error.gif +0 -0
- data/demo/config/{data/groundoff.gif → targets/INST/screens/ground_off.gif} +0 -0
- data/demo/config/{data/groundon.gif → targets/INST/screens/ground_on.gif} +0 -0
- data/demo/config/targets/INST/screens/limits.txt +69 -31
- data/demo/config/targets/INST/screens/other.txt +13 -3
- data/demo/config/targets/INST/screens/params.txt +54 -0
- data/demo/config/targets/INST/screens/satellite.gif +0 -0
- data/demo/config/targets/INST/target.txt +1 -0
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server_chain.txt +18 -0
- data/demo/config/tools/data_viewer/data_viewer.txt +3 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/demo/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/demo/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
- data/demo/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
- data/demo/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
- data/demo/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/demo/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/demo/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
- data/demo/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
- data/demo/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
- data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
- data/demo/config/tools/script_runner/script_runner.txt +1 -2
- data/demo/config/tools/test_runner/test_runner.txt +3 -1
- data/demo/lib/example_background_task.rb +1 -0
- data/demo/procedures/cosmos_api_test.rb +26 -22
- data/demo/procedures/interactive.rb +22 -0
- data/demo/procedures/local_screen_example.rb +51 -0
- data/ext/cosmos/ext/cosmos_io/cosmos_io.c +32 -4
- data/ext/cosmos/ext/packet/packet.c +6 -77
- data/ext/mkrf_conf.rb +2 -2
- data/extensions/vscode/.gitignore +4 -0
- data/extensions/vscode/.vscode/launch.json +32 -0
- data/extensions/vscode/.vscode/settings.json +13 -0
- data/extensions/vscode/.vscode/tasks.json +79 -0
- data/extensions/vscode/License.txt +879 -0
- data/extensions/vscode/README.md +9 -0
- data/extensions/vscode/client/License.txt +879 -0
- data/extensions/vscode/client/README.md +39 -0
- data/extensions/vscode/client/cosmos.configuration.json +23 -0
- data/extensions/vscode/client/images/icon.png +0 -0
- data/extensions/vscode/client/package-lock.json +414 -0
- data/extensions/vscode/client/package.json +105 -0
- data/extensions/vscode/client/src/extension.ts +132 -0
- data/extensions/vscode/client/src/screen_preview.rb +25 -0
- data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
- data/extensions/vscode/client/tsconfig.json +17 -0
- data/extensions/vscode/package-lock.json +26 -0
- data/extensions/vscode/package.json +35 -0
- data/extensions/vscode/server/License.txt +879 -0
- data/extensions/vscode/server/package-lock.json +236 -0
- data/extensions/vscode/server/package.json +29 -0
- data/extensions/vscode/server/src/server.ts +59 -0
- data/extensions/vscode/server/tsconfig.json +16 -0
- data/install/Gemfile +1 -1
- data/install/Launcher.bat +1 -9
- data/install/config/dart/Gemfile +3 -8
- data/install/config/data/crc.txt +148 -132
- data/install/config/system/system.txt +36 -3
- data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/install/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/install/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/install/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
- data/install/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
- data/install/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
- data/install/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/install/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/install/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
- data/install/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
- data/install/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
- data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
- data/lib/cosmos/config/config_parser.rb +4 -5
- data/lib/cosmos/conversions.rb +2 -0
- data/lib/cosmos/conversions/packet_time_formatted_conversion.rb +38 -0
- data/lib/cosmos/conversions/packet_time_seconds_conversion.rb +38 -0
- data/lib/cosmos/core_ext/cosmos_io.rb +2 -1
- data/lib/cosmos/core_ext/time.rb +3 -1
- data/lib/cosmos/dart/config/boot.rb +1 -1
- data/lib/cosmos/dart/config/database.yml +2 -0
- data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
- data/lib/cosmos/dart/examples/dart_stream_client.rb +6 -2
- data/lib/cosmos/dart/lib/dart_common.rb +13 -6
- data/lib/cosmos/dart/lib/dart_constants.rb +15 -0
- data/lib/cosmos/dart/lib/dart_database_cleaner.rb +2 -2
- data/lib/cosmos/dart/lib/dart_decom_query.rb +5 -6
- data/lib/cosmos/dart/lib/dart_decommutator.rb +64 -54
- data/lib/cosmos/dart/lib/dart_importer.rb +3 -3
- data/lib/cosmos/dart/lib/dart_master_query.rb +71 -0
- data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +2 -2
- data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +165 -134
- data/lib/cosmos/dart/processes/dart.rb +4 -2
- data/lib/cosmos/dart/processes/dart_decom_server.rb +3 -3
- data/lib/cosmos/dart/processes/dart_ingester.rb +40 -1
- data/lib/cosmos/dart/processes/dart_master.rb +44 -0
- data/lib/cosmos/dart/processes/dart_util.rb +119 -4
- data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +3 -3
- data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +9 -5
- data/lib/cosmos/gui/dialogs/details_dialog.rb +44 -29
- data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +3 -3
- data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +2 -2
- data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +11 -10
- data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +4 -2
- data/lib/cosmos/gui/opengl/earth_model.rb +1 -1
- data/lib/cosmos/gui/qt.rb +13 -2
- data/lib/cosmos/gui/qt_tool.rb +71 -43
- data/lib/cosmos/gui/text/ruby_editor.rb +91 -49
- data/lib/cosmos/gui/utilities/classification_banner.rb +60 -0
- data/lib/cosmos/gui/utilities/screenshot.rb +1 -1
- data/lib/cosmos/gui/utilities/script_module_gui.rb +117 -91
- data/lib/cosmos/gui/widgets/dart_meta_frame.rb +22 -3
- data/lib/cosmos/interfaces.rb +2 -0
- data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
- data/lib/cosmos/interfaces/interface.rb +9 -1
- data/lib/cosmos/interfaces/linc_interface.rb +3 -3
- data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +40 -18
- data/lib/cosmos/interfaces/protocols/ignore_packet_protocol.rb +46 -0
- data/lib/cosmos/interfaces/protocols/length_protocol.rb +5 -0
- data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +68 -23
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +9 -4
- data/lib/cosmos/interfaces/serial_interface.rb +7 -1
- data/lib/cosmos/interfaces/simulated_target_interface.rb +14 -5
- data/lib/cosmos/interfaces/stream_interface.rb +1 -1
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +13 -13
- data/lib/cosmos/io/json_drb.rb +16 -12
- data/lib/cosmos/io/json_drb_object.rb +7 -2
- data/lib/cosmos/io/json_drb_rack.rb +25 -5
- data/lib/cosmos/io/json_rpc.rb +1 -1
- data/lib/cosmos/io/posix_serial_driver.rb +60 -22
- data/lib/cosmos/io/serial_driver.rb +11 -8
- data/lib/cosmos/io/win32_serial_driver.rb +31 -3
- data/lib/cosmos/packet_logs/packet_log_reader.rb +71 -28
- data/lib/cosmos/packet_logs/packet_log_writer.rb +13 -1
- data/lib/cosmos/packets/commands.rb +30 -9
- data/lib/cosmos/packets/packet.rb +105 -34
- data/lib/cosmos/packets/packet_config.rb +60 -10
- data/lib/cosmos/packets/parsers/format_string_parser.rb +0 -1
- data/lib/cosmos/packets/parsers/state_parser.rb +0 -1
- data/lib/cosmos/packets/parsers/xtce_converter.rb +2 -0
- data/lib/cosmos/packets/parsers/xtce_parser.rb +5 -4
- data/lib/cosmos/packets/structure.rb +32 -4
- data/lib/cosmos/packets/structure_item.rb +5 -1
- data/lib/cosmos/packets/telemetry.rb +30 -4
- data/lib/cosmos/script/api_shared.rb +22 -10
- data/lib/cosmos/script/extract.rb +1 -1
- data/lib/cosmos/script/limits.rb +4 -0
- data/lib/cosmos/script/script.rb +29 -20
- data/lib/cosmos/script/scripting.rb +16 -14
- data/lib/cosmos/script/telemetry.rb +3 -1
- data/lib/cosmos/script/tools.rb +18 -8
- data/lib/cosmos/streams/serial_stream.rb +11 -6
- data/lib/cosmos/system/system.rb +214 -76
- data/lib/cosmos/system/target.rb +39 -9
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +116 -55
- data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
- data/lib/cosmos/tools/cmd_sender/cmd_params.rb +382 -0
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +54 -340
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +74 -52
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +40 -333
- data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +16 -11
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +13 -0
- data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +2 -0
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +44 -15
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +8 -1
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +18 -20
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +13 -2
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +2 -2
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +13 -13
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +9 -6
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +8 -8
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +5 -5
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +35 -20
- data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +15 -11
- data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +2 -0
- data/lib/cosmos/tools/config_editor/config_editor.rb +181 -94
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +10 -9
- data/lib/cosmos/tools/config_editor/system_config_dialog.rb +158 -0
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +57 -47
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +1 -0
- data/lib/cosmos/tools/data_viewer/dump_component.rb +3 -9
- data/lib/cosmos/tools/data_viewer/text_component.rb +77 -0
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +68 -42
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
- data/lib/cosmos/tools/launcher/launcher.rb +2 -1
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +59 -41
- data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +42 -42
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +64 -59
- data/lib/cosmos/tools/script_runner/script_runner.rb +198 -123
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +14 -0
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +87 -35
- data/lib/cosmos/tools/table_manager/table_config.rb +5 -3
- data/lib/cosmos/tools/table_manager/table_manager.rb +48 -45
- data/lib/cosmos/tools/test_runner/test.rb +5 -2
- data/lib/cosmos/tools/test_runner/test_runner.rb +61 -38
- data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +24 -12
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +48 -48
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +5 -8
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +20 -16
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +3 -3
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +7 -7
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +10 -10
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +10 -3
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +6 -6
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +14 -14
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +21 -17
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +5 -8
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +94 -91
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +27 -26
- data/lib/cosmos/tools/tlm_viewer/screen.rb +76 -14
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +51 -34
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +3 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +4 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +4 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +16 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +17 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +1 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +40 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +12 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +79 -29
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +2 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +2 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +4 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +33 -25
- data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +5 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +5 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +4 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +5 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +6 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +2 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +10 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelled_widget.rb +58 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +2 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +2 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +3 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitscolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +3 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/led_widget.rb +108 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +60 -10
- data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +22 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb +19 -13
- data/lib/cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb +22 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +4 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +1 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +10 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +7 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +4 -6
- data/lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb +3 -5
- data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +4 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +4 -6
- data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +13 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +3 -8
- data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +6 -12
- data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +5 -10
- data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +5 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +4 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitscolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +3 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/valuerangecolumn_widget.rb +2 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +8 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +9 -7
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +60 -47
- data/lib/cosmos/top_level.rb +37 -13
- data/lib/cosmos/utilities/ruby_lex_utils.rb +34 -30
- data/lib/cosmos/version.rb +5 -5
- data/lib/cosmos/win32/excel.rb +81 -24
- data/make_gems.sh +10 -0
- data/run_gui_tests.bat +1 -0
- data/spec/conversions/packet_time_formatted_conversion_spec.rb +58 -0
- data/spec/conversions/packet_time_seconds_conversion_spec.rb +60 -0
- data/spec/core_ext/socket_spec.rb +1 -1
- data/spec/core_ext/time_spec.rb +4 -0
- data/spec/gui/utilities/script_module_gui_spec.rb +44 -63
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
- data/spec/install/yaml_docs_spec.rb +132 -0
- data/spec/interfaces/linc_interface_spec.rb +1 -1
- data/spec/interfaces/protocols/fixed_protocol_spec.rb +20 -9
- data/spec/interfaces/protocols/ignore_packet_protocol_spec.rb +243 -0
- data/spec/interfaces/protocols/length_protocol_spec.rb +39 -0
- data/spec/interfaces/protocols/preidentified_protocol_spec.rb +227 -4
- data/spec/interfaces/protocols/template_protocol_spec.rb +78 -25
- data/spec/io/json_drb_rack_spec.rb +166 -0
- data/spec/io/json_drb_spec.rb +14 -0
- data/spec/io/json_rpc_spec.rb +4 -5
- data/spec/io/posix_serial_driver_spec.rb +81 -0
- data/spec/io/serial_driver_spec.rb +15 -13
- data/spec/io/win32_serial_driver_spec.rb +33 -3
- data/spec/packet_logs/packet_log_reader_spec.rb +106 -52
- data/spec/packets/commands_spec.rb +22 -0
- data/spec/packets/packet_config_spec.rb +29 -16
- data/spec/packets/packet_item_spec.rb +2 -2
- data/spec/packets/packet_spec.rb +39 -6
- data/spec/packets/parsers/format_string_parser_spec.rb +0 -11
- data/spec/packets/parsers/macro_parser_spec.rb +36 -36
- data/spec/packets/parsers/state_parser_spec.rb +69 -11
- data/spec/packets/structure_spec.rb +93 -2
- data/spec/packets/telemetry_spec.rb +63 -10
- data/spec/script/extract_spec.rb +4 -1
- data/spec/script/script_spec.rb +2 -3
- data/spec/script/scripting_spec.rb +2 -1
- data/spec/script/tools_spec.rb +0 -1
- data/spec/streams/tcpip_socket_stream_spec.rb +32 -27
- data/spec/system/system_spec.rb +187 -4
- data/spec/system/target_spec.rb +62 -1
- data/spec/tools/cmd_tlm_server/api_spec.rb +29 -21
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -7
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +33 -0
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +25 -1
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +15 -0
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
- data/spec/top_level/top_level_spec.rb +29 -5
- data/spec/utilities/message_log_spec.rb +6 -3
- data/tasks/gemfile_stats.rake +38 -14
- data/test/performance/config/system/system.txt +0 -0
- data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +5 -5
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
- data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
- data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
- data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
- data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
- data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
- data/test/performance/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
- data/test/performance/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
- data/test/performance/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
- data/test/performance/config/tools/test_runner/test_runner.txt +1 -1
- data/test/performance/procedures/cosmos_api_test.rb +1 -1
- data/test/performance/tools/identify_performance.rb +82 -0
- metadata +146 -62
- data/lib/cosmos/dart/Gemfile +0 -69
|
@@ -12,7 +12,7 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
12
12
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
|
|
13
13
|
|
|
14
14
|
module Cosmos
|
|
15
|
-
|
|
15
|
+
# Layout widget which creates a scrollable window
|
|
16
16
|
class ScrollwindowWidget < Qt::VBoxLayout
|
|
17
17
|
include Widget
|
|
18
18
|
include LayoutWidget
|
|
@@ -31,5 +31,4 @@ module Cosmos
|
|
|
31
31
|
@parent_layout.addWidget(scroll)
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
|
-
|
|
35
|
-
end # module Cosmos
|
|
34
|
+
end
|
|
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/label_widget'
|
|
|
14
14
|
require 'cosmos/tools/tlm_viewer/widgets/horizontalline_widget'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
|
-
|
|
17
|
+
# Vertically stacks a LabelWidget on top of a HorizontallineWidget
|
|
18
18
|
class SectionheaderWidget < Qt::Widget
|
|
19
19
|
include Widget
|
|
20
20
|
include MultiWidget
|
|
@@ -29,5 +29,4 @@ module Cosmos
|
|
|
29
29
|
parent_layout.addWidget(self) if parent_layout
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
|
-
|
|
33
|
-
end # module Cosmos
|
|
32
|
+
end
|
|
@@ -12,9 +12,9 @@ require 'cosmos'
|
|
|
12
12
|
require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
13
13
|
|
|
14
14
|
module Cosmos
|
|
15
|
-
|
|
16
|
-
#
|
|
17
|
-
#
|
|
15
|
+
# Creates a Qt::SpacerItem which affects the positioning of other
|
|
16
|
+
# widgets around it. The width and height must be given and the
|
|
17
|
+
# size policy follows. See the Qt documentation for more details.
|
|
18
18
|
class SpacerWidget < Qt::Widget
|
|
19
19
|
include Widget
|
|
20
20
|
|
|
@@ -49,7 +49,5 @@ module Cosmos
|
|
|
49
49
|
return Qt::SizePolicy::Minimum
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
|
-
|
|
53
52
|
end
|
|
54
|
-
|
|
55
|
-
end # module Cosmos
|
|
53
|
+
end
|
|
@@ -12,7 +12,7 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
12
12
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
|
|
13
13
|
|
|
14
14
|
module Cosmos
|
|
15
|
-
|
|
15
|
+
# Layout widget which creates a Qt::TabWidget to contain TABITEM widgets
|
|
16
16
|
class TabbookWidget < Qt::TabWidget
|
|
17
17
|
include Widget
|
|
18
18
|
include LayoutWidget
|
|
@@ -22,5 +22,4 @@ module Cosmos
|
|
|
22
22
|
parent_layout.addWidget(self) if parent_layout
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
|
-
|
|
26
|
-
end # module Cosmos
|
|
25
|
+
end
|
|
@@ -12,7 +12,7 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
12
12
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
|
|
13
13
|
|
|
14
14
|
module Cosmos
|
|
15
|
-
|
|
15
|
+
# Layout widget used within the TABBOOK widget to create tabs
|
|
16
16
|
class TabitemWidget < Qt::VBoxLayout
|
|
17
17
|
include Widget
|
|
18
18
|
include LayoutWidget
|
|
@@ -24,5 +24,4 @@ module Cosmos
|
|
|
24
24
|
parent_layout.addTab(w, text.to_s) if parent_layout
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
|
-
|
|
28
|
-
end # module Cosmos
|
|
27
|
+
end
|
|
@@ -13,7 +13,8 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
13
13
|
require 'cosmos/tools/tlm_viewer/widgets/aging_widget'
|
|
14
14
|
|
|
15
15
|
module Cosmos
|
|
16
|
-
|
|
16
|
+
# Displays a text box with the telemetry value. The box creates scrollbars
|
|
17
|
+
# if the data content is too large to completely display.
|
|
17
18
|
class TextboxWidget < Qt::TextEdit
|
|
18
19
|
include Widget
|
|
19
20
|
include AgingWidget
|
|
@@ -24,6 +25,15 @@ module Cosmos
|
|
|
24
25
|
setFixedSize(width.to_i, height.to_i)
|
|
25
26
|
setReadOnly(true)
|
|
26
27
|
parent_layout.addWidget(self) if parent_layout
|
|
28
|
+
|
|
29
|
+
# Create update flag and don't update when the scroll bars are down
|
|
30
|
+
@update = true
|
|
31
|
+
verticalScrollBar().connect(SIGNAL('sliderPressed()')) do
|
|
32
|
+
@update = false
|
|
33
|
+
end
|
|
34
|
+
verticalScrollBar().connect(SIGNAL('sliderReleased()')) do
|
|
35
|
+
@update = true
|
|
36
|
+
end
|
|
27
37
|
end
|
|
28
38
|
|
|
29
39
|
def format_value(data)
|
|
@@ -31,6 +41,7 @@ module Cosmos
|
|
|
31
41
|
end
|
|
32
42
|
|
|
33
43
|
def value=(data)
|
|
44
|
+
return unless @update
|
|
34
45
|
scroll_pos = self.verticalScrollBar.value
|
|
35
46
|
self.text = super(data, format_value(data))
|
|
36
47
|
self.setColors(@foreground, @background)
|
|
@@ -41,7 +52,5 @@ module Cosmos
|
|
|
41
52
|
super
|
|
42
53
|
process_aging_settings
|
|
43
54
|
end
|
|
44
|
-
|
|
45
55
|
end
|
|
46
|
-
|
|
47
|
-
end # module Cosmos
|
|
56
|
+
end
|
|
@@ -11,16 +11,15 @@
|
|
|
11
11
|
require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
12
12
|
|
|
13
13
|
module Cosmos
|
|
14
|
-
|
|
14
|
+
# Creates a text field
|
|
15
15
|
class TextfieldWidget < Qt::LineEdit
|
|
16
16
|
include Widget
|
|
17
17
|
|
|
18
|
-
def initialize
|
|
18
|
+
def initialize(parent_layout, num_characters = 12, default_text = '')
|
|
19
19
|
super()
|
|
20
20
|
setText(default_text.to_s)
|
|
21
21
|
setMaxLength(num_characters.to_i)
|
|
22
22
|
parent_layout.addWidget(self) if parent_layout
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
|
-
|
|
26
|
-
end # module Cosmos
|
|
25
|
+
end
|
|
@@ -13,13 +13,10 @@ require 'cosmos/tools/tlm_viewer/widgets/linegraph_widget'
|
|
|
13
13
|
require 'cosmos/script'
|
|
14
14
|
|
|
15
15
|
module Cosmos
|
|
16
|
-
|
|
17
|
-
# TimegraphWidget class
|
|
18
|
-
#
|
|
19
|
-
# This class creates a graph of the supplied data value versus time.
|
|
16
|
+
# This class creates a graph of the supplied data value versus time
|
|
20
17
|
class TimegraphWidget < LinegraphWidget
|
|
21
18
|
|
|
22
|
-
def initialize(parent_layout, target_name, packet_name, item_name, num_samples = 100, width = 300, height = 200, point_size = 5, time_item_name = '
|
|
19
|
+
def initialize(parent_layout, target_name, packet_name, item_name, num_samples = 100, width = 300, height = 200, point_size = 5, time_item_name = 'PACKET_TIMESECONDS', value_type = :CONVERTED)
|
|
23
20
|
super(parent_layout, target_name, packet_name, item_name, num_samples, width, height, value_type)
|
|
24
21
|
@time_item_name = time_item_name.to_s
|
|
25
22
|
@time = []
|
|
@@ -85,7 +82,5 @@ module Cosmos
|
|
|
85
82
|
self.graph
|
|
86
83
|
end
|
|
87
84
|
end
|
|
88
|
-
|
|
89
85
|
end
|
|
90
|
-
|
|
91
|
-
end # module Cosmos
|
|
86
|
+
end
|
|
@@ -8,20 +8,14 @@
|
|
|
8
8
|
# as published by the Free Software Foundation; version 3 with
|
|
9
9
|
# attribution addendums as found in the LICENSE.txt
|
|
10
10
|
|
|
11
|
-
require 'cosmos/tools/tlm_viewer/widgets/
|
|
11
|
+
require 'cosmos/tools/tlm_viewer/widgets/label_widget'
|
|
12
12
|
|
|
13
13
|
module Cosmos
|
|
14
|
-
|
|
15
|
-
class TitleWidget <
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def initialize(parent_layout, text)
|
|
19
|
-
super()
|
|
20
|
-
self.text = text.to_s.remove_quotes
|
|
21
|
-
setFont(Cosmos.getFont("helvetica", 14, Qt::Font::Bold))
|
|
14
|
+
# Creates a centered label with the specified font
|
|
15
|
+
class TitleWidget < LabelWidget
|
|
16
|
+
def initialize(parent_layout, text, font_name = "Helvetica", point_size = 14, bold = "BOLD", italic = false)
|
|
17
|
+
super(parent_layout, text, font_name, point_size, bold, italic)
|
|
22
18
|
setAlignment(Qt::AlignCenter)
|
|
23
|
-
parent_layout.addWidget(self) if parent_layout
|
|
24
19
|
end
|
|
25
20
|
end
|
|
26
|
-
|
|
27
|
-
end # module Cosmos
|
|
21
|
+
end
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget'
|
|
16
16
|
|
|
17
17
|
module Cosmos
|
|
18
|
-
|
|
18
|
+
# Displays a limits bar with the defined limits and a vertical bar indicating
|
|
19
|
+
# the current value. A black dot is displayed that indicates the value from X
|
|
20
|
+
# seconds ago (60s by default).
|
|
19
21
|
class TrendbarWidget < LimitsbarWidget
|
|
20
|
-
|
|
21
22
|
MAX_TREND_SECONDS = 3600.0
|
|
22
23
|
|
|
23
24
|
def initialize (parent_layout, target_name, packet_name, item_name, value_type = :CONVERTED, trend_seconds = 60.0, width = 160, height = 25, trend_value_handle = nil)
|
|
@@ -30,9 +31,6 @@ module Cosmos
|
|
|
30
31
|
# Track the total number of samples received. This will help us to know how many
|
|
31
32
|
# trendlines to plot before we reach the maximum.
|
|
32
33
|
@samples_received = 0
|
|
33
|
-
|
|
34
|
-
# The actual difference (delta) between the current value and the desired trend value.
|
|
35
|
-
@trend_delta = nil
|
|
36
34
|
@trend_points = 1
|
|
37
35
|
@trend_data = [0]
|
|
38
36
|
end
|
|
@@ -42,9 +40,8 @@ module Cosmos
|
|
|
42
40
|
adjust_trend_points_and_data()
|
|
43
41
|
end
|
|
44
42
|
|
|
45
|
-
def value=
|
|
43
|
+
def value=(data)
|
|
46
44
|
@value = data.to_f
|
|
47
|
-
|
|
48
45
|
@samples_received += 1
|
|
49
46
|
|
|
50
47
|
# Remove the oldest value off the end (right) and insert on the
|
|
@@ -123,8 +120,6 @@ module Cosmos
|
|
|
123
120
|
adjust_trend_points_and_data()
|
|
124
121
|
end
|
|
125
122
|
end
|
|
126
|
-
|
|
127
123
|
end
|
|
128
|
-
|
|
129
|
-
end # module Cosmos
|
|
124
|
+
end
|
|
130
125
|
|
|
@@ -21,7 +21,10 @@ require 'cosmos/tools/tlm_viewer/widgets/textfield_widget'
|
|
|
21
21
|
require 'cosmos/tools/tlm_viewer/widgets/trendbar_widget'
|
|
22
22
|
|
|
23
23
|
module Cosmos
|
|
24
|
-
|
|
24
|
+
# Displays the current value followed by the current trend value
|
|
25
|
+
# (the current value minus the value X samples ago) followed by a
|
|
26
|
+
# limits bar with the defined limits. The limits bar shows the current
|
|
27
|
+
# value as a vertical line and the trend value as a black dot.
|
|
25
28
|
class TrendlimitsbarWidget < Qt::Widget
|
|
26
29
|
include Widget
|
|
27
30
|
include MultiWidget
|
|
@@ -42,5 +45,4 @@ module Cosmos
|
|
|
42
45
|
return true
|
|
43
46
|
end
|
|
44
47
|
end
|
|
45
|
-
|
|
46
|
-
end # module Cosmos
|
|
48
|
+
end
|
|
@@ -13,7 +13,9 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
13
13
|
require 'cosmos/tools/tlm_viewer/widgets/aging_widget'
|
|
14
14
|
|
|
15
15
|
module Cosmos
|
|
16
|
-
|
|
16
|
+
# Displays a telemetry value that ages over time by the background fading
|
|
17
|
+
# from white to grey if the telemetry value is not changing. A new telemetry
|
|
18
|
+
# value updates the display back to a white background.
|
|
17
19
|
class ValueWidget < Qt::LineEdit
|
|
18
20
|
include Widget
|
|
19
21
|
include AgingWidget
|
|
@@ -37,7 +39,5 @@ module Cosmos
|
|
|
37
39
|
super
|
|
38
40
|
process_aging_settings
|
|
39
41
|
end
|
|
40
|
-
|
|
41
42
|
end
|
|
42
|
-
|
|
43
|
-
end # module Cosmos
|
|
43
|
+
end
|
|
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
|
|
|
14
14
|
require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
|
-
|
|
17
|
+
# Displays a ValueWidget followed by a LimitsbarWidget
|
|
18
18
|
class ValuelimitsbarWidget < Qt::Widget
|
|
19
19
|
include Widget
|
|
20
20
|
include MultiWidget
|
|
@@ -33,5 +33,4 @@ module Cosmos
|
|
|
33
33
|
return true
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
37
|
-
end # module Cosmos
|
|
36
|
+
end
|
|
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
|
|
|
14
14
|
require 'cosmos/tools/tlm_viewer/widgets/limitscolumn_widget'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
|
-
|
|
17
|
+
# Vertically stacks a LimitscolumnWidget on a ValueWidget
|
|
18
18
|
class ValuelimitscolumnWidget < Qt::Widget
|
|
19
19
|
include Widget
|
|
20
20
|
include MultiWidget
|
|
@@ -33,5 +33,4 @@ module Cosmos
|
|
|
33
33
|
return true
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
37
|
-
end # module Cosmos
|
|
36
|
+
end
|
|
@@ -14,12 +14,12 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
|
|
|
14
14
|
require 'cosmos/tools/tlm_viewer/widgets/rangebar_widget'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
|
-
|
|
17
|
+
# Displays a ValueWidget followed by a RangebarWidget
|
|
18
18
|
class ValuerangebarWidget < Qt::Widget
|
|
19
19
|
include Widget
|
|
20
20
|
include MultiWidget
|
|
21
21
|
|
|
22
|
-
def initialize
|
|
22
|
+
def initialize(parent_layout, target_name, packet_name, item_name, low_value, high_value, value_type = :WITH_UNITS, characters = 12, width = 160, height = 25)
|
|
23
23
|
super(target_name, packet_name, item_name, value_type)
|
|
24
24
|
setLayout(Qt::HBoxLayout.new())
|
|
25
25
|
layout.setSpacing(1)
|
|
@@ -33,5 +33,4 @@ module Cosmos
|
|
|
33
33
|
return true
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
37
|
-
end # module Cosmos
|
|
36
|
+
end
|
|
@@ -14,7 +14,7 @@ require 'cosmos/tools/tlm_viewer/widgets/value_widget'
|
|
|
14
14
|
require 'cosmos/tools/tlm_viewer/widgets/rangecolumn_widget'
|
|
15
15
|
|
|
16
16
|
module Cosmos
|
|
17
|
-
|
|
17
|
+
# Vertically stacks a Rangecolumnwidget over a ValueWidget
|
|
18
18
|
class ValuerangecolumnWidget < Qt::Widget
|
|
19
19
|
include Widget
|
|
20
20
|
include MultiWidget
|
|
@@ -33,5 +33,4 @@ module Cosmos
|
|
|
33
33
|
return true
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
37
|
-
end # module Cosmos
|
|
36
|
+
end
|
|
@@ -15,22 +15,23 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
15
15
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
|
|
16
16
|
|
|
17
17
|
module Cosmos
|
|
18
|
-
|
|
18
|
+
# Layout widget which layouts the enclosed widgets vertically.
|
|
19
|
+
# Default spacing is 3 pixels and widgets are packed by inserting
|
|
20
|
+
# a stretch at the end of the added widgets.
|
|
19
21
|
class VerticalWidget < Qt::VBoxLayout
|
|
20
22
|
include Widget
|
|
21
23
|
include LayoutWidget
|
|
22
24
|
|
|
23
|
-
def initialize(parent_layout = nil,
|
|
25
|
+
def initialize(parent_layout = nil, spacing = 3, pack = true)
|
|
24
26
|
super()
|
|
25
|
-
setSpacing(
|
|
27
|
+
setSpacing(spacing.to_i)
|
|
26
28
|
parent_layout.addLayout(self) if parent_layout
|
|
27
|
-
@
|
|
29
|
+
@pack = ConfigParser::handle_true_false(pack)
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
def process_settings
|
|
31
33
|
super()
|
|
32
|
-
addStretch(1) if @
|
|
34
|
+
addStretch(1) if @pack
|
|
33
35
|
end
|
|
34
36
|
end
|
|
35
|
-
|
|
36
|
-
end # module Cosmos
|
|
37
|
+
end
|
|
@@ -15,24 +15,26 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
15
15
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
|
|
16
16
|
|
|
17
17
|
module Cosmos
|
|
18
|
-
|
|
18
|
+
# Layout widget which layouts the enclosed widgets vertically
|
|
19
|
+
# in a visual box with header text.
|
|
20
|
+
# Default spacing is 3 pixels and widgets are packed by inserting
|
|
21
|
+
# a stretch at the end of the added widgets.
|
|
19
22
|
class VerticalboxWidget < Qt::VBoxLayout
|
|
20
23
|
include Widget
|
|
21
24
|
include LayoutWidget
|
|
22
25
|
|
|
23
|
-
def initialize(parent_layout = nil, title = "",
|
|
26
|
+
def initialize(parent_layout = nil, title = "", spacing = 3, pack = true)
|
|
24
27
|
super()
|
|
25
28
|
box = Qt::GroupBox.new(title.to_s)
|
|
26
|
-
setSpacing(
|
|
29
|
+
setSpacing(spacing.to_i)
|
|
27
30
|
box.setLayout(self)
|
|
28
31
|
parent_layout.addWidget(box) if parent_layout
|
|
29
|
-
@
|
|
32
|
+
@pack = ConfigParser::handle_true_false(pack)
|
|
30
33
|
end
|
|
31
34
|
|
|
32
35
|
def process_settings
|
|
33
36
|
super()
|
|
34
|
-
addStretch(1) if @
|
|
37
|
+
addStretch(1) if @pack
|
|
35
38
|
end
|
|
36
39
|
end
|
|
37
|
-
|
|
38
|
-
end # module Cosmos
|
|
40
|
+
end
|
|
@@ -41,7 +41,12 @@ module Cosmos
|
|
|
41
41
|
@item_name = ConfigParser.handle_nil(item_name)
|
|
42
42
|
@item = nil
|
|
43
43
|
if @item_name
|
|
44
|
-
|
|
44
|
+
if @target_name == 'LOCAL' and @packet_name == 'LOCAL'
|
|
45
|
+
@packet = nil
|
|
46
|
+
@item = nil
|
|
47
|
+
else
|
|
48
|
+
@packet, @item = System.telemetry.packet_and_item(@target_name, @packet_name, @item_name)
|
|
49
|
+
end
|
|
45
50
|
end
|
|
46
51
|
if value_type
|
|
47
52
|
@value_type = value_type.to_s.upcase.to_sym
|
|
@@ -149,53 +154,48 @@ module Cosmos
|
|
|
149
154
|
end
|
|
150
155
|
|
|
151
156
|
def process_settings
|
|
152
|
-
errors = ""
|
|
153
157
|
sheet = []
|
|
154
158
|
@settings.each do |setting_name, setting_values|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
sheet << "color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
|
|
176
|
-
end
|
|
177
|
-
when 'BORDERCOLOR'
|
|
178
|
-
# Setting the color requires a defined width and style
|
|
179
|
-
sheet << "border-width:1px"
|
|
180
|
-
sheet << "border-style:solid"
|
|
181
|
-
case setting_values.size
|
|
182
|
-
when 1 # color name
|
|
183
|
-
sheet << "border-color:#{setting_values[0]}"
|
|
184
|
-
when 3 # RGB values
|
|
185
|
-
sheet << "border-color:rgb(#{setting_values[0].to_i}, #{setting_values[1].to_i}, #{setting_values[2].to_i})"
|
|
186
|
-
end
|
|
187
|
-
when 'WIDTH'
|
|
188
|
-
sheet << "min-width:#{setting_values[0].to_i}px"
|
|
189
|
-
sheet << "max-width:#{setting_values[0].to_i}px"
|
|
190
|
-
when 'HEIGHT'
|
|
191
|
-
sheet << "min-height:#{setting_values[0].to_i}px"
|
|
192
|
-
sheet << "max-height:#{setting_values[0].to_i}px"
|
|
193
|
-
when 'RAW'
|
|
194
|
-
next if setting_values[0] == '' # ignore the blank default
|
|
195
|
-
sheet << setting_values[0]
|
|
159
|
+
case setting_name
|
|
160
|
+
when 'TEXTALIGN'
|
|
161
|
+
sheet << "qproperty-alignment:Align#{setting_values[0].capitalize}"
|
|
162
|
+
when 'PADDING'
|
|
163
|
+
sheet << "padding:#{setting_values[0]}"
|
|
164
|
+
when 'MARGIN'
|
|
165
|
+
sheet << "margin:#{setting_values[0]}"
|
|
166
|
+
when 'BACKCOLOR'
|
|
167
|
+
case setting_values.size
|
|
168
|
+
when 1 # color name
|
|
169
|
+
sheet << "background-color:#{setting_values[0]}"
|
|
170
|
+
when 3 # RGB values
|
|
171
|
+
sheet << "background-color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
|
|
172
|
+
end
|
|
173
|
+
when 'TEXTCOLOR'
|
|
174
|
+
case setting_values.size
|
|
175
|
+
when 1 # color name
|
|
176
|
+
sheet << "color:#{setting_values[0]}"
|
|
177
|
+
when 3 # RGB values
|
|
178
|
+
sheet << "color:rgb(#{setting_values[0].to_i},#{setting_values[1].to_i},#{setting_values[2].to_i})"
|
|
196
179
|
end
|
|
197
|
-
|
|
198
|
-
|
|
180
|
+
when 'BORDERCOLOR'
|
|
181
|
+
# Setting the color requires a defined width and style
|
|
182
|
+
sheet << "border-width:1px"
|
|
183
|
+
sheet << "border-style:solid"
|
|
184
|
+
case setting_values.size
|
|
185
|
+
when 1 # color name
|
|
186
|
+
sheet << "border-color:#{setting_values[0]}"
|
|
187
|
+
when 3 # RGB values
|
|
188
|
+
sheet << "border-color:rgb(#{setting_values[0].to_i}, #{setting_values[1].to_i}, #{setting_values[2].to_i})"
|
|
189
|
+
end
|
|
190
|
+
when 'WIDTH'
|
|
191
|
+
sheet << "min-width:#{setting_values[0].to_i}px"
|
|
192
|
+
sheet << "max-width:#{setting_values[0].to_i}px"
|
|
193
|
+
when 'HEIGHT'
|
|
194
|
+
sheet << "min-height:#{setting_values[0].to_i}px"
|
|
195
|
+
sheet << "max-height:#{setting_values[0].to_i}px"
|
|
196
|
+
when 'RAW'
|
|
197
|
+
next if setting_values[0] == '' # ignore the blank default
|
|
198
|
+
sheet << setting_values[0]
|
|
199
199
|
end
|
|
200
200
|
end
|
|
201
201
|
# Only apply the stylesheet if we have settings to apply and this is a widget (not a layout)
|
|
@@ -210,7 +210,6 @@ module Cosmos
|
|
|
210
210
|
pw.setStyleSheet("QWidget##{pw.objectName} { #{sheet.join(';')} }")
|
|
211
211
|
end
|
|
212
212
|
end
|
|
213
|
-
errors
|
|
214
213
|
end
|
|
215
214
|
|
|
216
215
|
def context_menu
|
|
@@ -244,7 +243,7 @@ module Cosmos
|
|
|
244
243
|
|
|
245
244
|
graph = Qt::Action.new("Graph #{@target_name} #{@packet_name} #{@item_name}", menu)
|
|
246
245
|
graph.connect(SIGNAL('triggered()')) do
|
|
247
|
-
TlmGraphDialog.new(self, target_name, packet_name, item_name)
|
|
246
|
+
TlmGraphDialog.new(self, target_name, packet_name, item_name, @screen.replay_flag.visible)
|
|
248
247
|
end
|
|
249
248
|
menu.addAction(graph)
|
|
250
249
|
|
|
@@ -253,5 +252,19 @@ module Cosmos
|
|
|
253
252
|
point.dispose
|
|
254
253
|
menu.dispose
|
|
255
254
|
end
|
|
255
|
+
|
|
256
|
+
# Requires the @screen to be set so must not be called in initialize()
|
|
257
|
+
def get_image(image_name)
|
|
258
|
+
return nil unless @screen
|
|
259
|
+
target_screen_dir = File.join(::Cosmos::USERPATH, 'config', 'targets', @screen.original_target_name.upcase, 'screens')
|
|
260
|
+
|
|
261
|
+
if File.exist?(File.join(target_screen_dir, image_name))
|
|
262
|
+
return Qt::Image.new(File.join(target_screen_dir, image_name))
|
|
263
|
+
elsif Cosmos.data_path(image_name)
|
|
264
|
+
return Qt::Image.new(Cosmos.data_path(image_name))
|
|
265
|
+
else
|
|
266
|
+
raise "Can't find the file #{image_name} in #{target_screen_dir} or the cosmos data directory."
|
|
267
|
+
end
|
|
268
|
+
end
|
|
256
269
|
end
|
|
257
270
|
end
|