cosmos 4.2.3-java → 4.2.4-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 +2 -0
 - data/Manifest.txt +14 -1
 - data/bin/dart_util +4 -0
 - data/cosmos.gemspec +3 -2
 - data/data/config/interface_modifiers.yaml +2 -1
 - data/data/config/item_modifiers.yaml +1 -1
 - data/data/config/parameter_modifiers.yaml +1 -1
 - data/data/crc.txt +52 -45
 - data/demo/config/data/crc.txt +6 -1
 - data/demo/config/system/system.txt +1 -0
 - data/demo/config/targets/DART/cmd_tlm/dart_cmds.txt +2 -0
 - data/demo/config/targets/DART/cmd_tlm/dart_tlm.txt +40 -0
 - data/demo/config/targets/DART/cmd_tlm_server.txt +6 -0
 - data/demo/config/targets/DART/screens/status.txt +54 -0
 - data/demo/config/targets/DART/target.txt +7 -0
 - data/ext/cosmos/ext/structure/structure.c +16 -4
 - data/lib/cosmos/dart/app/models/status.rb +2 -0
 - data/lib/cosmos/dart/db/migrate/20180423205644_create_statuses.rb +22 -0
 - data/lib/cosmos/dart/db/migrate/20180425211340_add_decom_state_index.rb +5 -0
 - data/lib/cosmos/dart/db/migrate/20180509204705_remove_indexes.rb +29 -0
 - data/lib/cosmos/dart/db/migrate/20180510160002_remove_timestamps_from_ples.rb +6 -0
 - data/lib/cosmos/dart/db/migrate/20180511194944_add_packet_log_id_to_tables.rb +18 -0
 - data/lib/cosmos/dart/db/schema.rb +15 -9
 - data/lib/cosmos/dart/db/seeds.rb +8 -0
 - data/lib/cosmos/dart/lib/dart_common.rb +5 -6
 - data/lib/cosmos/dart/lib/dart_database_cleaner.rb +56 -5
 - data/lib/cosmos/dart/lib/dart_decom_query.rb +108 -6
 - data/lib/cosmos/dart/lib/dart_decommutator.rb +81 -22
 - data/lib/cosmos/dart/lib/dart_importer.rb +44 -14
 - data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +73 -55
 - data/lib/cosmos/dart/lib/dart_reducer_manager.rb +34 -3
 - data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +18 -7
 - data/lib/cosmos/dart/processes/dart.rb +2 -1
 - data/lib/cosmos/dart/processes/dart_decom_server.rb +2 -1
 - data/lib/cosmos/dart/processes/dart_import.rb +1 -0
 - data/lib/cosmos/dart/processes/dart_ingester.rb +1 -0
 - data/lib/cosmos/dart/processes/dart_reducer.rb +1 -0
 - data/lib/cosmos/dart/processes/dart_stream_server.rb +1 -0
 - data/lib/cosmos/dart/processes/dart_util.rb +147 -0
 - data/lib/cosmos/dart/processes/dart_worker.rb +1 -0
 - data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +1 -1
 - data/lib/cosmos/dart/spec/dart/dart_decom_query_spec.rb +1 -0
 - data/lib/cosmos/dart/spec/dart/dart_decommutator_spec.rb +1 -0
 - data/lib/cosmos/dart/spec/dart/dart_importer_spec.rb +1 -0
 - data/lib/cosmos/dart/spec/dart/dart_packet_log_writer_spec.rb +39 -36
 - data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +2 -1
 - data/lib/cosmos/dart/spec/dart/dart_tcpip_server_interface_spec.rb +1 -2
 - data/lib/cosmos/gui/widgets/dart_meta_frame.rb +13 -6
 - data/lib/cosmos/interfaces.rb +1 -0
 - data/lib/cosmos/interfaces/dart_status_interface.rb +91 -0
 - data/lib/cosmos/interfaces/serial_interface.rb +5 -1
 - data/lib/cosmos/io/json_drb.rb +7 -2
 - data/lib/cosmos/io/json_drb_object.rb +11 -6
 - data/lib/cosmos/io/json_rpc.rb +1 -0
 - data/lib/cosmos/io/posix_serial_driver.rb +4 -2
 - data/lib/cosmos/io/serial_driver.rb +8 -4
 - data/lib/cosmos/io/win32_serial_driver.rb +4 -3
 - data/lib/cosmos/packets/packet_config.rb +12 -2
 - data/lib/cosmos/packets/structure_item.rb +1 -0
 - data/lib/cosmos/script/extract.rb +4 -2
 - data/lib/cosmos/streams/serial_stream.rb +10 -5
 - data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +15 -15
 - data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +1 -1
 - data/lib/cosmos/tools/table_manager/table_manager.rb +6 -4
 - data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +5 -4
 - data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +1 -1
 - data/lib/cosmos/top_level.rb +1 -1
 - data/lib/cosmos/version.rb +4 -4
 - data/spec/interfaces/serial_interface_spec.rb +13 -0
 - data/spec/io/json_rpc_spec.rb +7 -0
 - data/spec/io/win32_serial_driver_spec.rb +8 -0
 - data/spec/packets/structure_item_spec.rb +6 -0
 - data/spec/script/extract_spec.rb +5 -0
 - data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +10 -0
 - metadata +17 -3
 - data/lib/cosmos/dart/app/helpers/application_helper.rb +0 -2
 
