Struct capsules::usb::DeviceDescriptor
[−]
[src]
pub struct DeviceDescriptor {
pub usb_release: u16,
pub class: u8,
pub subclass: u8,
pub protocol: u8,
pub max_packet_size_ep0: u8,
pub vendor_id: u16,
pub product_id: u16,
pub device_release: u16,
pub manufacturer_string: u8,
pub product_string: u8,
pub serial_number_string: u8,
pub num_configurations: u8,
}Fields
usb_release: u16
Valid values include 0x0100 (USB1.0), 0x0110 (USB1.1) and 0x0200 (USB2.0)
class: u8
0x00 means each interface defines its own class. 0xFF means the class behavior is defined by the vendor. All other values have meaning assigned by USB-IF
subclass: u8
Assigned by USB-IF if class is
protocol: u8
Assigned by USB-IF if class is
max_packet_size_ep0: u8
Max packet size for endpoint 0. Must be 8, 16, 32 or 64
vendor_id: u16
Obtained from USB-IF
product_id: u16
Together with vendor_id, this must be unique to the product
device_release: u16
Device release number in binary coded decimal (BCD)
manufacturer_string: u8
Index of the string descriptor describing manufacturer, or 0 if none
product_string: u8
Index of the string descriptor describing product, or 0 if none
serial_number_string: u8
Index of the string descriptor giving device serial number, or 0 if none
num_configurations: u8
Number of configurations the device supports. Must be at least one
Trait Implementations
impl Default for DeviceDescriptor[src]
impl Descriptor for DeviceDescriptor[src]
fn size(&self) -> usize[src]
Serialized size of Descriptor
fn write_to_unchecked(&self, buf: &[Cell<u8>]) -> usize[src]
Same as write_to(), but doesn't check that buf is long enough before indexing into it. This should be used only if the result of size() is first consulted. Read more
fn write_to(&self, buf: &[Cell<u8>]) -> usize[src]
Serialize the descriptor to a buffer for transmission on the bus