How samuelventura/sharpmodbus works
SharpModbus is a C# Modbus master library for RTU over serial and TCP over sockets. An application invokes ModbusMaster operations; commands represent reads and writes, protocol wrappers encode transport framing, and streams exchange bytes with a device. The library also includes command parsing and an in-memory ModbusModel that commands can read or update. The README documents RTU/TCP and coil/register operations; source excerpts confirm command encoding, parsing, model application, and transport implementations. Wiring among unsampled scanners and protocol components is shown only where supported by their named roles.
Main entry points: ModbusMaster.cs Modbus master · Commands Function commands · ModbusRTUWrapper.cs RTU wrapper · ModbusTCPWrapper.cs TCP wrapper
Components 19
Master API
- Modbus master
SharpModbus/ModbusMaster.cs - Function commands
SharpModbus/Commands - Command parser
SharpModbus/ModbusParser.cs
Protocol Encoding
- RTU protocol
SharpModbus/ModbusRTUProtocol.cs - TCP protocol
SharpModbus/ModbusTCPProtocol.cs - RTU wrapper
SharpModbus/ModbusRTUWrapper.cs - TCP wrapper
SharpModbus/ModbusTCPWrapper.cs - Modbus helpers
SharpModbus/ModbusHelper.cs - RTU scanner
SharpModbus/ModbusRTUScanner.cs - TCP scanner
SharpModbus/ModbusTCPScanner.cs
Transport I/O
- Serial transport
SharpModbus/ModbusSerialStream.cs - Socket transport
SharpModbus/ModbusSocketStream.cs - Serial device
SharpModbus/Serial/SerialDevice.cs - Serial settings
SharpModbus/Serial/SerialSettings.cs - Serial stream
SharpModbus/Serial/SerialStream.cs
Command Model
- In-memory model
SharpModbus/ModbusModel.cs - Modbus exceptions
SharpModbus/ModbusException.cs
Other components
- Application
- Modbus device
Connections 20
- Application → Modbus master: invokes
- Modbus master → Function commands: creates operations
- Modbus master → RTU protocol: uses RTU
- Modbus master → TCP protocol: uses TCP
- Modbus master → Serial transport: exchanges bytes
- Modbus master → Socket transport: exchanges bytes
- Command parser → Function commands: creates commands
- RTU protocol → RTU wrapper: wraps and parses
- TCP protocol → TCP wrapper: wraps and parses
- RTU wrapper → Function commands: delegates encoding
- TCP wrapper → Function commands: delegates encoding
- Function commands → Modbus helpers: encodes values
- Function commands → In-memory model: reads or updates
- Serial transport → Serial stream: uses stream
- Serial stream → Serial device: reads and writes
- Serial device → Serial settings: applies settings
- Serial transport → Modbus device: transfers RTU
- Socket transport → Modbus device: transfers TCP
- RTU wrapper → Modbus exceptions: raises protocol errors
- TCP wrapper → Modbus exceptions: raises protocol errors