| 
         @@ -153,7 +153,7 @@ module Cosmos 
     | 
|
| 
       153 
153 
     | 
    
         
             
                        current_interface_or_router.name = interface_name
         
     | 
| 
       154 
154 
     | 
    
         
             
                        @interfaces[interface_name] = current_interface_or_router
         
     | 
| 
       155 
155 
     | 
    
         | 
| 
       156 
     | 
    
         
            -
                      when 'LOG', 'DONT_LOG', 'TARGET' 
     | 
| 
      
 156 
     | 
    
         
            +
                      when 'LOG', 'DONT_LOG', 'TARGET'
         
     | 
| 
       157 
157 
     | 
    
         
             
                        raise parser.error("No current interface for #{keyword}") unless current_interface_or_router and current_type == :INTERFACE
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
                        case keyword
         
     | 
| 
         @@ -183,22 +183,9 @@ module Cosmos 
     | 
|
| 
       183 
183 
     | 
    
         
             
                            raise parser.error("Unknown target #{target_name} mapped to interface #{current_interface_or_router.name}")
         
     | 
| 
       184 
184 
     | 
    
         
             
                          end
         
     | 
| 
       185 
185 
     | 
    
         | 
| 
       186 
     | 
    
         
            -
                        when 'PROTOCOL'
         
     | 
| 
       187 
     | 
    
         
            -
                          usage = "#{keyword} <READ WRITE READ_WRITE> <protocol filename or classname> <Protocol specific parameters>"
         
     | 
| 
       188 
     | 
    
         
            -
                          parser.verify_num_parameters(2, nil, usage)
         
     | 
| 
       189 
     | 
    
         
            -
                          unless %w(READ WRITE READ_WRITE).include? params[0].upcase
         
     | 
| 
       190 
     | 
    
         
            -
                            raise parser.error("Invalid protocol type: #{params[0]}", usage)
         
     | 
| 
       191 
     | 
    
         
            -
                          end
         
     | 
| 
       192 
     | 
    
         
            -
                          begin
         
     | 
| 
       193 
     | 
    
         
            -
                            klass = Cosmos.require_class(params[1])
         
     | 
| 
       194 
     | 
    
         
            -
                            current_interface_or_router.add_protocol(klass, params[2..-1], params[0].upcase.intern)
         
     | 
| 
       195 
     | 
    
         
            -
                          rescue LoadError, StandardError => error
         
     | 
| 
       196 
     | 
    
         
            -
                            raise parser.error(error.message, usage)
         
     | 
| 
       197 
     | 
    
         
            -
                          end
         
     | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
       199 
186 
     | 
    
         
             
                        end # end case keyword for all keywords that require a current interface
         
     | 
| 
       200 
187 
     | 
    
         | 
| 
       201 
     | 
    
         
            -
                      when 'DONT_CONNECT', 'DONT_RECONNECT', 'RECONNECT_DELAY', 'DISABLE_DISCONNECT', 'LOG_RAW', 'ROUTER_LOG_RAW', 'OPTION'
         
     | 
| 
      
 188 
     | 
    
         
            +
                      when 'DONT_CONNECT', 'DONT_RECONNECT', 'RECONNECT_DELAY', 'DISABLE_DISCONNECT', 'LOG_RAW', 'ROUTER_LOG_RAW', 'OPTION', 'PROTOCOL'
         
     | 
| 
       202 
189 
     | 
    
         
             
                        raise parser.error("No current interface or router for #{keyword}") unless current_interface_or_router
         
     | 
| 
       203 
190 
     | 
    
         | 
| 
       204 
191 
     | 
    
         
             
                        case keyword
         
     | 
| 
         @@ -228,6 +215,19 @@ module Cosmos 
     | 
|
| 
       228 
215 
     | 
    
         
             
                          parser.verify_num_parameters(2, nil, "#{keyword} <Option Name> <Option Value 1> <Option Value 2 (optional)> <etc>")
         
     | 
| 
       229 
216 
     | 
    
         
             
                          current_interface_or_router.set_option(params[0], params[1..-1])
         
     | 
| 
       230 
217 
     | 
    
         | 
| 
      
 218 
     | 
    
         
            +
                        when 'PROTOCOL'
         
     | 
| 
      
 219 
     | 
    
         
            +
                          usage = "#{keyword} <READ WRITE READ_WRITE> <protocol filename or classname> <Protocol specific parameters>"
         
     | 
| 
      
 220 
     | 
    
         
            +
                          parser.verify_num_parameters(2, nil, usage)
         
     | 
| 
      
 221 
     | 
    
         
            +
                          unless %w(READ WRITE READ_WRITE).include? params[0].upcase
         
     | 
| 
      
 222 
     | 
    
         
            +
                            raise parser.error("Invalid protocol type: #{params[0]}", usage)
         
     | 
| 
      
 223 
     | 
    
         
            +
                          end
         
     | 
| 
      
 224 
     | 
    
         
            +
                          begin
         
     | 
| 
      
 225 
     | 
    
         
            +
                            klass = Cosmos.require_class(params[1])
         
     | 
| 
      
 226 
     | 
    
         
            +
                            current_interface_or_router.add_protocol(klass, params[2..-1], params[0].upcase.intern)
         
     | 
