Trait can_type_rs::device::SyncCanDevice

source ·
pub trait SyncCanDevice {
    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 sync_transmit(
        device: MutexGuard<'_, Self>,
        interval_ms: u64,
        stopper: Arc<Mutex<Receiver<()>>>,
    );
    fn sync_receive(
        device: MutexGuard<'_, Self>,
        interval_ms: u64,
        stopper: Arc<Mutex<Receiver<()>>>,
    );
    fn sync_start(&mut self, interval_ms: u64);
    fn close(&mut self);
}

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 sync_transmit( device: MutexGuard<'_, Self>, interval_ms: u64, stopper: Arc<Mutex<Receiver<()>>>, )

start transmit loop.

source

fn sync_receive( device: MutexGuard<'_, Self>, interval_ms: u64, stopper: Arc<Mutex<Receiver<()>>>, )

start receive loop.

source

fn sync_start(&mut self, interval_ms: u64)

start sync_transmit and sync_receive

source

fn close(&mut self)

Close the device and stop transmit and receive loop.

Object Safety§

This trait is not object safe.

Implementors§