pub struct DFUClass<B: UsbBus, M: DFUMemIO> { /* private fields */ }Expand description
DFU protocol USB class implementation for usb-device library.
Implementations§
Source§impl<B: UsbBus, M: DFUMemIO> DFUClass<B, M>
impl<B: UsbBus, M: DFUMemIO> DFUClass<B, M>
Sourcepub fn new(alloc: &UsbBusAllocator<B>, mem: M) -> Self
pub fn new(alloc: &UsbBusAllocator<B>, mem: M) -> Self
Creates a new DFUClass with the provided UsbBus and DFUMemIO
Sourcepub fn release(self) -> M
pub fn release(self) -> M
This function will consume self and return the owned memory argument that was moved in the call to new()
Sourcepub fn set_unexpected_reset_state(&mut self)
pub fn set_unexpected_reset_state(&mut self)
This function may be called just after DFUClass::new() to
set DFU error state to “Device detected unexpected power on reset”
instead of the usual dfuIdle.
Sourcepub fn set_firmware_corrupted_state(&mut self)
pub fn set_firmware_corrupted_state(&mut self)
This function may be called just after DFUClass::new() to
set DFU error state to “Device’s firmware is corrupt. It cannot return to run-time (non-DFU) operations”
instead of the usual dfuIdle.
Sourcepub fn get_address_pointer(&self) -> u32
pub fn get_address_pointer(&self) -> u32
Return current Address Pointer value.
Trait Implementations§
Source§impl<B: UsbBus, M: DFUMemIO> UsbClass<B> for DFUClass<B, M>
impl<B: UsbBus, M: DFUMemIO> UsbClass<B> for DFUClass<B, M>
Source§fn get_configuration_descriptors(
&self,
writer: &mut DescriptorWriter<'_>,
) -> Result<()>
fn get_configuration_descriptors( &self, writer: &mut DescriptorWriter<'_>, ) -> Result<()>
Called when a GET_DESCRIPTOR request is received for a configuration descriptor. When
called, the implementation should write its interface, endpoint and any extra class
descriptors into
writer. The configuration descriptor itself will be written by
UsbDevice and shouldn’t be written by classes. Read moreSource§fn get_string(&self, index: StringIndex, lang_id: LangID) -> Option<&str>
fn get_string(&self, index: StringIndex, lang_id: LangID) -> Option<&str>
Gets a class-specific string descriptor. Read more
Source§fn control_in(&mut self, xfer: ControlIn<'_, '_, '_, B>)
fn control_in(&mut self, xfer: ControlIn<'_, '_, '_, B>)
Called when a control request is received with direction DeviceToHost. Read more
Source§fn control_out(&mut self, xfer: ControlOut<'_, '_, '_, B>)
fn control_out(&mut self, xfer: ControlOut<'_, '_, '_, B>)
Called when a control request is received with direction HostToDevice. Read more
Source§fn get_bos_descriptors(
&self,
writer: &mut BosWriter<'_, '_>,
) -> Result<(), UsbError>
fn get_bos_descriptors( &self, writer: &mut BosWriter<'_, '_>, ) -> Result<(), UsbError>
Called when a GET_DESCRIPTOR request is received for a BOS descriptor.
When called, the implementation should write its blobs such as capability
descriptors into
writer. The BOS descriptor itself will be written by
UsbDevice and shouldn’t be written by classes.Source§fn endpoint_setup(&mut self, addr: EndpointAddress)
fn endpoint_setup(&mut self, addr: EndpointAddress)
Called when endpoint with address
addr has received a SETUP packet. Implementing this
shouldn’t be necessary in most cases, but is provided for completeness’ sake. Read moreSource§fn endpoint_out(&mut self, addr: EndpointAddress)
fn endpoint_out(&mut self, addr: EndpointAddress)
Called when endpoint with address
addr has received data (OUT packet). Read moreSource§fn endpoint_in_complete(&mut self, addr: EndpointAddress)
fn endpoint_in_complete(&mut self, addr: EndpointAddress)
Called when endpoint with address
addr has completed transmitting data (IN packet). Read moreSource§fn get_alt_setting(&mut self, interface: InterfaceNumber) -> Option<u8>
fn get_alt_setting(&mut self, interface: InterfaceNumber) -> Option<u8>
Called when the interfaces alternate setting state is requested. Read more
Source§fn set_alt_setting(
&mut self,
interface: InterfaceNumber,
alternative: u8,
) -> bool
fn set_alt_setting( &mut self, interface: InterfaceNumber, alternative: u8, ) -> bool
Called when the interfaces alternate setting state is altered. Read more
Auto Trait Implementations§
impl<B, M> Freeze for DFUClass<B, M>where
M: Freeze,
impl<B, M> RefUnwindSafe for DFUClass<B, M>where
M: RefUnwindSafe,
B: RefUnwindSafe,
impl<B, M> Send for DFUClass<B, M>
impl<B, M> Sync for DFUClass<B, M>where
M: Sync,
impl<B, M> Unpin for DFUClass<B, M>
impl<B, M> UnwindSafe for DFUClass<B, M>where
M: UnwindSafe,
B: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more