All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- support for
double
(64bit double precision floating point) data type to API. This requires PHP 7.2+ as it uses https://www.php.net/manual/en/function.pack.phpE
ande
formats.
- Use PHP 8.1 in CI flow.
examples/index.php
now supports FC3 and FC4 requests.
- From PHP 8.1
Types::parseAsciiStringFromRegister()
fails to convert extended ASCII (8bit) characters to UTF-8. IntroducedCharset::$defaultCharset
to be able to set default charset used to convert strings.
- Allow high level API setting custom endian for
string
address withReadRegistersBuilder
andStringReadRegisterAddress
classes.
- Allow high level API setting custom endian for each address with
ReadRegistersBuilder
andReadRegisterAddress
classes.
BinaryStreamConnection
endless loop (CPU @ 100%) when stream is ready for reading but stream returns no data at all (#73)
- Example for Modbus server examples/example_response_server.php
- Changed examples to use
Packet::isCompleteLength()
- Added functions to check is received data is complete/error Modbus TCP packet (PR #63)
- Changed
StreamHandler
to read data until complete packet is received. Previously we read only once from stream and naively assumed that Modbus TCP packet can not be fragmented over multiple TCP packets/ multiple stream reads. This fixed #61.
- Escape stty command for SerialStreamCreator to avoid unescaped arguments (#54)
- Added high level API to compose Coil (fc1/2) requests. See:
ModbusTcpClient\Composer\Read\ReadCoilsBuilder
ModbusTcpClient\Composer\Write\WriteCoilsBuilder
- Added 'serial' protocol support to
BinaryStreamConnection
. See examples/rtu_usb_to_serial_stream.php how to use it. - Added example to read modbus RTU from Usb to rs-485 adapter and SHT20 sensor (#50)
- Adds Function 23 (0x17) Read/Write Multiple registers support (#47)
- Started changelog
- Adds request time on example request page
- (BREAKING change) abstract class
ModbusTcpClient\Composer\Address
changed to interface