def usb_open_desc(vendor, product, description, serial)
      raise ArgumentError.new('vendor should be Fixnum')  unless vendor.kind_of?(Fixnum)
      raise ArgumentError.new('product should be Fixnum')  unless product.kind_of?(Fixnum)
      check_result(Ftdi.ftdi_usb_open_desc(ctx, vendor, product, description, serial))
    end
def usb_open_desc(vendor, product, description, serial)
      raise ArgumentError.new('vendor should be Fixnum')  unless vendor.kind_of?(Fixnum)
      raise ArgumentError.new('product should be Fixnum')  unless product.kind_of?(Fixnum)
      check_result(Ftdi.ftdi_usb_open_desc(ctx, vendor, product, description, serial))
    end
def usb_open_desc ( vendor , product , description , serial ) raise ArgumentError . new ( 'vendor should be Fixnum' ) unless vendor . kind_of? ( Fixnum ) raise ArgumentError . new ( 'product should be Fixnum' ) unless product . kind_of? ( Fixnum ) check_result ( Ftdi . ftdi_usb_open_desc ( ctx , vendor , product , description , serial ) ) end
Opens the first device with a given vendor and product ids, description and serial.
 @param [Fixnum] vendor Vendor id.
 @param [Fixnum] product Product id.
 @param [String] description Description to search for. Use nil if not needed.
 @param [String] serial Serial to search for. Use nil if not needed.
 @return [NilClass] nil
 @raise [StatusCodeError] libftdi reports error.
 @raise [ArgumentError] Bad arguments.
Opens the first device with a given vendor and product ids description and serial .