diff --git a/README.rst b/README.rst index 95303f82b..eb88622e7 100644 --- a/README.rst +++ b/README.rst @@ -20,7 +20,7 @@ PyModbus - A Python Modbus Stack Summary ------------------------------------------------------------ -Pymodbus is a full Modbus protocol implementation using twisted for its +Pymodbus is a full Modbus protocol implementation using twisted/torndo/asyncio for its asynchronous communications core. It can also be used without any third party dependencies (aside from pyserial) if a more lightweight project is needed. Furthermore, it should work fine under any python version > 2.7 @@ -40,7 +40,7 @@ Client Features * TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary * asynchronous(powered by twisted/tornado/asyncio) and synchronous versions * Payload builder/decoder utilities - * Pymodbus REPL for quick tests + * Pymodbus REPL for quick tests ~~~~~~~~~~~~~~~~~~~~ Server Features @@ -88,16 +88,35 @@ For those of you that just want to get started fast, here you go:: print(result.bits[0]) client.close() -For more advanced examples, check out the examples included in the +For more advanced examples, check out the `Examples `_ included in the respository. If you have created any utilities that meet a specific need, feel free to submit them so others can benefit. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Examples Directory structure +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + examples + ├── common. -> Common examples for clients and server (sync/async), Payload encoders and decoders. + ├── contrib. -> Examples contributed by contributors. Serial Forwarder, Database contexts etc. + ├── functional. -> Not actively maintained. + ├── gui. -> Not actively maintained. If you are looking for UI,checkout `Modbus Simulator `_ or `Modbus Cli `_ + ├── tools. -> Not actively maintained. + └── twisted. -> Not actively maintained. + Also, if you have questions, please ask them on the mailing list so that others can benefit from the results and so that I can trace them. I get a lot of email and sometimes these requests get lost in the noise: http://groups.google.com/group/pymodbus or at gitter: https://gitter.im/pymodbus_dev/Lobby +.. important:: + **Note For async clients, it is recomended to use `asyncio` as the async facilitator (Python 3.6 and above).** + **If using tornado make sure the tornado version is `4.5.3`.Other versions of tornado can break the implementation** + + ------------------------------------------------------------ Pymodbus REPL (Read Evaluate Print Loop) ------------------------------------------------------------ diff --git a/pymodbus/version.py b/pymodbus/version.py index 8e29cb9c9..2fc273abd 100644 --- a/pymodbus/version.py +++ b/pymodbus/version.py @@ -41,9 +41,7 @@ def __str__(self): return '[%s, version %s]' % (self.package, self.short()) -version = Version('pymodbus', 2, 4, 0, 'rc2') - - +version = Version('pymodbus', 2, 4, 0) version.__name__ = 'pymodbus' # fix epydoc error diff --git a/requirements-tests.txt b/requirements-tests.txt index 7b73548d3..eba656a38 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -14,6 +14,6 @@ sqlalchemy>=1.1.15 #wsgiref>=0.1.2 verboselogs >= 1.5 tornado==4.5.3 -Twisted==17.1.0 +Twisted>=20.3.0 zope.interface>=4.4.0 asynctest>=0.10.0 diff --git a/setup.py b/setup.py index af68ef914..adbe12f07 100644 --- a/setup.py +++ b/setup.py @@ -84,14 +84,14 @@ 'sphinx_rtd_theme', 'humanfriendly'], 'twisted': [ - 'twisted >= 12.2.0', + 'twisted >= 20.3.0', 'pyasn1 >= 0.1.4', ], 'tornado': [ - 'tornado >= 4.5.3' + 'tornado == 4.5.3' ], 'repl': [ - 'click>=6.7', + 'click>=7.0', 'prompt-toolkit==2.0.4', 'pygments==2.2.0' ]