libmodbus

User Guide

  • Overview
    • ๐Ÿ“– What is Modbus?
    • ๐Ÿ—๏ธ Library Architecture
      • Component Overview
        • ModbusDataModel
        • ModbusBaseServer
      • Data Model
    • ๐ŸŒ Supported Protocols
      • RTU (Remote Terminal Unit)
        • ModbusRtuServer
      • ASCII (Planned)
      • TCP (Planned)
    • โš™๏ธ Function Codes
      • Read Functions
        • ReadCoilCommand
        • ReadDiscreteInputCommand
        • ReadHoldingRegisterCommand
        • ReadInputRegisterCommand
      • Write Functions
        • WriteCoilCommand
        • WriteHoldingRegisterCommand
        • WriteMultipleCoilsCommand
        • WriteMultipleRegistersCommand
      • Diagnostic Functions
        • DiagnosticsCommand
    • ๐Ÿ”ง Frame Processing
      • Frame Types
        • ModbusFrameType
        • ModbusFrame
        • ModbusRtuFrame
    • ๐Ÿ›ก๏ธ Error Handling
      • Exception Codes
        • ModbusExceptionCode
    • ๐Ÿงฎ Checksum Utilities
      • Checksum
        • calculateLRC()
        • calculateCRC16()
    • ๐Ÿ“Š Standards Compliance
    • ๐Ÿš€ Performance Features
    • ๐Ÿ”ง Extensibility
  • Examples
    • ๐Ÿš€ Basic Server Setup
      • Creating a Simple RTU Server
    • ๐Ÿ“– Reading Data
      • Reading Coils (Function Code 01)
      • Reading Holding Registers (Function Code 03)
      • Reading Discrete Inputs (Function Code 02)
      • Reading Input Registers (Function Code 04)
    • โœ๏ธ Writing Data
      • Writing Single Coil (Function Code 05)
      • Writing Single Register (Function Code 06)
      • Writing Multiple Coils (Function Code 15)
      • Writing Multiple Registers (Function Code 16)
    • ๐Ÿ”ง Diagnostics
      • Diagnostics Function (Function Code 08)
    • ๐Ÿšจ Error Handling
      • Exception Response Example
      • Address Out of Range Example
    • ๐Ÿ”„ Real-World Integration
      • Serial Port Integration Template
      • Custom Data Model Limits
    • ๐Ÿ’ก Best Practices
    • ๐Ÿ” Debugging Tips
  • Testing
    • ๐Ÿงช Test Framework
    • ๐Ÿš€ Running Tests
    • ๐Ÿ“‹ Test Coverage
      • Current Test Coverage
    • ๐Ÿ” Test Examples
      • Basic Function Code Test
      • Exception Handling Test
      • CRC Validation Test
      • Address Range Test
    • ๐Ÿ”ง Writing Additional Tests
      • Test Fixture Setup
      • Parameterized Tests
      • Helper Functions
    • ๐Ÿงฉ Test Data Generators
      • CRC Test Data Generator
      • Boundary Value Test Generator
    • ๐Ÿ“Š Performance Testing
      • Throughput Test
      • Memory Usage Test
    • ๐Ÿ› ๏ธ Debugging Failed Tests
      • Verbose Test Output
      • Test Debugging Macros
    • ๐Ÿ”„ Continuous Integration
    • ๐ŸŽฏ Best Practices for Testing
    • ๐Ÿ“ Adding New Tests

