pub struct SyncModbusTcpClient { /* private fields */ }Expand description
Blocking Modbus TCP client for use outside an async runtime.
Internally creates a single-threaded Tokio runtime and delegates to
ModbusClient. All methods block the calling thread until the response
arrives or the timeout expires.
Implementations§
Source§impl SyncModbusTcpClient
impl SyncModbusTcpClient
Sourcepub fn connect(addr: &str) -> Result<Self, SyncClientError>
pub fn connect(addr: &str) -> Result<Self, SyncClientError>
Connect to a Modbus TCP device at addr (e.g. "192.168.1.10:502") with default config.
Sourcepub fn connect_with_config(
addr: &str,
config: ClientConfig,
) -> Result<Self, SyncClientError>
pub fn connect_with_config( addr: &str, config: ClientConfig, ) -> Result<Self, SyncClientError>
Connect to a Modbus TCP device with a custom ClientConfig.
Sourcepub fn config(&self) -> ClientConfig
pub fn config(&self) -> ClientConfig
Return the current client configuration.
Sourcepub fn read_coils(
&self,
unit_id: UnitId,
start: u16,
quantity: u16,
) -> Result<Vec<bool>, SyncClientError>
pub fn read_coils( &self, unit_id: UnitId, start: u16, quantity: u16, ) -> Result<Vec<bool>, SyncClientError>
Read coils (FC01). See ModbusClient::read_coils.
Sourcepub fn read_discrete_inputs(
&self,
unit_id: UnitId,
start: u16,
quantity: u16,
) -> Result<Vec<bool>, SyncClientError>
pub fn read_discrete_inputs( &self, unit_id: UnitId, start: u16, quantity: u16, ) -> Result<Vec<bool>, SyncClientError>
Read discrete inputs (FC02). See ModbusClient::read_discrete_inputs.
Sourcepub fn read_holding_registers(
&self,
unit_id: UnitId,
start: u16,
quantity: u16,
) -> Result<Vec<u16>, SyncClientError>
pub fn read_holding_registers( &self, unit_id: UnitId, start: u16, quantity: u16, ) -> Result<Vec<u16>, SyncClientError>
Read holding registers (FC03). See ModbusClient::read_holding_registers.
Sourcepub fn read_input_registers(
&self,
unit_id: UnitId,
start: u16,
quantity: u16,
) -> Result<Vec<u16>, SyncClientError>
pub fn read_input_registers( &self, unit_id: UnitId, start: u16, quantity: u16, ) -> Result<Vec<u16>, SyncClientError>
Read input registers (FC04). See ModbusClient::read_input_registers.
Sourcepub fn write_single_coil(
&self,
unit_id: UnitId,
address: u16,
value: bool,
) -> Result<(), SyncClientError>
pub fn write_single_coil( &self, unit_id: UnitId, address: u16, value: bool, ) -> Result<(), SyncClientError>
Write a single coil (FC05). See ModbusClient::write_single_coil.
Sourcepub fn write_single_register(
&self,
unit_id: UnitId,
address: u16,
value: u16,
) -> Result<(), SyncClientError>
pub fn write_single_register( &self, unit_id: UnitId, address: u16, value: u16, ) -> Result<(), SyncClientError>
Write a single register (FC06). See ModbusClient::write_single_register.
Sourcepub fn mask_write_register(
&self,
unit_id: UnitId,
address: u16,
and_mask: u16,
or_mask: u16,
) -> Result<(), SyncClientError>
pub fn mask_write_register( &self, unit_id: UnitId, address: u16, and_mask: u16, or_mask: u16, ) -> Result<(), SyncClientError>
Mask write register (FC22). See ModbusClient::mask_write_register.
Sourcepub fn write_multiple_coils(
&self,
unit_id: UnitId,
start: u16,
values: &[bool],
) -> Result<(), SyncClientError>
pub fn write_multiple_coils( &self, unit_id: UnitId, start: u16, values: &[bool], ) -> Result<(), SyncClientError>
Write multiple coils (FC15). See ModbusClient::write_multiple_coils.
Sourcepub fn write_multiple_registers(
&self,
unit_id: UnitId,
start: u16,
values: &[u16],
) -> Result<(), SyncClientError>
pub fn write_multiple_registers( &self, unit_id: UnitId, start: u16, values: &[u16], ) -> Result<(), SyncClientError>
Write multiple registers (FC16). See ModbusClient::write_multiple_registers.
Sourcepub fn read_write_multiple_registers(
&self,
unit_id: UnitId,
read_start: u16,
read_quantity: u16,
write_start: u16,
write_values: &[u16],
) -> Result<Vec<u16>, SyncClientError>
pub fn read_write_multiple_registers( &self, unit_id: UnitId, read_start: u16, read_quantity: u16, write_start: u16, write_values: &[u16], ) -> Result<Vec<u16>, SyncClientError>
Read and write multiple registers (FC23). See ModbusClient::read_write_multiple_registers.
Sourcepub fn custom_request(
&self,
unit_id: UnitId,
function_code: u8,
payload: &[u8],
) -> Result<Vec<u8>, SyncClientError>
pub fn custom_request( &self, unit_id: UnitId, function_code: u8, payload: &[u8], ) -> Result<Vec<u8>, SyncClientError>
Send a custom function code request. See ModbusClient::custom_request.
Sourcepub fn report_server_id(
&self,
unit_id: UnitId,
) -> Result<ReportServerIdResponse, SyncClientError>
pub fn report_server_id( &self, unit_id: UnitId, ) -> Result<ReportServerIdResponse, SyncClientError>
Report Server ID (FC17). See ModbusClient::report_server_id.
Sourcepub fn read_device_identification(
&self,
unit_id: UnitId,
read_device_id_code: u8,
object_id: u8,
) -> Result<ReadDeviceIdentificationResponse, SyncClientError>
pub fn read_device_identification( &self, unit_id: UnitId, read_device_id_code: u8, object_id: u8, ) -> Result<ReadDeviceIdentificationResponse, SyncClientError>
Read Device Identification (FC43/0x0E). See ModbusClient::read_device_identification.
Sourcepub fn read_coils_raw(
&self,
unit_id: UnitId,
start: u16,
quantity: u16,
) -> Result<(Vec<u8>, u16), SyncClientError>
pub fn read_coils_raw( &self, unit_id: UnitId, start: u16, quantity: u16, ) -> Result<(Vec<u8>, u16), SyncClientError>
Read coils as raw packed bytes (FC01). See ModbusClient::read_coils_raw.
Sourcepub fn read_discrete_inputs_raw(
&self,
unit_id: UnitId,
start: u16,
quantity: u16,
) -> Result<(Vec<u8>, u16), SyncClientError>
pub fn read_discrete_inputs_raw( &self, unit_id: UnitId, start: u16, quantity: u16, ) -> Result<(Vec<u8>, u16), SyncClientError>
Read discrete inputs as raw packed bytes (FC02). See ModbusClient::read_discrete_inputs_raw.
Sourcepub fn read_exception_status(
&self,
unit_id: UnitId,
) -> Result<u8, SyncClientError>
pub fn read_exception_status( &self, unit_id: UnitId, ) -> Result<u8, SyncClientError>
Read Exception Status (FC07). See ModbusClient::read_exception_status.
Sourcepub fn diagnostics(
&self,
unit_id: UnitId,
sub_function: u16,
data: u16,
) -> Result<(u16, u16), SyncClientError>
pub fn diagnostics( &self, unit_id: UnitId, sub_function: u16, data: u16, ) -> Result<(u16, u16), SyncClientError>
Diagnostics (FC08). See ModbusClient::diagnostics.
Sourcepub fn read_fifo_queue(
&self,
unit_id: UnitId,
address: u16,
) -> Result<Vec<u16>, SyncClientError>
pub fn read_fifo_queue( &self, unit_id: UnitId, address: u16, ) -> Result<Vec<u16>, SyncClientError>
Read FIFO Queue (FC24). See ModbusClient::read_fifo_queue.