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
|
@@ -4,6 +4,7 @@ require 'cosmos/tools/tlm_viewer/widgets/block_widget.rb'
|
|
|
4
4
|
require 'cosmos/tools/tlm_viewer/widgets/button_widget.rb'
|
|
5
5
|
require 'cosmos/tools/tlm_viewer/widgets/backgroundbutton_widget.rb'
|
|
6
6
|
require 'cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb'
|
|
7
|
+
require 'cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb'
|
|
7
8
|
require 'cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb'
|
|
8
9
|
require 'cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb'
|
|
9
10
|
require 'cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb'
|
|
@@ -20,6 +21,7 @@ require 'cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb'
|
|
|
20
21
|
require 'cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb'
|
|
21
22
|
require 'cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb'
|
|
22
23
|
require 'cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb'
|
|
24
|
+
require 'cosmos/tools/tlm_viewer/widgets/labelled_widget.rb'
|
|
23
25
|
require 'cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb'
|
|
24
26
|
require 'cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb'
|
|
25
27
|
require 'cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb'
|
|
@@ -30,6 +32,7 @@ require 'cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb'
|
|
|
30
32
|
require 'cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb'
|
|
31
33
|
require 'cosmos/tools/tlm_viewer/widgets/label_widget.rb'
|
|
32
34
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget.rb'
|
|
35
|
+
require 'cosmos/tools/tlm_viewer/widgets/led_widget.rb'
|
|
33
36
|
require 'cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb'
|
|
34
37
|
require 'cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb'
|
|
35
38
|
require 'cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb'
|
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
require 'cosmos'
|
|
12
12
|
|
|
13
13
|
module Cosmos
|
|
14
|
-
|
|
14
|
+
# Implement aging in a telemetry widget. When values change they are
|
|
15
|
+
# displayed whith a white background. If the value doesn't change the
|
|
16
|
+
# text box background slowly fades to grey.
|
|
15
17
|
module AgingWidget
|
|
16
|
-
|
|
17
18
|
attr_accessor :coloring
|
|
18
19
|
|
|
19
20
|
def setup_aging
|
|
@@ -104,7 +105,5 @@ module Cosmos
|
|
|
104
105
|
end
|
|
105
106
|
end
|
|
106
107
|
end
|
|
107
|
-
|
|
108
108
|
end
|
|
109
|
-
|
|
110
|
-
end # module Cosmos
|
|
109
|
+
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 an array of values in a text box. The values can be formatted
|
|
17
|
+
# and displayed in multiple rows.
|
|
17
18
|
class ArrayWidget < Qt::TextEdit
|
|
18
19
|
include Widget
|
|
19
20
|
include AgingWidget
|
|
@@ -60,7 +61,5 @@ module Cosmos
|
|
|
60
61
|
super
|
|
61
62
|
process_aging_settings
|
|
62
63
|
end
|
|
63
|
-
|
|
64
64
|
end
|
|
65
|
-
|
|
66
|
-
end # module Cosmos
|
|
65
|
+
end
|
|
@@ -15,10 +15,10 @@ require 'cosmos'
|
|
|
15
15
|
require 'cosmos/tools/tlm_viewer/widgets/textbox_widget'
|
|
16
16
|
|
|
17
17
|
module Cosmos
|
|
18
|
-
|
|
18
|
+
# Displays binary data in a large scrollable window with the data address
|
|
19
|
+
# (offset into the data) followed by the binary data.
|
|
19
20
|
class BlockWidget < TextboxWidget
|
|
20
|
-
|
|
21
|
-
def initialize (parent_layout, target_name, packet_name, item_name, width = 200, height = 100, format_string = "%02X", bytes_per_word = 4, words_per_row = 4, addr_format = nil, value_type = :RAW)
|
|
21
|
+
def initialize(parent_layout, target_name, packet_name, item_name, width = 200, height = 100, format_string = "%02X", bytes_per_word = 4, words_per_row = 4, addr_format = nil, value_type = :RAW)
|
|
22
22
|
super(parent_layout, target_name, packet_name, item_name, width, height, value_type)
|
|
23
23
|
@format_string = format_string.to_s
|
|
24
24
|
@bytes_per_word = bytes_per_word.to_i
|
|
@@ -53,5 +53,4 @@ module Cosmos
|
|
|
53
53
|
text
|
|
54
54
|
end
|
|
55
55
|
end
|
|
56
|
-
|
|
57
|
-
end # module Cosmos
|
|
56
|
+
end
|
|
@@ -9,18 +9,32 @@
|
|
|
9
9
|
# attribution addendums as found in the LICENSE.txt
|
|
10
10
|
|
|
11
11
|
module Cosmos
|
|
12
|
+
# Creates a clickable point on the canvas which opens another screen.
|
|
13
|
+
# Add to canvas by using the SCREEN setting. For example:
|
|
14
|
+
# SETTING SCREEN "INST HS" 100 100
|
|
12
15
|
module CanvasClickable
|
|
13
16
|
# Requires @x, @y, @x_end, and @y_end to be defined
|
|
14
17
|
def on_click(event, x, y)
|
|
15
18
|
return false unless @screen_settings
|
|
16
19
|
if (x < @x_end) && (x > @x) && (y < @y_end) && (y > @y)
|
|
17
20
|
display(@screen_settings[0], @screen_settings[1].to_i, @screen_settings[2].to_i)
|
|
18
|
-
true
|
|
21
|
+
true # We handled the click so return true
|
|
19
22
|
else
|
|
20
|
-
false
|
|
23
|
+
false # Allow other widgets to handle the on_click
|
|
21
24
|
end
|
|
22
25
|
end
|
|
23
26
|
|
|
27
|
+
# Requires @x, @y, @x_end, and @y_end to be defined
|
|
28
|
+
def on_move(event, x, y)
|
|
29
|
+
return false unless @screen_settings
|
|
30
|
+
if (x < @x_end) && (x > @x) && (y < @y_end) && (y > @y)
|
|
31
|
+
Qt::Application.setOverrideCursor(Cosmos.getCursor(Qt::PointingHandCursor))
|
|
32
|
+
else
|
|
33
|
+
Qt::Application.setOverrideCursor(Cosmos.getCursor(Qt::ArrowCursor))
|
|
34
|
+
end
|
|
35
|
+
false # Allow other widgets to handle on_move
|
|
36
|
+
end
|
|
37
|
+
|
|
24
38
|
def set_setting(setting_name, setting_values)
|
|
25
39
|
case setting_name.upcase
|
|
26
40
|
when 'SCREEN'
|
|
@@ -8,7 +8,7 @@
|
|
|
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
|
-
# This file contains the implementation of the CanvasWidget class.
|
|
11
|
+
# This file contains the implementation of the CanvasWidget class. This widget
|
|
12
12
|
# represents a canvas where draw-able widgets (such as images and lines) can be
|
|
13
13
|
# added.
|
|
14
14
|
|
|
@@ -17,20 +17,24 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
17
17
|
require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
|
|
18
18
|
|
|
19
19
|
module Cosmos
|
|
20
|
+
# Create a blank widget which other widgets can draw on using the painter.
|
|
21
|
+
# Each subwidget should implement the paint(painter) method which will be
|
|
22
|
+
# called in the paintEvent of this widget.
|
|
20
23
|
class CanvasWidget < Qt::Widget
|
|
21
24
|
include Widget
|
|
22
25
|
include LayoutWidget
|
|
23
26
|
|
|
24
27
|
def initialize(parent_layout, width, height)
|
|
25
28
|
super()
|
|
29
|
+
setMouseTracking(true) # for mouse move events
|
|
26
30
|
@repaint_objects = []
|
|
27
31
|
self.minimumWidth = width.to_i
|
|
28
32
|
self.minimumHeight = height.to_i
|
|
29
33
|
parent_layout.addWidget(self) if parent_layout
|
|
30
34
|
end
|
|
31
35
|
|
|
32
|
-
#
|
|
33
|
-
# itself with the canvas so that they are painted when the canvas is.
|
|
36
|
+
# Child widgets to the canvas must call add_repaint to register
|
|
37
|
+
# itself with the canvas so that they are painted when the canvas is. Note,
|
|
34
38
|
# the order in which child widgets are painted is the order in which they
|
|
35
39
|
# are created.
|
|
36
40
|
def add_repaint(obj)
|
|
@@ -63,6 +67,16 @@ module Cosmos
|
|
|
63
67
|
end
|
|
64
68
|
end
|
|
65
69
|
|
|
70
|
+
def mouseMoveEvent(event)
|
|
71
|
+
cur_x = mapFromGlobal(self.cursor.pos).x
|
|
72
|
+
cur_y = mapFromGlobal(self.cursor.pos).y
|
|
73
|
+
@repaint_objects.each do |obj|
|
|
74
|
+
if obj.respond_to?(:on_move)
|
|
75
|
+
break if obj.on_move(event, cur_x, cur_y)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
66
80
|
def update_widget
|
|
67
81
|
self.update
|
|
68
82
|
end
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
12
12
|
|
|
13
13
|
module Cosmos
|
|
14
|
+
# Display a circle on the canvas of specified color and width
|
|
14
15
|
class CanvasdotWidget
|
|
15
16
|
include Widget
|
|
16
17
|
|
|
@@ -29,8 +30,6 @@ module Cosmos
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
@point = Qt::Point.new(0, 0)
|
|
32
|
-
update_point
|
|
33
|
-
|
|
34
33
|
@width = width.to_i
|
|
35
34
|
@color = Cosmos::getColor(color)
|
|
36
35
|
parent_layout.add_repaint(self)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# encoding: ascii-8bit
|
|
2
|
+
|
|
3
|
+
# Copyright 2018 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/tools/tlm_viewer/widgets/widget'
|
|
12
|
+
|
|
13
|
+
module Cosmos
|
|
14
|
+
# Display an ellipse on the canvas which can be filled or open
|
|
15
|
+
class CanvasellipseWidget
|
|
16
|
+
include Widget
|
|
17
|
+
|
|
18
|
+
def initialize(parent_layout, center_x, center_y, width, height, color = 'black', line_width = 1, fill = false)
|
|
19
|
+
super()
|
|
20
|
+
@center_x = center_x.to_i
|
|
21
|
+
@center_y = center_y.to_i
|
|
22
|
+
@width = width.to_i
|
|
23
|
+
@height = height.to_i
|
|
24
|
+
@line_width = line_width.to_i
|
|
25
|
+
@fill = ConfigParser::handle_true_false(fill)
|
|
26
|
+
@color = Cosmos::getColor(color)
|
|
27
|
+
@pen = Cosmos.getPen(color)
|
|
28
|
+
parent_layout.add_repaint(self)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def paint(painter)
|
|
32
|
+
painter.save
|
|
33
|
+
@pen.setWidth(@line_width)
|
|
34
|
+
painter.setPen(@pen)
|
|
35
|
+
painter.setBrush(@color) if @fill
|
|
36
|
+
painter.drawEllipse(@center_x, @center_y, @width, @height)
|
|
37
|
+
painter.restore
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -12,6 +12,8 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
|
12
12
|
require 'cosmos/tools/tlm_viewer/widgets/canvas_clickable'
|
|
13
13
|
|
|
14
14
|
module Cosmos
|
|
15
|
+
# Displays an image on a canvas. The image is loaded from file first by
|
|
16
|
+
# looking in the target's screens directory and then the COSMOS data path.
|
|
15
17
|
class CanvasimageWidget
|
|
16
18
|
include Widget
|
|
17
19
|
include CanvasClickable
|
|
@@ -20,15 +22,9 @@ module Cosmos
|
|
|
20
22
|
super()
|
|
21
23
|
@x = x.to_i
|
|
22
24
|
@y = y.to_i
|
|
25
|
+
@filename = filename
|
|
23
26
|
@image = nil
|
|
24
|
-
filename = File.join(::Cosmos::USERPATH, 'config', 'data', filename)
|
|
25
|
-
unless File.exist?(filename)
|
|
26
|
-
raise "Can't find the file #{filename} in #{::Cosmos::USERPATH}/config/data"
|
|
27
|
-
end
|
|
28
|
-
@image = Qt::Image.new(filename)
|
|
29
27
|
parent_layout.add_repaint(self)
|
|
30
|
-
@x_end = @x + @image.width
|
|
31
|
-
@y_end = @y + @image.height
|
|
32
28
|
end
|
|
33
29
|
|
|
34
30
|
def paint(painter)
|
|
@@ -39,5 +35,14 @@ module Cosmos
|
|
|
39
35
|
super()
|
|
40
36
|
@image.dispose
|
|
41
37
|
end
|
|
38
|
+
|
|
39
|
+
def process_settings
|
|
40
|
+
super
|
|
41
|
+
# We wait until here to find the image because we need @screen to be set
|
|
42
|
+
# to determine the target name to look in the target's screens directory
|
|
43
|
+
@image = get_image(@filename)
|
|
44
|
+
@x_end = @x + @image.width
|
|
45
|
+
@y_end = @y + @image.height
|
|
46
|
+
end
|
|
42
47
|
end
|
|
43
48
|
end
|
|
@@ -8,52 +8,102 @@
|
|
|
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
|
-
# This file contains the implementation of the CanvasimagevalueWidget class.
|
|
12
|
-
# widget displays
|
|
13
|
-
#
|
|
14
|
-
# telemetry point value of 1 or 0 respectively.
|
|
11
|
+
# This file contains the implementation of the CanvasimagevalueWidget class.
|
|
12
|
+
# The widget displays a default image but users should use the SETTING IMAGE
|
|
13
|
+
# option to set the images to display for a given value.
|
|
15
14
|
|
|
16
15
|
require 'cosmos/tools/tlm_viewer/widgets/canvasvalue_widget'
|
|
17
16
|
require 'cosmos/tools/tlm_viewer/widgets/canvas_clickable'
|
|
18
17
|
|
|
19
18
|
module Cosmos
|
|
19
|
+
# Displays an image on a canvas based on a telemetry value. Multiple images
|
|
20
|
+
# can be set to display by using the IMAGE setting. For example:
|
|
21
|
+
# CANVASIMAGEVALUE TGT PKT ITEM CONVERTED "ground_error.gif" 400 100
|
|
22
|
+
# SETTING IMAGE CONNECTED "ground_on.gif" 400 100
|
|
23
|
+
# SETTING IMAGE UNAVAILABLE "ground_off.gif" 400 100
|
|
24
|
+
# The default image to display is error.gif. If the converted value from
|
|
25
|
+
# the telemetry point named TGT PKT ITEM has a converted value of
|
|
26
|
+
# 'CONNECTED' the ground_on.gif image is displayed and if the value is
|
|
27
|
+
# 'UNAVAILABLE' the ground_off.git image is displayed.
|
|
20
28
|
class CanvasimagevalueWidget < CanvasvalueWidget
|
|
21
29
|
include CanvasClickable
|
|
22
|
-
|
|
23
|
-
def initialize(parent_layout, target_name, packet_name, item_name, filename, x, y, value_type = :RAW)
|
|
24
|
-
super(parent_layout, target_name, packet_name, item_name, value_type)
|
|
25
|
-
@x = x.to_i
|
|
26
|
-
@y = y.to_i
|
|
27
|
-
@image_on = nil
|
|
28
|
-
@image_off = nil
|
|
29
|
-
|
|
30
|
-
filenameOn = Dir[File.join(::Cosmos::USERPATH, 'config', 'data', filename + 'on.*')][0]
|
|
31
|
-
unless File.exist?(filenameOn)
|
|
32
|
-
raise "Can't find the file #{filenameOn} in #{::Cosmos::USERPATH}/config/data"
|
|
33
|
-
end
|
|
34
|
-
@image_on = Qt::Image.new(filenameOn)
|
|
35
30
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
def initialize(parent_layout, target_name, packet_name, item_name, value_type = :RAW, default_image = nil, x = nil, y = nil)
|
|
32
|
+
super(parent_layout, target_name, packet_name, item_name, value_type)
|
|
33
|
+
@images = []
|
|
34
|
+
if default_image
|
|
35
|
+
@default_image_name = default_image
|
|
36
|
+
@default_x = Integer(x)
|
|
37
|
+
@default_y = Integer(y)
|
|
39
38
|
end
|
|
40
|
-
@image_off = Qt::Image.new(filenameOff)
|
|
41
|
-
@x_end = @x + [@image_on.width, @image_off.width].max
|
|
42
|
-
@y_end = @y + [@image_on.height, @image_off.height].max
|
|
43
39
|
end
|
|
44
40
|
|
|
45
|
-
def
|
|
46
|
-
if
|
|
47
|
-
|
|
41
|
+
def paint(painter)
|
|
42
|
+
if @values.length > 1
|
|
43
|
+
eval_string = "1"
|
|
44
|
+
# This code uses the booleans set by the process_settings function and evaluates it to logically determine
|
|
45
|
+
# if the item should be drawn on the canvas as "on" or "off".
|
|
46
|
+
@item_settings.each_with_index do |item, index|
|
|
47
|
+
next if @values[index].to_f.nan? || @values[index].to_f.infinite?
|
|
48
|
+
eval_string << " " << item[0].to_s << " (" << @values[index].to_s << " " << item[1].to_s << " " << item[2].to_s << ")"
|
|
49
|
+
end
|
|
50
|
+
@value = eval(eval_string)
|
|
48
51
|
else
|
|
49
|
-
|
|
52
|
+
@value = @values[0]
|
|
50
53
|
end
|
|
54
|
+
eval(@eval)
|
|
51
55
|
end
|
|
52
56
|
|
|
53
57
|
def dispose
|
|
54
58
|
super()
|
|
55
|
-
@
|
|
56
|
-
@
|
|
59
|
+
@images.each {|image| image.dispose }
|
|
60
|
+
@default_image.dispose if @default_image
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def set_setting(setting_name, setting_values)
|
|
64
|
+
# Allow for multiple IMAGE settings by deconflicting the hash key by appending the value
|
|
65
|
+
if setting_name.upcase == 'IMAGE'
|
|
66
|
+
@settings["#{setting_name.to_s.upcase}_#{setting_values[0]}"] = setting_values
|
|
67
|
+
else
|
|
68
|
+
super(setting_name, setting_values)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def process_settings
|
|
73
|
+
super
|
|
74
|
+
@eval = 'case @value;'
|
|
75
|
+
@settings.each do |setting_name, setting_values|
|
|
76
|
+
case setting_name
|
|
77
|
+
when /IMAGE/
|
|
78
|
+
value_string = setting_values[0]
|
|
79
|
+
@images << get_image(setting_values[1])
|
|
80
|
+
x = setting_values[2]
|
|
81
|
+
y = setting_values[3]
|
|
82
|
+
|
|
83
|
+
case value_string.upcase
|
|
84
|
+
when 'TRUE'
|
|
85
|
+
value = true
|
|
86
|
+
when 'FALSE'
|
|
87
|
+
value = false
|
|
88
|
+
when /\d\.\.\d/ # Range
|
|
89
|
+
value = Range.new(*value_string.split("..").map(&:to_i))
|
|
90
|
+
else
|
|
91
|
+
begin
|
|
92
|
+
value = Float(value_string)
|
|
93
|
+
rescue
|
|
94
|
+
value = "'#{value_string}'"
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
@eval << "when #{value} then painter.drawImage(#{x}, #{y}, @images[#{@images.length-1}]);"
|
|
98
|
+
@eval << "@x=#{x};@y=#{y};@x_end=@x+@images[#{@images.length-1}].width;@y_end=@y+@images[#{@images.length-1}].height;"
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
if @default_image_name
|
|
102
|
+
@default_image = get_image(@default_image_name)
|
|
103
|
+
@eval << "else painter.drawImage(@default_x, @default_y, @default_image);"
|
|
104
|
+
@eval << "@x=@default_x;@y=@default_y;@x_end=@x+@default_image.width;@y_end=@y+@default_image.height;"
|
|
105
|
+
end
|
|
106
|
+
@eval << "end"
|
|
57
107
|
end
|
|
58
108
|
end
|
|
59
109
|
end
|
|
@@ -12,7 +12,8 @@ require 'cosmos'
|
|
|
12
12
|
require 'cosmos/tools/tlm_viewer/widgets/canvasvalue_widget'
|
|
13
13
|
|
|
14
14
|
module Cosmos
|
|
15
|
-
|
|
15
|
+
# Displays a label and value for the given telemetry point. By default
|
|
16
|
+
# the telemetry value is drawn inside a rectangular box.
|
|
16
17
|
class CanvaslabelvalueWidget < CanvasvalueWidget
|
|
17
18
|
def initialize(parent_layout, target_name, packet_name, item_name, x1, y1, font_size = 12, color = 'black', frame = true, frame_width = 3, value_type = :CONVERTED)
|
|
18
19
|
super(parent_layout, target_name, packet_name, item_name, value_type)
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
require 'cosmos/tools/tlm_viewer/widgets/canvasvalue_widget'
|
|
16
16
|
|
|
17
17
|
module Cosmos
|
|
18
|
+
# Draws a line on the canvas that changes color based on the value of the
|
|
19
|
+
# given telemetry point. Typically used to either show to hide the line
|
|
20
|
+
# by drawing it as the same color as the canvas. For example:
|
|
21
|
+
# CANVASLINEVALUE INST HEALTH_STATUS GROUND1STATUS 420 135 240 330 green white 3
|
|
18
22
|
class CanvaslinevalueWidget < CanvasvalueWidget
|
|
19
23
|
def initialize(parent_layout, target_name, packet_name, item_name, x1, y1, x2, y2, color_on = 'green', color_off = 'blue', width = 3, connector = 'NO_CONNECTOR', value_type = :RAW)
|
|
20
24
|
super(parent_layout, target_name, packet_name, item_name, value_type)
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
require 'cosmos/tools/tlm_viewer/widgets/widget'
|
|
12
12
|
|
|
13
13
|
module Cosmos
|
|
14
|
+
# Abstract class which provides helper methods to draw a telemetry point
|
|
15
|
+
# on a canvas. Has the ability to AND or OR together additional telemetry
|
|
16
|
+
# points to determine whether the value is "on" or not. Subclasses must
|
|
17
|
+
# implement draw_widget(draw_context, on_state).
|
|
14
18
|
class CanvasvalueWidget
|
|
15
19
|
include Widget
|
|
16
20
|
|
|
@@ -68,34 +72,38 @@ module Cosmos
|
|
|
68
72
|
raise 'Override draw_widget to make this class work!'
|
|
69
73
|
end
|
|
70
74
|
|
|
75
|
+
def set_setting(setting_name, setting_values)
|
|
76
|
+
if setting_name =~ /^TLM_/
|
|
77
|
+
@settings["#{setting_name.to_s.upcase}_#{setting_values.join('_')}"] = setting_values
|
|
78
|
+
else
|
|
79
|
+
super(setting_name, setting_values)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
71
83
|
def process_settings
|
|
72
84
|
super
|
|
73
85
|
@settings.each do |setting_name, setting_values|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
set_item_settings('or', setting_values[3], setting_values[4])
|
|
96
|
-
end
|
|
97
|
-
rescue => err
|
|
98
|
-
puts "Error Processing Settings!: #{err}"
|
|
86
|
+
case setting_name
|
|
87
|
+
when 'VALUE_EQ'
|
|
88
|
+
@item_settings[0] = ['and', '==', setting_values[0]]
|
|
89
|
+
when 'VALUE_GT'
|
|
90
|
+
@item_settings[0] = ['and', '>', setting_values[0]]
|
|
91
|
+
when 'VALUE_GTEQ'
|
|
92
|
+
@item_settings[0] = ['and', '>=', setting_values[0]]
|
|
93
|
+
when 'VALUE_LT'
|
|
94
|
+
@item_settings[0] = ['and', '<', setting_values[0]]
|
|
95
|
+
when 'VALUE_LTEQ'
|
|
96
|
+
@item_settings[0] = ['and', '<=', setting_values[0]]
|
|
97
|
+
# TLM_AND allows a telemetry item to be dependant on another item for its state
|
|
98
|
+
when /^TLM_AND/
|
|
99
|
+
@items << [setting_values[0], setting_values[1], setting_values[2]]
|
|
100
|
+
@values << 0
|
|
101
|
+
set_item_settings('and', setting_values[3], setting_values[4])
|
|
102
|
+
# TLM_OR allows a telemetry item to be dependant on another item for its state
|
|
103
|
+
when /^TLM_OR/
|
|
104
|
+
@items << [setting_values[0], setting_values[1], setting_values[2]]
|
|
105
|
+
@values << 0
|
|
106
|
+
set_item_settings('or', setting_values[3], setting_values[4])
|
|
99
107
|
end
|
|
100
108
|
end
|
|
101
109
|
end
|