Struct canadensis_pnp_client::PnpClient
source · pub struct PnpClient<C: Clock, M, T: Transmitter<C>, R: Receiver<C>> { /* private fields */ }
Expand description
A plug-and-play allocation client that can be used to find a node ID
Implementations§
source§impl<C, M, T, R, P> PnpClient<C, M, T, R>where
C: Clock,
M: AllocationMessage<P>,
T: Transmitter<C, Transport = P>,
R: Receiver<C, Transport = P>,
P: Transport,
impl<C, M, T, R, P> PnpClient<C, M, T, R>where C: Clock, M: AllocationMessage<P>, T: Transmitter<C, Transport = P>, R: Receiver<C, Transport = P>, P: Transport,
sourcepub fn new(
transmitter: T,
receiver: R,
unique_id: [u8; 16],
driver: &mut R::Driver
) -> Result<Self, R::Error>
pub fn new( transmitter: T, receiver: R, unique_id: [u8; 16], driver: &mut R::Driver ) -> Result<Self, R::Error>
Creates a new plug-and-play client
unique_id
: The unique ID of this node
sourcepub fn send_request(&mut self, clock: &mut C, driver: &mut T::Driver)
pub fn send_request(&mut self, clock: &mut C, driver: &mut T::Driver)
Creates an outgoing node ID allocation message and gives it to the transmitter
sourcepub fn receive(
&mut self,
clock: &mut C,
driver: &mut R::Driver
) -> Result<Option<P::NodeId>, R::Error>
pub fn receive( &mut self, clock: &mut C, driver: &mut R::Driver ) -> Result<Option<P::NodeId>, R::Error>
Handles an incoming frame and checks if it provides an ID for this node
This function returns the node ID if one was assigned.
sourcepub fn transmitter(&self) -> &T
pub fn transmitter(&self) -> &T
Returns a reference to the transmitter
sourcepub fn transmitter_mut(&mut self) -> &mut T
pub fn transmitter_mut(&mut self) -> &mut T
Returns a mutable reference to the transmitter
sourcepub fn receiver_mut(&mut self) -> &mut R
pub fn receiver_mut(&mut self) -> &mut R
Returns a mutable reference to the receiver