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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
LINE_DELAY:
|
|
3
|
+
summary: Sets the amount of time in seconds before the next line of a script will be executed
|
|
4
|
+
parameters:
|
|
5
|
+
- name: Delay
|
|
6
|
+
required: true
|
|
7
|
+
description: Delay in seconds before the next line is executed. A value of
|
|
8
|
+
0 means to execute the scripts as fast as possible.
|
|
9
|
+
values: '[0-9]*\.?[0-9]+'
|
|
10
|
+
MONITOR_LIMITS:
|
|
11
|
+
summary: Log limits events to the Script Runner log file while a script is running
|
|
12
|
+
description: Limits events are always logged by the Command and Telemetry Server
|
|
13
|
+
but are not put in the Script Runner log without this keyword.
|
|
14
|
+
PAUSE_ON_RED:
|
|
15
|
+
summary: Pause a running script if a red limit occurs
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
AUTO_DECLARE_TARGETS:
|
|
3
|
+
summary: Automatically load all the target folders under config/targets into the system
|
|
4
|
+
description: When automatically discovering target folders the COSMOS naming convention
|
|
5
|
+
must be followed. Target folders must be uppercase and be named according to how
|
|
6
|
+
COSMOS will access them. For example, if you create a config/targets/INST directory,
|
|
7
|
+
COSMOS will create a target named 'INST' which is how it will be referenced.
|
|
8
|
+
This keyword is REQUIRED unless you individually declare your targets using the
|
|
9
|
+
DECLARE_TARGET keyword.
|
|
10
|
+
DECLARE_TARGET:
|
|
11
|
+
summary: Declare a COSMOS target and name it
|
|
12
|
+
description: Declare target is used in place of AUTO_DECLARE_TARGETS to give more
|
|
13
|
+
fine grained control over how the target folder is loaded and named within COSMOS.
|
|
14
|
+
This is required if AUTO_DECLARE_TARGET is not present.
|
|
15
|
+
parameters:
|
|
16
|
+
- name: Target Name
|
|
17
|
+
required: true
|
|
18
|
+
description: The directory name which contains the target information.
|
|
19
|
+
This must match a directory under config/targets.
|
|
20
|
+
values: <%= System.targets.keys %>
|
|
21
|
+
- name: Substitute Target Name
|
|
22
|
+
required: false
|
|
23
|
+
description: The target name in the COSMOS system. This is how the target
|
|
24
|
+
will be referred to in scripts. If this is not given (or given as nil)
|
|
25
|
+
the target name will be the directory name given above.
|
|
26
|
+
- name: Target Filename
|
|
27
|
+
required: false
|
|
28
|
+
description: The name of the file in the target directory which contains the
|
|
29
|
+
configuration information for the target. By default this is 'target.txt'
|
|
30
|
+
but if you want to rename this you need to set this parameter.
|
|
31
|
+
PORT:
|
|
32
|
+
summary: Set a Server Port
|
|
33
|
+
description: Port is used to set the default ports used by the Command and Telemetry Server.
|
|
34
|
+
It is not necessary to set this option unless you wish to override the defaults
|
|
35
|
+
(given in the example usage). Overriding ports is necessary if you want to run
|
|
36
|
+
two Command and Telemetry Servers on the same computer simultaneously.
|
|
37
|
+
parameters:
|
|
38
|
+
- name: Port Name
|
|
39
|
+
required: true
|
|
40
|
+
description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
|
|
41
|
+
TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer.
|
|
42
|
+
CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets
|
|
43
|
+
in the system. This is currently used by Telemetry Grapher and can be used to chain Command
|
|
44
|
+
and Telemetry Servers together.
|
|
45
|
+
values: <%= %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED) %>
|
|
46
|
+
- name: Port Value
|
|
47
|
+
required: true
|
|
48
|
+
description: Port number to use for the specified port name
|
|
49
|
+
values: '\d{2,}'
|
|
50
|
+
PATH:
|
|
51
|
+
summary: Set a Server Path
|
|
52
|
+
description: Path is used to set the default paths used by the Command and Telemetry Server
|
|
53
|
+
to access or create files. It is not necessary to set this option unless you wish to
|
|
54
|
+
override the defaults (given in the example usage).
|
|
55
|
+
warning: The PROCEDURES path must be set for Script Runner and Test Runner to locate your
|
|
56
|
+
procedure files. You can add multiple 'PATH PROCEDURES' lines to your configuration file
|
|
57
|
+
to set multiple locations.
|
|
58
|
+
parameters:
|
|
59
|
+
- name: Path Name
|
|
60
|
+
required: true
|
|
61
|
+
description: Path name to set.
|
|
62
|
+
values: <%= %w(LOGS TMP SAVED_CONFIG TABLES PROCEDURES HANDBOOK) %>
|
|
63
|
+
- name: Path Value
|
|
64
|
+
required: true
|
|
65
|
+
description: File system path to use for the specified path name
|
|
66
|
+
values: .+
|
|
67
|
+
DEFAULT_PACKET_LOG_WRITER:
|
|
68
|
+
summary: Set the class used when creating binary packet log files
|
|
69
|
+
warning: Overriding the default log writer can break the ability to write log
|
|
70
|
+
files that COSMOS can interpret. Proceed with caution!
|
|
71
|
+
parameters:
|
|
72
|
+
- name: Filename
|
|
73
|
+
required: true
|
|
74
|
+
description: Ruby file to use when instantiating a new log writer
|
|
75
|
+
values: '.+\.rb'
|
|
76
|
+
- name: parameter
|
|
77
|
+
required: false
|
|
78
|
+
description: Parameters which are passed to the log read upon initialization
|
|
79
|
+
values: .*
|
|
80
|
+
since: 4.0.0
|
|
81
|
+
DEFAULT_PACKET_LOG_READER:
|
|
82
|
+
summary: Set the class used when reading binary packet log file
|
|
83
|
+
warning: Overriding the default log read can break the ability to read log
|
|
84
|
+
files. Proceed with caution!
|
|
85
|
+
parameters:
|
|
86
|
+
- name: Filename
|
|
87
|
+
required: true
|
|
88
|
+
description: Ruby file to use when instantiating a new log writer
|
|
89
|
+
values: '.+\.rb'
|
|
90
|
+
- name: parameter
|
|
91
|
+
required: false
|
|
92
|
+
description: Parameters which are passed to the log read upon initialization
|
|
93
|
+
values: .*
|
|
94
|
+
since: 4.0.0
|
|
95
|
+
STALENESS_SECONDS:
|
|
96
|
+
summary: Number of seconds before marking the packet stale
|
|
97
|
+
description: A stale packet is identified in telemetry screens by all the telemetry
|
|
98
|
+
items in the stale packet being colored purple..
|
|
99
|
+
parameters:
|
|
100
|
+
- name: Seconds
|
|
101
|
+
required: true
|
|
102
|
+
description: Integer number of seconds before packets are marked stale
|
|
103
|
+
values: '\d+'
|
|
104
|
+
ENABLE_DNS:
|
|
105
|
+
summary: Enable reverse DNS lookups for tools
|
|
106
|
+
description: Enables reverse DNS lookups when tools connect to the Command and
|
|
107
|
+
Telemetry Server's pre-identified socket or to any target using the TCPIP Server
|
|
108
|
+
Interface. As of COSMOS 3.5.0 the default is to not use DNS.
|
|
109
|
+
since: 3.5.0
|
|
110
|
+
DISABLE_DNS:
|
|
111
|
+
summary: Disable reverse DNS lookups for tools
|
|
112
|
+
description: Disable reverse DNS lookups when tools connect to the Command and
|
|
113
|
+
Telemetry Server's pre-identified socket or to any target using the TCPIP Server
|
|
114
|
+
Interface. This is useful when you are in an environment where DNS is not available.
|
|
115
|
+
As of COSMOS 3.5.0 the default is to not use DNS
|
|
116
|
+
ENABLE_SOUND:
|
|
117
|
+
summary: Enable audible sounds when popups occur
|
|
118
|
+
description: Enable sound makes any prompts that occur in ScriptRunner/TestRunner
|
|
119
|
+
make an audible sound when they popup to alert the operator of needed input.
|
|
120
|
+
since: 3.5.0
|
|
121
|
+
ALLOW_ACCESS:
|
|
122
|
+
summary: White list machines that are allowed to connect to the Server
|
|
123
|
+
parameters:
|
|
124
|
+
- name: Name or IP Address
|
|
125
|
+
required: true
|
|
126
|
+
description: Machine name to allow access or you can specify 'ALL' to allow
|
|
127
|
+
all machines access
|
|
128
|
+
values: .+
|
|
129
|
+
TIME_ZONE_UTC:
|
|
130
|
+
summary: Report all times as UTC
|
|
131
|
+
description: COSMOS will report all times as UTC time. If this keyword is not used,
|
|
132
|
+
COSMOS will report all times as local times, where the local time zone is determined
|
|
133
|
+
automatically by Ruby based upon the operating system time settings. This setting
|
|
134
|
+
affects packet receive times, timestamped log filenames, message logs,
|
|
135
|
+
Cmd/Tlm extractor time ranges, etc.
|
|
136
|
+
since: 3.10.0
|
|
137
|
+
ADD_MD5_FILE:
|
|
138
|
+
summary: Add a file to the MD5 sum calculation
|
|
139
|
+
description: Adds a file to the set of files used in marshal file MD5 sum calculation.
|
|
140
|
+
Upon startup, COSMOS calculates an MD5 sum over the command/telemetry definition files
|
|
141
|
+
for all targets. After the definitions have been processed, COSMOS saves the resulting
|
|
142
|
+
objects as marshal files in a folder with the MD5 sum as part of the name.
|
|
143
|
+
The next time COSMOS runs, if the MD5 checksum of the cmd/tlm definition files
|
|
144
|
+
has not changed, COSMOS can load the marshal files instead of re-processing the definitions.
|
|
145
|
+
If a file is specified with the ADD_MD5_FILE keyword, COSMOS will include it in the
|
|
146
|
+
MD5 sum calculation. This means that a change in the file will cause COSMOS to
|
|
147
|
+
re-process the cmd/tlm defintions and create a new set of marshal files.
|
|
148
|
+
since: 4.0.0
|
|
149
|
+
parameters:
|
|
150
|
+
- name: Filename
|
|
151
|
+
required: true
|
|
152
|
+
description: Filename, either fully qualified, or relative to Cosmos::USERPATH
|
|
153
|
+
values: '.+\.rb'
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
TABLEFILE:
|
|
3
|
+
summary: Specify another file to open and process for table definitions
|
|
4
|
+
parameters:
|
|
5
|
+
- name: File Name
|
|
6
|
+
required: true
|
|
7
|
+
description: Name of the file. The file will be looked for in the directory
|
|
8
|
+
of the current definition file.
|
|
9
|
+
values: '.+\.txt'
|
|
10
|
+
TABLE:
|
|
11
|
+
modifiers:
|
|
12
|
+
PARAMETER:
|
|
13
|
+
modifiers:
|
|
14
|
+
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(8) %>
|
|
15
|
+
<%= MetaConfigParser.load('table_parameter_modifiers.yaml').to_meta_config_yaml(8) %>
|
|
16
|
+
summary: Defines a parameter in the current table
|
|
17
|
+
parameters:
|
|
18
|
+
- name: Name
|
|
19
|
+
required: true
|
|
20
|
+
description: Name of the parameter. Must be unique within the table.
|
|
21
|
+
values: '\D\S*'
|
|
22
|
+
- name: Bit Offset
|
|
23
|
+
required: true
|
|
24
|
+
description: Bit offset into the table of the Most Significant Bit of this parameter.
|
|
25
|
+
May be negative to indicate on offset from the end of the table.
|
|
26
|
+
Always use a bit offset of 0 for derived parameters.
|
|
27
|
+
values: '[-]?\d+'
|
|
28
|
+
<%= MetaConfigParser.load('_params.yaml').to_meta_config_yaml(8) %>
|
|
29
|
+
APPEND_PARAMETER:
|
|
30
|
+
modifiers:
|
|
31
|
+
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(8) %>
|
|
32
|
+
<%= MetaConfigParser.load('table_parameter_modifiers.yaml').to_meta_config_yaml(8) %>
|
|
33
|
+
summary: Defines a parameter in the current table
|
|
34
|
+
parameters:
|
|
35
|
+
- name: Name
|
|
36
|
+
required: true
|
|
37
|
+
description: Name of the parameter. Must be unique within the table.
|
|
38
|
+
values: .+
|
|
39
|
+
<%= MetaConfigParser.load('_params.yaml').to_meta_config_yaml(8) %>
|
|
40
|
+
summary: Start a new table definition
|
|
41
|
+
parameters:
|
|
42
|
+
- name: Name
|
|
43
|
+
required: true
|
|
44
|
+
description: Name of the table in quotes. The name will appear on the GUI tab.
|
|
45
|
+
values: "['\"].*['\"]"
|
|
46
|
+
- name: Endianness
|
|
47
|
+
required: true
|
|
48
|
+
description: Indicates if the data in this table is in Big Endian or Little Endian format
|
|
49
|
+
values: ['BIG_ENDIAN', 'LITTLE_ENDIAN']
|
|
50
|
+
- name: Display
|
|
51
|
+
requires: true
|
|
52
|
+
description: Indicates the table is a ONE_DIMENSIONAL table which is a two
|
|
53
|
+
column table consisting of unique rows, or a TWO_DIMENSIONAL table with
|
|
54
|
+
multiple columns and identical rows with unique values
|
|
55
|
+
values:
|
|
56
|
+
ONE_DIMENSIONAL:
|
|
57
|
+
summary: Declare a key value two column table with unique rows
|
|
58
|
+
parameters:
|
|
59
|
+
- name: Description
|
|
60
|
+
requires: true
|
|
61
|
+
description: Description of the table in quotes. The description is
|
|
62
|
+
used in mouseover popups and status line information.
|
|
63
|
+
values: "['\"].*['\"]"
|
|
64
|
+
TWO_DIMENSIONAL:
|
|
65
|
+
summary: Declare a table with multiple columns and identical rows with
|
|
66
|
+
unique values
|
|
67
|
+
parameters:
|
|
68
|
+
- name: Rows
|
|
69
|
+
requires: true
|
|
70
|
+
description: The number of rows in the table
|
|
71
|
+
values: \d+
|
|
72
|
+
- name: Description
|
|
73
|
+
requires: true
|
|
74
|
+
description: Description of the table in quotes. The description is
|
|
75
|
+
used in mouseover popups and status line information.
|
|
76
|
+
values: "['\"].*['\"]"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
HIDDEN:
|
|
3
|
+
summary: Indicates that the parameter should not be shown to the user in the Table Manager GUI
|
|
4
|
+
description: Hidden parameters still exist and will be saved to the resulting
|
|
5
|
+
binary. This is useful for padding and other essential but non-user editable fields.
|
|
6
|
+
UNEDITABLE:
|
|
7
|
+
summary: Indicates that the parameter should be shown to the user but not editable.
|
|
8
|
+
description: Uneditable parameters are useful for control fields which the user
|
|
9
|
+
may be interested in but should not be able to edit.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
REQUIRE:
|
|
3
|
+
summary: Requires a Ruby file
|
|
4
|
+
description: Ruby files must be required to be available to call in other code.
|
|
5
|
+
Files are first required from the target's lib folder. If no file is found the
|
|
6
|
+
Ruby system path is checked which includes the base COSMOS/lib folder.
|
|
7
|
+
parameters:
|
|
8
|
+
- name: Filename
|
|
9
|
+
required: true
|
|
10
|
+
description: Filename to require. For files in the target's lib directory
|
|
11
|
+
simply supply the filename, e.g. "REQUIRE my_file". Files in the base COSMOS
|
|
12
|
+
lib directory also should just list the filename. If a file is in a folder
|
|
13
|
+
under the lib directory then you must specify the folder name, e.g. "REQUIRE
|
|
14
|
+
folder/my_file". The filename can also be an absolute path but this is not
|
|
15
|
+
common. Note the ".rb" extension is optional when specifying the filename.
|
|
16
|
+
values: .+
|
|
17
|
+
IGNORE_PARAMETER:
|
|
18
|
+
summary: Ignore the given command parameter
|
|
19
|
+
description: Hint to other COSMOS tools to hide or ignore this command parameter
|
|
20
|
+
when processing the command. For example, Command Sender and Command Sequence
|
|
21
|
+
will not display the parameter (by default) when showing the command and Script
|
|
22
|
+
Runner code completion will not display the parameter.
|
|
23
|
+
parameters:
|
|
24
|
+
- name: Parameter Name
|
|
25
|
+
required: true
|
|
26
|
+
description: The name of a command parameter. Note that this parameter will
|
|
27
|
+
be ignored in ALL the commands it appears in.
|
|
28
|
+
values: .+
|
|
29
|
+
IGNORE_ITEM:
|
|
30
|
+
summary: Ignore the given telemetry item
|
|
31
|
+
description: Hint to other COSMOS tools to hide or ignore this telemetry item
|
|
32
|
+
when processing the telemetry. For example, Packet Viewer will not display the
|
|
33
|
+
item (by default) when showing the packet.
|
|
34
|
+
parameters:
|
|
35
|
+
- name: Item name
|
|
36
|
+
required: true
|
|
37
|
+
description: The name of a telemetry item. Note that this item will be ignored
|
|
38
|
+
in ALL the telemetry it appears in.
|
|
39
|
+
values: .+
|
|
40
|
+
COMMANDS:
|
|
41
|
+
summary: Process the given command definition file
|
|
42
|
+
description: This keyword is used to explicitly add the command definition file
|
|
43
|
+
to the list of command and telemetry files to process.
|
|
44
|
+
warning: Usage of this keyword overrides automatic command and telemetry file
|
|
45
|
+
discovery. If this keyword is used, you must also use the TELEMETRY keyword
|
|
46
|
+
to specify the telemetry files to process.
|
|
47
|
+
parameters:
|
|
48
|
+
- name: Filename
|
|
49
|
+
required: true
|
|
50
|
+
description: Name of a command definition file in the target's cmd_tlm directory, e.g. "cmd.txt".
|
|
51
|
+
values: '.*\.txt'
|
|
52
|
+
TELEMETRY:
|
|
53
|
+
summary: Process the given telemetry definition file
|
|
54
|
+
description: This keyword is used to explicitly add the telemetry definition
|
|
55
|
+
file to the list of command and telemetry files to process.
|
|
56
|
+
warning: Usage of this keyword overrides automatic command and telemetry file
|
|
57
|
+
discovery. If this keyword is used, you must also use the COMMAND keyword to
|
|
58
|
+
specify the command files to process.
|
|
59
|
+
parameters:
|
|
60
|
+
- name: Filename
|
|
61
|
+
required: true
|
|
62
|
+
description: Name of a telemetry definition file in the target's cmd_tlm
|
|
63
|
+
directory, e.g. "tlm.txt".
|
|
64
|
+
values: '.*\.txt'
|
|
65
|
+
AUTO_SCREEN_SUBSTITUTE:
|
|
66
|
+
summary: Automatically substitute the target's name in screen definitions
|
|
67
|
+
description: Targets can be renamed when they are declared which would break
|
|
68
|
+
any screen definitions using the explicit target name. This keyword automatically
|
|
69
|
+
replaces the target name in the screen definitions with the actual target name.
|
|
70
|
+
warning: Replaces ALL target names in a screen definition file, so this is not
|
|
71
|
+
suitable for screens with multiple targets.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
TELEMETRY:
|
|
3
|
+
modifiers:
|
|
4
|
+
<%= MetaConfigParser.load('telemetry_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
5
|
+
summary: Defines a new telemetry packet
|
|
6
|
+
parameters:
|
|
7
|
+
- name: Target
|
|
8
|
+
required: true
|
|
9
|
+
description: Name of the target this telemetry packet is associated with
|
|
10
|
+
values: <%= System.targets.keys %>
|
|
11
|
+
- name: Command
|
|
12
|
+
required: true
|
|
13
|
+
description: Name of this telemetry packet. Also referred to as its mnemonic.
|
|
14
|
+
Must be unique to telemetry packets in this target. Ideally will be as short and clear as possible.
|
|
15
|
+
values: \D\S*
|
|
16
|
+
- name: Endianness
|
|
17
|
+
required: true
|
|
18
|
+
description: Indicates if the data in this packet is in Big Endian or Little Endian format
|
|
19
|
+
values: ['BIG_ENDIAN', 'LITTLE_ENDIAN']
|
|
20
|
+
- name: Description
|
|
21
|
+
required: false
|
|
22
|
+
description: Description of this telemetry packet which must be enclosed with quotes
|
|
23
|
+
values: "['\"].*['\"]"
|
|
24
|
+
SELECT_TELEMETRY:
|
|
25
|
+
modifiers:
|
|
26
|
+
<%= MetaConfigParser.load('telemetry_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
27
|
+
summary: Selects an existing telemetry packet for editing
|
|
28
|
+
description: Typically used in a separate configuration file from where the original
|
|
29
|
+
telemetry is defined to override or add to the existing telemetry definition
|
|
30
|
+
parameters:
|
|
31
|
+
- name: Target Name
|
|
32
|
+
required: true
|
|
33
|
+
description: Name of the target this telemetry packet is associated with
|
|
34
|
+
values: <%= System.targets.keys %>
|
|
35
|
+
- name: Command Name
|
|
36
|
+
required: true
|
|
37
|
+
description: Name of the telemetry packet to select
|
|
38
|
+
values: .+
|
|
39
|
+
LIMITS_GROUP:
|
|
40
|
+
summary: Defines a group of related limits Items
|
|
41
|
+
description: Limits groups contain telemetry items that can be enabled and disabled together.
|
|
42
|
+
It can be used to group related limits as a subsystem that can be enabled or disabled
|
|
43
|
+
as that particular subsystem is powered (for example). To enable a group call the
|
|
44
|
+
enable_limits_group("NAME") method in Script Runner. To disable a group call the
|
|
45
|
+
disable_limits_group("NAME") in Script Runner. Items can belong to multiple groups
|
|
46
|
+
but the last enabled or disabled group "wins". For example, if an item belongs to
|
|
47
|
+
GROUP1 and GROUP2 and you first enable GROUP1 and then disable GROUP2 the item will
|
|
48
|
+
be disabled. If you then enable GROUP1 again it will be enabled.
|
|
49
|
+
parameters:
|
|
50
|
+
- name: Group Name
|
|
51
|
+
required: true
|
|
52
|
+
description: Name of the limits group
|
|
53
|
+
values: .+
|
|
54
|
+
LIMITS_GROUP_ITEM:
|
|
55
|
+
summary: Adds the specified telemetry item to the last defined LIMITS_GROUP
|
|
56
|
+
description: Limits group information is typically kept in a separate configuration
|
|
57
|
+
file in the config/TARGET/cmd_tlm folder named limits_groups.txt. If you want to
|
|
58
|
+
configure multiple target items in a particular group you should put this information
|
|
59
|
+
in the config/SYSTEM/cmd_tlm/limits_groups.txt file. The SYSTEM target is processed
|
|
60
|
+
last and contains information that crosses target boundaries.
|
|
61
|
+
parameters:
|
|
62
|
+
- name: Target Name
|
|
63
|
+
required: true
|
|
64
|
+
description: Name of the target
|
|
65
|
+
values: <%= System.targets.keys %>
|
|
66
|
+
- name: Packet Name
|
|
67
|
+
required: true
|
|
68
|
+
description: Name of the packet
|
|
69
|
+
values: .+
|
|
70
|
+
- name: Item Name
|
|
71
|
+
required: true
|
|
72
|
+
description: Name of the telemetry item to add to the group
|
|
73
|
+
values: .+
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
ITEM:
|
|
3
|
+
modifiers:
|
|
4
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
5
|
+
summary: Defines a telemetry item in the current telemetry packet
|
|
6
|
+
parameters:
|
|
7
|
+
- name: Name
|
|
8
|
+
required: true
|
|
9
|
+
description: Name of the telemety item. Must be unique within the packet.
|
|
10
|
+
values: '\D\S*'
|
|
11
|
+
- name: Bit Offset
|
|
12
|
+
required: true
|
|
13
|
+
description: Bit offset into the telemetry packet of the Most Significant Bit of this item.
|
|
14
|
+
May be negative to indicate on offset from the end of the packet.
|
|
15
|
+
Always use a bit offset of 0 for derived item.
|
|
16
|
+
values: '[-]?\d+'
|
|
17
|
+
<%= MetaConfigParser.load('_items.yaml').to_meta_config_yaml(4) %>
|
|
18
|
+
APPEND_ITEM:
|
|
19
|
+
modifiers:
|
|
20
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
21
|
+
summary: Defines a telemetry item in the current telemetry packet
|
|
22
|
+
parameters:
|
|
23
|
+
- name: Name
|
|
24
|
+
required: true
|
|
25
|
+
description: Name of the telemety item. Must be unique within the packet.
|
|
26
|
+
values: \'
|
|
27
|
+
<%= MetaConfigParser.load('_items.yaml').to_meta_config_yaml(4) %>
|
|
28
|
+
ID_ITEM:
|
|
29
|
+
modifiers:
|
|
30
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
31
|
+
summary: Defines a telemetry item in the current telemetry packet
|
|
32
|
+
parameters:
|
|
33
|
+
- name: Name
|
|
34
|
+
required: true
|
|
35
|
+
description: Name of the telemety item. Must be unique within the packet.
|
|
36
|
+
values: '\D\S*'
|
|
37
|
+
- name: Bit Offset
|
|
38
|
+
required: true
|
|
39
|
+
description: Bit offset into the telemetry packet of the Most Significant Bit of this item.
|
|
40
|
+
May be negative to indicate on offset from the end of the packet.
|
|
41
|
+
Always use a bit offset of 0 for derived item.
|
|
42
|
+
values: '[-]?\d+'
|
|
43
|
+
<%= MetaConfigParser.load('_id_items.yaml').to_meta_config_yaml(4) %>
|
|
44
|
+
APPEND_ID_ITEM:
|
|
45
|
+
modifiers:
|
|
46
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
47
|
+
summary: Defines a telemetry item in the current telemetry packet
|
|
48
|
+
parameters:
|
|
49
|
+
- name: Name
|
|
50
|
+
required: true
|
|
51
|
+
description: Name of the telemety item. Must be unique within the packet.
|
|
52
|
+
values: \'
|
|
53
|
+
<%= MetaConfigParser.load('_id_items.yaml').to_meta_config_yaml(4) %>
|
|
54
|
+
ARRAY_ITEM:
|
|
55
|
+
modifiers:
|
|
56
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
57
|
+
summary: Defines a telemetry item in the current telemetry packet that is an array
|
|
58
|
+
parameters:
|
|
59
|
+
- name: Name
|
|
60
|
+
required: true
|
|
61
|
+
description: Name of the telemety item. Must be unique within the packet.
|
|
62
|
+
values: '\D\S*'
|
|
63
|
+
- name: Bit Offset
|
|
64
|
+
required: true
|
|
65
|
+
description: Bit offset into the telemetry packet of the Most Significant Bit of this item.
|
|
66
|
+
May be negative to indicate on offset from the end of the packet.
|
|
67
|
+
Always use a bit offset of 0 for derived item.
|
|
68
|
+
values: '[-]?\d+'
|
|
69
|
+
<%= MetaConfigParser.load('_array_params.yaml').to_meta_config_yaml(4) %>
|
|
70
|
+
APPEND_ARRAY_ITEM:
|
|
71
|
+
modifiers:
|
|
72
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
73
|
+
summary: Defines a telemetry item in the current telemetry packedt that is an array
|
|
74
|
+
parameters:
|
|
75
|
+
- name: Name
|
|
76
|
+
required: true
|
|
77
|
+
description: Name of the telemety item. Must be unique within the packet.
|
|
78
|
+
values: \'
|
|
79
|
+
<%= MetaConfigParser.load('_array_params.yaml').to_meta_config_yaml(4) %>
|
|
80
|
+
SELECT_ITEM:
|
|
81
|
+
modifiers:
|
|
82
|
+
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
|
83
|
+
summary: Selects an existing telemetry item for editing
|
|
84
|
+
parameters:
|
|
85
|
+
- name: Item
|
|
86
|
+
required: true
|
|
87
|
+
description: Name of the item to select for modification
|
|
88
|
+
values: .+
|
|
89
|
+
META:
|
|
90
|
+
summary: Stores metadata for the current telemetry packet
|
|
91
|
+
description: Meta data is user specific data that can be used by custom tools
|
|
92
|
+
for various purposes. One example is to store additional information needed
|
|
93
|
+
to generate source code header files.
|
|
94
|
+
parameters:
|
|
95
|
+
- name: Meta Name
|
|
96
|
+
required: true
|
|
97
|
+
description: Name of the metadata to store
|
|
98
|
+
values: .*
|
|
99
|
+
- name: Meta Values
|
|
100
|
+
required: false
|
|
101
|
+
description: One or more values to be stored for this Meta Name
|
|
102
|
+
values: .*
|
|
103
|
+
PROCESSOR:
|
|
104
|
+
summary: Defines a processor class that executes code every time a packet is received
|
|
105
|
+
parameters:
|
|
106
|
+
- name: Processor Name
|
|
107
|
+
required: true
|
|
108
|
+
description: The name of the processor
|
|
109
|
+
values: .+
|
|
110
|
+
- name: Processor Class Filename
|
|
111
|
+
required: true
|
|
112
|
+
description: Name of the Ruby file which implements the processor.
|
|
113
|
+
This file should be in the config/TARGET/lib directory so it can be found by COSMOS.
|
|
114
|
+
values: '.+\.rb'
|
|
115
|
+
- name: Processor Specific Options
|
|
116
|
+
required: false
|
|
117
|
+
description: Variable length number of options that will be passed to the class constructor.
|
|
118
|
+
values: .+
|
|
119
|
+
ALLOW_SHORT:
|
|
120
|
+
summary: Process telemetry packets which are less than their defined length
|
|
121
|
+
description: Allows the telemetry packet to be received with a data portion that
|
|
122
|
+
is smaller than the defined size without warnings. Any extra space in the packet
|
|
123
|
+
will be filled in with zeros by COSMOS.
|
|
124
|
+
HIDDEN:
|
|
125
|
+
summary: Hides this telemetry packet from all the COSMOS tools
|
|
126
|
+
description: This packet will not appear in Packet Viewer, Telemetry Grapher and Handbook Creator.
|
|
127
|
+
It also hides this telemetry from appearing in the Script Runner popup helper
|
|
128
|
+
when writing scripts. The telemetry still exists in the system and can received
|
|
129
|
+
and checked by scripts.
|