Struct libusb::DeviceHandle
[−]
[src]
pub struct DeviceHandle<'a> {
// some fields omitted
}A handle to an open USB device.
Methods
impl<'a> DeviceHandle<'a>[src]
fn active_configuration(&self) -> Result<u8>
Returns the active configuration number.
fn set_active_configuration(&mut self, config: u8) -> Result<()>
Sets the device's active configuration.
fn unconfigure(&mut self) -> Result<()>
Puts the device in an unconfigured state.
fn reset(&mut self) -> Result<()>
Resets the device.
fn kernel_driver_active(&self, iface: u8) -> Result<bool>
Indicates whether the device has an attached kernel driver.
This method is not supported on all platforms.
fn detach_kernel_driver(&mut self, iface: u8) -> Result<()>
Detaches an attached kernel driver from the device.
This method is not supported on all platforms.
fn attach_kernel_driver(&mut self, iface: u8) -> Result<()>
Attaches a kernel driver to the device.
This method is not supported on all platforms.
fn claim_interface(&mut self, iface: u8) -> Result<()>
Claims one of the device's interfaces.
An interface must be claimed before operating on it. All claimed interfaces are released when the device handle goes out of scope.
fn release_interface(&mut self, iface: u8) -> Result<()>
Releases a claimed interface.
fn set_alternate_setting(&mut self, iface: u8, setting: u8) -> Result<()>
Sets an interface's active setting.
fn read_interrupt(&self, endpoint: u8, buf: &mut [u8], timeout: Duration) -> Result<usize>
Reads from an interrupt endpoint.
This function attempts to read from the interrupt endpoint with the address given by the
endpoint parameter and fills buf with any data received from the endpoint. The function
blocks up to the amount of time specified by timeout.
If the return value is Ok(n), then buf is populated with n bytes of data received
from the endpoint.
Errors
If this function encounters any form of error while fulfilling the transfer request, an error variant will be returned. If an error variant is returned, no bytes were read.
The errors returned by this function include:
InvalidParamif the endpoint is not an input endpoint.Timeoutif the transfer timed out.Pipeif the endpoint halted.Overflowif the device offered more data.NoDeviceif the device has been disconnected.Ioif the transfer encountered an I/O error.
fn write_interrupt(&self, endpoint: u8, buf: &[u8], timeout: Duration) -> Result<usize>
Writes to an interrupt endpoint.
This function attempts to write the contents of buf to the interrupt endpoint with the
address given by the endpoint parameter. The function blocks up to the amount of time
specified by timeout.
If the return value is Ok(n), then n bytes of buf were written to the endpoint.
Errors
If this function encounters any form of error while fulfilling the transfer request, an error variant will be returned. If an error variant is returned, no bytes were written.
The errors returned by this function include:
InvalidParamif the endpoint is not an output endpoint.Timeoutif the transfer timed out.Pipeif the endpoint halted.NoDeviceif the device has been disconnected.Ioif the transfer encountered an I/O error.
fn read_bulk(&self, endpoint: u8, buf: &mut [u8], timeout: Duration) -> Result<usize>
Reads from a bulk endpoint.
This function attempts to read from the bulk endpoint with the address given by the
endpoint parameter and fills buf with any data received from the endpoint. The function
blocks up to the amount of time specified by timeout.
If the return value is Ok(n), then buf is populated with n bytes of data received
from the endpoint.
Errors
If this function encounters any form of error while fulfilling the transfer request, an error variant will be returned. If an error variant is returned, no bytes were read.
The errors returned by this function include:
InvalidParamif the endpoint is not an input endpoint.Timeoutif the transfer timed out.Pipeif the endpoint halted.Overflowif the device offered more data.NoDeviceif the device has been disconnected.Ioif the transfer encountered an I/O error.
fn write_bulk(&self, endpoint: u8, buf: &[u8], timeout: Duration) -> Result<usize>
Writes to a bulk endpoint.
This function attempts to write the contents of buf to the bulk endpoint with the address
given by the endpoint parameter. The function blocks up to the amount of time specified
by timeout.
If the return value is Ok(n), then n bytes of buf were written to the endpoint.
Errors
If this function encounters any form of error while fulfilling the transfer request, an error variant will be returned. If an error variant is returned, no bytes were written.
The errors returned by this function include:
InvalidParamif the endpoint is not an output endpoint.Timeoutif the transfer timed out.Pipeif the endpoint halted.NoDeviceif the device has been disconnected.Ioif the transfer encountered an I/O error.
fn read_control(&self, request_type: u8, request: u8, value: u16, index: u16, buf: &mut [u8], timeout: Duration) -> Result<usize>
Reads data using a control transfer.
This function attempts to read data from the device using a control transfer and fills
buf with any data received during the transfer. The function blocks up to the amount of
time specified by timeout.
The parameters request_type, request, value, and index specify the fields of the
control transfer setup packet (bmRequestType, bRequest, wValue, and wIndex
respectively). The values for each of these parameters shall be given in host-endian byte
order. The value for the request_type parameter can be built with the helper function,
request_type(). The meaning of the other parameters depends on the
type of control request.
If the return value is Ok(n), then buf is populated with n bytes of data.
Errors
If this function encounters any form of error while fulfilling the transfer request, an error variant will be returned. If an error variant is returned, no bytes were read.
The errors returned by this function include:
InvalidParamifrequest_typedoes not specify a read transfer.Timeoutif the transfer timed out.Pipeif the control request was not supported by the device.NoDeviceif the device has been disconnected.Ioif the transfer encountered an I/O error.
fn write_control(&self, request_type: u8, request: u8, value: u16, index: u16, buf: &[u8], timeout: Duration) -> Result<usize>
Writes data using a control transfer.
This function attempts to write the contents of buf to the device using a control
transfer. The function blocks up to the amount of time specified by timeout.
The parameters request_type, request, value, and index specify the fields of the
control transfer setup packet (bmRequestType, bRequest, wValue, and wIndex
respectively). The values for each of these parameters shall be given in host-endian byte
order. The value for the request_type parameter can be built with the helper function,
request_type(). The meaning of the other parameters depends on the
type of control request.
If the return value is Ok(n), then n bytes of buf were transfered.
Errors
If this function encounters any form of error while fulfilling the transfer request, an error variant will be returned. If an error variant is returned, no bytes were read.
The errors returned by this function include:
InvalidParamifrequest_typedoes not specify a write transfer.Timeoutif the transfer timed out.Pipeif the control request was not supported by the device.NoDeviceif the device has been disconnected.Ioif the transfer encountered an I/O error.
fn read_languages(&self, timeout: Duration) -> Result<Vec<Language>>
Reads the languages supported by the device's string descriptors.
This function returns a list of languages that can be used to read the device's string descriptors.
fn read_string_descriptor(&self, language: Language, index: u8, timeout: Duration) -> Result<String>
Reads a string descriptor from the device.
language should be one of the languages returned from read_languages.
fn read_manufacturer_string(&self, language: Language, device: &DeviceDescriptor, timeout: Duration) -> Result<String>
Reads the device's manufacturer string descriptor.
fn read_product_string(&self, language: Language, device: &DeviceDescriptor, timeout: Duration) -> Result<String>
Reads the device's product string descriptor.
fn read_serial_number_string(&self, language: Language, device: &DeviceDescriptor, timeout: Duration) -> Result<String>
Reads the device's serial number string descriptor.
fn read_configuration_string(&self, language: Language, configuration: &ConfigDescriptor, timeout: Duration) -> Result<String>
Reads the string descriptor for a configuration's description.
fn read_interface_string(&self, language: Language, interface: &InterfaceDescriptor, timeout: Duration) -> Result<String>
Reads the string descriptor for a interface's description.
Trait Implementations
impl<'a> Drop for DeviceHandle<'a>[src]
fn drop(&mut self)
Closes the device.