Trait can_type_rs::device::AsyncCanDevice

source ·
pub trait AsyncCanDevice {
    type Channel;
    type Frame;
    type Device;

    // Required methods
    fn new(device: Self::Device) -> Self;
    fn sender(&self) -> Sender<Self::Frame>;
    fn register_listener(
        &mut self,
        name: String,
        listener: Box<dyn CanListener<Frame = Self::Frame, Channel = Self::Channel>>,
    ) -> bool;
    fn unregister_listener(&mut self, name: String) -> bool;
    fn unregister_all(&mut self) -> bool;
    fn listener_names(&self) -> Vec<String>;
    fn async_transmit(
        device: Arc<Mutex<Self>>,
        interval_ms: u64,
        stopper: Arc<Mutex<Receiver<()>>>,
    ) -> impl Future<Output = ()> + Send;
    fn async_receive(
        device: Arc<Mutex<Self>>,
        interval_ms: u64,
        stopper: Arc<Mutex<Receiver<()>>>,
    ) -> impl Future<Output = ()> + Send;
    fn async_start(&mut self, interval_ms: u64);
    fn close(&mut self) -> impl Future<Output = ()> + Send;
}

Required Associated Types§

Required Methods§

source

fn new(device: Self::Device) -> Self

source

fn sender(&self) -> Sender<Self::Frame>

Get the sender for transmit frame.

source

fn register_listener( &mut self, name: String, listener: Box<dyn CanListener<Frame = Self::Frame, Channel = Self::Channel>>, ) -> bool

Register transmit and receive frame listener.

source

fn unregister_listener(&mut self, name: String) -> bool

Unregister transmit and receive frame listener.

source

fn unregister_all(&mut self) -> bool

Unregister all transmit and receive frame listeners.

source

fn listener_names(&self) -> Vec<String>

Get all transmit and receive frame listener’s names.

source

fn async_transmit( device: Arc<Mutex<Self>>, interval_ms: u64, stopper: Arc<Mutex<Receiver<()>>>, ) -> impl Future<Output = ()> + Send

start transmit loop.

source

fn async_receive( device: Arc<Mutex<Self>>, interval_ms: u64, stopper: Arc<Mutex<Receiver<()>>>, ) -> impl Future<Output = ()> + Send

start receive loop.

source

fn async_start(&mut self, interval_ms: u64)

start async_transmit and async_receive

source

fn close(&mut self) -> impl Future<Output = ()> + Send

Close the device and stop transmit and receive loop.

Object Safety§

This trait is not object safe.

Implementors§