Class: USB::Endpoint

Inherits:
Object
  • Object
show all
Defined in:
lib/usb.rb

Instance Method Summary collapse

Instance Method Details

#busObject



377
# File 'lib/usb.rb', line 377

def bus() self.setting.interface.configuration.device.bus end

#configurationObject



379
# File 'lib/usb.rb', line 379

def configuration() self.setting.interface.configuration end

#deviceObject



378
# File 'lib/usb.rb', line 378

def device() self.setting.interface.configuration.device end

#inspectObject



358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
# File 'lib/usb.rb', line 358

def inspect
  if self.revoked?
    "\#<#{self.class} revoked>"
  else
    endpoint_address = self.bEndpointAddress
    num = endpoint_address & 0b00001111
    inout = (endpoint_address & 0b10000000) == 0 ? "OUT" : "IN "
    bits = self.bmAttributes
    transfer_type = %w[Control Isochronous Bulk Interrupt][0b11 & bits]
    type = [transfer_type]
    if transfer_type == 'Isochronous'
      synchronization_type = %w[NoSynchronization Asynchronous Adaptive Synchronous][(0b1100 & bits) >> 2]
      usage_type = %w[Data Feedback ImplicitFeedback ?][(0b110000 & bits) >> 4]
      type << synchronization_type << usage_type
    end
    "\#<#{self.class} #{num} #{inout} #{type.join(" ")}>"
  end
end

#interfaceObject



380
# File 'lib/usb.rb', line 380

def interface() self.setting.interface end