API Reference

  • API Reference
    • ๐Ÿ“š Core Components
      • Main Library Header
        • libmodbus
    • ๐Ÿ“Š Data Model
      • DiscreteInputType
      • CoilType
      • InputRegisterType
      • HoldingRegisterType
      • ModbusDataModel
        • ModbusDataModel()
        • ModbusDataModel()
        • getMaxDiscreteInputs()
        • getMaxCoils()
        • getMaxInputRegisters()
        • getMaxHoldingRegisters()
        • readDiscreteInput()
        • readCoil()
        • readInputRegister()
        • readHoldingRegister()
        • writeCoil()
        • writeHoldingRegister()
        • writeMultipleCoils()
        • writeMultipleHoldingRegisters()
        • setDiscreteInput()
        • setInputRegister()
        • getDiscreteInputs()
        • getCoils()
        • getInputRegisters()
        • getHoldingRegisters()
        • DEFAULT_MAX_DISCRETE_INPUTS
        • DEFAULT_MAX_COILS
        • DEFAULT_MAX_INPUT_REGISTERS
        • DEFAULT_MAX_HOLDING_REGISTERS
        • MAX_DISCREET_INPUT
        • MAX_COILS
        • MAX_INPUT_REGISTERS
        • MAX_HOLDING_REGISTERS
        • discreteInputs
        • coils
        • inputRegisters
        • holdingRegisters
    • ๐Ÿ—‚๏ธ Protocol Definitions
      • ModbusFunctionCode
        • NONE
        • READ_COILS
        • READ_DISCRETE_INPUTS
        • READ_HOLDING_REGISTERS
        • READ_INPUT_REGISTERS
        • WRITE_SINGLE_COIL
        • WRITE_SINGLE_REGISTER
        • READ_EXCEPTION_STATUS
        • DIAGNOSTICS
        • WRITE_MULTIPLE_COILS
        • WRITE_MULTIPLE_REGISTERS
      • ModbusExceptionCode
        • NONE
        • ILLEGAL_FUNCTION
        • ILLEGAL_DATA_ADDRESS
        • ILLEGAL_DATA_VALUE
        • SLAVE_DEVICE_FAILURE
        • ACKNOWLEDGE
        • SLAVE_DEVICE_BUSY
        • NEGATIVE_ACKNOWLEDGMENT
        • MEMORY_PARITY_ERROR
        • GATEWAY_PATH_UNAVAILABLE
        • GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND
      • ModbusDiagnosticsCode
        • RETURN_QUERY_DATA
        • RESTART_COMMUNICATIONS_OPTION
        • RETURN_DIAGNOSTIC_REGISTER
        • CHANGE_ASCII_INPUT_DELIMITER
        • FORCE_LISTEN_ONLY_MODE
        • CLEAR_COUNTERS_AND_DIAGNOSTIC_REGISTER
        • RETURN_BUS_MESSAGE_COUNT
        • RETURN_BUS_COMMUNICATION_ERROR_COUNT
        • RETURN_BUS_EXCEPTION_ERROR_COUNT
        • RETURN_SLAVE_MESSAGE_COUNT
        • RETURN_SLAVE_NO_RESPONSE_COUNT
        • RETURN_SLAVE_NAK_COUNT
        • RETURN_SLAVE_BUSY_COUNT
        • RETURN_BUS_CHARACTER_OVERRUN_COUNT
    • ๐Ÿ–ผ๏ธ Frame Processing
      • ModbusFrameType
        • NONE
        • REQUEST
        • RESPONSE
        • EXCEPTION
      • ModbusFrame
        • ModbusFrame()
        • ModbusFrame()
        • frameType
        • functionCode
        • frameData
        • exceptionCode
      • ModbusRtuFrame
        • ModbusRtuFrame()
        • ModbusRtuFrame()
        • serialize()
        • deserialize()
        • slaveaddr
        • pdu
        • checksum
      • ModbusAsciiFrame
        • serialize()
        • deserialize()
        • start
        • address
        • pdu
        • checksum
        • end
      • MbapHeader
        • MbapHeader()
        • MbapHeader()
        • transactionId
        • protocolId
        • length
        • unitId
      • ModbusTcpFrame
        • serialize()
        • deserialize()
        • mbapHeader
        • pdu
    • ๐ŸŽฎ Command Processing
      • ModbusCommand
        • ~ModbusCommand()
        • execute()
        • validateQuantity()
        • validateAddress()
        • validateReadCoilsQuantity()
        • validateReadRegistersQuantity()
        • validateWriteMultipleCoilsQuantity()
        • validateWriteMultipleRegistersQuantity()
      • ReadCoilCommand
        • execute()
      • ReadDiscreteInputCommand
        • execute()
      • ReadInputRegisterCommand
        • execute()
      • ReadHoldingRegisterCommand
        • execute()
      • WriteCoilCommand
        • execute()
      • WriteHoldingRegisterCommand
        • execute()
      • WriteMultipleCoilsCommand
        • execute()
      • WriteMultipleRegistersCommand
        • execute()
      • DiagnosticsCommand
        • execute()
    • ๐Ÿ–ฅ๏ธ Server Implementation
      • ModbusBaseServer
        • ModbusBaseServer()
        • process()
        • data
        • commands
      • ModbusRtuServer
        • process()
    • ๐Ÿงฎ Checksum Utilities
      • Checksum
        • calculateLRC()
        • calculateCRC16()
    • ๐Ÿ”— Detailed API Sections
      • Core Classes
        • ๐Ÿ“Š Data Model Classes
        • ๐Ÿ–ฅ๏ธ Server Classes
        • ๐Ÿ–ผ๏ธ Frame Classes
        • ๐ŸŽฎ Command Classes
        • ๐Ÿงฎ Utility Classes
      • Enumerations
        • ๐ŸŽฎ Function Codes
        • ๐Ÿšจ Exception Codes
        • ๐Ÿ”ง Diagnostic Codes
        • ๐Ÿ–ผ๏ธ Frame Types
      • Functions
        • ๐Ÿงฎ Checksum Functions
        • ๐Ÿ“Š Data Model Functions
        • ๐Ÿ–ผ๏ธ Frame Processing Functions
        • ๐Ÿ–ฅ๏ธ Server Functions
        • ๐ŸŽฎ Command Validation Functions
  • Core Classes
    • ๐Ÿ“Š Data Model Classes
      • ModbusDataModel
        • ModbusDataModel
    • ๐Ÿ–ฅ๏ธ Server Classes
      • ModbusBaseServer
        • ModbusBaseServer
      • ModbusRtuServer
        • ModbusRtuServer
    • ๐Ÿ–ผ๏ธ Frame Classes
      • ModbusFrame
        • ModbusFrame
      • ModbusRtuFrame
        • ModbusRtuFrame
      • ModbusAsciiFrame
        • ModbusAsciiFrame
      • ModbusTcpFrame
        • ModbusTcpFrame
      • MbapHeader
        • MbapHeader
    • ๐ŸŽฎ Command Classes
      • ModbusCommand
        • ModbusCommand
      • Read Command Classes
        • ReadCoilCommand
        • ReadDiscreteInputCommand
        • ReadHoldingRegisterCommand
        • ReadInputRegisterCommand
      • Write Command Classes
        • WriteCoilCommand
        • WriteHoldingRegisterCommand
        • WriteMultipleCoilsCommand
        • WriteMultipleRegistersCommand
      • Diagnostic Command Classes
        • DiagnosticsCommand
    • ๐Ÿงฎ Utility Classes
      • Checksum
        • Checksum
  • Enumerations
    • ๐ŸŽฎ Function Codes
      • ModbusFunctionCode
        • ModbusFunctionCode
    • ๐Ÿšจ Exception Codes
      • ModbusExceptionCode
        • ModbusExceptionCode
    • ๐Ÿ”ง Diagnostic Codes
      • ModbusDiagnosticsCode
        • ModbusDiagnosticsCode
    • ๐Ÿ–ผ๏ธ Frame Types
      • ModbusFrameType
        • ModbusFrameType
  • Functions
    • ๐Ÿงฎ Checksum Functions
      • CRC-16 Calculation
        • calculateCRC16()
      • LRC Calculation
        • calculateLRC()
    • ๐Ÿ“Š Data Model Functions
      • Read Functions
        • readCoil()
        • readDiscreteInput()
        • readHoldingRegister()
        • readInputRegister()
      • Write Functions
        • writeCoil()
        • writeHoldingRegister()
        • writeMultipleCoils()
        • writeMultipleHoldingRegisters()
      • Set Functions (Testing/Initialization)
        • setDiscreteInput()
        • setInputRegister()
      • Size Getters
        • getMaxCoils()
        • getMaxDiscreteInputs()
        • getMaxHoldingRegisters()
        • getMaxInputRegisters()
    • ๐Ÿ–ผ๏ธ Frame Processing Functions
      • RTU Frame Functions
        • serialize()
        • deserialize()
      • ASCII Frame Functions
        • serialize()
        • deserialize()
      • TCP Frame Functions
        • serialize()
        • deserialize()
    • ๐Ÿ–ฅ๏ธ Server Functions
      • Request Processing
        • process()
        • process()
    • ๐ŸŽฎ Command Validation Functions
      • Generic Validation
        • validateQuantity()
        • validateAddress()
      • Function-Specific Validation
        • validateReadCoilsQuantity()
        • validateReadRegistersQuantity()
        • validateWriteMultipleCoilsQuantity()
        • validateWriteMultipleRegistersQuantity()
      • Command Execution
        • execute()
        • execute()
        • execute()
        • execute()
        • execute()
        • execute()
        • execute()
        • execute()
        • execute()
        • execute()
libmodbus
  • Search


© Copyright 2025, Shishir Dey.

Built with Sphinx using a theme provided by Read the Docs.