Skip to main content

rustbac_datalink/
lib.rs

1//! BACnet data-link layer abstraction and BACnet/IP transport.
2//!
3//! Provides the [`DataLink`] trait for sending and receiving BACnet frames,
4//! along with a ready-to-use [`BacnetIpTransport`] (BACnet/IP over UDP)
5//! including BBMD foreign-device registration support.
6
7#![cfg_attr(not(feature = "std"), no_std)]
8#![allow(async_fn_in_trait)]
9
10/// Network-level addressing for BACnet data-link endpoints.
11pub mod address;
12/// BACnet/IP (Annex J) transport implementation.
13#[cfg(feature = "std")]
14pub mod bip;
15/// BACnet/IPv6 (Annex U) transport implementation.
16#[cfg(feature = "std")]
17pub mod bip6;
18/// PCAP packet capture via a [`DataLink`] wrapper.
19#[cfg(feature = "std")]
20pub mod capture;
21/// The [`DataLink`] trait and associated error type.
22pub mod traits;
23
24pub use address::DataLinkAddress;
25#[cfg(feature = "std")]
26pub use bip::transport::{BacnetIpTransport, BroadcastDistributionEntry, ForeignDeviceTableEntry};
27#[cfg(feature = "std")]
28pub use bip6::transport::BacnetIp6Transport;
29#[cfg(feature = "std")]
30pub use capture::CapturingDataLink;
31pub use traits::DataLinkError;
32#[cfg(feature = "std")]
33pub use traits::DataLink;