v0.1.0
Changelog
All notable changes to anymodbus are documented here.
The format follows Keep a Changelog, and
the project adheres to Semantic Versioning.
Unreleased
Initial v0.1 release. See DESIGN.md for the full plan.
Added
- Repository skeleton:
pyproject.toml,Makefile, CI/docs/publish workflows,
pre-commit config, src/tests/docs layout. - Foundational pure-Python pieces:
anymodbus._types(enums + small dataclasses),
anymodbus.exceptions(fullModbusErrortree +code_to_exceptiontranslator),
anymodbus.crc(CRC-16/Modbus, 256-entry table),
anymodbus.config(frozen dataclasses with validation). WordOrderandByteOrdernamed enums for 32-bit value layout, with
defaults matching the Modbus Application Protocol spec example
(high-word-first, big-endian within word).Bus(half-duplex single-master client) and per-slaveSlavehandle, with
open_modbus_rtu(...)convenience opener overanyserial.- Length-aware RTU
Framerwith timing-gap fallback for unknown function codes
and tx-side 3.5-character pre-tx idle gap. - PDU encode/decode for the v0.1 function code set (FC 1–6, 15, 16) and
decodersfor 32-bit float / int values across two registers. Capabilitymodel (SUPPORTED/UNSUPPORTED/UNKNOWN) populated from probe
results.- Sync wrapper (
anymodbus.sync) using the same shared-portal pattern as
anyserial.sync. anymodbus.testingwithMockSlave,FaultPlan, andclient_slave_pair()
for hardware-free integration tests.