| 
      
 227 
     | 
    
         
            +
                          rescue LoadError, StandardError => error
         
     | 
| 
      
 228 
     | 
    
         
            +
                            raise parser.error(error.message, usage)
         
     | 
| 
      
 229 
     | 
    
         
            +
                          end
         
     | 
| 
      
 230 
     | 
    
         
            +
             
     | 
| 
       231 
231 
     | 
    
         
             
                        end # end case keyword for all keywords that require a current interface or router
         
     | 
| 
       232 
232 
     | 
    
         | 
| 
       233 
233 
     | 
    
         
             
                      when 'ROUTER'
         
     | 
| 
         @@ -218,7 +218,7 @@ module Cosmos 
     | 
|
| 
       218 
218 
     | 
    
         
             
                    average_request_time = CmdTlmServer.json_drb.average_request_time
         
     | 
| 
       219 
219 
     | 
    
         
             
                    @api_table.item(0,4).setText(sprintf("%0.6f s", average_request_time))
         
     | 
| 
       220 
220 
     | 
    
         
             
                    estimated_utilization = requests_per_second * average_request_time * 100.0
         
     | 
| 
       221 
     | 
    
         
            -
                    @api_table.item(0,5).setText(sprintf("%0.2f  
     | 
| 
      
 221 
     | 
    
         
            +
                    @api_table.item(0,5).setText(sprintf("%0.2f %%", estimated_utilization))
         
     | 
| 
       222 
222 
     | 
    
         
             
                  end
         
     | 
| 
       223 
223 
     | 
    
         
             
                end
         
     | 
| 
       224 
224 
     | 
    
         | 
| 
         @@ -164,6 +164,8 @@ module Cosmos 
     | 
|
| 
       164 
164 
     | 
    
         
             
                attr_reader :core
         
     | 
| 
       165 
165 
     | 
    
         
             
                # @return [Qt::TabWidget] TabWidget which holds the table tabs
         
     | 
| 
       166 
166 
     | 
    
         
             
                attr_reader :tabbook
         
     | 
| 
      
 167 
     | 
    
         
            +
                # @return [Qt::VBoxLayout] Top level vertical layout for the application
         
     | 
| 
      
 168 
     | 
    
         
            +
                attr_reader :top_layout
         
     | 
| 
       167 
169 
     | 
    
         | 
| 
       168 
170 
     | 
    
         
             
                # @return [TableManager] Instance of the TableManager class
         
     | 
| 
       169 
171 
     | 
    
         
             
                def self.instance
         
     | 
| 
         @@ -402,7 +404,7 @@ module Cosmos 
     | 
|
| 
       402 
404 
     | 
    
         
             
                def initialize_central_widget
         
     | 
| 
       403 
405 
     | 
    
         
             
                  central_widget = Qt::Widget.new
         
     | 
| 
       404 
406 
     | 
    
         
             
                  setCentralWidget(central_widget)
         
     | 
| 
       405 
     | 
    
         
            -
                  top_layout = Qt::VBoxLayout.new(central_widget)
         
     | 
| 
      
 407 
     | 
    
         
            +
                  @top_layout = Qt::VBoxLayout.new(central_widget)
         
     | 
| 
       406 
408 
     | 
    
         | 
| 
       407 
409 
     | 
    
         
             
                  # Create the information pane with the filenames
         
     | 
| 
       408 
410 
     | 
    
         
             
                  filename_layout = Qt::FormLayout.new
         
     | 
| 
         @@ -410,15 +412,15 @@ module Cosmos 
     | 
|
| 
       410 
412 
     | 
    
         
             
                  filename_layout.addRow(tr("Definition File:"), @table_def_label)
         
     | 
| 
       411 
413 
     | 
    
         
             
                  @table_bin_label = Qt::Label.new("")
         
     | 
| 
       412 
414 
     | 
    
         
             
                  filename_layout.addRow(tr("Binary File:"), @table_bin_label)
         
     | 
| 
       413 
     | 
    
         
            -
                  top_layout.addLayout(filename_layout)
         
     | 
| 
      
 415 
     | 
    
         
            +
                  @top_layout.addLayout(filename_layout)
         
     | 
| 
       414 
416 
     | 
    
         | 
| 
       415 
417 
     | 
    
         
             
                  # Separator before editor
         
     | 
| 
       416 
418 
     | 
    
         
             
                  sep1 = Qt::Frame.new(central_widget)
         
     | 
| 
       417 
419 
     | 
    
         
             
                  sep1.setFrameStyle(Qt::Frame::HLine | Qt::Frame::Sunken)
         
     | 
| 
       418 
     | 
    
         
            -
                  top_layout.addWidget(sep1)
         
     | 
| 
      
 420 
     | 
    
         
            +
                  @top_layout.addWidget(sep1)
         
     | 
| 
       419 
421 
     | 
    
         | 
| 
       420 
422 
     | 
    
         
             
                  @tabbook = Qt::TabWidget.new
         
     | 
| 
       421 
     | 
    
         
            -
                  top_layout.addWidget(@tabbook)
         
     | 
| 
      
 423 
     | 
    
         
            +
                  @top_layout.addWidget(@tabbook)
         
     | 
| 
       422 
424 
     | 
    
         | 
| 
       423 
425 
     | 
    
         
             
                  @check_icons = []
         
     | 
| 
       424 
426 
     | 
    
         
             
                  @check_icons << Cosmos.get_icon("CheckBoxEmpty.gif")
         
     | 
| 
         @@ -50,6 +50,7 @@ module Cosmos 
     | 
|
| 
       50 
50 
     | 
    
         
             
                      time_end = Time.now unless time_end
         
     | 
| 
       51 
51 
     | 
    
         
             
                      progress_dialog.set_step_progress(0) if progress_dialog
         
     | 
| 
       52 
52 
     | 
    
         
             
                      index = 0
         
     | 
| 
      
 53 
     | 
    
         
            +
                      query_string = ""
         
     | 
| 
       53 
54 
     | 
    
         
             
                      required_queries.each do |target_name, packet_name, item_name, value_type, array_index, dart_reduction, dart_reduced_type|
         
     | 
| 
       54 
55 
     | 
    
         
             
                        begin
         
     | 
| 
       55 
56 
     | 
    
         
             
                          break if @cancel
         
     | 
| 
         @@ -87,7 +88,7 @@ module Cosmos 
     | 
|
| 
       87 
88 
     | 
    
         
             
                        rescue Exception => error
         
     | 
| 
       88 
89 
     | 
    
         
             
                          @errors << error
         
     | 
| 
       89 
90 
     | 
    
         
             
                          break if @cancel
         
     | 
| 
       90 
     | 
    
         
            -
                          progress_dialog.append_text("Error querying #{query_string} : #{error.class}:#{error.message}\n#{error.backtrace.join("\n")}\n" 
     | 
| 
      
 91 
     | 
    
         
            +
                          progress_dialog.append_text("Error querying #{query_string} : #{error.class}:#{error.message}\n#{error.backtrace.join("\n")}\n") if progress_dialog
         
     | 
| 
       91 
92 
     | 
    
         
             
                          # If a progress dialog is shown we can't just bail on this error or
         
     | 
| 
       92 
93 
     | 
    
         
             
                          # it will close and the user will have no idea what happened
         
     | 
| 
       93 
94 
     | 
    
         
             
                          # Thus we'll spin here waiting for them to close the dialog
         
     | 
| 
         @@ -96,8 +97,8 @@ module Cosmos 
     | 
|
| 
       96 
97 
     | 
    
         
             
                            sleep(0.1) until progress_dialog.complete?
         
     | 
| 
       97 
98 
     | 
    
         
             
                          end
         
     | 
| 
       98 
99 
     | 
    
         
             
                          break # Bail out because something bad happened
         
     | 
| 
       99 
     | 
    
         
            -
                        end 
     | 
| 
       100 
     | 
    
         
            -
                        index += 1 
     | 
| 
      
 100 
     | 
    
         
            +
                        end
         
     | 
| 
      
 101 
     | 
    
         
            +
                        index += 1
         
     | 
| 
       101 
102 
     | 
    
         
             
                      end
         
     | 
| 
       102 
103 
     | 
    
         
             
                      progress_dialog.set_step_progress(1.0) if progress_dialog and not @cancel
         
     | 
| 
       103 
104 
     | 
    
         
             
                      progress_dialog.set_overall_progress(0.5) if progress_dialog and not @cancel
         
     | 
| 
         @@ -118,7 +119,7 @@ module Cosmos 
     | 
|
| 
       118 
119 
     | 
    
         
             
                    rescue Exception => error
         
     | 
| 
       119 
120 
     | 
    
         
             
                      @errors << error
         
     | 
| 
       120 
121 
     | 
    
         
             
                      return if @cancel
         
     | 
| 
       121 
     | 
    
         
            -
                      progress_dialog.append_text("DART Thread Error #{error.class}:#{error.message}\n#{error.backtrace.join("\n")}\n" 
     | 
| 
      
 122 
     | 
    
         
            +
                      progress_dialog.append_text("DART Thread Error #{error.class}:#{error.message}\n#{error.backtrace.join("\n")}\n") if progress_dialog
         
     | 
| 
       122 
123 
     | 
    
         
             
                      # If a progress dialog is shown we can't just bail on this error or
         
     | 
| 
       123 
124 
     | 
    
         
             
                      # it will close and the user will have no idea what happened
         
     | 
| 
       124 
125 
     | 
    
         
             
                      # Thus we'll spin here waiting for them to close the dialog
         
     | 
| 
         @@ -68,7 +68,7 @@ module Cosmos 
     | 
|
| 
       68 
68 
     | 
    
         
             
                        rescue Exception => error
         
     | 
| 
       69 
69 
     | 
    
         
             
                          @errors << error
         
     | 
| 
       70 
70 
     | 
    
         
             
                          break if @cancel
         
     | 
| 
       71 
     | 
    
         
            -
                          progress_dialog.append_text("Error processing #{log_file}:\n#{error.class} : #{error.message}\n#{error.backtrace.join("\n")}\n" 
     | 
| 
      
 71 
     | 
    
         
            +
                          progress_dialog.append_text("Error processing #{log_file}:\n#{error.class} : #{error.message}\n#{error.backtrace.join("\n")}\n") if progress_dialog
         
     | 
| 
       72 
72 
     | 
    
         
             
                          # If a progress dialog is shown we can't just bail on this error or
         
     | 
| 
       73 
73 
     | 
    
         
             
                          # it will close and the user will have no idea what happened
         
     | 
| 
       74 
74 
     | 
    
         
             
                          # Thus we'll spin here waiting for them to close the dialog
         
     | 
    
        data/lib/cosmos/top_level.rb
    CHANGED
    
    | 
         @@ -113,7 +113,7 @@ module Cosmos 
     | 
|
| 
       113 
113 
     | 
    
         
             
                  # Last chance - Check environment
         
     | 
| 
       114 
114 
     | 
    
         
             
                  if ENV['COSMOS_USERPATH']
         
     | 
| 
       115 
115 
     | 
    
         
             
                    disable_warnings do
         
     | 
| 
       116 
     | 
    
         
            -
                      Cosmos.const_set(:USERPATH, ENV['COSMOS_USERPATH'])
         
     | 
| 
      
 116 
     | 
    
         
            +
                      Cosmos.const_set(:USERPATH, ENV['COSMOS_USERPATH'].gsub("\\", "/"))
         
     | 
| 
       117 
117 
     | 
    
         
             
                    end
         
     | 
| 
       118 
118 
     | 
    
         
             
                  else
         
     | 
| 
       119 
119 
     | 
    
         
             
                    # Give up and assume we are in the tools directory
         
     | 
    
        data/lib/cosmos/version.rb
    CHANGED
    
    | 
         @@ -1,12 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: ascii-8bit
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            COSMOS_VERSION = '4.2. 
     | 
| 
      
 3 
     | 
    
         
            +
            COSMOS_VERSION = '4.2.4'
         
     | 
| 
       4 
4 
     | 
    
         
             
            module Cosmos
         
     | 
| 
       5 
5 
     | 
    
         
             
              module Version
         
     | 
| 
       6 
6 
     | 
    
         
             
                MAJOR = '4'
         
     | 
| 
       7 
7 
     | 
    
         
             
                MINOR = '2'
         
     | 
| 
       8 
     | 
    
         
            -
                PATCH = ' 
     | 
| 
       9 
     | 
    
         
            -
                BUILD = ' 
     | 
| 
      
 8 
     | 
    
         
            +
                PATCH = '4'
         
     | 
| 
      
 9 
     | 
    
         
            +
                BUILD = '4c60966285c2f7a5a050bfec88cb081b8662fac9'
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
     | 
    
         
            -
              VERSION = '4.2. 
     | 
| 
      
 11 
     | 
    
         
            +
              VERSION = '4.2.4'
         
     | 
| 
       12 
12 
     | 
    
         
             
            end
         
     | 
| 
         @@ -45,11 +45,24 @@ if RUBY_ENGINE == 'ruby' or Gem.win_platform? 
     | 
|
| 
       45 
45 
     | 
    
         
             
                        i = SerialInterface.new('COM1','COM1','9600','NONE','1','0','0','burst')
         
     | 
| 
       46 
46 
     | 
    
         
             
                        expect(i.connected?).to be false
         
     | 
| 
       47 
47 
     | 
    
         
             
                        i.connect
         
     | 
| 
      
 48 
     | 
    
         
            +
                        expect(i.stream.instance_variable_get(:@flow_control)).to eq :NONE
         
     | 
| 
      
 49 
     | 
    
         
            +
                        expect(i.stream.instance_variable_get(:@data_bits)).to eq 8
         
     | 
| 
       48 
50 
     | 
    
         
             
                        expect(i.connected?).to be true
         
     | 
| 
       49 
51 
     | 
    
         
             
                        i.disconnect
         
     | 
| 
       50 
52 
     | 
    
         
             
                        expect(i.connected?).to be false
         
     | 
| 
       51 
53 
     | 
    
         
             
                      end
         
     | 
| 
       52 
54 
     | 
    
         
             
                    end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                    it "sets options on the interface" do
         
     | 
| 
      
 57 
     | 
    
         
            +
                      if Kernel.is_windows? && !ENV['APPVEYOR']
         
     | 
| 
      
 58 
     | 
    
         
            +
                        i = SerialInterface.new('nil','COM1','9600','NONE','1','0','0','burst')
         
     | 
| 
      
 59 
     | 
    
         
            +
                        i.set_option("FLOW_CONTROL", ["RTSCTS"])
         
     | 
| 
      
 60 
     | 
    
         
            +
                        i.set_option("DATA_BITS", ["7"])
         
     | 
| 
      
 61 
     | 
    
         
            +
                        i.connect
         
     | 
| 
      
 62 
     | 
    
         
            +
                        expect(i.stream.instance_variable_get(:@flow_control)).to eq :RTSCTS
         
     | 
| 
      
 63 
     | 
    
         
            +
                        expect(i.stream.instance_variable_get(:@data_bits)).to eq 7
         
     | 
| 
      
 64 
     | 
    
         
            +
                      end
         
     | 
| 
      
 65 
     | 
    
         
            +
                    end
         
     | 
| 
       53 
66 
     | 
    
         
             
                  end
         
     | 
| 
       54 
67 
     | 
    
         
             
                end
         
     | 
| 
       55 
68 
     | 
    
         
             
              end
         
     | 
    
        data/spec/io/json_rpc_spec.rb
    CHANGED
    
    | 
         @@ -193,6 +193,13 @@ module Cosmos 
     | 
|
| 
       193 
193 
     | 
    
         
             
                    expect(request).to eq(JsonRpcRequest.from_hash(request.as_json))
         
     | 
| 
       194 
194 
     | 
    
         
             
                  end
         
     | 
| 
       195 
195 
     | 
    
         
             
                end
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
                describe "spaceship" do
         
     | 
| 
      
 198 
     | 
    
         
            +
                  it "returns nil for incompatible items" do
         
     | 
| 
      
 199 
     | 
    
         
            +
                    request = JsonRpcRequest.new("puts","test",10)
         
     | 
| 
      
 200 
     | 
    
         
            +
                    expect(request <=> Marshal).to be nil
         
     | 
| 
      
 201 
     | 
    
         
            +
                  end
         
     | 
| 
      
 202 
     | 
    
         
            +
                end
         
     | 
| 
       196 
203 
     | 
    
         
             
              end
         
     | 
| 
       197 
204 
     | 
    
         | 
| 
       198 
205 
     | 
    
         
             
              describe JsonRpcResponse do
         
     | 
| 
         @@ -42,6 +42,14 @@ if RUBY_ENGINE == 'ruby' or Gem.win_platform? 
     | 
|
| 
       42 
42 
     | 
    
         
             
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,2) }.to_not raise_error
         
     | 
| 
       43 
43 
     | 
    
         
             
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,3) }.to raise_error(ArgumentError, "Invalid stop bits: 3")
         
     | 
| 
       44 
44 
     | 
    
         
             
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                    it "supports 5-8 data bits" do
         
     | 
| 
      
 47 
     | 
    
         
            +
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,1,10,nil,0.01,1000,:NONE,5) }.to_not raise_error
         
     | 
