pub struct NetworkMessageType(/* private fields */);Expand description
A network-layer message type: the octet after an NPDU’s addresses that says which message it carries (Clause 6.2.4).
The set is open, so Npdu::decode hands
on every octet as it arrived, and a router matches the constants with
a _ arm for the rest. The constants name the types a router reads
and sends, grouped by what a router does with them and by name within
a group, and ALL_NAMED lists them that way. Of
the other octets, 0x80 and up are vendor proprietary
(is_proprietary), 0x0A to 0x11 are the
network-security types the standard no longer defines
(is_removed_security), and the rest
are reserved. Two message types are equal when their octets are.
use bacnet_npdu::NetworkMessageType;
assert_eq!(NetworkMessageType::from_raw(0x13), NetworkMessageType::NETWORK_NUMBER_IS);
assert_eq!(NetworkMessageType::NETWORK_NUMBER_IS.name(), Some("NETWORK_NUMBER_IS"));
// A proprietary type has no name, but keeps its octet.
let proprietary = NetworkMessageType::from_raw(0x80);
assert!(proprietary.is_proprietary() && !proprietary.is_defined());
assert_eq!(format!("{proprietary:?}"), "NetworkMessageType(128)");Implementations§
Source§impl NetworkMessageType
impl NetworkMessageType
Sourcepub const I_AM_ROUTER_TO_NETWORK: Self
pub const I_AM_ROUTER_TO_NETWORK: Self
A router’s list of what it reaches; this router learns from it.
Wire value 0x01.
Sourcepub const I_COULD_BE_ROUTER_TO_NETWORK: Self
pub const I_COULD_BE_ROUTER_TO_NETWORK: Self
A route on offer; kept only where the table has none.
Wire value 0x02.
Sourcepub const REJECT_MESSAGE_TO_NETWORK: Self
pub const REJECT_MESSAGE_TO_NETWORK: Self
A refusal with its reason, carried back to whoever sent the message.
Wire value 0x03.
Sourcepub const WHO_IS_ROUTER_TO_NETWORK: Self
pub const WHO_IS_ROUTER_TO_NETWORK: Self
A route query, answered here or searched for beyond.
Wire value 0x00.
Sourcepub const ROUTER_AVAILABLE_TO_NETWORK: Self
pub const ROUTER_AVAILABLE_TO_NETWORK: Self
Lifts a hold on traffic.
Wire value 0x05.
Sourcepub const ROUTER_BUSY_TO_NETWORK: Self
pub const ROUTER_BUSY_TO_NETWORK: Self
Puts a hold on traffic, which lapses on its own.
Wire value 0x04.
Sourcepub const INITIALIZE_ROUTING_TABLE: Self
pub const INITIALIZE_ROUTING_TABLE: Self
A table update, or a query with a count of 0.
Wire value 0x06.
Sourcepub const INITIALIZE_ROUTING_TABLE_ACK: Self
pub const INITIALIZE_ROUTING_TABLE_ACK: Self
What comes back for one.
Wire value 0x07.
Sourcepub const DISCONNECT_CONNECTION_TO_NETWORK: Self
pub const DISCONNECT_CONNECTION_TO_NETWORK: Self
Counted and otherwise ignored here.
Wire value 0x09.
Sourcepub const ESTABLISH_CONNECTION_TO_NETWORK: Self
pub const ESTABLISH_CONNECTION_TO_NETWORK: Self
Logged and otherwise ignored here.
Wire value 0x08.
Sourcepub const NETWORK_NUMBER_IS: Self
pub const NETWORK_NUMBER_IS: Self
The number, and whether it was configured.
Wire value 0x13.
Sourcepub const WHAT_IS_NETWORK_NUMBER: Self
pub const WHAT_IS_NETWORK_NUMBER: Self
The question that number answers.
Wire value 0x12.
Sourcepub const ALL_NAMED: &[(&str, Self)]
pub const ALL_NAMED: &[(&str, Self)]
Every named constant, with its name, in the order declared.
Sourcepub const fn name(self) -> Option<&'static str>
pub const fn name(self) -> Option<&'static str>
The constant’s name, or None for a value the standard
doesn’t define.
Sourcepub const fn is_defined(self) -> bool
pub const fn is_defined(self) -> bool
Whether the standard defines this value.
Source§impl NetworkMessageType
impl NetworkMessageType
Sourcepub const fn is_proprietary(self) -> bool
pub const fn is_proprietary(self) -> bool
Whether this is a vendor-proprietary type, 0x80 and up, which an NPDU follows with a two-octet vendor ID.
Sourcepub const fn is_removed_security(self) -> bool
pub const fn is_removed_security(self) -> bool
Whether this is one of the network-security types, 0x0A to 0x11, that the standard no longer defines. A router doesn’t reject them.
Trait Implementations§
Source§impl Clone for NetworkMessageType
impl Clone for NetworkMessageType
impl Copy for NetworkMessageType
Source§impl Debug for NetworkMessageType
Name::CONSTANT for a named value, Name(raw) otherwise.
impl Debug for NetworkMessageType
Name::CONSTANT for a named value, Name(raw) otherwise.
Source§impl Display for NetworkMessageType
The constant’s name, or the raw value in decimal.
impl Display for NetworkMessageType
The constant’s name, or the raw value in decimal.