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§
Sourcetype Read
type Read
Return type after calling Self::read_control
.
Sourcetype Write
type Write
Return type after calling Self::write_control
.
Sourcetype Reset
type Reset
Return type after calling Self::usb_reset
.
Sourcetype MemoryLayout: AsRef<mem>
type MemoryLayout: AsRef<mem>
Dfuse Memory layout type
Required Methods§
Sourcefn read_control(
&self,
request_type: u8,
request: u8,
value: u16,
buffer: &mut [u8],
) -> Result<Self::Read, Self::Error>
fn read_control( &self, request_type: u8, request: u8, value: u16, buffer: &mut [u8], ) -> Result<Self::Read, Self::Error>
Read data using control transfer.
Sourcefn write_control(
&self,
request_type: u8,
request: u8,
value: u16,
buffer: &[u8],
) -> Result<Self::Write, Self::Error>
fn write_control( &self, request_type: u8, request: u8, value: u16, buffer: &[u8], ) -> Result<Self::Write, Self::Error>
Write data using control transfer.
Sourcefn protocol(&self) -> &DfuProtocol<Self::MemoryLayout>
fn protocol(&self) -> &DfuProtocol<Self::MemoryLayout>
Returns the protocol of the device
Sourcefn functional_descriptor(&self) -> &FunctionalDescriptor
fn functional_descriptor(&self) -> &FunctionalDescriptor
Returns the functional descriptor of the device.