| 
      
 48 
     | 
    
         
            +
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,1,10,nil,0.01,1000,:NONE,6) }.to_not raise_error
         
     | 
| 
      
 49 
     | 
    
         
            +
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,1,10,nil,0.01,1000,:NONE,7) }.to_not raise_error
         
     | 
| 
      
 50 
     | 
    
         
            +
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,1,10,nil,0.01,1000,:NONE,8) }.to_not raise_error
         
     | 
| 
      
 51 
     | 
    
         
            +
                      expect { Win32SerialDriver.new('COM1',9600,:NONE,1,10,nil,0.01,1000,:NONE,9) }.to raise_error(ArgumentError, "Invalid data bits: 9")
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
       45 
53 
     | 
    
         
             
                  end
         
     | 
| 
       46 
54 
     | 
    
         | 
| 
       47 
55 
     | 
    
         
             
                  describe "close, closed?" do
         
     | 
| 
         @@ -182,6 +182,12 @@ module Cosmos 
     | 
|
| 
       182 
182 
     | 
    
         
             
                    expect(si1 == si2).to be false
         
     | 
| 
       183 
183 
     | 
    
         
             
                    expect(si1 > si2).to be false
         
     | 
| 
       184 
184 
     | 
    
         
             
                  end
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
                  it "doesn't raise errors on comparing incompatible items" do
         
     | 
