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
data/lib/cosmos/top_level.rb
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# This file contains top level functions in the Cosmos namespace
|
|
12
12
|
|
|
13
13
|
require 'thread'
|
|
14
|
-
require 'digest
|
|
14
|
+
require 'digest'
|
|
15
15
|
require 'open3'
|
|
16
16
|
require 'cosmos/core_ext'
|
|
17
17
|
require 'cosmos/version'
|
|
@@ -170,8 +170,12 @@ module Cosmos
|
|
|
170
170
|
return filename if File.exist? filename
|
|
171
171
|
|
|
172
172
|
# Check relative to executing file
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
begin # path raises so begin rescue it
|
|
174
|
+
filename = Cosmos.path($0, ['config', 'data', name])
|
|
175
|
+
return filename if File.exist? filename
|
|
176
|
+
rescue
|
|
177
|
+
# Couldn't find the file so return nil below
|
|
178
|
+
end
|
|
175
179
|
nil
|
|
176
180
|
end
|
|
177
181
|
|
|
@@ -186,6 +190,19 @@ module Cosmos
|
|
|
186
190
|
user_path = File.join(Cosmos::USERPATH, partial_path)
|
|
187
191
|
return user_path if File.exist?(user_path)
|
|
188
192
|
|
|
193
|
+
# Check cosmos extensions
|
|
194
|
+
begin
|
|
195
|
+
Bundler.load.specs.each do |spec|
|
|
196
|
+
spec_name_split = spec.name.split('-')
|
|
197
|
+
if spec_name_split.length > 1 and spec_name_split[0] == 'cosmos'
|
|
198
|
+
filename = File.join(spec.gem_dir, partial_path)
|
|
199
|
+
return filename if File.exist? filename
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
rescue Bundler::GemfileNotFound
|
|
203
|
+
# No Gemfile - so no gem based extensions
|
|
204
|
+
end
|
|
205
|
+
|
|
189
206
|
# Then look relative to the calling file
|
|
190
207
|
if Pathname.new(calling_file).absolute?
|
|
191
208
|
current_dir = File.dirname(calling_file)
|
|
@@ -227,6 +244,11 @@ module Cosmos
|
|
|
227
244
|
rescue Exception
|
|
228
245
|
# Oh well - we tried
|
|
229
246
|
end
|
|
247
|
+
if exception.class == TypeError and exception.message =~ /Thread::Mutex/
|
|
248
|
+
original_backtrace = exception.backtrace
|
|
249
|
+
exception = exception.exception("Mutex exists in a packet. Note: Packets must not be read during class initializers for Conversions, Limits Responses, etc.: #{exception}")
|
|
250
|
+
exception.set_backtrace(original_backtrace)
|
|
251
|
+
end
|
|
230
252
|
self.handle_fatal_exception(exception)
|
|
231
253
|
end
|
|
232
254
|
end
|
|
@@ -360,24 +382,26 @@ module Cosmos
|
|
|
360
382
|
end
|
|
361
383
|
end
|
|
362
384
|
|
|
363
|
-
# Runs
|
|
385
|
+
# Runs a hash algorithm over one or more files and returns the Digest object.
|
|
364
386
|
# Handles windows/unix new line differences but changes in whitespace will
|
|
365
|
-
# change the
|
|
387
|
+
# change the hash sum.
|
|
366
388
|
#
|
|
367
389
|
# Usage:
|
|
368
|
-
# digest = Cosmos.
|
|
390
|
+
# digest = Cosmos.hash_files(files, additional_data, hashing_algorithm)
|
|
369
391
|
# digest.digest # => the 16 bytes of digest
|
|
370
392
|
# digest.hexdigest # => the formatted string in hex
|
|
371
393
|
#
|
|
372
|
-
# @param filenames [Array<String>] List of files to read and calculate a
|
|
394
|
+
# @param filenames [Array<String>] List of files to read and calculate a hashing
|
|
373
395
|
# sum on
|
|
374
|
-
# @param additional_data [String] Additional data to add to the
|
|
375
|
-
# @
|
|
376
|
-
|
|
377
|
-
|
|
396
|
+
# @param additional_data [String] Additional data to add to the hashing sum
|
|
397
|
+
# @param hashing_algorithm [String] Hashing algorithm to use
|
|
398
|
+
# @return [Digest::<algorithm>] The hashing sum object
|
|
399
|
+
def self.hash_files(filenames, additional_data = nil, hashing_algorithm = 'MD5')
|
|
400
|
+
digest = Digest.const_get(hashing_algorithm).send('new')
|
|
401
|
+
|
|
378
402
|
Cosmos.set_working_dir do
|
|
379
403
|
filenames.each do |filename|
|
|
380
|
-
# Read the file's data and add to the running
|
|
404
|
+
# Read the file's data and add to the running hashing sum
|
|
381
405
|
digest << File.read(filename).gsub(/\r/,'')
|
|
382
406
|
end
|
|
383
407
|
end
|
|
@@ -572,7 +596,7 @@ module Cosmos
|
|
|
572
596
|
# @param try_gui [Boolean] Whether to try and create a GUI exception popup
|
|
573
597
|
def self.handle_critical_exception(error, try_gui = true)
|
|
574
598
|
Logger.error "Critical Exception! #{error.formatted}"
|
|
575
|
-
if defined? ExceptionDialog and !ExceptionDialog.dialog_open?
|
|
599
|
+
if defined? ExceptionDialog and !ExceptionDialog.dialog_open? and $qApp
|
|
576
600
|
log_file = self.write_exception_file(error)
|
|
577
601
|
if try_gui
|
|
578
602
|
Qt.execute_in_main_thread(true) {|| ExceptionDialog.new(nil, error, '', false, false, log_file)}
|
|
@@ -45,41 +45,45 @@ class RubyLex
|
|
|
45
45
|
@exception_on_syntax_error = true
|
|
46
46
|
@prompt = nil
|
|
47
47
|
end
|
|
48
|
+
|
|
49
|
+
# Monkey patch to keep this from looping forever if the string never is closed with a right brace
|
|
50
|
+
def identify_string_dvar
|
|
51
|
+
begin
|
|
52
|
+
getc
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
end
|
|
54
|
+
reserve_continue = @continue
|
|
55
|
+
reserve_ltype = @ltype
|
|
56
|
+
reserve_indent = @indent
|
|
57
|
+
reserve_indent_stack = @indent_stack
|
|
58
|
+
reserve_state = @lex_state
|
|
59
|
+
reserve_quoted = @quoted
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
@ltype = nil
|
|
62
|
+
@quoted = nil
|
|
63
|
+
@indent = 0
|
|
64
|
+
@indent_stack = []
|
|
65
|
+
@lex_state = EXPR_BEG
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
@seek -= 1
|
|
72
|
-
if c == "\n"
|
|
73
|
-
@line_no -= 1
|
|
74
|
-
if idx = @readed.rindex("\n")
|
|
75
|
-
@char_no = idx + 1
|
|
76
|
-
else
|
|
77
|
-
@char_no = @base_char_no + @readed.size
|
|
67
|
+
loop do
|
|
68
|
+
@continue = false
|
|
69
|
+
prompt
|
|
70
|
+
tk = token
|
|
71
|
+
break if tk.nil? # This is the patch
|
|
72
|
+
if @ltype or @continue or @indent >= 0
|
|
73
|
+
next
|
|
74
|
+
end
|
|
75
|
+
break if tk.kind_of?(TkRBRACE)
|
|
78
76
|
end
|
|
79
|
-
|
|
80
|
-
@
|
|
77
|
+
ensure
|
|
78
|
+
@continue = reserve_continue
|
|
79
|
+
@ltype = reserve_ltype
|
|
80
|
+
@indent = reserve_indent
|
|
81
|
+
@indent_stack = reserve_indent_stack
|
|
82
|
+
@lex_state = reserve_state
|
|
83
|
+
@quoted = reserve_quoted
|
|
81
84
|
end
|
|
82
|
-
end
|
|
85
|
+
end
|
|
86
|
+
|
|
83
87
|
end
|
|
84
88
|
$VERBOSE = old_verbose
|
|
85
89
|
|
data/lib/cosmos/version.rb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# encoding: ascii-8bit
|
|
2
2
|
|
|
3
|
-
COSMOS_VERSION = '4.
|
|
3
|
+
COSMOS_VERSION = '4.5.0'
|
|
4
4
|
module Cosmos
|
|
5
5
|
module Version
|
|
6
6
|
MAJOR = '4'
|
|
7
|
-
MINOR = '
|
|
8
|
-
PATCH = '
|
|
9
|
-
BUILD = '
|
|
7
|
+
MINOR = '5'
|
|
8
|
+
PATCH = '0'
|
|
9
|
+
BUILD = '627198e20200543f157cc4c2ffde5d7df5180ae2'
|
|
10
10
|
end
|
|
11
|
-
VERSION = '4.
|
|
11
|
+
VERSION = '4.5.0'
|
|
12
12
|
end
|
data/lib/cosmos/win32/excel.rb
CHANGED
|
@@ -9,50 +9,108 @@
|
|
|
9
9
|
# attribution addendums as found in the LICENSE.txt
|
|
10
10
|
|
|
11
11
|
require 'win32ole'
|
|
12
|
+
require 'fileutils'
|
|
12
13
|
|
|
13
14
|
module Cosmos
|
|
14
|
-
|
|
15
|
-
#
|
|
16
|
-
# This class will take an Excel spreadsheet and build an easily manipulated spreadsheet in ruby
|
|
17
|
-
#
|
|
15
|
+
# Open an Excel spreadsheet and build an easily manipulated spreadsheet in ruby
|
|
18
16
|
class ExcelSpreadsheet
|
|
19
|
-
|
|
20
17
|
attr_reader :worksheets
|
|
21
18
|
|
|
19
|
+
# Class to allow easy manipulation to the data in an Excel worksheet
|
|
22
20
|
class ExcelWorksheet
|
|
23
|
-
|
|
24
21
|
attr_reader :name, :num_rows, :num_columns, :data
|
|
25
22
|
|
|
26
|
-
|
|
23
|
+
# @param worksheet [WIN32OLE] The underlying Excel worksheet object
|
|
24
|
+
def initialize(worksheet)
|
|
27
25
|
@name = worksheet.name
|
|
28
26
|
@num_rows = worksheet.UsedRange.rows.count
|
|
29
27
|
@num_columns = worksheet.UsedRange.columns.count
|
|
30
28
|
|
|
31
|
-
#Get Excel Data from Worksheet
|
|
29
|
+
# Get Excel Data from Worksheet
|
|
32
30
|
@data = worksheet.UsedRange.value
|
|
31
|
+
|
|
32
|
+
# Build a lookup table based on the first column
|
|
33
|
+
@lkup = {}
|
|
34
|
+
if @data
|
|
35
|
+
@data.each do |row|
|
|
36
|
+
@lkup[row[0]] = row[1..-1]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
33
39
|
end
|
|
34
40
|
|
|
35
|
-
|
|
41
|
+
def keys
|
|
42
|
+
@lkup.keys
|
|
43
|
+
end
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
# Access the lookup values by string or the raw data by index
|
|
46
|
+
#
|
|
47
|
+
# @param index [String|Integer] Name of the first column or index
|
|
48
|
+
# @return [ExcelWorksheet] The data in that row
|
|
49
|
+
def [](index)
|
|
50
|
+
if index.is_a? String
|
|
51
|
+
@lkup[index]
|
|
52
|
+
else
|
|
53
|
+
@data[index]
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
41
57
|
|
|
42
|
-
|
|
58
|
+
# @param filename [String] Name of the Excel file to open
|
|
59
|
+
# @param archive [true|String] If true, create an archive file in the
|
|
60
|
+
# default system LOGS directory. If an absolute path, create the
|
|
61
|
+
# archive file in the specified path.
|
|
62
|
+
def initialize(filename, archive: nil)
|
|
63
|
+
if archive
|
|
64
|
+
time = Time.now.sys
|
|
65
|
+
timestamp = sprintf("%04u_%02u_%02u_%02u_%02u_%02u", time.year, time.month, time.mday, time.hour, time.min, time.sec)
|
|
66
|
+
# If archive is true we use the system LOGS path
|
|
67
|
+
if archive == true
|
|
68
|
+
archive = Cosmos::System.paths['LOGS']
|
|
69
|
+
end
|
|
70
|
+
archive = File.join(archive, "#{timestamp}_#{File.basename(filename)}")
|
|
71
|
+
FileUtils.cp filename, archive
|
|
72
|
+
File.chmod(0444, archive) # Mark read-only
|
|
73
|
+
end
|
|
43
74
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
75
|
+
begin
|
|
76
|
+
excel = WIN32OLE.new('excel.application')
|
|
77
|
+
excel.visible = false
|
|
78
|
+
wb = excel.workbooks.open(filename)
|
|
79
|
+
|
|
80
|
+
@worksheets = []
|
|
81
|
+
@lkup = {}
|
|
82
|
+
count = wb.worksheets.count
|
|
83
|
+
count.times do |index|
|
|
84
|
+
ws = wb.worksheets(index + 1)
|
|
85
|
+
@worksheets << ExcelWorksheet.new(ws)
|
|
86
|
+
@lkup[ws.name] = @worksheets[-1]
|
|
87
|
+
end
|
|
88
|
+
ensure
|
|
89
|
+
if excel
|
|
90
|
+
excel.DisplayAlerts = false
|
|
91
|
+
excel.quit
|
|
92
|
+
end
|
|
93
|
+
excel = nil
|
|
94
|
+
GC.start
|
|
48
95
|
end
|
|
96
|
+
end
|
|
49
97
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
GC.start
|
|
98
|
+
# @return [Array<String>] Array of all the worksheet names
|
|
99
|
+
def keys
|
|
100
|
+
@lkup.keys
|
|
54
101
|
end
|
|
55
102
|
|
|
103
|
+
# Access a worksheet by passing in the name or index
|
|
104
|
+
#
|
|
105
|
+
# @param index [String|Integer] Name of the worksheet or index
|
|
106
|
+
# @return [ExcelWorksheet] The worksheet object
|
|
107
|
+
def [](index)
|
|
108
|
+
if index.is_a? String
|
|
109
|
+
@lkup[index]
|
|
110
|
+
else
|
|
111
|
+
@worksheets[index]
|
|
112
|
+
end
|
|
113
|
+
end
|
|
56
114
|
end
|
|
57
115
|
|
|
58
116
|
module ExcelColumnConstants
|
|
@@ -62,5 +120,4 @@ module Cosmos
|
|
|
62
120
|
index += 1
|
|
63
121
|
end
|
|
64
122
|
end
|
|
65
|
-
|
|
66
|
-
end # module Cosmos
|
|
123
|
+
end
|
data/make_gems.sh
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# export VERSION= before running this
|
|
2
|
+
git checkout master
|
|
3
|
+
git pull
|
|
4
|
+
rbenv global 2.4.4
|
|
5
|
+
rake release VERSION=$VERSION
|
|
6
|
+
rake commit_release VERSION=$VERSION
|
|
7
|
+
mv *.gem ~/share/.
|
|
8
|
+
rbenv global jruby-9.1.12.0
|
|
9
|
+
gem build cosmos.gemspec
|
|
10
|
+
mv *.gem ~/share/.
|
data/run_gui_tests.bat
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
call bundle exec ruby autohotkey\tools\CmdExtractorAHK --defaultsize
|
|
2
2
|
call bundle exec ruby autohotkey\tools\CmdSenderAHK -w 650 -t 650
|
|
3
|
+
call bundle exec ruby autohotkey\tools\CmdSenderAHK2 -w 650 -t 650 -p "INST COLLECT" --production
|
|
3
4
|
call bundle exec ruby autohotkey\tools\CmdSequenceAHK -w 650 -t 650
|
|
4
5
|
call bundle exec ruby autohotkey\tools\CmdSequenceAHK2 -w 650 -t 650 -r run_sequence.txt -o procedures
|
|
5
6
|
call bundle exec ruby autohotkey\tools\CmdTlmServerAHK -x 50 -y 50 -w 900 -t 1000
|
|
@@ -0,0 +1,58 @@
|
|
|
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 'spec_helper'
|
|
12
|
+
require 'cosmos/conversions/packet_time_formatted_conversion'
|
|
13
|
+
require 'cosmos/packets/packet'
|
|
14
|
+
|
|
15
|
+
module Cosmos
|
|
16
|
+
|
|
17
|
+
describe PacketTimeFormattedConversion do
|
|
18
|
+
|
|
19
|
+
describe "initialize" do
|
|
20
|
+
it "initializes converted_type and converted_bit_size" do
|
|
21
|
+
gc = PacketTimeFormattedConversion.new()
|
|
22
|
+
expect(gc.converted_type).to eql :STRING
|
|
23
|
+
expect(gc.converted_bit_size).to eql 0
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe "call" do
|
|
28
|
+
it "returns the formatted packet time" do
|
|
29
|
+
gc = PacketTimeFormattedConversion.new()
|
|
30
|
+
packet = Packet.new("TGT","PKT")
|
|
31
|
+
packet.received_time = Time.new(2020,1,31,12,15,30)
|
|
32
|
+
expect(gc.call(nil,packet,nil)).to eql "2020/01/31 12:15:30.000"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "returns the formatted packet time from a packet item" do
|
|
36
|
+
gc = PacketTimeFormattedConversion.new()
|
|
37
|
+
packet = Packet.new("TGT","PKT")
|
|
38
|
+
item = packet.define_item("PACKET_TIME", 0, 0, :DERIVED)
|
|
39
|
+
item.read_conversion = GenericConversion.new("Time.new(2020,1,31,12,15,30)")
|
|
40
|
+
packet.received_time = nil
|
|
41
|
+
expect(gc.call(nil,packet,nil)).to eql "2020/01/31 12:15:30.000"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "returns a string if packet time isn't set" do
|
|
45
|
+
gc = PacketTimeFormattedConversion.new()
|
|
46
|
+
packet = Packet.new("TGT","PKT")
|
|
47
|
+
expect(gc.call(nil,packet,nil)).to eql "No Packet Time"
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
describe "to_s" do
|
|
52
|
+
it "returns the class" do
|
|
53
|
+
expect(PacketTimeFormattedConversion.new().to_s).to eql "PacketTimeFormattedConversion"
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
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 'spec_helper'
|
|
12
|
+
require 'cosmos/conversions/packet_time_seconds_conversion'
|
|
13
|
+
require 'cosmos/packets/packet'
|
|
14
|
+
|
|
15
|
+
module Cosmos
|
|
16
|
+
|
|
17
|
+
describe PacketTimeSecondsConversion do
|
|
18
|
+
|
|
19
|
+
describe "initialize" do
|
|
20
|
+
it "initializes converted_type and converted_bit_size" do
|
|
21
|
+
gc = PacketTimeSecondsConversion.new()
|
|
22
|
+
expect(gc.converted_type).to eql :FLOAT
|
|
23
|
+
expect(gc.converted_bit_size).to eql 64
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe "call" do
|
|
28
|
+
it "returns the formatted packet time" do
|
|
29
|
+
gc = PacketTimeSecondsConversion.new()
|
|
30
|
+
packet = Packet.new("TGT","PKT")
|
|
31
|
+
time = Time.new(2020,1,31,12,15,30)
|
|
32
|
+
packet.received_time = time
|
|
33
|
+
expect(gc.call(nil,packet,nil)).to eql time.to_f
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "returns the formatted packet time from a packet item" do
|
|
37
|
+
gc = PacketTimeSecondsConversion.new()
|
|
38
|
+
packet = Packet.new("TGT","PKT")
|
|
39
|
+
item = packet.define_item("PACKET_TIME", 0, 0, :DERIVED)
|
|
40
|
+
time = Time.new(2020,1,31,12,15,30)
|
|
41
|
+
item.read_conversion = GenericConversion.new("Time.new(2020,1,31,12,15,30)")
|
|
42
|
+
packet.received_time = nil
|
|
43
|
+
expect(gc.call(nil,packet,nil)).to eql time.to_f
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "returns 0.0 if packet time isn't set" do
|
|
47
|
+
gc = PacketTimeSecondsConversion.new()
|
|
48
|
+
packet = Packet.new("TGT","PKT")
|
|
49
|
+
expect(gc.call(nil,packet,nil)).to eql 0.0
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
describe "to_s" do
|
|
54
|
+
it "returns the class" do
|
|
55
|
+
expect(PacketTimeSecondsConversion.new().to_s).to eql "PacketTimeSecondsConversion"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|