cosmos 3.9.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +23 -0
- data/.travis.yml +1 -0
- data/.yardopts +3 -0
- data/Gemfile +1 -1
- data/Manifest.txt +137 -52
- data/Rakefile +50 -44
- data/autohotkey/config/system/system.txt +0 -5
- data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +6 -1
- data/autohotkey/config/targets/INST/screens/extra.txt +19 -0
- data/autohotkey/config/targets/INST/sequences/run_sequence.txt +1 -0
- data/autohotkey/config/targets/META/screens/data.txt +12 -0
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +16 -0
- data/autohotkey/config/targets/{COSMOS/cmd_tlm/cosmos_server_cmds.txt → SYSTEM/cmd_tlm/system_cmds.txt} +8 -8
- data/autohotkey/config/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
- data/autohotkey/config/targets/SYSTEM/screens/limits_change.txt +14 -0
- data/autohotkey/config/targets/SYSTEM/screens/meta.txt +14 -0
- data/autohotkey/config/targets/SYSTEM/target.txt +12 -0
- data/autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
- data/autohotkey/config/tools/test_runner/test_runner2.txt +1 -1
- data/autohotkey/tools/CmdSequence +14 -0
- data/autohotkey/tools/CmdSequenceAHK +23 -0
- data/autohotkey/tools/CmdSequenceAHK2 +16 -0
- data/autohotkey/tools/cmd_extractor.ahk +2 -2
- data/autohotkey/tools/cmd_sender.ahk +4 -6
- data/autohotkey/tools/cmd_sequence.ahk +215 -0
- data/autohotkey/tools/cmd_sequence2.ahk +23 -0
- data/autohotkey/tools/data_viewer.ahk +2 -3
- data/autohotkey/tools/limits_monitor.ahk +9 -11
- data/autohotkey/tools/open_gl_builder.ahk +1 -2
- data/autohotkey/tools/packet_viewer.ahk +51 -35
- data/autohotkey/tools/replay.ahk +1 -2
- data/autohotkey/tools/script_runner.ahk +1 -2
- data/autohotkey/tools/script_runner2.ahk +1 -2
- data/autohotkey/tools/test_runner2.ahk +1 -5
- data/autohotkey/tools/test_runner3.ahk +1 -3
- data/autohotkey/tools/tlm_grapher.ahk +1 -3
- data/autohotkey/tools/tlm_grapher3.ahk +1 -2
- data/autohotkey/tools/tlm_viewer.ahk +8 -3
- data/autohotkey/tools/tlm_viewer2.ahk +2 -3
- data/autohotkey/tools/tlm_viewer5.ahk +1 -2
- data/cosmos.gemspec +26 -20
- data/data/cmd_sequence.png +0 -0
- data/data/config/_array_params.yaml +23 -0
- data/data/config/_id_items.yaml +24 -0
- data/data/config/_id_params.yaml +58 -0
- data/data/config/_interfaces.yaml +206 -0
- data/data/config/_items.yaml +20 -0
- data/data/config/_params.yaml +58 -0
- data/data/config/cmd_tlm_server.yaml +110 -0
- data/data/config/command.yaml +38 -0
- data/data/config/command_modifiers.yaml +127 -0
- data/data/config/command_telemetry.yaml +3 -0
- data/data/config/data_viewer.yaml +43 -0
- data/data/config/handbook_creator.yaml +23 -0
- data/data/config/housekeeping_params.yaml +71 -0
- data/data/config/interface_modifiers.yaml +44 -0
- data/data/config/item_modifiers.yaml +172 -0
- data/data/config/launcher.yaml +117 -0
- data/data/config/limits_monitor.yaml +53 -0
- data/data/config/linegraph_params.yaml +30 -0
- data/data/config/linegraph_plot.yaml +106 -0
- data/data/config/page_modifiers.yaml +128 -0
- data/data/config/param_item_modifiers.yaml +41 -0
- data/data/config/parameter_modifiers.yaml +144 -0
- data/data/config/protocols.yaml +257 -0
- data/data/config/screen.yaml +151 -0
- data/data/config/script_runner.yaml +15 -0
- data/data/config/system.yaml +153 -0
- data/data/config/table_manager.yaml +76 -0
- data/data/config/table_parameter_modifiers.yaml +9 -0
- data/data/config/target.yaml +71 -0
- data/data/config/telemetry.yaml +73 -0
- data/data/config/telemetry_modifiers.yaml +129 -0
- data/data/config/test_runner.yaml +118 -0
- data/data/config/tlm_extractor.yaml +109 -0
- data/data/config/tlm_grapher.yaml +78 -0
- data/data/config/tlm_viewer.yaml +107 -0
- data/data/config/unknown.yaml +3 -0
- data/data/config/widgets.yaml +1339 -0
- data/data/config/xy_params.yaml +50 -0
- data/data/config/xy_plot.yaml +12 -0
- data/data/config_editor.png +0 -0
- data/data/crc.txt +172 -161
- data/data/delete.png +0 -0
- data/demo/config/data/crc.txt +56 -36
- data/demo/config/data/meta_init.txt +1 -4
- data/demo/config/system/system.txt +15 -3
- data/demo/config/system/system2.txt +13 -3
- data/demo/config/targets/EXAMPLE/lib/example_interface.rb +2 -6
- data/demo/config/targets/EXAMPLE/target.txt +3 -1
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -0
- data/demo/config/targets/INST/lib/inst_dump_component.rb +34 -0
- data/demo/config/targets/INST/screens/adcs.txt +39 -15
- data/demo/config/targets/INST/screens/commanding.txt +26 -19
- data/demo/config/targets/INST/screens/spacing_box.txt +44 -0
- data/demo/config/targets/INST/screens/spacing_grid.txt +78 -0
- data/demo/config/targets/INST/screens/tabs.txt +0 -2
- data/demo/config/targets/INST/sequences/sequence.tsv +3 -0
- data/demo/config/targets/INST/tables/EventAction.csv +9 -0
- data/demo/config/targets/INST/tables/EventAction.dat +0 -0
- data/demo/config/targets/INST/tables/McConfigTable.csv +20 -0
- data/demo/config/targets/INST/tables/McConfigTable.dat +0 -0
- data/demo/config/targets/INST/target.txt +4 -0
- data/demo/config/targets/INST/tools/data_viewer/data_viewer.txt +2 -0
- data/demo/config/targets/INST/tools/data_viewer/data_viewer2.txt +2 -0
- data/demo/config/targets/INST/tools/table_manager/EventAction_def.txt +6 -0
- data/demo/config/targets/INST/tools/table_manager/McConfigTable_def.txt +38 -0
- data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +7 -3
- data/demo/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +16 -0
- data/demo/config/targets/{COSMOS/cmd_tlm/cosmos_server_cmds.txt → SYSTEM/cmd_tlm/system_cmds.txt} +8 -8
- data/demo/config/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
- data/demo/config/targets/{COSMOS → SYSTEM}/cmd_tlm_server.txt +2 -2
- data/demo/config/targets/SYSTEM/lib/limits_groups.rb +39 -0
- data/demo/config/targets/SYSTEM/screens/status.txt +1 -1
- data/demo/config/targets/SYSTEM/target.txt +12 -0
- data/demo/config/targets/TEMPLATED/cmd_tlm_server.txt +1 -1
- data/demo/config/targets/TEMPLATED/lib/templated_interface.rb +8 -5
- data/demo/config/targets/TEMPLATED/target.txt +2 -0
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +15 -6
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +13 -5
- data/demo/config/tools/data_viewer/data_viewer.txt +9 -0
- data/demo/config/tools/launcher/launcher.txt +9 -6
- data/demo/config/tools/launcher/launcher2.txt +16 -13
- data/demo/config/tools/launcher/launcher_mini.txt +45 -0
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw1_def.txt +12 -11
- data/demo/config/tools/table_manager/MCConfigurationTable_fsw2_def.txt +12 -11
- data/demo/config/tools/test_runner/test_runner.txt +1 -1
- data/demo/config/tools/tlm_viewer/tlm_viewer.txt +5 -5
- data/demo/lib/example_background_task.rb +9 -5
- data/demo/lib/example_target.rb +5 -15
- data/demo/lib/scpi_target.rb +4 -10
- data/demo/procedures/cosmos_api_test.rb +17 -0
- data/demo/tools/CmdSequence +16 -0
- data/demo/tools/CmdSequence.bat +9 -0
- data/demo/tools/ConfigEditor +16 -0
- data/demo/tools/ConfigEditor.bat +9 -0
- data/demo/tools/mac/CmdSequence.app/Contents/Info.plist +38 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/CmdSequence.rb +16 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +10 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/tool_launch.rb +38 -0
- data/demo/tools/mac/CmdSequence.app/Contents/Resources/appIcon.icns +0 -0
- data/ext/cosmos/ext/packet/packet.c +5 -5
- data/install/config/data/crc.txt +12 -8
- data/install/config/system/system.txt +13 -3
- data/install/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +14 -0
- data/install/config/targets/SYSTEM/target.txt +12 -0
- data/install/tools/CmdSequence +16 -0
- data/install/tools/CmdSequence.bat +9 -0
- data/install/tools/ConfigEditor +16 -0
- data/install/tools/ConfigEditor.bat +9 -0
- data/install/tools/mac/CmdSequence.app/Contents/Info.plist +38 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/CmdSequence.rb +16 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +10 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/tool_launch.rb +38 -0
- data/install/tools/mac/CmdSequence.app/Contents/Resources/appIcon.icns +0 -0
- data/lib/cosmos.rb +1 -1
- data/lib/cosmos/config/config_parser.rb +147 -59
- data/lib/cosmos/config/meta_config_parser.rb +57 -0
- data/lib/cosmos/conversions/polynomial_conversion.rb +20 -4
- data/lib/cosmos/conversions/unix_time_conversion.rb +4 -4
- data/lib/cosmos/core_ext/array.rb +45 -5
- data/lib/cosmos/core_ext/cosmos_io.rb +31 -15
- data/lib/cosmos/core_ext/file.rb +2 -2
- data/lib/cosmos/core_ext/kernel.rb +1 -6
- data/lib/cosmos/core_ext/objectspace.rb +0 -2
- data/lib/cosmos/core_ext/string.rb +27 -4
- data/lib/cosmos/core_ext/time.rb +39 -10
- data/lib/cosmos/gui/choosers/combobox_chooser.rb +37 -26
- data/lib/cosmos/gui/choosers/file_chooser.rb +23 -6
- data/lib/cosmos/gui/choosers/float_chooser.rb +13 -11
- data/lib/cosmos/gui/choosers/integer_chooser.rb +13 -11
- data/lib/cosmos/gui/choosers/string_chooser.rb +18 -36
- data/lib/cosmos/gui/choosers/telemetry_chooser.rb +64 -64
- data/lib/cosmos/gui/choosers/value_chooser.rb +15 -15
- data/lib/cosmos/gui/dialogs/about_dialog.rb +18 -13
- data/lib/cosmos/gui/dialogs/calendar_dialog.rb +11 -3
- data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/details_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/exception_dialog.rb +7 -7
- data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +20 -15
- data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +143 -0
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +6 -5
- data/lib/cosmos/gui/dialogs/packet_log_dialog.rb +5 -2
- data/lib/cosmos/gui/dialogs/progress_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/pry_dialog.rb +4 -4
- data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +3 -0
- data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +7 -6
- data/lib/cosmos/gui/dialogs/splash.rb +1 -1
- data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +114 -0
- data/lib/cosmos/gui/line_graph/line_graph.rb +9 -10
- data/lib/cosmos/gui/line_graph/line_graph_dialog.rb +7 -5
- data/lib/cosmos/gui/line_graph/line_graph_drawing.rb +3 -7
- data/lib/cosmos/gui/line_graph/line_graph_popups.rb +3 -8
- data/lib/cosmos/gui/line_graph/line_graph_scaling.rb +2 -7
- data/lib/cosmos/gui/line_graph/overview_graph.rb +6 -1
- data/lib/cosmos/gui/opengl/earth_model.rb +6 -3
- data/lib/cosmos/gui/opengl/gl_bounds.rb +11 -23
- data/lib/cosmos/gui/opengl/gl_light.rb +3 -4
- data/lib/cosmos/gui/opengl/gl_material.rb +3 -4
- data/lib/cosmos/gui/opengl/gl_scene.rb +10 -4
- data/lib/cosmos/gui/opengl/gl_shape.rb +6 -2
- data/lib/cosmos/gui/opengl/gl_viewer.rb +5 -5
- data/lib/cosmos/gui/opengl/gl_viewport.rb +11 -12
- data/lib/cosmos/gui/opengl/moon_model.rb +6 -3
- data/lib/cosmos/gui/opengl/stl_reader.rb +8 -9
- data/lib/cosmos/gui/opengl/stl_shape.rb +4 -5
- data/lib/cosmos/gui/opengl/texture_mapped_sphere.rb +7 -7
- data/lib/cosmos/gui/qt.rb +1 -1
- data/lib/cosmos/gui/qt_tool.rb +21 -10
- data/lib/cosmos/gui/text/completion.rb +23 -2
- data/lib/cosmos/gui/text/completion_text_edit.rb +38 -23
- data/lib/cosmos/gui/utilities/analyze_log.rb +1 -1
- data/lib/cosmos/gui/utilities/screenshot.rb +2 -2
- data/lib/cosmos/gui/widgets/full_text_search_line_edit.rb +11 -1
- data/lib/cosmos/gui/widgets/packet_log_frame.rb +19 -6
- data/lib/cosmos/interfaces.rb +10 -0
- data/lib/cosmos/interfaces/cmd_tlm_server_interface.rb +28 -47
- data/lib/cosmos/interfaces/interface.rb +240 -22
- data/lib/cosmos/interfaces/linc_interface.rb +3 -5
- data/lib/cosmos/interfaces/protocols/burst_protocol.rb +173 -0
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +141 -0
- data/lib/cosmos/{streams/fixed_stream_protocol.rb → interfaces/protocols/fixed_protocol.rb} +40 -37
- data/lib/cosmos/{streams/length_stream_protocol.rb → interfaces/protocols/length_protocol.rb} +55 -48
- data/lib/cosmos/interfaces/protocols/override_protocol.rb +52 -0
- data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +141 -0
- data/lib/cosmos/interfaces/protocols/protocol.rb +60 -0
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +209 -0
- data/lib/cosmos/interfaces/protocols/terminated_protocol.rb +81 -0
- data/lib/cosmos/interfaces/serial_interface.rb +28 -23
- data/lib/cosmos/interfaces/simulated_target_interface.rb +27 -16
- data/lib/cosmos/interfaces/stream_interface.rb +36 -108
- data/lib/cosmos/interfaces/tcpip_client_interface.rb +21 -21
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +555 -94
- data/lib/cosmos/interfaces/udp_interface.rb +51 -83
- data/lib/cosmos/io/buffered_file.rb +92 -2
- data/lib/cosmos/io/json_drb.rb +2 -2
- data/lib/cosmos/io/posix_serial_driver.rb +3 -1
- data/lib/cosmos/io/raw_logger.rb +3 -3
- data/lib/cosmos/io/serial_driver.rb +14 -5
- data/lib/cosmos/io/win32_serial_driver.rb +16 -4
- data/lib/cosmos/packet_logs.rb +0 -1
- data/lib/cosmos/packet_logs/packet_log_reader.rb +11 -1
- data/lib/cosmos/packet_logs/packet_log_writer.rb +31 -13
- data/lib/cosmos/packets/binary_accessor.rb +599 -32
- data/lib/cosmos/packets/commands.rb +48 -24
- data/lib/cosmos/packets/packet.rb +140 -54
- data/lib/cosmos/packets/packet_config.rb +0 -2
- data/lib/cosmos/packets/parsers/packet_item_parser.rb +10 -2
- data/lib/cosmos/packets/structure.rb +81 -33
- data/lib/cosmos/packets/structure_item.rb +45 -5
- data/lib/cosmos/packets/telemetry.rb +149 -55
- data/lib/cosmos/script/api_shared.rb +1000 -0
- data/lib/cosmos/script/commands.rb +2 -2
- data/lib/cosmos/script/extract.rb +19 -4
- data/lib/cosmos/script/limits.rb +2 -0
- data/lib/cosmos/script/script.rb +1 -1
- data/lib/cosmos/script/scripting.rb +4 -784
- data/lib/cosmos/script/telemetry.rb +44 -23
- data/lib/cosmos/script/tools.rb +15 -69
- data/lib/cosmos/streams/serial_stream.rb +12 -19
- data/lib/cosmos/streams/stream.rb +2 -11
- data/lib/cosmos/streams/tcpip_socket_stream.rb +3 -13
- data/lib/cosmos/system/system.rb +187 -31
- data/lib/cosmos/system/target.rb +11 -2
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +12 -11
- data/lib/cosmos/tools/cmd_sender/{cmd_sender_item_delegate.rb → cmd_param_table_item_delegate.rb} +11 -10
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +209 -164
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +652 -0
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +510 -0
- data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +194 -0
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +179 -5
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +31 -14
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +23 -16
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +92 -20
- data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +17 -4
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +0 -5
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +1 -2
- data/lib/cosmos/tools/cmd_tlm_server/interfaces.rb +4 -4
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +121 -0
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +8 -4
- data/lib/cosmos/tools/config_editor/config_editor.rb +720 -0
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +675 -0
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +44 -27
- data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +8 -22
- data/lib/cosmos/tools/launcher/launcher.rb +29 -12
- data/lib/cosmos/tools/launcher/launcher_config.rb +1 -1
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +153 -42
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +44 -6
- data/lib/cosmos/tools/replay/replay.rb +36 -20
- data/lib/cosmos/tools/replay/replay_server.rb +1 -1
- data/lib/cosmos/tools/script_runner/script_runner_config.rb +1 -1
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +31 -21
- data/lib/cosmos/tools/table_manager/table_config.rb +9 -3
- data/lib/cosmos/tools/table_manager/table_manager.rb +27 -7
- data/lib/cosmos/tools/test_runner/results_writer.rb +6 -6
- data/lib/cosmos/tools/test_runner/test_runner.rb +4 -6
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +4 -5
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +1 -1
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +1 -1
- data/lib/cosmos/tools/tlm_grapher/data_object_adders/housekeeping_data_object_adder.rb +23 -6
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +44 -3
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +20 -7
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +1 -1
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +11 -4
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb +2 -2
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +1 -1
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +16 -0
- data/lib/cosmos/tools/tlm_viewer/screen.rb +36 -32
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +59 -50
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +2 -2
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +22 -4
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +9 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +55 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +3 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +3 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +12 -12
- data/lib/cosmos/top_level.rb +34 -24
- data/lib/cosmos/utilities/crc.rb +108 -6
- data/lib/cosmos/utilities/csv.rb +68 -14
- data/lib/cosmos/utilities/logger.rb +2 -2
- data/lib/cosmos/utilities/low_fragmentation_array.rb +9 -1
- data/lib/cosmos/version.rb +6 -6
- data/lib/cosmos/win32/win32_main.rb +50 -46
- data/run_gui_tests.bat +3 -1
- data/spec/conversions/unix_time_formatted_conversion_spec.rb +2 -2
- data/spec/conversions/unix_time_seconds_conversion_spec.rb +2 -2
- data/spec/core_ext/file_spec.rb +1 -1
- data/spec/core_ext/objectspace_spec.rb +12 -9
- data/spec/core_ext/string_spec.rb +6 -0
- data/spec/core_ext/time_spec.rb +10 -0
- data/spec/gui/line_graph/line_clip_spec.rb +226 -224
- data/spec/gui/qt_spec.rb +81 -79
- data/spec/install/config/system/system.txt +0 -6
- data/spec/install/config/targets/INST/cmd_tlm/inst_cmd_linc.txt +5 -5
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm_linc.txt +8 -8
- data/spec/install/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +16 -0
- data/{install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt → spec/install/config/targets/SYSTEM/cmd_tlm/system_cmds.txt} +8 -8
- data/spec/install/config/targets/SYSTEM/cmd_tlm/system_tlm.txt +7 -0
- data/spec/install/config/targets/{COSMOS → SYSTEM}/cmd_tlm_server.txt +2 -2
- data/spec/install/config/targets/SYSTEM/screens/status.txt +12 -0
- data/spec/install/config/targets/SYSTEM/target.txt +12 -0
- data/spec/interfaces/cmd_tlm_server_interface_spec.rb +9 -13
- data/spec/interfaces/interface_spec.rb +402 -18
- data/spec/interfaces/linc_interface_spec.rb +37 -39
- data/spec/interfaces/protocols/burst_protocol_spec.rb +300 -0
- data/spec/interfaces/protocols/crc_protocol_spec.rb +709 -0
- data/spec/interfaces/protocols/fixed_protocol_spec.rb +119 -0
- data/spec/interfaces/protocols/length_protocol_spec.rb +499 -0
- data/spec/interfaces/protocols/override_protocol_spec.rb +158 -0
- data/spec/interfaces/protocols/preidentified_protocol_spec.rb +149 -0
- data/spec/interfaces/protocols/template_protocol_spec.rb +218 -0
- data/spec/interfaces/protocols/terminated_protocol_spec.rb +174 -0
- data/spec/interfaces/serial_interface_spec.rb +35 -34
- data/spec/interfaces/simulated_target_interface_spec.rb +13 -13
- data/spec/interfaces/tcpip_client_interface_spec.rb +21 -16
- data/spec/interfaces/tcpip_server_interface_spec.rb +66 -69
- data/spec/interfaces/udp_interface_spec.rb +120 -55
- data/spec/io/serial_driver_spec.rb +41 -39
- data/spec/io/udp_sockets_spec.rb +13 -8
- data/spec/io/win32_serial_driver_spec.rb +62 -59
- data/spec/packet_logs/packet_log_reader_spec.rb +68 -47
- data/spec/packet_logs/packet_log_writer_spec.rb +7 -5
- data/spec/packets/commands_spec.rb +5 -5
- data/spec/packets/packet_spec.rb +2 -14
- data/spec/script/extract_spec.rb +21 -7
- data/spec/script/scripting_spec.rb +261 -6
- data/spec/script/telemetry_spec.rb +17 -9
- data/spec/spec_helper.rb +26 -10
- data/spec/streams/serial_stream_spec.rb +87 -82
- data/spec/streams/tcpip_client_stream_spec.rb +12 -4
- data/spec/streams/tcpip_socket_stream_spec.rb +5 -0
- data/spec/system/system_spec.rb +66 -50
- data/spec/system/target_spec.rb +33 -11
- data/spec/tools/cmd_tlm_server/api_spec.rb +5 -5
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +75 -15
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +125 -5
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +244 -232
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +18 -18
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +124 -29
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +2 -2
- data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +145 -0
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +50 -10
- data/spec/tools/table_manager/tablemanager_core_spec.rb +0 -1
- data/spec/top_level/top_level_spec.rb +39 -11
- data/spec/utilities/csv_spec.rb +62 -20
- data/tasks/gemfile_stats.rake +6 -3
- data/test/performance/config/system/system_packets.txt +0 -1
- data/test/performance/config/system/system_threads.txt +0 -1
- metadata +177 -92
- data/autohotkey/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +0 -15
- data/autohotkey/config/targets/COSMOS/cmd_tlm_server.txt +0 -6
- data/autohotkey/config/targets/COSMOS/target.txt +0 -5
- data/autohotkey/userpath.txt +0 -1
- data/demo/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +0 -15
- data/demo/config/targets/COSMOS/screens/limits_change.txt +0 -20
- data/demo/config/targets/COSMOS/screens/version.txt +0 -19
- data/demo/config/targets/COSMOS/target.txt +0 -11
- data/demo/config/targets/META/cmd_tlm/meta_cmd.txt +0 -10
- data/demo/config/targets/META/cmd_tlm/meta_tlm.txt +0 -13
- data/demo/userpath.txt +0 -1
- data/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +0 -15
- data/install/config/targets/COSMOS/cmd_tlm_server.txt +0 -6
- data/install/config/targets/COSMOS/screens/limits_change.txt +0 -20
- data/install/config/targets/COSMOS/screens/version.txt +0 -19
- data/install/config/targets/COSMOS/target.txt +0 -9
- data/install/config/targets/SYSTEM/README.txt +0 -1
- data/install/userpath.txt +0 -1
- data/lib/cosmos/io/tcpip_server.rb +0 -571
- data/lib/cosmos/packet_logs/meta_packet_log_writer.rb +0 -107
- data/lib/cosmos/streams/burst_stream_protocol.rb +0 -25
- data/lib/cosmos/streams/preidentified_stream_protocol.rb +0 -118
- data/lib/cosmos/streams/stream_protocol.rb +0 -373
- data/lib/cosmos/streams/template_stream_protocol.rb +0 -140
- data/lib/cosmos/streams/terminated_stream_protocol.rb +0 -85
- data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +0 -41
- data/spec/install/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +0 -15
- data/spec/install/config/targets/COSMOS/screens/limits_change.txt +0 -20
- data/spec/install/config/targets/COSMOS/screens/version.txt +0 -19
- data/spec/install/config/targets/COSMOS/target.txt +0 -5
- data/spec/install/config/targets/META/cmd_tlm/meta_cmd.txt +0 -4
- data/spec/install/config/targets/META/cmd_tlm/meta_tlm.txt +0 -4
- data/spec/install/userpath.txt +0 -1
- data/spec/interfaces/stream_interface_spec.rb +0 -157
- data/spec/io/tcpip_server_spec.rb +0 -338
- data/spec/packet_logs/meta_packet_log_writer_spec.rb +0 -170
- data/spec/streams/burst_stream_protocol_spec.rb +0 -32
- data/spec/streams/fixed_stream_protocol_spec.rb +0 -113
- data/spec/streams/length_stream_protocol_spec.rb +0 -300
- data/spec/streams/preidentified_stream_protocol_spec.rb +0 -121
- data/spec/streams/stream_protocol_spec.rb +0 -346
- data/spec/streams/template_stream_protocol_spec.rb +0 -156
- data/spec/streams/terminated_stream_protocol_spec.rb +0 -127
- data/test/performance/userpath.txt +0 -1
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# encoding: ascii-8bit
|
|
2
|
-
|
|
3
|
-
# Copyright 2014 Ball Aerospace & Technologies Corp.
|
|
4
|
-
# All Rights Reserved.
|
|
5
|
-
#
|
|
6
|
-
# This program is free software; you can modify and/or redistribute it
|
|
7
|
-
# under the terms of the GNU General Public License
|
|
8
|
-
# as published by the Free Software Foundation; version 3 with
|
|
9
|
-
# attribution addendums as found in the LICENSE.txt
|
|
10
|
-
|
|
11
|
-
require 'cosmos/config/config_parser'
|
|
12
|
-
require 'cosmos/streams/stream_protocol'
|
|
13
|
-
require 'cosmos/streams/terminated_stream_protocol'
|
|
14
|
-
require 'thread' # For Queue
|
|
15
|
-
|
|
16
|
-
module Cosmos
|
|
17
|
-
|
|
18
|
-
class TemplateStreamProtocol < TerminatedStreamProtocol
|
|
19
|
-
def initialize(write_termination_characters,
|
|
20
|
-
read_termination_characters,
|
|
21
|
-
ignore_lines = 0,
|
|
22
|
-
initial_read_delay = nil,
|
|
23
|
-
response_lines = 1,
|
|
24
|
-
strip_read_termination = true,
|
|
25
|
-
discard_leading_bytes = 0,
|
|
26
|
-
sync_pattern = nil,
|
|
27
|
-
fill_sync_pattern = false)
|
|
28
|
-
super(write_termination_characters,
|
|
29
|
-
read_termination_characters,
|
|
30
|
-
strip_read_termination,
|
|
31
|
-
discard_leading_bytes,
|
|
32
|
-
sync_pattern,
|
|
33
|
-
fill_sync_pattern)
|
|
34
|
-
@response_template = nil
|
|
35
|
-
@response_packet = nil
|
|
36
|
-
@read_queue = Queue.new
|
|
37
|
-
@ignore_lines = ignore_lines.to_i
|
|
38
|
-
@response_lines = response_lines.to_i
|
|
39
|
-
@initial_read_delay = ConfigParser.handle_nil(initial_read_delay)
|
|
40
|
-
@initial_read_delay = @initial_read_delay.to_f if @initial_read_delay
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def connect(stream)
|
|
44
|
-
# Empty the read queue
|
|
45
|
-
begin
|
|
46
|
-
@read_queue.pop(true) while @read_queue.length > 0
|
|
47
|
-
rescue
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
super(stream)
|
|
51
|
-
|
|
52
|
-
if @initial_read_delay
|
|
53
|
-
sleep(@initial_read_delay)
|
|
54
|
-
loop do
|
|
55
|
-
break if @stream.read_nonblock.length <= 0
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def disconnect
|
|
61
|
-
super()
|
|
62
|
-
@read_queue << nil # Unblock the read queue in the interface thread
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def read(use_queue = true)
|
|
66
|
-
if use_queue
|
|
67
|
-
return @read_queue.pop
|
|
68
|
-
else
|
|
69
|
-
return super()
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# See StreamProtocol#pre_write_packet
|
|
74
|
-
def pre_write_packet(packet)
|
|
75
|
-
# First grab the response template and response packet (if there is one)
|
|
76
|
-
begin
|
|
77
|
-
@response_template = packet.read("RSP_TEMPLATE").strip
|
|
78
|
-
@response_packet = packet.read("RSP_PACKET").strip
|
|
79
|
-
rescue
|
|
80
|
-
# If there is no response template we set to nil
|
|
81
|
-
@response_template = nil
|
|
82
|
-
@response_packet = nil
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
# Grab the command template because that is all we eventually send
|
|
86
|
-
template = packet.read("CMD_TEMPLATE")
|
|
87
|
-
# Create a new empty packet to call super on
|
|
88
|
-
raw_packet = Packet.new(nil, nil)
|
|
89
|
-
raw_packet.buffer = template
|
|
90
|
-
# Call super to allow the super classes to massage the packet data
|
|
91
|
-
data = super(raw_packet)
|
|
92
|
-
# Scan the template for variables in brackets <VARIABLE>
|
|
93
|
-
# Read these values from the packet and substitute them in the template
|
|
94
|
-
template.scan(/<(.*?)>/).each do |variable|
|
|
95
|
-
data.gsub!("<#{variable[0]}>", packet.read(variable[0], :RAW).to_s)
|
|
96
|
-
end
|
|
97
|
-
data
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def post_write_data(packet, data)
|
|
101
|
-
if @response_template && @response_packet
|
|
102
|
-
@ignore_lines.times do
|
|
103
|
-
read(false)
|
|
104
|
-
end
|
|
105
|
-
response_string = ''
|
|
106
|
-
@response_lines.times do
|
|
107
|
-
response = read(false)
|
|
108
|
-
raise "No response received" unless response
|
|
109
|
-
response_string << response.buffer
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Grab the response packet specified in the command
|
|
113
|
-
result_packet = System.telemetry.packet(@interface.target_names[0], @response_packet).clone
|
|
114
|
-
result_packet.received_time = nil
|
|
115
|
-
|
|
116
|
-
# Convert the response template into a Regexp
|
|
117
|
-
response_item_names = []
|
|
118
|
-
response_template = @response_template.clone
|
|
119
|
-
response_template_items = @response_template.scan(/<.*?>/)
|
|
120
|
-
response_template_items.each do |item|
|
|
121
|
-
response_item_names << item[1..-2]
|
|
122
|
-
response_template.gsub!(item, "(.*)")
|
|
123
|
-
end
|
|
124
|
-
response_regexp = Regexp.new(response_template)
|
|
125
|
-
|
|
126
|
-
# Scan the response for the variables in brackets <VARIABLE>
|
|
127
|
-
# Write the packet value with each of the values received
|
|
128
|
-
response_values = response_string.scan(response_regexp)[0]
|
|
129
|
-
raise "Unexpected response received: #{response_string}" if !response_values or (response_values.length != response_item_names.length)
|
|
130
|
-
response_values.each_with_index do |value, i|
|
|
131
|
-
result_packet.write(response_item_names[i], value)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
@read_queue << result_packet
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
end # class TemplateStreamProtocol
|
|
139
|
-
|
|
140
|
-
end # module Cosmos
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# encoding: ascii-8bit
|
|
2
|
-
|
|
3
|
-
# Copyright 2014 Ball Aerospace & Technologies Corp.
|
|
4
|
-
# All Rights Reserved.
|
|
5
|
-
#
|
|
6
|
-
# This program is free software; you can modify and/or redistribute it
|
|
7
|
-
# under the terms of the GNU General Public License
|
|
8
|
-
# as published by the Free Software Foundation; version 3 with
|
|
9
|
-
# attribution addendums as found in the LICENSE.txt
|
|
10
|
-
|
|
11
|
-
require 'cosmos/config/config_parser'
|
|
12
|
-
require 'cosmos/streams/stream_protocol'
|
|
13
|
-
|
|
14
|
-
module Cosmos
|
|
15
|
-
|
|
16
|
-
# This StreamProtocol delineates packets using termination characters at
|
|
17
|
-
# the end of the stream.
|
|
18
|
-
class TerminatedStreamProtocol < StreamProtocol
|
|
19
|
-
|
|
20
|
-
# @param write_termination_characters [String] The characters to write to
|
|
21
|
-
# the stream after writing the Packet buffer. Must be given as a
|
|
22
|
-
# hexadecimal string such as '0xABCD'.
|
|
23
|
-
# @param read_termination_characters [String] The characters at the end of
|
|
24
|
-
# the stream which delineate the end of a Packet. Must be given as a
|
|
25
|
-
# hexadecimal string such as '0xABCD'.
|
|
26
|
-
# @param strip_read_termination [Boolean] Whether to remove the
|
|
27
|
-
# read_termination_characters before turning the stream data into a
|
|
28
|
-
# Packet.
|
|
29
|
-
# @param discard_leading_bytes (see StreamProtocol#initialize)
|
|
30
|
-
# @param sync_pattern (see StreamProtocol#initialize)
|
|
31
|
-
# @param fill_sync_pattern (see StreamProtocol#initialize)
|
|
32
|
-
def initialize(write_termination_characters,
|
|
33
|
-
read_termination_characters,
|
|
34
|
-
strip_read_termination = true,
|
|
35
|
-
discard_leading_bytes = 0,
|
|
36
|
-
sync_pattern = nil,
|
|
37
|
-
fill_sync_pattern = false)
|
|
38
|
-
@write_termination_characters = write_termination_characters.hex_to_byte_string
|
|
39
|
-
@read_termination_characters = read_termination_characters.hex_to_byte_string
|
|
40
|
-
@strip_read_termination = ConfigParser.handle_true_false(strip_read_termination)
|
|
41
|
-
|
|
42
|
-
super(discard_leading_bytes, sync_pattern, fill_sync_pattern)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# See StreamProtocol#pre_write_packet
|
|
46
|
-
def pre_write_packet(packet)
|
|
47
|
-
data = super(packet)
|
|
48
|
-
raise "Packet contains termination characters!" if data.index(@write_termination_characters)
|
|
49
|
-
|
|
50
|
-
data = data.clone # Don't want to modify the actual packet buffer with the termination characters
|
|
51
|
-
@write_termination_characters.each_byte do |byte|
|
|
52
|
-
data << byte
|
|
53
|
-
end
|
|
54
|
-
data
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
protected
|
|
58
|
-
|
|
59
|
-
def reduce_to_single_packet
|
|
60
|
-
while true
|
|
61
|
-
index = @data.index(@read_termination_characters)
|
|
62
|
-
|
|
63
|
-
# Reduce to packet data and setup current_data for next packet
|
|
64
|
-
if index
|
|
65
|
-
if index > 0
|
|
66
|
-
if @strip_read_termination
|
|
67
|
-
packet_data = @data[0..(index - 1)]
|
|
68
|
-
else
|
|
69
|
-
packet_data = @data[0..(index + @read_termination_characters.length - 1)]
|
|
70
|
-
end
|
|
71
|
-
else
|
|
72
|
-
packet_data = ''
|
|
73
|
-
end
|
|
74
|
-
@data.replace(@data[(index + @read_termination_characters.length)..-1])
|
|
75
|
-
return packet_data
|
|
76
|
-
else
|
|
77
|
-
read_and_handle_timeout()
|
|
78
|
-
return nil if @data.length <= 0
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
end # class TerminatedStreamProtocol
|
|
84
|
-
|
|
85
|
-
end # module Cosmos
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
COMMAND COSMOS STARTLOGGING BIG_ENDIAN "Starts logging both commands and telemetry for an interface"
|
|
2
|
-
APPEND_PARAMETER SYNC 32 UINT 0x1ACFFC1D 0x1ACFFC1D 0x1ACFFC1D "COSMOS Command Sync Pattern"
|
|
3
|
-
APPEND_ID_PARAMETER OPCODE 32 UINT 2 2 2 "COSMOS Command Opcode"
|
|
4
|
-
APPEND_PARAMETER LENGTH 32 UINT 0 65536 3 "COSMOS Command Length of Command Data in Bytes"
|
|
5
|
-
APPEND_PARAMETER INTERFACE 256 STRING "ALL" "Interface to start logging on - ALL starts logging on all interfaces"
|
|
6
|
-
APPEND_PARAMETER LABEL 0 STRING "" "Optional label to place on log files"
|
|
7
|
-
|
|
8
|
-
COMMAND COSMOS STARTCMDLOG BIG_ENDIAN "Starts logging commands for an interface"
|
|
9
|
-
APPEND_PARAMETER SYNC 32 UINT 0x1ACFFC1D 0x1ACFFC1D 0x1ACFFC1D "COSMOS Command Sync Pattern"
|
|
10
|
-
APPEND_ID_PARAMETER OPCODE 32 UINT 3 3 3 "COSMOS Command Opcode"
|
|
11
|
-
APPEND_PARAMETER LENGTH 32 UINT 0 65536 3 "COSMOS Command Length of Command Data in Bytes"
|
|
12
|
-
APPEND_PARAMETER INTERFACE 256 STRING "ALL" "Interface to start logging on - ALL starts logging on all interfaces"
|
|
13
|
-
APPEND_PARAMETER LABEL 0 STRING "" "Optional label to place on log files"
|
|
14
|
-
|
|
15
|
-
COMMAND COSMOS STARTTLMLOG BIG_ENDIAN "Starts logging telemetry for an interface"
|
|
16
|
-
APPEND_PARAMETER SYNC 32 UINT 0x1ACFFC1D 0x1ACFFC1D 0x1ACFFC1D "COSMOS Command Sync Pattern"
|
|
17
|
-
APPEND_ID_PARAMETER OPCODE 32 UINT 4 4 4 "COSMOS Command Opcode"
|
|
18
|
-
APPEND_PARAMETER LENGTH 32 UINT 0 65536 3 "COSMOS Command Length of Command Data in Bytes"
|
|
19
|
-
APPEND_PARAMETER INTERFACE 256 STRING "ALL" "Interface to start logging on - ALL starts logging on all interfaces"
|
|
20
|
-
APPEND_PARAMETER LABEL 0 STRING "" "Optional label to place on log files"
|
|
21
|
-
|
|
22
|
-
COMMAND COSMOS STOPLOGGING BIG_ENDIAN "Stops logging both commands and telemetry for an interface"
|
|
23
|
-
APPEND_PARAMETER SYNC 32 UINT 0x1ACFFC1D 0x1ACFFC1D 0x1ACFFC1D "COSMOS Command Sync Pattern"
|
|
24
|
-
APPEND_ID_PARAMETER OPCODE 32 UINT 5 5 5 "COSMOS Command Opcode"
|
|
25
|
-
APPEND_PARAMETER LENGTH 32 UINT 0 65536 3 "COSMOS Command Length of Command Data in Bytes"
|
|
26
|
-
APPEND_PARAMETER INTERFACE 256 STRING "ALL" "Interface to stop logging on - ALL stops logging on all interfaces"
|
|
27
|
-
APPEND_PARAMETER LABEL 0 STRING "" "Optional label to place on log files"
|
|
28
|
-
|
|
29
|
-
COMMAND COSMOS STOPCMDLOG BIG_ENDIAN "Stops logging commands for an interface"
|
|
30
|
-
APPEND_PARAMETER SYNC 32 UINT 0x1ACFFC1D 0x1ACFFC1D 0x1ACFFC1D "COSMOS Command Sync Pattern"
|
|
31
|
-
APPEND_ID_PARAMETER OPCODE 32 UINT 6 6 6 "COSMOS Command Opcode"
|
|
32
|
-
APPEND_PARAMETER LENGTH 32 UINT 0 65536 3 "COSMOS Command Length of Command Data in Bytes"
|
|
33
|
-
APPEND_PARAMETER INTERFACE 256 STRING "ALL" "Interface to stop logging on - ALL stops logging on all interfaces"
|
|
34
|
-
APPEND_PARAMETER LABEL 0 STRING "" "Optional label to place on log files"
|
|
35
|
-
|
|
36
|
-
COMMAND COSMOS STOPTLMLOG BIG_ENDIAN "Stops logging telemetry for an interface"
|
|
37
|
-
APPEND_PARAMETER SYNC 32 UINT 0x1ACFFC1D 0x1ACFFC1D 0x1ACFFC1D "COSMOS Command Sync Pattern"
|
|
38
|
-
APPEND_ID_PARAMETER OPCODE 32 UINT 7 7 7 "COSMOS Command Opcode"
|
|
39
|
-
APPEND_PARAMETER LENGTH 32 UINT 0 65536 3 "COSMOS Command Length of Command Data in Bytes"
|
|
40
|
-
APPEND_PARAMETER INTERFACE 256 STRING "ALL" "Interface to stop logging on - ALL stops logging on all interfaces"
|
|
41
|
-
APPEND_PARAMETER LABEL 0 STRING "" "Optional label to place on log files"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
TELEMETRY COSMOS VERSION BIG_ENDIAN "COSMOS version information"
|
|
2
|
-
APPEND_ID_ITEM PKT_ID 8 UINT 1 "Packet ID"
|
|
3
|
-
APPEND_ITEM COSMOS 240 STRING "COSMOS version"
|
|
4
|
-
APPEND_ITEM RUBY 240 STRING "Ruby version"
|
|
5
|
-
APPEND_ITEM CTDB 240 STRING "Command Telemetry Database Version"
|
|
6
|
-
APPEND_ITEM USER 240 STRING "User Version"
|
|
7
|
-
|
|
8
|
-
TELEMETRY COSMOS LIMITS_CHANGE BIG_ENDIAN "COSMOS limits change"
|
|
9
|
-
APPEND_ID_ITEM PKT_ID 8 UINT 2 "Packet ID"
|
|
10
|
-
APPEND_ITEM TARGET 240 STRING "Target name"
|
|
11
|
-
APPEND_ITEM PACKET 240 STRING "Packet name"
|
|
12
|
-
APPEND_ITEM ITEM 240 STRING "Item that changed limits state"
|
|
13
|
-
APPEND_ITEM OLD_STATE 240 STRING "The old limit state"
|
|
14
|
-
APPEND_ITEM NEW_STATE 240 STRING "The new limit state"
|
|
15
|
-
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
SCREEN AUTO AUTO 0.5
|
|
2
|
-
|
|
3
|
-
VERTICAL
|
|
4
|
-
|
|
5
|
-
TITLE "COSMOS Limits Change"
|
|
6
|
-
SETTING BACKCOLOR 162 181 205
|
|
7
|
-
SETTING TEXTCOLOR black
|
|
8
|
-
|
|
9
|
-
LABELVALUE COSMOS LIMITS_CHANGE RECEIVED_TIMESECONDS WITH_UNITS 30
|
|
10
|
-
LABELVALUE COSMOS LIMITS_CHANGE RECEIVED_TIMEFORMATTED WITH_UNITS 30
|
|
11
|
-
LABELVALUE COSMOS LIMITS_CHANGE RECEIVED_COUNT WITH_UNITS 30
|
|
12
|
-
LABELVALUE COSMOS LIMITS_CHANGE pkt_id WITH_UNITS 30
|
|
13
|
-
LABELVALUE COSMOS LIMITS_CHANGE target WITH_UNITS 30
|
|
14
|
-
LABELVALUE COSMOS limits_change PACKET WITH_UNITS 30
|
|
15
|
-
LABELVALUE COSMOS limits_change ITEM WITH_UNITS 30
|
|
16
|
-
LABELVALUE cosmos LIMITS_CHANGE OLD_STATE WITH_UNITS 30
|
|
17
|
-
LABELVALUE cosmos LIMITS_CHANGE NEW_STATE WITH_UNITS 30
|
|
18
|
-
END
|
|
19
|
-
|
|
20
|
-
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
SCREEN AUTO AUTO 0.5
|
|
2
|
-
|
|
3
|
-
VERTICAL
|
|
4
|
-
|
|
5
|
-
TITLE "COSMOS Version"
|
|
6
|
-
SETTING BACKCOLOR 162 181 205
|
|
7
|
-
SETTING TEXTCOLOR black
|
|
8
|
-
|
|
9
|
-
LABELVALUE COSMOS VERSION RECEIVED_TIMESECONDS WITH_UNITS 30
|
|
10
|
-
LABELVALUE COSMOS VERSION RECEIVED_TIMEFORMATTED WITH_UNITS 30
|
|
11
|
-
LABELVALUE COSMOS VERSION RECEIVED_COUNT WITH_UNITS 30
|
|
12
|
-
LABELVALUE COSMOS VERSION PKT_ID WITH_UNITS 30
|
|
13
|
-
LABELVALUE COSMOS VERSION COSMOS WITH_UNITS 30
|
|
14
|
-
LABELVALUE COSMOS VERSION RUBY WITH_UNITS 30
|
|
15
|
-
LABELVALUE COSMOS VERSION CTDB WITH_UNITS 30
|
|
16
|
-
LABELVALUE COSMOS VERSION USER WITH_UNITS 30
|
|
17
|
-
END
|
|
18
|
-
|
|
19
|
-
|
data/spec/install/userpath.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
DO NOT DELETE THIS FILE! It is used by cosmos.rb to build the ::Cosmos::USERPATH directory.
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# encoding: ascii-8bit
|
|
2
|
-
|
|
3
|
-
# Copyright 2014 Ball Aerospace & Technologies Corp.
|
|
4
|
-
# All Rights Reserved.
|
|
5
|
-
#
|
|
6
|
-
# This program is free software; you can modify and/or redistribute it
|
|
7
|
-
# under the terms of the GNU General Public License
|
|
8
|
-
# as published by the Free Software Foundation; version 3 with
|
|
9
|
-
# attribution addendums as found in the LICENSE.txt
|
|
10
|
-
|
|
11
|
-
require 'spec_helper'
|
|
12
|
-
require 'cosmos/interfaces/stream_interface'
|
|
13
|
-
|
|
14
|
-
module Cosmos
|
|
15
|
-
|
|
16
|
-
describe StreamInterface do
|
|
17
|
-
before(:each) do
|
|
18
|
-
@file = File.join(File.dirname(__FILE__),'..','..','lib','test_stream_protocol.rb')
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
after(:each) do
|
|
22
|
-
File.delete(@file) if File.exist?(@file)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
describe "initialize" do
|
|
26
|
-
it "complains if the stream protocol doesn't exist" do
|
|
27
|
-
File.delete(@file) if File.exist?(@file)
|
|
28
|
-
expect { StreamInterface.new("test") }.to raise_error(/Unable to require test_stream_protocol.rb/)
|
|
29
|
-
expect { StreamInterface.new("test") }.to raise_error(/Ensure test_stream_protocol.rb is in the COSMOS lib directory./)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "complains if the stream protocol has a bug" do
|
|
33
|
-
File.open(@file, 'w') {|file| file.puts "blah" }
|
|
34
|
-
expect { StreamInterface.new("test") }.to raise_error(/Unable to require test_stream_protocol.rb/)
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
describe "connect" do
|
|
39
|
-
it "raises an exception" do
|
|
40
|
-
si = StreamInterface.new("burst")
|
|
41
|
-
expect { si.connect }.to raise_error("Interface connect method not implemented")
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
describe "connected?, disconnect, bytes_read, bytes_written" do
|
|
46
|
-
it "defers to the stream protocol" do
|
|
47
|
-
File.open(@file, 'w') do |file|
|
|
48
|
-
file.puts "class TestStreamProtocol"
|
|
49
|
-
file.puts "attr_accessor :bytes_read, :bytes_written"
|
|
50
|
-
file.puts "def interface=(i); i; end"
|
|
51
|
-
file.puts "def connected?; 1; end"
|
|
52
|
-
file.puts "def disconnect; 2; end"
|
|
53
|
-
file.puts "end"
|
|
54
|
-
end
|
|
55
|
-
# Ensure we reload since TestStreamProtocol is used throughout
|
|
56
|
-
load @file
|
|
57
|
-
|
|
58
|
-
si = StreamInterface.new("test")
|
|
59
|
-
expect(si.connected?).to eql 1
|
|
60
|
-
expect(si.disconnect).to eql 2
|
|
61
|
-
si.bytes_read = 10
|
|
62
|
-
expect(si.bytes_read).to eql 10
|
|
63
|
-
si.bytes_written = 20
|
|
64
|
-
expect(si.bytes_written).to eql 20
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
describe "read" do
|
|
69
|
-
it "reads from the stream interface and count the packet" do
|
|
70
|
-
File.open(@file, 'w') do |file|
|
|
71
|
-
file.puts "class TestStreamProtocol"
|
|
72
|
-
file.puts "def interface=(i); i; end"
|
|
73
|
-
file.puts "def read; 1; end"
|
|
74
|
-
file.puts "end"
|
|
75
|
-
end
|
|
76
|
-
# Ensure we reload since TestStreamProtocol is used throughout
|
|
77
|
-
load @file
|
|
78
|
-
|
|
79
|
-
si = StreamInterface.new("test")
|
|
80
|
-
expect(si.read).to eql 1
|
|
81
|
-
expect(si.read_count).to eql 1
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
describe "write, write_raw" do
|
|
86
|
-
it "complains if the stream interface isn't connected" do
|
|
87
|
-
File.open(@file, 'w') do |file|
|
|
88
|
-
file.puts "class TestStreamProtocol"
|
|
89
|
-
file.puts "def interface=(i); i; end"
|
|
90
|
-
file.puts "def connected?; false; end"
|
|
91
|
-
file.puts "end"
|
|
92
|
-
end
|
|
93
|
-
# Ensure we reload since TestStreamProtocol is used throughout
|
|
94
|
-
load @file
|
|
95
|
-
|
|
96
|
-
si = StreamInterface.new("test")
|
|
97
|
-
expect { si.write(nil) }.to raise_error(/Interface not connected/)
|
|
98
|
-
expect { si.write_raw(nil) }.to raise_error(/Interface not connected/)
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
it "disconnects after write errors" do
|
|
102
|
-
$disconnect = false
|
|
103
|
-
File.open(@file, 'w') do |file|
|
|
104
|
-
file.puts "class TestStreamProtocol"
|
|
105
|
-
file.puts "def interface=(i); i; end"
|
|
106
|
-
file.puts "def connected?; true; end"
|
|
107
|
-
file.puts "def disconnect; $disconnect = true; end"
|
|
108
|
-
file.puts "def write(p); raise 'ERROR'; end"
|
|
109
|
-
file.puts "def write_raw(p); raise 'ERROR'; end"
|
|
110
|
-
file.puts "end"
|
|
111
|
-
end
|
|
112
|
-
# Ensure we reload since TestStreamProtocol is used throughout
|
|
113
|
-
load @file
|
|
114
|
-
|
|
115
|
-
expect($disconnect).to be false
|
|
116
|
-
si = StreamInterface.new("test")
|
|
117
|
-
begin
|
|
118
|
-
si.write(nil)
|
|
119
|
-
rescue
|
|
120
|
-
end
|
|
121
|
-
expect(si.write_count).to eql 0
|
|
122
|
-
expect($disconnect).to be true
|
|
123
|
-
|
|
124
|
-
$disconnect = false
|
|
125
|
-
expect($disconnect).to be false
|
|
126
|
-
si = StreamInterface.new("test")
|
|
127
|
-
begin
|
|
128
|
-
si.write_raw(nil)
|
|
129
|
-
rescue
|
|
130
|
-
end
|
|
131
|
-
expect(si.write_count).to eql 0
|
|
132
|
-
expect($disconnect).to be true
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
it "writes to the stream interface and count the packet" do
|
|
136
|
-
File.open(@file, 'w') do |file|
|
|
137
|
-
file.puts "class TestStreamProtocol"
|
|
138
|
-
file.puts "def interface=(i); i; end"
|
|
139
|
-
file.puts "def connected?; true; end"
|
|
140
|
-
file.puts "def write(p); p; end"
|
|
141
|
-
file.puts "def write_raw(p); p; end"
|
|
142
|
-
file.puts "end"
|
|
143
|
-
end
|
|
144
|
-
# Ensure we reload since TestStreamProtocol is used throughout
|
|
145
|
-
load @file
|
|
146
|
-
|
|
147
|
-
si = StreamInterface.new("test")
|
|
148
|
-
si.write(nil)
|
|
149
|
-
expect(si.write_count).to eql 1
|
|
150
|
-
si.write_raw(nil)
|
|
151
|
-
expect(si.write_count).to eql 2
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
|