| 
      
 187 
     | 
    
         
            +
                    si1 = StructureItem.new("si1", 16, 8, :UINT, :BIG_ENDIAN, nil)
         
     | 
| 
      
 188 
     | 
    
         
            +
                    expect{ (si1 > 5) }.to raise_error(StandardError)
         
     | 
| 
      
 189 
     | 
    
         
            +
                    expect(si1 <=> 5).to be nil
         
     | 
| 
      
 190 
     | 
    
         
            +
                  end
         
     | 
| 
       185 
191 
     | 
    
         
             
                end
         
     | 
| 
       186 
192 
     | 
    
         | 
| 
       187 
193 
     | 
    
         
             
                describe "clone" do
         
     | 
    
        data/spec/script/extract_spec.rb
    CHANGED
    
    | 
         @@ -151,6 +151,11 @@ module Cosmos 
     | 
|
| 
       151 
151 
     | 
    
         
             
                  it "should complain about trying to do an = comparison" do
         
     | 
| 
       152 
152 
     | 
    
         
             
                    expect { extract_fields_from_check_text("TARGET PACKET ITEM = 5") }.to raise_error(/ERROR: Use/)
         
     | 
| 
       153 
153 
     | 
    
         
             
                  end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
                  it "should handle spaces throughout correctly" do
         
     | 
