Skip to main content

Function

Enum Function 

Source
pub enum Function {
    ReadCoils,
    ReadDiscreteInputs,
    ReadHoldingRegisters,
    ReadInputRegisters,
    WriteSingleCoil,
    WriteSingleRegister,
    WriteMultipleCoils,
    WriteMultipleRegisters,
}
Expand description

A Modbus function code, naming the operation a request asks for.

This enum covers the function codes that read and write the four Modbus data tables (coils, discrete inputs, holding registers, input registers), which is what the great majority of field devices use. A function code outside this set still travels fine through Pdu::raw and Adu; this enum is the typed view of the common ones, not a limit on what the framing carries.

§Examples

use pamoja_modbus::Function;

assert_eq!(Function::ReadHoldingRegisters.code(), 0x03);
assert_eq!(Function::from_code(0x10), Some(Function::WriteMultipleRegisters));
assert_eq!(Function::from_code(0x99), None);

Variants§

§

ReadCoils

Read one or more coils (read/write bits). Function code 0x01.

§

ReadDiscreteInputs

Read one or more discrete inputs (read-only bits). Function code 0x02.

§

ReadHoldingRegisters

Read one or more holding registers (read/write 16-bit words). Function code 0x03.

§

ReadInputRegisters

Read one or more input registers (read-only 16-bit words). Function code 0x04.

§

WriteSingleCoil

Write a single coil. Function code 0x05.

§

WriteSingleRegister

Write a single holding register. Function code 0x06.

§

WriteMultipleCoils

Write a contiguous block of coils. Function code 0x0F.

§

WriteMultipleRegisters

Write a contiguous block of holding registers. Function code 0x10.

Implementations§

Source§

impl Function

Source

pub fn code(self) -> u8

Returns the wire byte for this function.

§Returns

The function code as it appears as the first byte of a PDU.

Source

pub fn from_code(code: u8) -> Option<Function>

Returns the function a wire byte names, if this crate models it.

§Arguments
  • code - the function code byte from the start of a PDU.
§Returns

The matching Function, or None for a code this enum does not name (including the exception responses, whose high bit is set).

Trait Implementations§

Source§

impl Clone for Function

Source§

fn clone(&self) -> Function

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 Copy for Function

Source§

impl Debug for Function

Source§

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

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

impl Eq for Function

Source§

impl PartialEq for Function

Source§

fn eq(&self, other: &Function) -> 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 StructuralPartialEq for Function

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.