OpenC3/cosmos

View on GitHub

Showing 1,379 of 1,379 total issues

Avoid deeply nested control flow statements.
Open

            if upper_bound > lower_bound
              # Combine bytes into a FixNum
              temp_data[1..temp_upper].each_byte do |temp_value|
                temp = temp << 8
                temp = temp + temp_value
Severity: Major
Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

    Avoid deeply nested control flow statements.
    Open

                  if endianness == HOST_ENDIANNESS
                    packed = values.pack(PACK_NATIVE_64_BIT_UINT_ARRAY)
                  else # endianness != HOST_ENDIANNESS
                    packed = values.pack(PACK_NATIVE_64_BIT_UINT_ARRAY)
                    self.byte_swap_buffer!(packed, 8)
    Severity: Major
    Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

      Avoid deeply nested control flow statements.
      Open

                      if value
                        item.default = value
                      else
                        raise "Unknown DEFAULT #{@defaults[index]} for item #{item.name}. Valid states are #{item.states.keys.join(', ')}."
                      end
      Severity: Major
      Found in openc3/lib/openc3/tools/table_manager/table_config.rb - About 45 mins to fix

        Avoid deeply nested control flow statements.
        Open

                    if data_type == :INT
                      ###########################################################
                      # Handle byte-aligned 8, 16, 32, and 64 bit :INT
                      ###########################################################
        
        
        Severity: Major
        Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

          Avoid deeply nested control flow statements.
          Open

                      if endianness == :LITTLE_ENDIAN
                        # Bitoffset always refers to the most significant bit of a bitfield
                        num_bytes = (((bit_offset % 8) + bit_size - 1) / 8) + 1
                        upper_bound = bit_offset / 8
                        lower_bound = upper_bound - num_bytes + 1
          Severity: Major
          Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

            Method initialize has 6 arguments (exceeds 4 allowed). Consider refactoring.
            Open

                def initialize(hostname, write_port, read_port, write_timeout, read_timeout, connect_timeout = 5.0)
            Severity: Minor
            Found in openc3/lib/openc3/streams/tcpip_client_stream.rb - About 45 mins to fix

              Avoid deeply nested control flow statements.
              Open

                            if endianness == HOST_ENDIANNESS
                              packed = values.pack(PACK_NATIVE_16_BIT_INT_ARRAY)
                            else # endianness != HOST_ENDIANNESS
                              packed = values.pack(PACK_NATIVE_16_BIT_INT_ARRAY)
                              self.byte_swap_buffer!(packed, 2)
              Severity: Major
              Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                Avoid deeply nested control flow statements.
                Open

                              if endianness == HOST_ENDIANNESS
                                value = buffer[lower_bound..upper_bound].unpack(PACK_NATIVE_64_BIT_UINT_ARRAY)
                              else # endianness != HOST_ENDIANNESS
                                temp = self.byte_swap_buffer(buffer[lower_bound..upper_bound], 8)
                                value = temp.to_s.unpack(PACK_NATIVE_64_BIT_UINT_ARRAY)
                Severity: Major
                Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                  Avoid deeply nested control flow statements.
                  Open

                                if endianness == :BIG_ENDIAN
                                  value = buffer[lower_bound..upper_bound].unpack(PACK_BIG_ENDIAN_16_BIT_UINT_ARRAY)
                                else # endianness == :LITTLE_ENDIAN
                                  value = buffer[lower_bound..upper_bound].unpack(PACK_LITTLE_ENDIAN_16_BIT_UINT_ARRAY)
                                end
                  Severity: Major
                  Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                    Avoid deeply nested control flow statements.
                    Open

                                  if endianness == :BIG_ENDIAN
                                    value = buffer[lower_bound..upper_bound].unpack(PACK_BIG_ENDIAN_32_BIT_UINT_ARRAY)
                                  else # endianness == :LITTLE_ENDIAN
                                    value = buffer[lower_bound..upper_bound].unpack(PACK_LITTLE_ENDIAN_32_BIT_UINT_ARRAY)
                                  end
                    Severity: Major
                    Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                      Avoid deeply nested control flow statements.
                      Open

                                    if endianness == HOST_ENDIANNESS
                                      packed = values.pack(PACK_NATIVE_32_BIT_INT_ARRAY)
                                    else # endianness != HOST_ENDIANNESS
                                      packed = values.pack(PACK_NATIVE_32_BIT_INT_ARRAY)
                                      self.byte_swap_buffer!(packed, 4)
                      Severity: Major
                      Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                        Avoid deeply nested control flow statements.
                        Open

                                      if endianness == HOST_ENDIANNESS
                                        value = buffer[lower_bound..upper_bound].unpack(PACK_NATIVE_64_BIT_INT_ARRAY)
                                      else # endianness != HOST_ENDIANNESS
                                        temp = self.byte_swap_buffer(buffer[lower_bound..upper_bound], 8)
                                        value = temp.to_s.unpack(PACK_NATIVE_64_BIT_INT_ARRAY)
                        Severity: Major
                        Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                          Avoid deeply nested control flow statements.
                          Open

                                          if parent == previous_parent
                                            # Same Parent - Respawn parent
                                            @changed_microservices[parent] = @microservices[parent] if @microservices[parent] and @previous_microservices[parent]
                                          elsif parent and previous_parent
                                            # Parent changed - Respawn both parents
                          Severity: Major
                          Found in openc3/lib/openc3/operators/microservice_operator.rb - About 45 mins to fix

                            Avoid deeply nested control flow statements.
                            Open

                                    packet_name_length -= OPENC3_ID_FIXED_SIZE if id
                            Severity: Major
                            Found in openc3/lib/openc3/logs/packet_log_reader.rb - About 45 mins to fix

                              Avoid deeply nested control flow statements.
                              Open

                                    elsif flags & OPENC3_ENTRY_TYPE_MASK == OPENC3_KEY_MAP_ENTRY_TYPE_MASK
                                      packet_index = entry[2..3].unpack('n')[0]
                                      key_map_length = length - OPENC3_PRIMARY_FIXED_SIZE - OPENC3_KEY_MAP_SECONDARY_FIXED_SIZE
                                      if cbor
                                        key_map = CBOR.decode(entry[4..(key_map_length + 3)])
                              Severity: Major
                              Found in openc3/lib/openc3/logs/packet_log_reader.rb - About 45 mins to fix

                                Method initialize has 6 arguments (exceeds 4 allowed). Consider refactoring.
                                Open

                                      log_name,
                                      log_type,
                                      cycle_time = 600, # 10 minutes, matches time in target_model
                                      cycle_size = 50_000_000, # 50MB, matches size in target_model
                                      cycle_hour = nil,
                                Severity: Minor
                                Found in openc3/lib/openc3/logs/stream_log.rb - About 45 mins to fix

                                  Avoid deeply nested control flow statements.
                                  Open

                                            if byte_aligned(bit_offset)
                                              case bit_size
                                              when 32
                                                if endianness == :BIG_ENDIAN
                                                  return buffer[lower_bound..upper_bound].unpack(PACK_BIG_ENDIAN_32_BIT_FLOAT)[0]
                                  Severity: Major
                                  Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                                    Avoid deeply nested control flow statements.
                                    Open

                                                if data_type == :INT
                                                  # Convert to negative if necessary
                                                  if (bit_size > 1) && (temp[bit_size - 1] == 1)
                                                    temp = -((1 << bit_size) - temp)
                                                  end
                                    Severity: Major
                                    Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                                      Avoid deeply nested control flow statements.
                                      Open

                                                    if (lower_bound + end_bytes) > buffer.length
                                                      raise_buffer_error(:write, buffer, data_type, given_bit_offset, given_bit_size)
                                                    end
                                      Severity: Major
                                      Found in openc3/lib/openc3/accessors/binary_accessor.rb - About 45 mins to fix

                                        Avoid deeply nested control flow statements.
                                        Open

                                                unless target_name
                                                  # There was a bug in the PacketLogWriter before version 5.6.0 that stored an invalid target_index
                                                  # Attempt to work around by reading the target_name from the filename
                                                  filename_split = @filename.to_s.split('__')
                                                  target_name = filename_split[3]
                                        Severity: Major
                                        Found in openc3/lib/openc3/logs/packet_log_reader.rb - About 45 mins to fix
                                          Severity
                                          Category
                                          Status
                                          Source
                                          Language