| 
      
 156 
     | 
    
         
            +
                    expect(extract_fields_from_check_text("TARGET PACKET ITEM == \"This   is  a test\"")).to eql(['TARGET', 'PACKET', 'ITEM', "== \"This   is  a test\""])
         
     | 
| 
      
 157 
     | 
    
         
            +
                    expect(extract_fields_from_check_text("TARGET   PACKET  ITEM   ==    'This is  a test   '")).to eql(['TARGET', 'PACKET', 'ITEM', "  ==    'This is  a test   '"])
         
     | 
| 
      
 158 
     | 
    
         
            +
                  end
         
     | 
| 
       154 
159 
     | 
    
         
             
                end
         
     | 
| 
       155 
160 
     | 
    
         | 
| 
       156 
161 
     | 
    
         
             
              end
         
     | 
| 
         @@ -633,6 +633,16 @@ module Cosmos 
     | 
|
| 
       633 
633 
     | 
    
         
             
                      expect(config.routers.keys).to eql %w(MY_ROUTER1 MY_ROUTER2)
         
     | 
| 
       634 
634 
     | 
    
         
             
                      tf.unlink
         
     | 
| 
       635 
635 
     | 
    
         
             
                    end
         
     | 
| 
      
 636 
     | 
    
         
            +
             
     | 
