cosmos 4.1.1-java → 4.2.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -2
- data/.travis.yml +2 -0
- data/.yardopts +1 -0
- data/Gemfile +1 -0
- data/Manifest.txt +130 -0
- data/autohotkey/tools/ConfigEditorAHK +19 -0
- data/autohotkey/tools/cmd_extractor.ahk +4 -4
- data/autohotkey/tools/cmd_sequence.ahk +9 -5
- data/autohotkey/tools/config_editor.ahk +197 -0
- data/autohotkey/tools/packet_viewer.ahk +12 -6
- data/autohotkey/tools/replay.ahk +29 -29
- data/autohotkey/tools/script_runner.ahk +10 -2
- data/autohotkey/tools/tlm_extractor.ahk +7 -8
- data/autohotkey/tools/tlm_grapher.ahk +21 -9
- data/bin/dart_import +2 -0
- data/cosmos.gemspec +18 -16
- data/data/config/cmd_tlm_server.yaml +9 -0
- data/data/config/interface_modifiers.yaml +17 -0
- data/data/config/item_modifiers.yaml +3 -3
- data/data/crc.txt +184 -90
- data/data/dart.png +0 -0
- data/demo/Gemfile +1 -0
- data/demo/Rakefile +4 -0
- data/demo/config/dart/Gemfile +54 -0
- data/demo/config/data/crc.txt +28 -21
- data/demo/config/system/system.txt +3 -0
- data/demo/config/system/system2.txt +3 -0
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +3 -3
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +1 -1
- data/demo/config/targets/INST/lib/sim_inst.rb +1 -1
- data/demo/config/targets/INST/screens/adcs.txt +2 -1
- data/demo/config/targets/INST/screens/array.txt +1 -1
- data/demo/config/targets/INST/screens/block.txt +1 -1
- data/demo/config/targets/INST/screens/commanding.txt +7 -2
- data/demo/config/targets/INST/screens/graphs.txt +1 -1
- data/demo/config/targets/INST/screens/ground.txt +1 -1
- data/demo/config/targets/INST/screens/hs.txt +2 -1
- data/demo/config/targets/INST/screens/latest.txt +1 -1
- data/demo/config/targets/INST/screens/limits.txt +1 -1
- data/demo/config/targets/INST/screens/other.txt +1 -1
- data/demo/config/targets/INST/screens/tabs.txt +1 -1
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
- data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +3 -1
- data/demo/config/tools/launcher/launcher.txt +3 -2
- data/demo/tools/Dart +16 -0
- data/demo/tools/Dart.bat +9 -0
- data/demo/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +0 -0
- data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +0 -0
- data/install/Gemfile +1 -0
- data/install/Rakefile +4 -0
- data/install/config/dart/Gemfile +54 -0
- data/install/config/data/crc.txt +6 -3
- data/install/config/system/system.txt +3 -0
- data/install/config/tools/launcher/launcher.txt +3 -2
- data/install/tools/Dart +16 -0
- data/install/tools/Dart.bat +9 -0
- data/install/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +0 -0
- data/install/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +0 -0
- data/lib/cosmos/core_ext/time.rb +8 -8
- data/lib/cosmos/dart/.rspec +1 -0
- data/lib/cosmos/dart/Gemfile +69 -0
- data/lib/cosmos/dart/Rakefile +7 -0
- data/lib/cosmos/dart/app/assets/config/manifest.js +4 -0
- data/lib/cosmos/dart/app/assets/images/.keep +0 -0
- data/lib/cosmos/dart/app/assets/javascripts/application.js +13 -0
- data/lib/cosmos/dart/app/assets/javascripts/cable.js +13 -0
- data/lib/cosmos/dart/app/assets/stylesheets/application.css.scss +15 -0
- data/lib/cosmos/dart/app/channels/application_cable/channel.rb +4 -0
- data/lib/cosmos/dart/app/channels/application_cable/connection.rb +4 -0
- data/lib/cosmos/dart/app/controllers/application_controller.rb +3 -0
- data/lib/cosmos/dart/app/helpers/application_helper.rb +2 -0
- data/lib/cosmos/dart/app/jobs/application_job.rb +2 -0
- data/lib/cosmos/dart/app/mailers/application_mailer.rb +4 -0
- data/lib/cosmos/dart/app/models/application_record.rb +3 -0
- data/lib/cosmos/dart/app/models/item.rb +6 -0
- data/lib/cosmos/dart/app/models/item_to_decom_table_mapping.rb +9 -0
- data/lib/cosmos/dart/app/models/packet.rb +4 -0
- data/lib/cosmos/dart/app/models/packet_config.rb +7 -0
- data/lib/cosmos/dart/app/models/packet_log.rb +3 -0
- data/lib/cosmos/dart/app/models/packet_log_entry.rb +41 -0
- data/lib/cosmos/dart/app/models/system_config.rb +2 -0
- data/lib/cosmos/dart/app/models/target.rb +4 -0
- data/lib/cosmos/dart/app/views/layouts/application.html.erb +14 -0
- data/lib/cosmos/dart/app/views/layouts/mailer.html.erb +13 -0
- data/lib/cosmos/dart/app/views/layouts/mailer.text.erb +1 -0
- data/lib/cosmos/dart/bin/bundle +3 -0
- data/lib/cosmos/dart/bin/rails +4 -0
- data/lib/cosmos/dart/bin/rake +4 -0
- data/lib/cosmos/dart/bin/setup +34 -0
- data/lib/cosmos/dart/bin/update +29 -0
- data/lib/cosmos/dart/config.ru +5 -0
- data/lib/cosmos/dart/config/application.rb +29 -0
- data/lib/cosmos/dart/config/boot.rb +3 -0
- data/lib/cosmos/dart/config/cable.yml +9 -0
- data/lib/cosmos/dart/config/database.yml +23 -0
- data/lib/cosmos/dart/config/environment.rb +5 -0
- data/lib/cosmos/dart/config/environments/development.rb +62 -0
- data/lib/cosmos/dart/config/environments/production.rb +84 -0
- data/lib/cosmos/dart/config/environments/test.rb +42 -0
- data/lib/cosmos/dart/config/initializers/application_controller_renderer.rb +6 -0
- data/lib/cosmos/dart/config/initializers/assets.rb +12 -0
- data/lib/cosmos/dart/config/initializers/backtrace_silencers.rb +7 -0
- data/lib/cosmos/dart/config/initializers/cookies_serializer.rb +5 -0
- data/lib/cosmos/dart/config/initializers/filter_parameter_logging.rb +4 -0
- data/lib/cosmos/dart/config/initializers/inflections.rb +16 -0
- data/lib/cosmos/dart/config/initializers/mime_types.rb +4 -0
- data/lib/cosmos/dart/config/initializers/new_framework_defaults.rb +25 -0
- data/lib/cosmos/dart/config/initializers/session_store.rb +3 -0
- data/lib/cosmos/dart/config/initializers/wrap_parameters.rb +14 -0
- data/lib/cosmos/dart/config/locales/en.yml +23 -0
- data/lib/cosmos/dart/config/puma.rb +47 -0
- data/lib/cosmos/dart/config/routes.rb +3 -0
- data/lib/cosmos/dart/config/secrets.yml +22 -0
- data/lib/cosmos/dart/db/migrate/20170406172907_create_targets.rb +8 -0
- data/lib/cosmos/dart/db/migrate/20170406172927_create_packets.rb +10 -0
- data/lib/cosmos/dart/db/migrate/20170406172937_create_packet_logs.rb +9 -0
- data/lib/cosmos/dart/db/migrate/20170406172943_create_packet_log_entries.rb +16 -0
- data/lib/cosmos/dart/db/migrate/20170406183500_change_packet_log_entries_primary_key.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20170407153618_add_unique_requirements.rb +7 -0
- data/lib/cosmos/dart/db/migrate/20170511155447_add_meta_id_to_packet_log_entries.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170523185056_rename_received_time_and_add_is_tlm_to_packet_log_entries.rb +7 -0
- data/lib/cosmos/dart/db/migrate/20170525201157_create_items.rb +10 -0
- data/lib/cosmos/dart/db/migrate/20170525201315_create_system_configs.rb +9 -0
- data/lib/cosmos/dart/db/migrate/20170525201624_create_packet_configs.rb +11 -0
- data/lib/cosmos/dart/db/migrate/20170525201745_create_item_to_decom_table_mappings.rb +12 -0
- data/lib/cosmos/dart/db/migrate/20170525201939_create_decom_tables.rb +12 -0
- data/lib/cosmos/dart/db/migrate/20170525202051_add_decom_state_to_packet_log_entry.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20170913160409_update_items.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170913160558_update_item_to_decom_table_mapping.rb +11 -0
- data/lib/cosmos/dart/db/migrate/20170913160916_udpate_decom_table.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170913212026_add_ready_to_packet_configs.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20170913223556_modify_tables.rb +9 -0
- data/lib/cosmos/dart/db/migrate/20170914215744_modify_mapping_table.rb +6 -0
- data/lib/cosmos/dart/db/migrate/20170919201433_add_system_config_id_to_packet_config.rb +11 -0
- data/lib/cosmos/dart/db/migrate/20170919210307_add_max_table_index_to_packet_configs.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20171215225546_add_ready_to_packet_log_entries.rb +5 -0
- data/lib/cosmos/dart/db/migrate/20180116214338_add_index_for_ple_ready_to_packet_log_entries.rb +5 -0
- data/lib/cosmos/dart/db/schema.rb +103 -0
- data/lib/cosmos/dart/db/seeds.rb +7 -0
- data/lib/cosmos/dart/examples/dart_decom_client.rb +45 -0
- data/lib/cosmos/dart/examples/dart_stream_client.rb +93 -0
- data/lib/cosmos/dart/lib/dart_common.rb +749 -0
- data/lib/cosmos/dart/lib/dart_database_cleaner.rb +172 -0
- data/lib/cosmos/dart/lib/dart_decom_query.rb +184 -0
- data/lib/cosmos/dart/lib/dart_decommutator.rb +235 -0
- data/lib/cosmos/dart/lib/dart_importer.rb +154 -0
- data/lib/cosmos/dart/lib/dart_logging.rb +50 -0
- data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +139 -0
- data/lib/cosmos/dart/lib/dart_reducer_manager.rb +85 -0
- data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +263 -0
- data/lib/cosmos/dart/lib/dart_tcpip_server_interface.rb +142 -0
- data/lib/cosmos/dart/processes/dart.rb +145 -0
- data/lib/cosmos/dart/processes/dart_decom_server.rb +39 -0
- data/lib/cosmos/dart/processes/dart_import.rb +63 -0
- data/lib/cosmos/dart/processes/dart_ingester.rb +92 -0
- data/lib/cosmos/dart/processes/dart_reducer.rb +27 -0
- data/lib/cosmos/dart/processes/dart_stream_server.rb +31 -0
- data/lib/cosmos/dart/processes/dart_worker.rb +37 -0
- data/lib/cosmos/dart/spec/dart/dart_common_spec.rb +333 -0
- data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +455 -0
- data/lib/cosmos/dart/spec/dart/dart_decom_query_spec.rb +153 -0
- data/lib/cosmos/dart/spec/dart/dart_decommutator_spec.rb +336 -0
- data/lib/cosmos/dart/spec/dart/dart_importer_spec.rb +83 -0
- data/lib/cosmos/dart/spec/dart/dart_logging_spec.rb +30 -0
- data/lib/cosmos/dart/spec/dart/dart_packet_log_writer_spec.rb +149 -0
- data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +289 -0
- data/lib/cosmos/dart/spec/dart/dart_tcpip_server_interface_spec.rb +241 -0
- data/lib/cosmos/dart/spec/rails_helper.rb +60 -0
- data/lib/cosmos/dart/spec/spec_helper.rb +139 -0
- data/lib/cosmos/gui/dialogs/about_dialog.rb +1 -1
- data/lib/cosmos/gui/dialogs/dart_dialog.rb +60 -0
- data/lib/cosmos/gui/dialogs/legal_dialog.rb +1 -0
- data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +0 -3
- data/lib/cosmos/gui/qt.rb +10 -1
- data/lib/cosmos/gui/text/completion.rb +10 -9
- data/lib/cosmos/gui/text/completion_text_edit.rb +16 -14
- data/lib/cosmos/gui/text/ruby_editor.rb +2 -2
- data/lib/cosmos/gui/widgets/dart_frame.rb +142 -0
- data/lib/cosmos/gui/widgets/dart_meta_frame.rb +119 -0
- data/lib/cosmos/gui/widgets/packet_log_frame.rb +42 -12
- data/lib/cosmos/interfaces/interface.rb +1 -2
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +26 -8
- data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +8 -2
- data/lib/cosmos/interfaces/protocols/protocol.rb +2 -1
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +1 -1
- data/lib/cosmos/interfaces/stream_interface.rb +1 -0
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +2 -3
- data/lib/cosmos/io/json_drb_object.rb +1 -1
- data/lib/cosmos/io/json_rpc.rb +2 -1
- data/lib/cosmos/io/win32_serial_driver.rb +2 -9
- data/lib/cosmos/packet_logs/packet_log_writer.rb +1 -1
- data/lib/cosmos/packets/packet.rb +22 -12
- data/lib/cosmos/packets/packet_config.rb +2 -1
- data/lib/cosmos/packets/packet_item.rb +26 -24
- data/lib/cosmos/packets/parsers/macro_parser.rb +5 -2
- data/lib/cosmos/packets/parsers/packet_item_parser.rb +35 -17
- data/lib/cosmos/packets/parsers/packet_parser.rb +3 -10
- data/lib/cosmos/packets/parsers/xtce_converter.rb +21 -35
- data/lib/cosmos/packets/parsers/xtce_parser.rb +54 -46
- data/lib/cosmos/packets/structure.rb +10 -2
- data/lib/cosmos/packets/structure_item.rb +22 -8
- data/lib/cosmos/processors/statistics_processor.rb +2 -0
- data/lib/cosmos/script/api_shared.rb +13 -12
- data/lib/cosmos/script/cmd_tlm_server.rb +4 -0
- data/lib/cosmos/script/commands.rb +3 -15
- data/lib/cosmos/script/script.rb +69 -23
- data/lib/cosmos/streams/tcpip_client_stream.rb +2 -2
- data/lib/cosmos/system/system.rb +42 -25
- data/lib/cosmos/system/target.rb +6 -2
- data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +177 -36
- data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +3 -2
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +34 -8
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +80 -25
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +19 -4
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +15 -14
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +15 -9
- data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +1 -9
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -6
- data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +1 -3
- data/lib/cosmos/tools/cmd_tlm_server/gui/replay_tab.rb +84 -7
- data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +0 -1
- data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +1 -5
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +3 -2
- data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +159 -27
- data/lib/cosmos/tools/cmd_tlm_server/routers.rb +1 -1
- data/lib/cosmos/tools/config_editor/config_editor.rb +17 -52
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +0 -5
- data/lib/cosmos/tools/data_viewer/data_viewer.rb +111 -0
- data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +31 -18
- data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +12 -3
- data/lib/cosmos/tools/script_runner/script_runner.rb +27 -14
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +104 -37
- data/lib/cosmos/tools/table_manager/table_config.rb +1 -1
- data/lib/cosmos/tools/table_manager/table_item_parser.rb +4 -2
- data/lib/cosmos/tools/table_manager/table_manager.rb +0 -5
- data/lib/cosmos/tools/table_manager/table_manager_core.rb +0 -1
- data/lib/cosmos/tools/test_runner/test.rb +1 -3
- data/lib/cosmos/tools/test_runner/test_runner.rb +26 -15
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +290 -137
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +122 -25
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +67 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +28 -0
- data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +36 -0
- data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +42 -3
- data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +88 -14
- data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +2 -5
- data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +2 -6
- data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +74 -18
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +3 -7
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +159 -0
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +49 -2
- data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -0
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +0 -2
- data/lib/cosmos/tools/tlm_viewer/widgets.rb +1 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/backgroundbutton_widget.rb +54 -0
- data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +5 -5
- data/lib/cosmos/top_level.rb +1 -0
- data/lib/cosmos/utilities/crc.rb +3 -0
- data/lib/cosmos/utilities/csv.rb +1 -0
- data/lib/cosmos/utilities/message_log.rb +2 -1
- data/lib/cosmos/utilities/simulated_target.rb +8 -8
- data/lib/cosmos/version.rb +5 -5
- data/lib/cosmos/win32/win32.rb +4 -10
- data/run_gui_tests.bat +2 -1
- data/spec/config/config_parser_spec.rb +4 -4
- data/spec/core_ext/array_spec.rb +1 -1
- data/spec/core_ext/exception_spec.rb +12 -12
- data/spec/core_ext/file_spec.rb +6 -6
- data/spec/core_ext/hash_spec.rb +1 -1
- data/spec/core_ext/socket_spec.rb +2 -2
- data/spec/core_ext/string_spec.rb +13 -13
- data/spec/core_ext/time_spec.rb +0 -2
- data/spec/gui/utilities/script_module_gui_spec.rb +3 -3
- data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +6 -6
- data/spec/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +4 -0
- data/spec/interfaces/cmd_tlm_server_interface_spec.rb +6 -2
- data/spec/interfaces/interface_spec.rb +0 -1
- data/spec/interfaces/linc_interface_spec.rb +0 -5
- data/spec/interfaces/protocols/crc_protocol_spec.rb +201 -85
- data/spec/interfaces/protocols/fixed_protocol_spec.rb +33 -9
- data/spec/interfaces/protocols/length_protocol_spec.rb +1 -1
- data/spec/interfaces/protocols/override_protocol_spec.rb +6 -2
- data/spec/interfaces/protocols/preidentified_protocol_spec.rb +1 -5
- data/spec/interfaces/protocols/template_protocol_spec.rb +0 -1
- data/spec/interfaces/simulated_target_interface_spec.rb +5 -5
- data/spec/interfaces/udp_interface_spec.rb +2 -4
- data/spec/io/buffered_file_spec.rb +8 -12
- data/spec/io/json_drb_spec.rb +9 -9
- data/spec/io/json_rpc_spec.rb +4 -4
- data/spec/io/raw_logger_spec.rb +4 -3
- data/spec/packet_logs/packet_log_reader_spec.rb +3 -6
- data/spec/packet_logs/packet_log_writer_spec.rb +4 -4
- data/spec/packets/binary_accessor_spec.rb +5 -8
- data/spec/packets/commands_spec.rb +2 -2
- data/spec/packets/limits_spec.rb +2 -2
- data/spec/packets/packet_config_spec.rb +12 -0
- data/spec/packets/packet_item_limits_spec.rb +1 -1
- data/spec/packets/packet_item_spec.rb +9 -9
- data/spec/packets/packet_spec.rb +15 -5
- data/spec/packets/parsers/packet_item_parser_spec.rb +27 -0
- data/spec/packets/parsers/xtce_parser_spec.rb +27 -30
- data/spec/packets/structure_spec.rb +2 -1
- data/spec/packets/telemetry_spec.rb +3 -5
- data/spec/processors/statistics_processor_spec.rb +35 -0
- data/spec/script/cmd_tlm_server_spec.rb +4 -21
- data/spec/script/commands_disconnect_spec.rb +46 -58
- data/spec/script/commands_spec.rb +40 -61
- data/spec/script/limits_spec.rb +1 -21
- data/spec/script/script_spec.rb +32 -41
- data/spec/script/scripting_spec.rb +166 -185
- data/spec/script/telemetry_spec.rb +10 -5
- data/spec/script/tools_spec.rb +2 -24
- data/spec/spec_helper.rb +11 -5
- data/spec/system/system_spec.rb +17 -12
- data/spec/tools/cmd_tlm_server/api_spec.rb +21 -10
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -16
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +0 -1
- data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +16 -27
- data/spec/tools/cmd_tlm_server/commanding_spec.rb +2 -6
- data/spec/tools/cmd_tlm_server/connections_spec.rb +0 -4
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +13 -13
- data/spec/tools/cmd_tlm_server/interfaces_spec.rb +5 -9
- data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +11 -3
- data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +0 -4
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +5 -5
- data/spec/tools/cmd_tlm_server/routers_spec.rb +5 -9
- data/spec/tools/table_manager/table_config_spec.rb +0 -1
- data/spec/tools/table_manager/tablemanager_core_spec.rb +23 -23
- data/spec/tools/tlm_viewer/tlm_viewer_config_spec.rb +6 -4
- data/spec/top_level/top_level_spec.rb +9 -9
- data/spec/utilities/csv_spec.rb +2 -12
- data/spec/utilities/logger_spec.rb +6 -6
- data/spec/utilities/message_log_spec.rb +3 -11
- data/tasks/gemfile_stats.rake +2 -2
- metadata +167 -60
|
@@ -15,12 +15,12 @@ module Cosmos
|
|
|
15
15
|
|
|
16
16
|
describe PacketLogWriter do
|
|
17
17
|
before(:each) do
|
|
18
|
-
System.class_eval('@@instance = nil')
|
|
19
18
|
System.load_configuration
|
|
20
19
|
@log_path = System.paths['LOGS']
|
|
21
20
|
end
|
|
22
21
|
|
|
23
22
|
after(:each) do
|
|
23
|
+
# Clean config after each so we can check for individual log files
|
|
24
24
|
clean_config()
|
|
25
25
|
end
|
|
26
26
|
|
|
@@ -170,7 +170,7 @@ module Cosmos
|
|
|
170
170
|
plw.write(pkt)
|
|
171
171
|
sleep 0.1
|
|
172
172
|
plw.stop
|
|
173
|
-
expect(stdout.string).to match
|
|
173
|
+
expect(stdout.string).to match("Error opening")
|
|
174
174
|
plw.shutdown
|
|
175
175
|
sleep(0.1)
|
|
176
176
|
end
|
|
@@ -185,7 +185,7 @@ module Cosmos
|
|
|
185
185
|
plw.write(pkt)
|
|
186
186
|
sleep 0.1
|
|
187
187
|
plw.stop
|
|
188
|
-
expect(stdout.string).to match
|
|
188
|
+
expect(stdout.string).to match("Error closing")
|
|
189
189
|
plw.shutdown
|
|
190
190
|
sleep(0.1)
|
|
191
191
|
end
|
|
@@ -214,7 +214,7 @@ module Cosmos
|
|
|
214
214
|
|
|
215
215
|
it "ignores bad label formats" do
|
|
216
216
|
plw = PacketLogWriter.new(:TLM,nil,false,nil,10000000,nil,false)
|
|
217
|
-
plw.start('
|
|
217
|
+
plw.start('mytest!')
|
|
218
218
|
plw.write(Packet.new('',''))
|
|
219
219
|
plw.shutdown
|
|
220
220
|
expect(Dir[File.join(@log_path,"*.bin")][-1]).to match("_tlm.bin")
|
|
@@ -503,7 +503,7 @@ module Cosmos
|
|
|
503
503
|
end
|
|
504
504
|
|
|
505
505
|
it "complains with an array_size not a multiple of bit_size" do
|
|
506
|
-
|
|
506
|
+
@data.unpack('C*')
|
|
507
507
|
expect { BinaryAccessor.read_array(0, 8, :UINT, 10, @data, :LITTLE_ENDIAN) }.to raise_error(ArgumentError, "array_size 10 not a multiple of bit_size 8")
|
|
508
508
|
end
|
|
509
509
|
|
|
@@ -518,12 +518,12 @@ module Cosmos
|
|
|
518
518
|
end
|
|
519
519
|
|
|
520
520
|
it "returns an empty array if the offset equals the negative array size" do
|
|
521
|
-
|
|
521
|
+
@data.unpack('C*')
|
|
522
522
|
expect(BinaryAccessor.read_array(@data.length*8-32, 8, :UINT, -32, @data, :LITTLE_ENDIAN)).to eql([])
|
|
523
523
|
end
|
|
524
524
|
|
|
525
525
|
it "complains if the offset is greater than the negative array size" do
|
|
526
|
-
|
|
526
|
+
@data.unpack('C*')
|
|
527
527
|
offset = @data.length * 8 - 16
|
|
528
528
|
expect { BinaryAccessor.read_array(offset, 8, :UINT, -32, @data, :LITTLE_ENDIAN) }.to raise_error(ArgumentError, "16 byte buffer insufficient to read UINT at bit_offset #{offset} with bit_size 8")
|
|
529
529
|
end
|
|
@@ -1777,12 +1777,12 @@ module Cosmos
|
|
|
1777
1777
|
end
|
|
1778
1778
|
|
|
1779
1779
|
it "complains with an array_size not a multiple of bit_size" do
|
|
1780
|
-
|
|
1780
|
+
@data.unpack('C*')
|
|
1781
1781
|
expect { BinaryAccessor.write_array([1,2], 0, 8, :UINT, 10, @data, :BIG_ENDIAN, :ERROR) }.to raise_error(ArgumentError, "array_size 10 not a multiple of bit_size 8")
|
|
1782
1782
|
end
|
|
1783
1783
|
|
|
1784
1784
|
it "complains with an array_size not a multiple of bit_size" do
|
|
1785
|
-
|
|
1785
|
+
@data.unpack('C*')
|
|
1786
1786
|
expect { BinaryAccessor.write_array([1,2], 0, 8, :UINT, -10, @data, :BIG_ENDIAN, :ERROR) }.to raise_error(ArgumentError, "array_size -10 not a multiple of bit_size 8")
|
|
1787
1787
|
end
|
|
1788
1788
|
|
|
@@ -1861,13 +1861,11 @@ module Cosmos
|
|
|
1861
1861
|
end
|
|
1862
1862
|
|
|
1863
1863
|
it "writes aligned 8-bit unsigned integers" do
|
|
1864
|
-
data = @data.clone
|
|
1865
1864
|
BinaryAccessor.write_array([0,1,2,3,4,5,255,255], 0, 8, :UINT, 0, @data, :BIG_ENDIAN, :ERROR)
|
|
1866
1865
|
expect(@data).to eql("\x00\x01\x02\x03\x04\x05\xFF\xFF")
|
|
1867
1866
|
end
|
|
1868
1867
|
|
|
1869
1868
|
it "writes aligned 8-bit signed integers" do
|
|
1870
|
-
data = @data.clone
|
|
1871
1869
|
BinaryAccessor.write_array([0,1,2,3,4,5,-1,127], 0, 8, :INT, 0, @data, :BIG_ENDIAN, :ERROR)
|
|
1872
1870
|
expect(@data).to eql("\x00\x01\x02\x03\x04\x05\xFF\x7F")
|
|
1873
1871
|
end
|
|
@@ -1877,7 +1875,6 @@ module Cosmos
|
|
|
1877
1875
|
end
|
|
1878
1876
|
|
|
1879
1877
|
it "writes STRING items" do
|
|
1880
|
-
data = @baseline_data.clone
|
|
1881
1878
|
BinaryAccessor.write_array(['a'], 0, 64, :STRING, 0, @baseline_data, :BIG_ENDIAN, :ERROR)
|
|
1882
1879
|
expect(@baseline_data).to eql("a\x00\x00\x00\x00\x00\x00\x00")
|
|
1883
1880
|
end
|
|
@@ -218,7 +218,7 @@ module Cosmos
|
|
|
218
218
|
end
|
|
219
219
|
|
|
220
220
|
it "complains about non-existant items" do
|
|
221
|
-
expect {
|
|
221
|
+
expect { @cmd.build_cmd("tgt1","pkt1",{"itemX"=>1}) }.to raise_error(RuntimeError, "Packet item 'TGT1 PKT1 ITEMX' does not exist")
|
|
222
222
|
end
|
|
223
223
|
|
|
224
224
|
it "creates a populated command packet with default values" do
|
|
@@ -329,7 +329,7 @@ module Cosmos
|
|
|
329
329
|
end
|
|
330
330
|
|
|
331
331
|
it "complains about non-existant items" do
|
|
332
|
-
expect {
|
|
332
|
+
expect { @cmd.cmd_hazardous?("tgt1","pkt1",{"itemX"=>1}) }.to raise_error(RuntimeError, "Packet item 'TGT1 PKT1 ITEMX' does not exist")
|
|
333
333
|
end
|
|
334
334
|
|
|
335
335
|
it "returns true if the command overall is hazardous" do
|
data/spec/packets/limits_spec.rb
CHANGED
|
@@ -272,7 +272,7 @@ module Cosmos
|
|
|
272
272
|
end
|
|
273
273
|
|
|
274
274
|
it "enables limits for an item" do
|
|
275
|
-
|
|
275
|
+
@tlm.packet("TGT1","PKT1")
|
|
276
276
|
expect(@limits.enabled?("TGT1","PKT1","ITEM5")).to be false
|
|
277
277
|
@limits.enable("TGT1","PKT1","ITEM5")
|
|
278
278
|
expect(@limits.enabled?("TGT1","PKT1","ITEM5")).to be true
|
|
@@ -293,7 +293,7 @@ module Cosmos
|
|
|
293
293
|
end
|
|
294
294
|
|
|
295
295
|
it "disables limits for an item" do
|
|
296
|
-
|
|
296
|
+
@tlm.packet("TGT1","PKT1")
|
|
297
297
|
@limits.enable("TGT1","PKT1","ITEM1")
|
|
298
298
|
expect(@limits.enabled?("TGT1","PKT1","ITEM1")).to be true
|
|
299
299
|
@limits.disable("TGT1","PKT1","ITEM1")
|
|
@@ -832,6 +832,18 @@ module Cosmos
|
|
|
832
832
|
end
|
|
833
833
|
end
|
|
834
834
|
|
|
835
|
+
context "with APPEND" do
|
|
836
|
+
it "allows appending derived items" do
|
|
837
|
+
tf = Tempfile.new('unittest')
|
|
838
|
+
tf.puts 'TELEMETRY tgt1 pkt1 LITTLE_ENDIAN "Packet"'
|
|
839
|
+
tf.puts ' APPEND_ITEM item1 0 DERIVED'
|
|
840
|
+
tf.close
|
|
841
|
+
@pc.process_file(tf.path, "TGT1")
|
|
842
|
+
expect(@pc.telemetry["TGT1"]["PKT1"].items["ITEM1"].data_type).to be :DERIVED
|
|
843
|
+
tf.unlink
|
|
844
|
+
end
|
|
845
|
+
end
|
|
846
|
+
|
|
835
847
|
end # describe "process_file"
|
|
836
848
|
end
|
|
837
849
|
end
|
|
@@ -162,7 +162,7 @@ module Cosmos
|
|
|
162
162
|
expect(hash["enabled"]).to be true
|
|
163
163
|
expect(hash["values"]).to include(:DEFAULT => [0,1,2,3,4,5])
|
|
164
164
|
expect(hash["state"]).to eql :RED_LOW
|
|
165
|
-
expect(hash["response"]).to match
|
|
165
|
+
expect(hash["response"]).to match("LimitsResponse")
|
|
166
166
|
expect(hash["persistence_setting"]).to eql 1
|
|
167
167
|
expect(hash["persistence_count"]).to eql 2
|
|
168
168
|
end
|
|
@@ -24,7 +24,7 @@ module Cosmos
|
|
|
24
24
|
it "sets the format_string" do
|
|
25
25
|
@pi.format_string = "%5.1f"
|
|
26
26
|
expect(@pi.format_string).to eql "%5.1f"
|
|
27
|
-
expect(@pi.to_config(:TELEMETRY, :BIG_ENDIAN)).to match
|
|
27
|
+
expect(@pi.to_config(:TELEMETRY, :BIG_ENDIAN)).to match(/FORMAT_STRING %5.1f/)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it "sets the format_string to nil" do
|
|
@@ -49,9 +49,9 @@ module Cosmos
|
|
|
49
49
|
@pi.read_conversion = c
|
|
50
50
|
expect(@pi.read_conversion.to_s == c.to_s).to be true
|
|
51
51
|
config = @pi.to_config(:TELEMETRY, :BIG_ENDIAN)
|
|
52
|
-
expect(config).to match
|
|
53
|
-
expect(config).to match
|
|
54
|
-
expect(config).to match
|
|
52
|
+
expect(config).to match(/GENERIC_READ_CONVERSION_START/)
|
|
53
|
+
expect(config).to match(/value \/ 2/)
|
|
54
|
+
expect(config).to match(/GENERIC_READ_CONVERSION_END/)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
it "sets the read_conversion to nil" do
|
|
@@ -70,9 +70,9 @@ module Cosmos
|
|
|
70
70
|
@pi.write_conversion = c
|
|
71
71
|
expect(@pi.write_conversion.to_s == c.to_s).to be true
|
|
72
72
|
config = @pi.to_config(:TELEMETRY, :BIG_ENDIAN)
|
|
73
|
-
expect(config).to match
|
|
74
|
-
expect(config).to match
|
|
75
|
-
expect(config).to match
|
|
73
|
+
expect(config).to match(/GENERIC_WRITE_CONVERSION_START/)
|
|
74
|
+
expect(config).to match(/value \/ 2/)
|
|
75
|
+
expect(config).to match(/GENERIC_WRITE_CONVERSION_END/)
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
it "sets the write_conversion to nil" do
|
|
@@ -423,8 +423,8 @@ module Cosmos
|
|
|
423
423
|
# Check the unique PacketItem values
|
|
424
424
|
expect(hash.keys).to include('format_string','read_conversion','write_conversion','id_value','states','description','units_full','units','default','range','required','hazardous','state_colors','limits')
|
|
425
425
|
expect(hash["format_string"]).to eql "%5.1f"
|
|
426
|
-
expect(hash["read_conversion"]).to match
|
|
427
|
-
expect(hash["write_conversion"]).to match
|
|
426
|
+
expect(hash["read_conversion"]).to match("value / 2")
|
|
427
|
+
expect(hash["write_conversion"]).to match(/value \* 2/)
|
|
428
428
|
expect(hash["id_value"]).to eql 10
|
|
429
429
|
expect(hash["states"]).to include("TRUE"=>1,"FALSE"=>0)
|
|
430
430
|
expect(hash["description"]).to eql "description"
|
data/spec/packets/packet_spec.rb
CHANGED
|
@@ -1411,8 +1411,8 @@ module Cosmos
|
|
|
1411
1411
|
describe "clone" do
|
|
1412
1412
|
it "duplicates the packet" do
|
|
1413
1413
|
p = Packet.new("tgt","pkt")
|
|
1414
|
-
p.processors['
|
|
1415
|
-
p.processors['
|
|
1414
|
+
p.processors['PROCESSOR'] = Processor.new
|
|
1415
|
+
p.processors['PROCESSOR'].name = "TestProcessor"
|
|
1416
1416
|
p2 = p.clone
|
|
1417
1417
|
# No comparison operator
|
|
1418
1418
|
# expect(p).to eql p2
|
|
@@ -1420,13 +1420,23 @@ module Cosmos
|
|
|
1420
1420
|
expect(p2.target_name).to eql "TGT"
|
|
1421
1421
|
expect(p2.packet_name).to eql "PKT"
|
|
1422
1422
|
# No comparison operator
|
|
1423
|
-
# expect(p2.processors['
|
|
1424
|
-
expect(p2.processors['
|
|
1425
|
-
expect(p2.processors['
|
|
1423
|
+
# expect(p2.processors['PROCESSOR']).to eql p.processors['PROCESSOR']
|
|
1424
|
+
expect(p2.processors['PROCESSOR']).to_not be p.processors['PROCESSOR']
|
|
1425
|
+
expect(p2.processors['PROCESSOR'].name).to eql p.processors['PROCESSOR'].name
|
|
1426
1426
|
end
|
|
1427
1427
|
end
|
|
1428
1428
|
|
|
1429
1429
|
describe "reset" do
|
|
1430
|
+
it "does nothing to the SYSTEM META packet" do
|
|
1431
|
+
p = Packet.new("SYSTEM","META")
|
|
1432
|
+
time = Time.now
|
|
1433
|
+
p.received_time = time
|
|
1434
|
+
p.received_count = 50
|
|
1435
|
+
p.reset
|
|
1436
|
+
expect(p.received_time).to eql time
|
|
1437
|
+
expect(p.received_count).to eql 50
|
|
1438
|
+
end
|
|
1439
|
+
|
|
1430
1440
|
it "resets the received_time and received_count" do
|
|
1431
1441
|
p = Packet.new("tgt","pkt")
|
|
1432
1442
|
p.processors['processor'] = double("reset", :reset => true)
|
|
@@ -166,6 +166,20 @@ module Cosmos
|
|
|
166
166
|
expect(packet.read("ITEM60")).to eql [0x00000001, 0x00000001]
|
|
167
167
|
tf.unlink
|
|
168
168
|
end
|
|
169
|
+
|
|
170
|
+
it "complains if an ITEM is redefined" do
|
|
171
|
+
tf = Tempfile.new('unittest')
|
|
172
|
+
tf.puts 'TELEMETRY TGT1 PKT1 BIG_ENDIAN "Description"'
|
|
173
|
+
tf.puts ' APPEND_ITEM ITEM1 16 UINT "Item 1"'
|
|
174
|
+
tf.puts ' APPEND_ITEM ITEM1 16 UINT "Another item"'
|
|
175
|
+
tf.close
|
|
176
|
+
@pc.process_file(tf.path, "TGT1")
|
|
177
|
+
packet = @pc.telemetry["TGT1"]["PKT1"]
|
|
178
|
+
packet.buffer = "\xDE\xAD\xBE\xEF"
|
|
179
|
+
expect(packet.read("ITEM1")).to eql 0xBEEF
|
|
180
|
+
expect(@pc.warnings).to include("TGT1 PKT1 ITEM1 redefined.")
|
|
181
|
+
tf.unlink
|
|
182
|
+
end
|
|
169
183
|
end
|
|
170
184
|
|
|
171
185
|
context "with keywords including PARAMETER" do
|
|
@@ -371,6 +385,19 @@ module Cosmos
|
|
|
371
385
|
end
|
|
372
386
|
end
|
|
373
387
|
|
|
388
|
+
it "complains if a PARAMETER is redefined" do
|
|
389
|
+
tf = Tempfile.new('unittest')
|
|
390
|
+
tf.puts 'COMMAND TGT1 PKT1 BIG_ENDIAN "Description"'
|
|
391
|
+
tf.puts ' APPEND_PARAMETER PARAM1 16 UINT MIN MAX 1 "Param 1"'
|
|
392
|
+
tf.puts ' APPEND_PARAMETER PARAM1 16 UINT MIN MAX 2 "Another param"'
|
|
393
|
+
tf.close
|
|
394
|
+
@pc.process_file(tf.path, "TGT1")
|
|
395
|
+
packet = @pc.commands["TGT1"]["PKT1"]
|
|
396
|
+
packet.buffer = "\xDE\xAD\xBE\xEF"
|
|
397
|
+
expect(packet.read("PARAM1")).to eql 0xBEEF
|
|
398
|
+
expect(@pc.warnings).to include("TGT1 PKT1 PARAM1 redefined.")
|
|
399
|
+
tf.unlink
|
|
400
|
+
end
|
|
374
401
|
end
|
|
375
402
|
|
|
376
403
|
end # describe "process_file"
|
|
@@ -48,10 +48,6 @@ END
|
|
|
48
48
|
module Cosmos
|
|
49
49
|
|
|
50
50
|
describe XtceParser do
|
|
51
|
-
after(:all) do
|
|
52
|
-
#clean_config()
|
|
53
|
-
end
|
|
54
|
-
|
|
55
51
|
def xml_file(target)
|
|
56
52
|
tf = Tempfile.new(['unittest', '.xtce'])
|
|
57
53
|
tf.puts '<?xml version="1.0" encoding="UTF-8"?>'
|
|
@@ -63,11 +59,12 @@ module Cosmos
|
|
|
63
59
|
end
|
|
64
60
|
|
|
65
61
|
def telemetry_file(target)
|
|
66
|
-
xml_file(target) do |tf|
|
|
62
|
+
file = xml_file(target) do |tf|
|
|
67
63
|
tf.puts ' <xtce:TelemetryMetaData>'
|
|
68
64
|
yield tf
|
|
69
65
|
tf.puts ' </xtce:TelemetryMetaData>'
|
|
70
66
|
end
|
|
67
|
+
file
|
|
71
68
|
end
|
|
72
69
|
|
|
73
70
|
def add_tlm_packet_item(tf, packet, item)
|
|
@@ -94,11 +91,12 @@ module Cosmos
|
|
|
94
91
|
end
|
|
95
92
|
|
|
96
93
|
def command_file(target)
|
|
97
|
-
xml_file(target) do |tf|
|
|
94
|
+
file = xml_file(target) do |tf|
|
|
98
95
|
tf.puts ' <xtce:CommandMetaData>'
|
|
99
96
|
yield tf
|
|
100
97
|
tf.puts ' </xtce:CommandMetaData>'
|
|
101
98
|
end
|
|
99
|
+
file
|
|
102
100
|
end
|
|
103
101
|
|
|
104
102
|
def add_cmd_packet_item(tf, packet, item)
|
|
@@ -150,9 +148,8 @@ module Cosmos
|
|
|
150
148
|
end
|
|
151
149
|
|
|
152
150
|
it "processes xtce commands" do
|
|
153
|
-
tf =
|
|
154
|
-
|
|
155
|
-
add_cmd_packet_item(tf, "PKT", "PARAM1")
|
|
151
|
+
tf = command_file("TGT") do |file|
|
|
152
|
+
add_cmd_packet_item(file, "PKT", "PARAM1")
|
|
156
153
|
end
|
|
157
154
|
|
|
158
155
|
@pc.process_file(tf.path, 'TGT')
|
|
@@ -167,11 +164,11 @@ module Cosmos
|
|
|
167
164
|
|
|
168
165
|
context "with units" do
|
|
169
166
|
it "processes description and value" do
|
|
170
|
-
tf = telemetry_file("TGT") do |
|
|
171
|
-
add_tlm_packet_item(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
167
|
+
tf = telemetry_file("TGT") do |file|
|
|
168
|
+
add_tlm_packet_item(file, "PKT", "TEMP1") do |file2|
|
|
169
|
+
file2.puts '<xtce:UnitSet>'
|
|
170
|
+
file2.puts '<xtce:Unit description="Volts">V</xtce:Unit>'
|
|
171
|
+
file2.puts '</xtce:UnitSet>'
|
|
175
172
|
end
|
|
176
173
|
end
|
|
177
174
|
|
|
@@ -184,11 +181,11 @@ module Cosmos
|
|
|
184
181
|
end
|
|
185
182
|
|
|
186
183
|
it "processes description only" do
|
|
187
|
-
tf = telemetry_file("TGT") do |
|
|
188
|
-
add_tlm_packet_item(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
184
|
+
tf = telemetry_file("TGT") do |file|
|
|
185
|
+
add_tlm_packet_item(file, "PKT", "TEMP1") do |file2|
|
|
186
|
+
file2.puts '<xtce:UnitSet>'
|
|
187
|
+
file2.puts '<xtce:Unit description="Volts"/>'
|
|
188
|
+
file2.puts '</xtce:UnitSet>'
|
|
192
189
|
end
|
|
193
190
|
end
|
|
194
191
|
|
|
@@ -201,11 +198,11 @@ module Cosmos
|
|
|
201
198
|
end
|
|
202
199
|
|
|
203
200
|
it "processes value only" do
|
|
204
|
-
tf = telemetry_file("TGT") do |
|
|
205
|
-
add_tlm_packet_item(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
201
|
+
tf = telemetry_file("TGT") do |file|
|
|
202
|
+
add_tlm_packet_item(file, "PKT", "TEMP1") do |file2|
|
|
203
|
+
file2.puts '<xtce:UnitSet>'
|
|
204
|
+
file2.puts '<xtce:Unit>V</xtce:Unit>'
|
|
205
|
+
file2.puts '</xtce:UnitSet>'
|
|
209
206
|
end
|
|
210
207
|
end
|
|
211
208
|
|
|
@@ -218,12 +215,12 @@ module Cosmos
|
|
|
218
215
|
end
|
|
219
216
|
|
|
220
217
|
it "processes multiple units" do
|
|
221
|
-
tf = telemetry_file("TGT") do |
|
|
222
|
-
add_tlm_packet_item(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
218
|
+
tf = telemetry_file("TGT") do |file|
|
|
219
|
+
add_tlm_packet_item(file, "PKT", "TEMP1") do |file2|
|
|
220
|
+
file2.puts '<xtce:UnitSet>'
|
|
221
|
+
file2.puts '<xtce:Unit description="Volts">V</xtce:Unit>'
|
|
222
|
+
file2.puts '<xtce:Unit description="Mega">M</xtce:Unit>'
|
|
223
|
+
file2.puts '</xtce:UnitSet>'
|
|
227
224
|
end
|
|
228
225
|
end
|
|
229
226
|
|
|
@@ -249,7 +249,8 @@ module Cosmos
|
|
|
249
249
|
|
|
250
250
|
it "complains if appending after a variably sized item" do
|
|
251
251
|
@s.define_item("test1", 0, 0, :BLOCK)
|
|
252
|
-
|
|
252
|
+
item = StructureItem.new("test2", 0, 16, :UINT, :BIG_ENDIAN)
|
|
253
|
+
expect { @s.append(item) }.to raise_error(ArgumentError, "Can't append an item after a variably sized item")
|
|
253
254
|
end
|
|
254
255
|
end
|
|
255
256
|
|
|
@@ -149,7 +149,7 @@ module Cosmos
|
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
it "returns the packet and item" do
|
|
152
|
-
|
|
152
|
+
_, item = @tlm.packet_and_item("TGT1","PKT1","ITEM1")
|
|
153
153
|
expect(item.name).to eql "ITEM1"
|
|
154
154
|
end
|
|
155
155
|
|
|
@@ -386,10 +386,8 @@ module Cosmos
|
|
|
386
386
|
end
|
|
387
387
|
|
|
388
388
|
it "returns the list of stale packets for a given target" do
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
p3 = @tlm.packet("TGT2","PKT1")
|
|
392
|
-
expect(@tlm.stale(false, "TGT2")).to include(p3)
|
|
389
|
+
pkt = @tlm.packet("TGT2","PKT1")
|
|
390
|
+
expect(@tlm.stale(false, "TGT2")).to include(pkt)
|
|
393
391
|
@tlm.packet("TGT2","PKT1").check_limits
|
|
394
392
|
expect(@tlm.stale(false, "TGT2").size).to eql 0
|
|
395
393
|
expect(@tlm.stale(false, "TGT1").size).to eql 2
|
|
@@ -54,6 +54,41 @@ module Cosmos
|
|
|
54
54
|
expect(p.results[:MEAN]).to eql nil
|
|
55
55
|
expect(p.results[:STDDEV]).to eql nil
|
|
56
56
|
end
|
|
57
|
+
|
|
58
|
+
it "handles nil and infinity" do
|
|
59
|
+
p = StatisticsProcessor.new('TEST', '5')
|
|
60
|
+
packet = Packet.new("tgt","pkt")
|
|
61
|
+
packet.append_item("TEST", 32, :FLOAT)
|
|
62
|
+
packet.write("TEST", 1)
|
|
63
|
+
p.call(packet, packet.buffer)
|
|
64
|
+
expect(p.results[:MAX]).to eql 1.0
|
|
65
|
+
expect(p.results[:MIN]).to eql 1.0
|
|
66
|
+
expect(p.results[:MEAN]).to be_within(0.001).of(1.0)
|
|
67
|
+
expect(p.results[:STDDEV]).to be_within(0.001).of(0.0)
|
|
68
|
+
packet.write("TEST", Float::NAN)
|
|
69
|
+
p.call(packet, packet.buffer)
|
|
70
|
+
expect(p.results[:MAX]).to eql 1.0
|
|
71
|
+
expect(p.results[:MIN]).to eql 1.0
|
|
72
|
+
expect(p.results[:MEAN]).to be_within(0.001).of(1.0)
|
|
73
|
+
expect(p.results[:STDDEV]).to be_within(0.001).of(0.0)
|
|
74
|
+
packet.write("TEST", 2)
|
|
75
|
+
p.call(packet, packet.buffer)
|
|
76
|
+
expect(p.results[:MAX]).to eql 2.0
|
|
77
|
+
expect(p.results[:MIN]).to eql 1.0
|
|
78
|
+
expect(p.results[:MEAN]).to be_within(0.001).of(1.5)
|
|
79
|
+
expect(p.results[:STDDEV]).to be_within(0.001).of(0.7071)
|
|
80
|
+
packet.write("TEST", Float::INFINITY)
|
|
81
|
+
p.call(packet, packet.buffer)
|
|
82
|
+
expect(p.results[:MAX]).to eql 2.0
|
|
83
|
+
expect(p.results[:MIN]).to eql 1.0
|
|
84
|
+
expect(p.results[:MEAN]).to be_within(0.001).of(1.5)
|
|
85
|
+
expect(p.results[:STDDEV]).to be_within(0.001).of(0.7071)
|
|
86
|
+
p.reset
|
|
87
|
+
expect(p.results[:MAX]).to eql nil
|
|
88
|
+
expect(p.results[:MIN]).to eql nil
|
|
89
|
+
expect(p.results[:MEAN]).to eql nil
|
|
90
|
+
expect(p.results[:STDDEV]).to eql nil
|
|
91
|
+
end
|
|
57
92
|
end
|
|
58
93
|
end
|
|
59
94
|
end
|