dbc_rs/bit_timing/mod.rs
1#[cfg(feature = "std")]
2pub mod builder;
3mod impls;
4mod parse;
5#[cfg(feature = "std")]
6mod std;
7
8#[cfg(feature = "std")]
9pub use builder::BitTimingBuilder;
10
11/// Represents the bit timing section from a DBC file.
12///
13/// The `BS_:` statement in a DBC file specifies CAN bus timing parameters.
14/// This section is **required** in DBC files but is typically empty as
15/// bit timing configuration is obsolete in modern CAN systems.
16///
17/// # Format
18///
19/// ```text
20/// BS_: (empty - most common)
21/// BS_: 500 (baudrate only)
22/// BS_: 500 : 12,34 (baudrate with BTR1, BTR2)
23/// ```
24///
25/// # Fields
26///
27/// - `baudrate` - Optional CAN bus baudrate in kbps
28/// - `btr1` - Optional Bus Timing Register 1 value
29/// - `btr2` - Optional Bus Timing Register 2 value
30///
31/// # Notes
32///
33/// - This section is **obsolete** and not processed by modern CAN tools
34/// - The keyword `BS_:` is required but values are typically omitted
35/// - BTR values are only present if baudrate is specified
36#[derive(Debug, Clone, PartialEq, Eq, Hash, Default)]
37pub struct BitTiming {
38 baudrate: Option<u32>,
39 btr1: Option<u32>,
40 btr2: Option<u32>,
41}