| 
      
 637 
     | 
    
         
            +
                    it "supports protocols" do
         
     | 
| 
      
 638 
     | 
    
         
            +
                      tf = Tempfile.new('unittest')
         
     | 
| 
      
 639 
     | 
    
         
            +
                      tf.puts 'ROUTER MY_ROUTER1 cts_config_test_interface.rb'
         
     | 
| 
      
 640 
     | 
    
         
            +
                      tf.puts '  PROTOCOL READ_WRITE OverrideProtocol'
         
     | 
| 
      
 641 
     | 
    
         
            +
                      tf.close
         
     | 
| 
      
 642 
     | 
    
         
            +
                      config = CmdTlmServerConfig.new(tf.path)
         
     | 
| 
      
 643 
     | 
    
         
            +
                      expect(config.routers.keys).to eql %w(MY_ROUTER1)
         
     | 
| 
      
 644 
     | 
    
         
            +
                      tf.unlink
         
     | 
| 
      
 645 
     | 
    
         
            +
                    end
         
     | 
| 
       636 
646 
     | 
    
         
             
                  end
         
     | 
| 
       637 
647 
     | 
    
         | 
| 
       638 
648 
     | 
    
         
             
                  context "with ROUTE" do
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: cosmos
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 4.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 4.2.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: java
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ryan Melton
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire:
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2018- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2018-05-16 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -396,6 +396,7 @@ executables: 
     | 
|
| 
       396 
396 
     | 
    
         
             
            - cstol_converter
         
     | 
| 
       397 
397 
     | 
    
         
             
            - xtce_converter
         
     | 
| 
       398 
398 
     | 
    
         
             
            - dart_import
         
     | 
| 
      
 399 
     | 
    
         
            +
            - dart_util
         
     | 
| 
       399 
400 
     | 
    
         
             
            extensions: []
         
     | 
| 
       400 
401 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       401 
402 
     | 
    
         
             
            files:
         
     | 
| 
         @@ -612,6 +613,7 @@ files: 
     | 
|
| 
       612 
613 
     | 
    
         
             
            - bin/cosmos
         
     | 
| 
       613 
614 
     | 
    
         
             
            - bin/cstol_converter
         
     | 
| 
       614 
615 
     | 
    
         
             
            - bin/dart_import
         
     | 
| 
      
 616 
     | 
    
         
            +
            - bin/dart_util
         
     | 
| 
       615 
617 
     | 
    
         
             
            - bin/exchndl20-x64.dll
         
     | 
| 
       616 
618 
     | 
    
         
             
            - bin/exchndl20.dll
         
     | 
| 
       617 
619 
     | 
    
         
             
            - bin/exchndl21-x64.dll
         
     | 
| 
         @@ -769,6 +771,11 @@ files: 
     | 
|
| 
       769 
771 
     | 
    
         
             
            - demo/config/data/vswitchon.gif
         
     | 
| 
       770 
772 
     | 
    
         
             
            - demo/config/system/system.txt
         
     | 
| 
       771 
773 
     | 
    
         
             
            - demo/config/system/system2.txt
         
     | 
| 
      
 774 
     | 
    
         
            +
            - demo/config/targets/DART/cmd_tlm/dart_cmds.txt
         
     | 
| 
      
 775 
     | 
    
         
            +
            - demo/config/targets/DART/cmd_tlm/dart_tlm.txt
         
     | 
| 
      
 776 
     | 
    
         
            +
            - demo/config/targets/DART/cmd_tlm_server.txt
         
     | 
| 
      
 777 
     | 
    
         
            +
            - demo/config/targets/DART/screens/status.txt
         
     | 
| 
      
 778 
     | 
    
         
            +
            - demo/config/targets/DART/target.txt
         
     | 
| 
       772 
779 
     | 
    
         
             
            - demo/config/targets/EXAMPLE/cmd_tlm/example_cmds.txt
         
     | 
| 
       773 
780 
     | 
    
         
             
            - demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt
         
     | 
| 
       774 
781 
     | 
    
         
             
            - demo/config/targets/EXAMPLE/cmd_tlm_server.txt
         
     | 
| 
         @@ -1302,7 +1309,6 @@ files: 
     | 
|
| 
       1302 
1309 
     | 
    
         
             
            - lib/cosmos/dart/app/channels/application_cable/channel.rb
         
     | 
| 
       1303 
1310 
     | 
    
         
             
            - lib/cosmos/dart/app/channels/application_cable/connection.rb
         
     | 
| 
       1304 
1311 
     | 
    
         
             
            - lib/cosmos/dart/app/controllers/application_controller.rb
         
     | 
| 
       1305 
     | 
    
         
            -
            - lib/cosmos/dart/app/helpers/application_helper.rb
         
     | 
