pub struct BacnetScTransport { /* private fields */ }Expand description
A DataLink implementation that transports BACnet frames over a
WebSocket connection (BACnet/SC).
§Concurrent receive safety
Unlike a UDP socket, a single WebSocket connection delivers frames
sequentially. To avoid frame stealing between concurrent recv() callers
(e.g. a who_is discovery loop and a confirmed-request response loop
running in the same task via tokio::select!), inbound frames are
published through a broadcast channel so that every concurrent
caller sees every frame and discards what it doesn’t need.
Implementations§
Source§impl BacnetScTransport
impl BacnetScTransport
pub async fn connect( endpoint: impl Into<String>, ) -> Result<BacnetScTransport, DataLinkError>
pub fn endpoint(&self) -> &str
pub fn peer_address(&self) -> DataLinkAddress
Trait Implementations§
Source§impl Clone for BacnetScTransport
impl Clone for BacnetScTransport
Source§fn clone(&self) -> BacnetScTransport
fn clone(&self) -> BacnetScTransport
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl DataLink for BacnetScTransport
impl DataLink for BacnetScTransport
Source§async fn send(
&self,
_address: DataLinkAddress,
payload: &[u8],
) -> Result<(), DataLinkError>
async fn send( &self, _address: DataLinkAddress, payload: &[u8], ) -> Result<(), DataLinkError>
Sends
payload to the given data-link address.Source§async fn recv(
&self,
buf: &mut [u8],
) -> Result<(usize, DataLinkAddress), DataLinkError>
async fn recv( &self, buf: &mut [u8], ) -> Result<(usize, DataLinkAddress), DataLinkError>
Receives a frame into
buf, returning (bytes_read, source_address).Auto Trait Implementations§
impl Freeze for BacnetScTransport
impl RefUnwindSafe for BacnetScTransport
impl Send for BacnetScTransport
impl Sync for BacnetScTransport
impl Unpin for BacnetScTransport
impl UnsafeUnpin for BacnetScTransport
impl UnwindSafe for BacnetScTransport
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more