Skip to main content

FunctionCode

Enum FunctionCode 

Source
pub enum FunctionCode {
    ReadCoils,
    ReadDiscreteInputs,
    ReadHoldingRegisters,
    ReadInputRegisters,
    WriteSingleCoil,
    WriteSingleRegister,
    WriteMultipleCoils,
    WriteMultipleRegisters,
    Other(u8),
}
Expand description

Modbus function code extracted from a request frame.

Covers the most common read/write operations. Unknown function codes are wrapped in Other and forwarded to the RTU device without modification, so vendor-specific extensions work transparently.

§Examples

if let BridgeEvent::Transaction(t) = event {
    match t.function_code {
        FunctionCode::ReadHoldingRegisters => { /* … */ }
        FunctionCode::WriteMultipleRegisters => { /* … */ }
        other => defmt::warn!("unexpected FC: {}", other),
    }
}

Variants§

§

ReadCoils

FC 0x01 — reads one or more output coils (digital outputs).

§

ReadDiscreteInputs

FC 0x02 — reads one or more discrete inputs (digital inputs).

§

ReadHoldingRegisters

FC 0x03 — reads one or more holding registers (read/write 16-bit words).

§

ReadInputRegisters

FC 0x04 — reads one or more input registers (read-only 16-bit words).

§

WriteSingleCoil

FC 0x05 — writes a single output coil.

§

WriteSingleRegister

FC 0x06 — writes a single holding register.

§

WriteMultipleCoils

FC 0x0F — writes multiple output coils in a single request.

§

WriteMultipleRegisters

FC 0x10 — writes multiple holding registers in a single request.

§

Other(u8)

Any function code not listed above — passed through to the RTU device transparently.

Trait Implementations§

Source§

impl Clone for FunctionCode

Source§

fn clone(&self) -> FunctionCode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FunctionCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for FunctionCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<u8> for FunctionCode

Source§

fn from(v: u8) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for FunctionCode

Source§

fn eq(&self, other: &FunctionCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for FunctionCode

Source§

impl Eq for FunctionCode

Source§

impl StructuralPartialEq for FunctionCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.