| 
       1306 
1312 
     | 
    
         
             
            - lib/cosmos/dart/app/jobs/application_job.rb
         
     | 
| 
       1307 
1313 
     | 
    
         
             
            - lib/cosmos/dart/app/mailers/application_mailer.rb
         
     | 
| 
       1308 
1314 
     | 
    
         
             
            - lib/cosmos/dart/app/models/application_record.rb
         
     | 
| 
         @@ -1312,6 +1318,7 @@ files: 
     | 
|
| 
       1312 
1318 
     | 
    
         
             
            - lib/cosmos/dart/app/models/packet_config.rb
         
     | 
| 
       1313 
1319 
     | 
    
         
             
            - lib/cosmos/dart/app/models/packet_log.rb
         
     | 
| 
       1314 
1320 
     | 
    
         
             
            - lib/cosmos/dart/app/models/packet_log_entry.rb
         
     | 
| 
      
 1321 
     | 
    
         
            +
            - lib/cosmos/dart/app/models/status.rb
         
     | 
| 
       1315 
1322 
     | 
    
         
             
            - lib/cosmos/dart/app/models/system_config.rb
         
     | 
| 
       1316 
1323 
     | 
    
         
             
            - lib/cosmos/dart/app/models/target.rb
         
     | 
| 
       1317 
1324 
     | 
    
         
             
            - lib/cosmos/dart/app/views/layouts/application.html.erb
         
     | 
| 
         @@ -1369,6 +1376,11 @@ files: 
     | 
|
| 
       1369 
1376 
     | 
    
         
             
            - lib/cosmos/dart/db/migrate/20170919210307_add_max_table_index_to_packet_configs.rb
         
     | 
| 
       1370 
1377 
     | 
    
         
             
            - lib/cosmos/dart/db/migrate/20171215225546_add_ready_to_packet_log_entries.rb
         
     | 
| 
       1371 
1378 
     | 
    
         
             
            - lib/cosmos/dart/db/migrate/20180116214338_add_index_for_ple_ready_to_packet_log_entries.rb
         
     | 
| 
      
 1379 
     | 
    
         
            +
            - lib/cosmos/dart/db/migrate/20180423205644_create_statuses.rb
         
     | 
| 
      
 1380 
     | 
    
         
            +
            - lib/cosmos/dart/db/migrate/20180425211340_add_decom_state_index.rb
         
     | 
| 
      
 1381 
     | 
    
         
            +
            - lib/cosmos/dart/db/migrate/20180509204705_remove_indexes.rb
         
     | 
| 
      
 1382 
     | 
    
         
            +
            - lib/cosmos/dart/db/migrate/20180510160002_remove_timestamps_from_ples.rb
         
     | 
| 
      
 1383 
     | 
    
         
            +
            - lib/cosmos/dart/db/migrate/20180511194944_add_packet_log_id_to_tables.rb
         
     | 
| 
       1372 
1384 
     | 
    
         
             
            - lib/cosmos/dart/db/schema.rb
         
     | 
| 
       1373 
1385 
     | 
    
         
             
            - lib/cosmos/dart/db/seeds.rb
         
     | 
| 
       1374 
1386 
     | 
    
         
             
            - lib/cosmos/dart/examples/dart_decom_client.rb
         
     | 
| 
         @@ -1389,6 +1401,7 @@ files: 
     | 
|
| 
       1389 
1401 
     | 
    
         
             
            - lib/cosmos/dart/processes/dart_ingester.rb
         
     | 
| 
       1390 
1402 
     | 
    
         
             
            - lib/cosmos/dart/processes/dart_reducer.rb
         
     | 
| 
       1391 
1403 
     | 
    
         
             
            - lib/cosmos/dart/processes/dart_stream_server.rb
         
     | 
| 
      
 1404 
     | 
    
         
            +
            - lib/cosmos/dart/processes/dart_util.rb
         
     | 
| 
       1392 
1405 
     | 
    
         
             
            - lib/cosmos/dart/processes/dart_worker.rb
         
     | 
| 
       1393 
1406 
     | 
    
         
             
            - lib/cosmos/dart/spec/dart/dart_common_spec.rb
         
     | 
| 
       1394 
1407 
     | 
    
         
             
            - lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb
         
     | 
| 
         @@ -1467,6 +1480,7 @@ files: 
     | 
|
| 
       1467 
1480 
     | 
    
         
             
            - lib/cosmos/gui/widgets/realtime_button_bar.rb
         
     | 
| 
       1468 
1481 
     | 
    
         
             
            - lib/cosmos/interfaces.rb
         
     | 
| 
       1469 
1482 
     | 
    
         
             
            - lib/cosmos/interfaces/cmd_tlm_server_interface.rb
         
     | 
| 
      
 1483 
     | 
    
         
            +
            - lib/cosmos/interfaces/dart_status_interface.rb
         
     | 
| 
       1470 
1484 
     | 
    
         
             
            - lib/cosmos/interfaces/interface.rb
         
     | 
| 
       1471 
1485 
     | 
    
         
             
            - lib/cosmos/interfaces/linc_interface.rb
         
     | 
| 
       1472 
1486 
     | 
    
         
             
            - lib/cosmos/interfaces/protocols/burst_protocol.rb
         
     |