liblightmodbus 3.0
A lightweight, header-only, hardware-agnostic Modbus RTU/TCP library
|
The table below presents a brief overview of changes that need to be applied to existing code in order to make it work with liblightmodbus v3.0.
Task | Changes |
---|---|
Slave init | Update call to modbusSlaveInit() according to Slave initialization. |
Master init | Update call to modbusMasterInit() according to Master initialization. |
Slave cleanup | Rename modbusSlaveEnd() to modbusSlaveDestroy() |
Master cleanup | Rename modbusMasterEnd() to modbusMasterDestroy() |
Error handling | Use modbusIsOk() and modbusGetGeneralError() . See Error handling. |
Parsing requests | Use modbusParseRequestRTU() instead of modbusParseRequest() . Provide slave address and the request frame as arguments. |
Register callback | Slave register callback now takes arguments in a struct. See Register callback. |
Register/coil arrays | Write a register callback accessing your own array instead. See Register callback. |
Register/coil write protection | Return exceptions from the register callback in response to R/W access check queries. |
Accessing slave's response | Use modbusSlaveGetResponse() and modbusSlaveGetResponseLength() instead of directly accessing the fields in ModbusSlave. |
Building requests | Use modbusBuildRequest*RTU() instead of modbusBuildRequest*() . |
Accessing master's request | Use modbusMasterGetRequest() and modbusMasterGetRequestLength() instead of directly accessing the fields in ModbusMaster. |
Parsing responses | Use modbusParseResponseRTU() instead of modbusParseResponse() . Provide both request and response frames as arguments. |
Receiving data | Implement a data callback to receive the data on the master end — see Data callback. |
Endianness operations | Use modbusRLE() , modbusRBE() , modbusWLE() and modbusWBE() . |
Mask read/write | modbusMaskRead() and modbusMaskWrite() no longer provide bounds checking. |
Static memory allocation | Implement a custom static memory allocator — see Static memory allocation. |
User's context pointer | Use modbusMasterSetUserPointer() , modbusMasterGetUserPointer() , modbusSlaveSetUserPointer() and modbusSlaveGetUserPointer() |
User's functions | Provide an array with all functions you want to be used to modbusSlaveInit() or modbusMasterInit() |