Skip to main content

CmsisDapV2Class

Struct CmsisDapV2Class 

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

USB device class for CMSIS-DAP v2 probes.

Implementations§

§

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

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

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.

pub async fn wait_connection(&mut self)

Waits for the USB host to enable this interface

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

Write data to the host.

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.

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> UnsafeUnpin for CmsisDapV2Class<'d, D>
where <D as Driver<'d>>::EndpointOut: UnsafeUnpin, <D as Driver<'d>>::EndpointIn: UnsafeUnpin,

§

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.

§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

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

§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V