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
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
- name: Item Bit Size
|
|
3
|
+
required: true
|
|
4
|
+
description: Bit size of each array item
|
|
5
|
+
values: \d+
|
|
6
|
+
- name: Item Data Type
|
|
7
|
+
required: true
|
|
8
|
+
description: Data Type of each array item
|
|
9
|
+
values: <%= %w(INT UINT FLOAT STRING BLOCK DERIVED) %>
|
|
10
|
+
- name: Array Bit Size
|
|
11
|
+
required: true
|
|
12
|
+
description: Total Bit Size of the Array. Zero or Negative values may be used
|
|
13
|
+
to indicate the array fills the packet up to the offset from the end of the
|
|
14
|
+
packet specified by this value.
|
|
15
|
+
values: '[-]?\d+'
|
|
16
|
+
- name: Description
|
|
17
|
+
required: false
|
|
18
|
+
description: Description which must be enclosed with quotes
|
|
19
|
+
values: "['\"].*['\"]"
|
|
20
|
+
- name: Endianness
|
|
21
|
+
required: false
|
|
22
|
+
description: Indicates if the data is to be sent in Big Endian or Little Endian format
|
|
23
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
- name: Bit Size
|
|
3
|
+
required: true
|
|
4
|
+
description: Bit size of this telemetry item. Zero or Negative values may be used
|
|
5
|
+
to indicate that a string fills the packet up to the offset from the end of
|
|
6
|
+
the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then
|
|
7
|
+
this is a derived parameter and the Data Type must be set to 'DERIVED'.
|
|
8
|
+
values: \d+
|
|
9
|
+
- name: Data Type
|
|
10
|
+
required: true
|
|
11
|
+
description: Data Type of this telemetry item
|
|
12
|
+
values: <%= %w(INT UINT FLOAT STRING BLOCK DERVIED) %>
|
|
13
|
+
- name: ID Value
|
|
14
|
+
required: true
|
|
15
|
+
description: The value of this telemetry item that uniquely identifies this telemetry packet
|
|
16
|
+
values: .+
|
|
17
|
+
- name: Description
|
|
18
|
+
required: false
|
|
19
|
+
description: Description for this telemetry item which must be enclosed with quotes
|
|
20
|
+
values: "['\"].*['\"]"
|
|
21
|
+
- name: Endianness
|
|
22
|
+
required: false
|
|
23
|
+
description: Indicates if the item is to be interpreted in Big Endian or Little Endian format
|
|
24
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
- name: Bit Size
|
|
3
|
+
required: true
|
|
4
|
+
description: Bit size of this parameter. Zero or Negative values may be used
|
|
5
|
+
to indicate that a string fills the packet up to the offset from the end of
|
|
6
|
+
the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then
|
|
7
|
+
this is a derived parameter and the Data Type must be set to 'DERIVED'.
|
|
8
|
+
values: \d+
|
|
9
|
+
- name: Data Type
|
|
10
|
+
required: true
|
|
11
|
+
description: Data Type of this parameter
|
|
12
|
+
values:
|
|
13
|
+
INT:
|
|
14
|
+
parameters: ¶ms
|
|
15
|
+
- name: Minimum Value
|
|
16
|
+
required: true
|
|
17
|
+
description: Minimum allowed value for this parameter
|
|
18
|
+
values: .*
|
|
19
|
+
- name: Maximum Value
|
|
20
|
+
required: true
|
|
21
|
+
description: Maximum allowed value for this parameter
|
|
22
|
+
values: .*
|
|
23
|
+
- name: ID Value
|
|
24
|
+
required: true
|
|
25
|
+
description: Identification value for this parameter. The binary data must
|
|
26
|
+
match this value for the buffer to be identified as this packet.
|
|
27
|
+
values: .*
|
|
28
|
+
- name: Description
|
|
29
|
+
required: false
|
|
30
|
+
description: Description for this parameter which must be enclosed with quotes
|
|
31
|
+
values: "['\"].*['\"]"
|
|
32
|
+
- name: Endianness
|
|
33
|
+
required: false
|
|
34
|
+
description: Indicates if the data in this command is to be sent in Big Endian or Little Endian format
|
|
35
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
36
|
+
UINT:
|
|
37
|
+
parameters: *params
|
|
38
|
+
FLOAT:
|
|
39
|
+
parameters: *params
|
|
40
|
+
DERVIED:
|
|
41
|
+
parameters: *params
|
|
42
|
+
STRING:
|
|
43
|
+
parameters: &sparams
|
|
44
|
+
- name: Default Value
|
|
45
|
+
required: true
|
|
46
|
+
description: Default value for this parameter. You must provide a default
|
|
47
|
+
but if you mark the parameter REQUIRED then scripts will be forced to specify a value.
|
|
48
|
+
values: .*
|
|
49
|
+
- name: Description
|
|
50
|
+
required: false
|
|
51
|
+
description: Description for this parameter which must be enclosed with quotes
|
|
52
|
+
values: "['\"].*['\"]"
|
|
53
|
+
- name: Endianness
|
|
54
|
+
required: false
|
|
55
|
+
description: Indicates if the data in this command is to be sent in Big Endian or Little Endian format
|
|
56
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
57
|
+
BLOCK:
|
|
58
|
+
parameters: *sparams
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
tcpip_client_interface.rb:
|
|
3
|
+
parameters:
|
|
4
|
+
- name: Host
|
|
5
|
+
required: true
|
|
6
|
+
description: Machine name to connect to. Can be either a named
|
|
7
|
+
machine (DNS entry) or IP address.
|
|
8
|
+
values: .+
|
|
9
|
+
- name: Write Port
|
|
10
|
+
required: true
|
|
11
|
+
description: Port which COSMOS writes commands to
|
|
12
|
+
values: \d{2,5}
|
|
13
|
+
- name: Read Port
|
|
14
|
+
required: true
|
|
15
|
+
description: Port which COSMOS reads telemetry from
|
|
16
|
+
values: \d{2,5}
|
|
17
|
+
- name: Write Timeout
|
|
18
|
+
required: true
|
|
19
|
+
description: Number of seconds to wait before aborting the write.
|
|
20
|
+
Pass 'nil' to block on write.
|
|
21
|
+
values: .+
|
|
22
|
+
- name: Read Timeout
|
|
23
|
+
required: true
|
|
24
|
+
description: Number of seconds to wait before aborting the read.
|
|
25
|
+
Pass 'nil' to block on read.
|
|
26
|
+
values: .+
|
|
27
|
+
- name: Protocol Type
|
|
28
|
+
required: true
|
|
29
|
+
description: Protocol to apply on the interface data
|
|
30
|
+
values:
|
|
31
|
+
<%= MetaConfigParser.load('protocols.yaml').to_meta_config_yaml(8) %>
|
|
32
|
+
tcpip_server_interface.rb:
|
|
33
|
+
parameters:
|
|
34
|
+
- name: Write Port
|
|
35
|
+
required: true
|
|
36
|
+
description: Port which COSMOS writes commands to
|
|
37
|
+
values: \d{2,5}
|
|
38
|
+
- name: Read Port
|
|
39
|
+
required: true
|
|
40
|
+
description: Port which COSMOS reads telemetry from
|
|
41
|
+
values: \d{2,5}
|
|
42
|
+
- name: Write Timeout
|
|
43
|
+
required: true
|
|
44
|
+
description: Number of seconds to wait before aborting the write.
|
|
45
|
+
Pass 'nil' to block on write.
|
|
46
|
+
values: .+
|
|
47
|
+
- name: Read Timeout
|
|
48
|
+
required: true
|
|
49
|
+
description: Number of seconds to wait before aborting the read.
|
|
50
|
+
Pass 'nil' to block on read.
|
|
51
|
+
values: .+
|
|
52
|
+
- name: Protocol Type
|
|
53
|
+
required: true
|
|
54
|
+
description: Protocol to apply on the interface data
|
|
55
|
+
values:
|
|
56
|
+
<%= MetaConfigParser.load('protocols.yaml').to_meta_config_yaml(8) %>
|
|
57
|
+
udp_interface.rb:
|
|
58
|
+
description: The UDP interface uses UDP packets to send and receive telemetry
|
|
59
|
+
from the target
|
|
60
|
+
parameters:
|
|
61
|
+
- name: Host
|
|
62
|
+
required: true
|
|
63
|
+
description: Machine name to connect to. Can be either a named
|
|
64
|
+
machine (DNS entry) or IP address.
|
|
65
|
+
values: .+
|
|
66
|
+
- name: Write Port
|
|
67
|
+
required: true
|
|
68
|
+
description: Port which COSMOS writes commands to
|
|
69
|
+
values: \d{2,5}
|
|
70
|
+
- name: Read Port
|
|
71
|
+
required: true
|
|
72
|
+
description: Port which COSMOS reads telemetry from
|
|
73
|
+
values: \d{2,5}
|
|
74
|
+
- name: Write Source Port
|
|
75
|
+
required: false
|
|
76
|
+
description: Port on the local machine to send commands from. Default is
|
|
77
|
+
'nil' (socket is not bound to an outgoing port).
|
|
78
|
+
values: \d{2,5}
|
|
79
|
+
- name: Inteface Address
|
|
80
|
+
required: false
|
|
81
|
+
description: If the remote machine supports multicast the interface address
|
|
82
|
+
is used to configure the outgoing multicast address
|
|
83
|
+
values: .+
|
|
84
|
+
- name: Time To Live
|
|
85
|
+
required: false
|
|
86
|
+
description: The number of intermediate routers allowed before dropping the packet
|
|
87
|
+
values: .+
|
|
88
|
+
- name: Write Timeout
|
|
89
|
+
required: false
|
|
90
|
+
description: Number of seconds to wait before aborting the write. Default is
|
|
91
|
+
'nil' (block on write).
|
|
92
|
+
values: .+
|
|
93
|
+
- name: Read Timeout
|
|
94
|
+
required: false
|
|
95
|
+
description: Number of seconds to wait before aborting the read. Default is
|
|
96
|
+
'nil' (block on read).
|
|
97
|
+
values: .+
|
|
98
|
+
serial_interface.rb:
|
|
99
|
+
description: Connects to a target over a serial port. COSMOS provides drivers
|
|
100
|
+
for both Windows and POSIX drivers for UNIX based systems.
|
|
101
|
+
parameters:
|
|
102
|
+
- name: Write Port
|
|
103
|
+
required: true
|
|
104
|
+
description: Name of the serial port to write, e.g. 'COM1' or '/dev/ttyS0'.
|
|
105
|
+
Pass 'nil' to disable writing.
|
|
106
|
+
values: \d{2,5}
|
|
107
|
+
- name: Read Port
|
|
108
|
+
required: true
|
|
109
|
+
description: Name of the serial port to read, e.g. 'COM1' or '/dev/ttyS0'.
|
|
110
|
+
Pass 'nil' to disable reading.
|
|
111
|
+
values: \d{2,5}
|
|
112
|
+
- name: Baud Rate
|
|
113
|
+
required: true
|
|
114
|
+
description: Baud rate to read and write
|
|
115
|
+
values: .+
|
|
116
|
+
- name: Parity
|
|
117
|
+
required: true
|
|
118
|
+
description: Serial port parity
|
|
119
|
+
values: ['NONE','EVENT','ODD']
|
|
120
|
+
- name: Stop Bits
|
|
121
|
+
required: true
|
|
122
|
+
description: Number of stop bits
|
|
123
|
+
values: .+
|
|
124
|
+
- name: Write Timeout
|
|
125
|
+
required: true
|
|
126
|
+
description: Number of seconds to wait before aborting the write.
|
|
127
|
+
Pass 'nil' to block on write.
|
|
128
|
+
values: .+
|
|
129
|
+
- name: Read Timeout
|
|
130
|
+
required: true
|
|
131
|
+
description: Number of seconds to wait before aborting the read.
|
|
132
|
+
Pass 'nil' to block on read.
|
|
133
|
+
values: .+
|
|
134
|
+
- name: Protocol Type
|
|
135
|
+
required: true
|
|
136
|
+
description: Protocol to apply on the interface data
|
|
137
|
+
values:
|
|
138
|
+
<%= MetaConfigParser.load('protocols.yaml').to_meta_config_yaml(8) %>
|
|
139
|
+
cmd_tlm_server_interface.rb:
|
|
140
|
+
description: Provides a connection to the COSMOS Command and Telemetry Server.
|
|
141
|
+
This allows scripts and other COSMOS tools to send commands to the CmdTlmServer
|
|
142
|
+
to enable and disable logging. It also allows scripts and other tools to
|
|
143
|
+
receive a COSMOS version information packet and a limits change packet which
|
|
144
|
+
is sent when any telemetry items change limits states. The CmdTlmServer
|
|
145
|
+
interface can be used by any COSMOS configuration.
|
|
146
|
+
linc_interface.rb:
|
|
147
|
+
description: The LINC interface uses a single TCPIP socket to talk to a Ball
|
|
148
|
+
Aerospace LINC Labview target.
|
|
149
|
+
parameters:
|
|
150
|
+
- name: Host
|
|
151
|
+
required: true
|
|
152
|
+
description: Machine name to connect to. Can be either a named
|
|
153
|
+
machine (DNS entry) or IP address.
|
|
154
|
+
values: .+
|
|
155
|
+
- name: Port
|
|
156
|
+
required: true
|
|
157
|
+
description: Port to write commands to and read telemetry from
|
|
158
|
+
values: \d{2,5}
|
|
159
|
+
- name: Handshake Enabled
|
|
160
|
+
required: false
|
|
161
|
+
description: Enable command handshaking where commands block until the
|
|
162
|
+
corresponding handshake message is received. Default is true.
|
|
163
|
+
values: ['true','false']
|
|
164
|
+
- name: Response Timeout
|
|
165
|
+
required: false
|
|
166
|
+
description: Number of seconds to wait for a handshaking response.
|
|
167
|
+
Default is 5 seconds
|
|
168
|
+
values: \d+
|
|
169
|
+
- name: Read Timeout
|
|
170
|
+
required: true
|
|
171
|
+
description: Number of seconds to wait before aborting the read.
|
|
172
|
+
Pass 'nil' to block on read. Default is nil.
|
|
173
|
+
values: .+
|
|
174
|
+
- name: Write Timeout
|
|
175
|
+
required: true
|
|
176
|
+
description: Number of seconds to wait before aborting the write.
|
|
177
|
+
Pass 'nil' to block on write. Default is 5 seconds.
|
|
178
|
+
values: .+
|
|
179
|
+
- name: Length Bit Offset
|
|
180
|
+
required: false
|
|
181
|
+
description: The bit offset of the length field. Every packet using this
|
|
182
|
+
interface must have the same structure such that the length field is the
|
|
183
|
+
same size at the same location. Default is 0.
|
|
184
|
+
values: \d+
|
|
185
|
+
- name: Length Bit Size
|
|
186
|
+
required: false
|
|
187
|
+
description: The size in bits of the length field. Default is 16 bits.
|
|
188
|
+
values: \d+
|
|
189
|
+
- name: Length Value Offset
|
|
190
|
+
required: false
|
|
191
|
+
description: The offset to apply to the length field value. For example if
|
|
192
|
+
the length field indicates packet length minus one, this value should be one.
|
|
193
|
+
Default is 4.
|
|
194
|
+
values: \d+
|
|
195
|
+
- name: GUID Fieldname
|
|
196
|
+
required: false
|
|
197
|
+
description: Fieldname of the GUID field. Default is 'HDR_GUID'.
|
|
198
|
+
values: .+
|
|
199
|
+
- name: Length Endianness
|
|
200
|
+
required: false
|
|
201
|
+
description: The endianness of the length field. Default is BIG_ENDIAN.
|
|
202
|
+
values: ['BIG_ENDIAN','LITTLE_ENDIAN']
|
|
203
|
+
- name: Length Fieldname
|
|
204
|
+
required: false
|
|
205
|
+
description: Fieldname of the length field. Defaults is 'HDR_LENGTH'.
|
|
206
|
+
values: .+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
- name: Bit Size
|
|
3
|
+
required: true
|
|
4
|
+
description: Bit size of this telemetry item. Zero or Negative values may be used
|
|
5
|
+
to indicate that a string fills the packet up to the offset from the end of
|
|
6
|
+
the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then
|
|
7
|
+
this is a derived parameter and the Data Type must be set to 'DERIVED'.
|
|
8
|
+
values: \d+
|
|
9
|
+
- name: Data Type
|
|
10
|
+
required: true
|
|
11
|
+
description: Data Type of this telemetry item
|
|
12
|
+
values: <%= %w(INT UINT FLOAT STRING BLOCK DERVIED) %>
|
|
13
|
+
- name: Description
|
|
14
|
+
required: false
|
|
15
|
+
description: Description for this telemetry item which must be enclosed with quotes
|
|
16
|
+
values: "['\"].*['\"]"
|
|
17
|
+
- name: Endianness
|
|
18
|
+
required: false
|
|
19
|
+
description: Indicates if the item is to be interpreted in Big Endian or Little Endian format
|
|
20
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
- name: Bit Size
|
|
3
|
+
required: true
|
|
4
|
+
description: Bit size of this parameter. Zero or Negative values may be used
|
|
5
|
+
to indicate that a string fills the packet up to the offset from the end of
|
|
6
|
+
the packet specified by this value. If Bit Offset is 0 and Bit Size is 0 then
|
|
7
|
+
this is a derived parameter and the Data Type must be set to 'DERIVED'.
|
|
8
|
+
values: \d+
|
|
9
|
+
- name: Data Type
|
|
10
|
+
required: true
|
|
11
|
+
description: Data Type of this parameter
|
|
12
|
+
values:
|
|
13
|
+
INT:
|
|
14
|
+
parameters: ¶ms
|
|
15
|
+
- name: Minimum Value
|
|
16
|
+
required: true
|
|
17
|
+
description: Minimum allowed value for this parameter
|
|
18
|
+
values: .*
|
|
19
|
+
- name: Maximum Value
|
|
20
|
+
required: true
|
|
21
|
+
description: Maximum allowed value for this parameter
|
|
22
|
+
values: .*
|
|
23
|
+
- name: Default Value
|
|
24
|
+
required: true
|
|
25
|
+
description: Default value for this parameter. You must provide a default
|
|
26
|
+
but if you mark the parameter REQUIRED then scripts will be forced to specify a value.
|
|
27
|
+
values: .*
|
|
28
|
+
- name: Description
|
|
29
|
+
required: false
|
|
30
|
+
description: Description for this parameter which must be enclosed with quotes
|
|
31
|
+
values: "['\"].*['\"]"
|
|
32
|
+
- name: Endianness
|
|
33
|
+
required: false
|
|
34
|
+
description: Indicates if the data in this command is to be sent in Big Endian or Little Endian format
|
|
35
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
36
|
+
UINT:
|
|
37
|
+
parameters: *params
|
|
38
|
+
FLOAT:
|
|
39
|
+
parameters: *params
|
|
40
|
+
DERVIED:
|
|
41
|
+
parameters: *params
|
|
42
|
+
STRING:
|
|
43
|
+
parameters: &sparams
|
|
44
|
+
- name: Default Value
|
|
45
|
+
required: true
|
|
46
|
+
description: Default value for this parameter. You must provide a default
|
|
47
|
+
but if you mark the parameter REQUIRED then scripts will be forced to specify a value.
|
|
48
|
+
values: .*
|
|
49
|
+
- name: Description
|
|
50
|
+
required: false
|
|
51
|
+
description: Description for this parameter which must be enclosed with quotes
|
|
52
|
+
values: "['\"].*['\"]"
|
|
53
|
+
- name: Endianness
|
|
54
|
+
required: false
|
|
55
|
+
description: Indicates if the data in this command is to be sent in Big Endian or Little Endian format
|
|
56
|
+
values: <%= %w(BIG_ENDIAN LITTLE_ENDIAN) %>
|
|
57
|
+
BLOCK:
|
|
58
|
+
parameters: *sparams
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
TITLE:
|
|
3
|
+
summary: Sets the Command and Telemetry Server window title
|
|
4
|
+
parameters:
|
|
5
|
+
- name: Text
|
|
6
|
+
required: true
|
|
7
|
+
description: Text to put in the title of the Command and Telemetry Server window
|
|
8
|
+
values: .+
|
|
9
|
+
PACKET_LOG_WRITER:
|
|
10
|
+
summary: Declare a packet log writer
|
|
11
|
+
description: Packet log writer is used to declare a packet log writer class and
|
|
12
|
+
give it a name which can be referenced by an interface. This is required if you
|
|
13
|
+
want interfaces to have their own dedicated log writers or want to combine
|
|
14
|
+
various interfaces into a single log file. By default, COSMOS logs all data
|
|
15
|
+
on all interfaces into a single command log and a single telemetry log.
|
|
16
|
+
This keyword can also be used if you want to declare a different log file class
|
|
17
|
+
to create log files.
|
|
18
|
+
warning: You should NOT override the default without consulting a COSMOS expert
|
|
19
|
+
as this may break the ability to successfully read and write log files.
|
|
20
|
+
parameters:
|
|
21
|
+
- name: Log Writer Name
|
|
22
|
+
required: true
|
|
23
|
+
description: The name of the log writer as reference by other cmd_tlm_server keywords.
|
|
24
|
+
This name also appears in the Logging tab on the Command and Telemetry Server.
|
|
25
|
+
values: .+
|
|
26
|
+
- name: Filename
|
|
27
|
+
required: true
|
|
28
|
+
description: Ruby file to use when instantiating a new log writer
|
|
29
|
+
values: '.+\.rb'
|
|
30
|
+
- name: Parameters
|
|
31
|
+
required: false
|
|
32
|
+
description: Optional parameters to pass to the log writer class when instantiating it.
|
|
33
|
+
AUTO_INTERFACE_TARGETS:
|
|
34
|
+
summary: Automatically use each target's cmd_tlm_server.txt file to define the interface
|
|
35
|
+
description: Look for a cmd_tlm_server.txt file at the top level
|
|
36
|
+
of each target directory and use this file to configure the interface for that target.
|
|
37
|
+
This is a good way of keeping the knowledge of how to interface to a target
|
|
38
|
+
within that target. However, if you use substitute target names (by using DECLARE_TARGET)
|
|
39
|
+
or use different IP addresses then this will not work and you'll have to use the
|
|
40
|
+
INTERFACE_TARGET or INTERFACE keyword.
|
|
41
|
+
INTERFACE_TARGET:
|
|
42
|
+
summary: Load the specified target's cmd_tlm_server.txt configuration file
|
|
43
|
+
parameters:
|
|
44
|
+
- name: Target Name
|
|
45
|
+
required: true
|
|
46
|
+
description: Name of the target
|
|
47
|
+
values: <%= System.targets.keys %>
|
|
48
|
+
- name: Configuration File
|
|
49
|
+
required: false
|
|
50
|
+
description: Configuration file name which contains the interface configuration.
|
|
51
|
+
Defaults to 'cmd_tlm_server.txt'.
|
|
52
|
+
values: .+
|
|
53
|
+
INTERFACE:
|
|
54
|
+
modifiers:
|
|
55
|
+
<%= MetaConfigParser.load('interface_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
56
|
+
summary: Defines a connection to a physical target
|
|
57
|
+
description: Interfaces are what COSMOS uses to talk to a particular piece
|
|
58
|
+
of hardware. Interfaces require a Ruby file which implements all the interface
|
|
59
|
+
methods necessary to talk to the hardware. COSMOS defines many built in interfaces
|
|
60
|
+
or you can define your own as long as it implements the interface protocol.
|
|
61
|
+
parameters:
|
|
62
|
+
- name: Interface Name
|
|
63
|
+
required: true
|
|
64
|
+
description: Name of the interface. This name will appear in the
|
|
65
|
+
Interfaces tab of the Server and is also referenced by other keywords.
|
|
66
|
+
The COSMOS convention is to name interfaces after their targets with
|
|
67
|
+
'_INT' appended to the name, e.g. INST_INT for the INST target.
|
|
68
|
+
values: \D\S*
|
|
69
|
+
- name: Filename
|
|
70
|
+
required: true
|
|
71
|
+
description: Ruby file to use when instantiating the interface.
|
|
72
|
+
values:
|
|
73
|
+
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
|
|
74
|
+
ROUTER:
|
|
75
|
+
modifiers:
|
|
76
|
+
<%= MetaConfigParser.load('interface_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
77
|
+
summary: Create an interface which reverses cmd/tlm data
|
|
78
|
+
description: Router creates an interface which receives command packets from
|
|
79
|
+
their remote targets and send them out their interfaces. They receive telemetry
|
|
80
|
+
packets from their interfaces and send them to their remote targets. This allows
|
|
81
|
+
routers to be intermediaries between an external client and an actual device.
|
|
82
|
+
parameters:
|
|
83
|
+
- name: Name
|
|
84
|
+
required: true
|
|
85
|
+
description: Name of the router
|
|
86
|
+
values: .+
|
|
87
|
+
- name: Filename
|
|
88
|
+
required: true
|
|
89
|
+
description: Ruby file to use when instantiating the interface.
|
|
90
|
+
values:
|
|
91
|
+
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
|
|
92
|
+
COLLECT_METADATA:
|
|
93
|
+
summary: Prompts the user for meta data when starting the Command and Telemetry Server
|
|
94
|
+
BACKGROUND_TASK:
|
|
95
|
+
summary: Create a background task in the Command and Telemetry Server
|
|
96
|
+
description: The Server instantiates the class which must inherit from BackgroundTask
|
|
97
|
+
and then calls the call() method which the class must implement. The call() method
|
|
98
|
+
is only called once so if your background task is supposed to live on while the
|
|
99
|
+
Server is running, you must implement your code in a loop with a sleep to not
|
|
100
|
+
use all the CPU.
|
|
101
|
+
parameters:
|
|
102
|
+
- name: Filename
|
|
103
|
+
required: true
|
|
104
|
+
description: Ruby file which contains the background task implementation.
|
|
105
|
+
Must inherit from BackgroundTask and implement the call method.
|
|
106
|
+
values: '.+\.rb'
|
|
107
|
+
- name: Optional Arguments
|
|
108
|
+
required: false
|
|
109
|
+
description: Optional arguments to the background task constructor
|
|
110
|
+
values: .+
|