pub enum Function {
ReadCoils {
starting_address: u16,
quantity: u16,
},
ReadDiscreteInputs {
starting_address: u16,
quantity: u16,
},
ReadHoldingRegisters {
starting_address: u16,
quantity: u16,
},
ReadInputRegisters {
starting_address: u16,
quantity: u16,
},
WriteSingleCoil {
address: u16,
value: bool,
},
WriteSingleRegister {
address: u16,
value: u16,
},
WriteMultipleCoils {
starting_address: u16,
value: Box<[bool]>,
},
WriteMultipleRegisters {
starting_address: u16,
value: Box<[u16]>,
},
}Expand description
§Function
Represents a Modbus RTU function request along with the data required to encode it into a protocol-compliant frame.
Variants§
ReadCoils
Read Coils (0x01)
ReadDiscreteInputs
Read Discrete Inputs (0x02)
ReadHoldingRegisters
Read Holding Registers (0x03)
ReadInputRegisters
Read Input Registers (0x04)
WriteSingleCoil
Write Single Coil (0x05)
WriteSingleRegister
Write Single Register (0x06)
WriteMultipleCoils
Write Multiple Coils (0x0F)
WriteMultipleRegisters
Write Multiple Registers (0x10)
Implementations§
Source§impl Function
impl Function
Sourcepub const fn kind(&self) -> FunctionKind
pub const fn kind(&self) -> FunctionKind
Returns the [FunctionKind] associated with this request.
§Examples
use modbus_rtu::{Function, FunctionKind};
let function = Function::ReadCoils { starting_address: 0, quantity: 2 };
assert_eq!(function.kind(), FunctionKind::ReadCoils);Sourcepub const fn as_code(&self) -> u8
pub const fn as_code(&self) -> u8
Returns the Modbus RTU function code for this request.
§Examples
use modbus_rtu::Function;
let function = Function::WriteSingleRegister { address: 0x10, value: 0x1234 };
assert_eq!(function.as_code(), 0x06);Sourcepub const fn expected_len(&self) -> usize
pub const fn expected_len(&self) -> usize
Returns the minimum expected response length for this function.
This helps callers pre-allocate receive buffers before the Modbus frame arrives.
§Examples
use modbus_rtu::Function;
let func = Function::ReadHoldingRegisters { starting_address: 0, quantity: 2 };
assert_eq!(func.expected_len(), 5 + (2 * 2));Trait Implementations§
impl Eq for Function
impl StructuralPartialEq for Function
Auto Trait Implementations§
impl Freeze for Function
impl RefUnwindSafe for Function
impl Send for Function
impl Sync for Function
impl Unpin for Function
impl UnwindSafe for Function
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more