embassy-usb

Crates

git

Versions

default

Flavors

Struct CmsisDapV2Class

Source
pub struct CmsisDapV2Class<'d, D: Driver<'d>> { /* private fields */ }
Expand description

USB device class for CMSIS-DAP v2 probes.

Implementations§

Source§

impl<'d, D: Driver<'d>> CmsisDapV2Class<'d, D>

Source

pub fn new( builder: &mut Builder<'d, D>, state: &'d mut State, max_packet_size: u16, trace: bool, ) -> Self

Creates a new CmsisDapV2Class with the provided UsbBus and max_packet_size in bytes. For full-speed devices, max_packet_size has to be 64.

The trace parameter enables the trace output endpoint. This is optional and can be disabled if the probe does not support trace output.

Source

pub async fn wait_connection(&mut self)

Waits for the USB host to enable this interface

Source

pub async fn write_packet(&mut self, data: &[u8]) -> Result<(), EndpointError>

Write data to the host.

Source

pub async fn write_trace(&mut self, data: &[u8]) -> Result<(), EndpointError>

Write data to the host via the trace output endpoint.

Returns EndpointError::Disabled if the trace output endpoint is not enabled.

Source

pub async fn read_packet( &mut self, data: &mut [u8], ) -> Result<usize, EndpointError>

Read data from the host.

Auto Trait Implementations§

§

impl<'d, D> Freeze for CmsisDapV2Class<'d, D>
where <D as Driver<'d>>::EndpointOut: Freeze, <D as Driver<'d>>::EndpointIn: Freeze,

§

impl<'d, D> RefUnwindSafe for CmsisDapV2Class<'d, D>

§

impl<'d, D> Send for CmsisDapV2Class<'d, D>
where <D as Driver<'d>>::EndpointOut: Send, <D as Driver<'d>>::EndpointIn: Send,

§

impl<'d, D> Sync for CmsisDapV2Class<'d, D>
where <D as Driver<'d>>::EndpointOut: Sync, <D as Driver<'d>>::EndpointIn: Sync,

§

impl<'d, D> Unpin for CmsisDapV2Class<'d, D>
where <D as Driver<'d>>::EndpointOut: Unpin, <D as Driver<'d>>::EndpointIn: Unpin,

§

impl<'d, D> UnwindSafe for CmsisDapV2Class<'d, D>
where <D as Driver<'d>>::EndpointOut: UnwindSafe, <D as Driver<'d>>::EndpointIn: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.