#[non_exhaustive]pub enum SignallingKind {
Bufs {
bufs: u16,
units: BufsUnit,
},
Tto {
tto_e: u8,
tto_m: u8,
tto_l: u8,
},
Reserved(u32),
}Expand description
Decoded BUFS/TTO signalling — EN 302 755 Annex C, Table C.1.
The 11 prefix in the first ISSY byte selects one of two alternatives:
BUFS (buffer status) or TTO (time-to-output), indicated by bits [5:4].
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Bufs
BUFS — maximum size of the requested receiver buffer.
Fields: (bufs, units) where bufs is the 10-bit buffer status
and units is the 2-bit unit selector.
Tto
TTO — time-to-output (mantissa + exponent form).
The output time is TTO = (tto_m + tto_l / 256) * 2^tto_e
where tto_l is zero when ISCRshort is in use.
Fields
Reserved(u32)
Reserved signalling type (bits [5:4] = 0b10 or 0b11).
Holds the low 20 bits of the signalling payload; the 2-bit kind
selector is not retained. This is a decode-only view — the wire bytes
live in Bbheader::issy_in_header and are serialized verbatim, so the
dropped selector does not affect round-trip fidelity.
Implementations§
Source§impl SignallingKind
impl SignallingKind
Sourcepub fn bufs_bits(&self) -> Option<u64>
pub fn bufs_bits(&self) -> Option<u64>
Decoded BUFS buffer size in bits, or None if this is not a BUFS variant.
bufs_bits = bufs × units.multiplier_bits()
See EN 302 755 Annex C Table C.1 + §BUFS/TTO semantics
(docs/en_302_755_t2.md).
§Note on encoders
Only decode accessors are provided. No set_* or from_* encoders are
added because the physical-value → mantissa/exponent TTO encoding is
lossy and the wire round-trip is already guaranteed by the existing
raw-field serialization in Bbheader. Use the raw-field constructors
(SignallingKind::Bufs { … } / SignallingKind::Tto { … }) for
encoding.
Sourcepub fn bufs_bytes(&self) -> Option<u64>
pub fn bufs_bytes(&self) -> Option<u64>
Decoded BUFS buffer size in bytes (integer floor), or None.
bufs_bytes = bufs_bits() / 8. Integer division is used: BUFS is a
maximum-size bound per the standard, so a floor is appropriate.
See EN 302 755 Annex C Table C.1 + §BUFS/TTO semantics
(docs/en_302_755_t2.md).
Sourcepub fn tto_t_over_256(&self) -> Option<u64>
pub fn tto_t_over_256(&self) -> Option<u64>
Decoded time-to-output in units of T/256, or None if this is not a
TTO variant.
tto_t_over_256 = ((TTO_M × 256) + TTO_L) × 2^TTO_E
This is TTO × 256 in units of the elementary period T (see EN 302
755 §9.5 / Table 65). The TTO_L / 256 fractional term is preserved
exactly without floating point; consumers divide by 256.0 to obtain
TTO in units of T.
Per EN 302 755 Annex C Table C.1 + §8.3.3
(docs/en_302_755_t2.md).
Trait Implementations§
Source§impl Clone for SignallingKind
impl Clone for SignallingKind
Source§fn clone(&self) -> SignallingKind
fn clone(&self) -> SignallingKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SignallingKind
Source§impl Debug for SignallingKind
impl Debug for SignallingKind
impl Eq for SignallingKind
Source§impl PartialEq for SignallingKind
impl PartialEq for SignallingKind
Source§fn eq(&self, other: &SignallingKind) -> bool
fn eq(&self, other: &SignallingKind) -> bool
self and other values to be equal, and is used by ==.