Trait DfuIo

Source
pub trait DfuIo {
    type Read;
    type Write;
    type Reset;
    type Error: From<Error>;
    type MemoryLayout: AsRef<mem>;

    // Required methods
    fn read_control(
        &self,
        request_type: u8,
        request: u8,
        value: u16,
        buffer: &mut [u8],
    ) -> Result<Self::Read, Self::Error>;
    fn write_control(
        &self,
        request_type: u8,
        request: u8,
        value: u16,
        buffer: &[u8],
    ) -> Result<Self::Write, Self::Error>;
    fn usb_reset(&self) -> Result<Self::Reset, Self::Error>;
    fn protocol(&self) -> &DfuProtocol<Self::MemoryLayout>;
    fn functional_descriptor(&self) -> &FunctionalDescriptor;
}
Expand description

Trait to implement lower level communication with a USB device.

Required Associated Types§

Source

type Read

Return type after calling Self::read_control.

Source

type Write

Return type after calling Self::write_control.

Source

type Reset

Return type after calling Self::usb_reset.

Source

type Error: From<Error>

Error type.

Source

type MemoryLayout: AsRef<mem>

Dfuse Memory layout type

Required Methods§

Source

fn read_control( &self, request_type: u8, request: u8, value: u16, buffer: &mut [u8], ) -> Result<Self::Read, Self::Error>

Read data using control transfer.

Source

fn write_control( &self, request_type: u8, request: u8, value: u16, buffer: &[u8], ) -> Result<Self::Write, Self::Error>

Write data using control transfer.

Source

fn usb_reset(&self) -> Result<Self::Reset, Self::Error>

Triggers a USB reset.

Source

fn protocol(&self) -> &DfuProtocol<Self::MemoryLayout>

Returns the protocol of the device

Source

fn functional_descriptor(&self) -> &FunctionalDescriptor

Returns the functional descriptor of the device.

Implementors§