venv added, updated

This commit is contained in:
Norbert
2024-09-13 09:46:28 +02:00
parent 577596d9f3
commit 82af8c809a
4812 changed files with 640223 additions and 2 deletions

View File

@@ -0,0 +1,180 @@
Authors
=======
All these versions would not be possible without volunteers!
This is a complete list for each major version.
A big "thank you" to everybody who helped out.
Pymodbus version 3 family
-------------------------
Thanks to
- AKJ7
- Alex
- Alex Ruddick
- Alexander Lanin
- Alexandre CUER
- Alois Hockenschlohe
- Arjan
- André Srinivasan
- andrew-harness
- banana-sun
- Blaise Thompson
- CapraTheBest
- cgernert
- corollaries
- Chandler Riehm
- Chris Hung
- Christian Krause
- dhoomakethu
- doelki
- DominicDataP
- Dominique Martinet
- Dries
- duc996
- efdx
- Esco441-91
- Farzad Panahi
- Fredo70
- Gao Fang
- Ghostkeeper
- Hangyu Fan
- Hayden Roche
- Iktek
- Ilkka Ollakka
- Jakob Ruhe
- Jakob Schlyter
- James Braza
- James Cameron
- James Hilliard
- jan iversen
- Jerome Velociter
- Joe Burmeister
- John Miko
- Jonathan Reichelt Gjertsen
- julian
- Justin Standring
- Kenny Johansson
- Martyy
- Matthias Straka
- laund
- Logan Gunthorpe
- Marko Luther
- Logan Gunthorpe
- Marko Luther
- Matthias Straka
- Mickaël Schoentgen
- Pavel Kostromitinov
- peufeu2
- Philip Couling
- Qi Li
- Sebastian Machuca
- Sefa Keleş
- Steffen Beyer
- sumguytho
- Thijs W
- Totally a booplicate
- WouterTuinstra
- wriswith
- Yohrog
- yyokusa
Pymodbus version 2 family
-------------------------
Thanks to
- alecjohanson
- Alexey Andreyev
- Andrea Canidio
- Carlos Gomez
- Cougar
- Christian Sandberg
- dhoomakethu
- dices
- Dmitri Zimine
- Emil Vanherp
- er888kh
- Eric Duminil
- Erlend Egeberg Aasland
- hackerboygn
- Jian-Hong Pan
- Jose J Rodriguez
- Justin Searle
- Karl Palsson
- Kim Hansen
- Kristoffer Sjöberg
- Kyle Altendorf
- Lars Kruse
- Malte Kliemann
- Memet Bilgin
- Michael Corcoran
- Mike
- sanjay
- Sekenre
- Siarhei Farbotka
- Steffen Vogel
- tcplomp
- Thor Michael Støre
- Tim Gates
- Ville Skyttä
- Wild Stray
- Yegor Yefremov
Pymodbus version 1 family
-------------------------
Thanks to
- Antoine Pitrou
- Bart de Waal
- bashwork
- bje-
- Claudio Catterina
- Chintalagiri Shashank
- dhoomakethu
- dragoshenron
- Elvis Stansvik
- Eren Inan Canpolat
- Everley
- Fabio Bonelli
- fleimgruber
- francozappa
- Galen Collins
- Gordon Broom
- Hamilton Kibbe
- Hynek Petrak
- idahogray
- Ingo van Lil
- Jack
- jbiswas
- jon mills
- Josh Kelley
- Karl Palsson
- Matheus Frata
- Patrick Fuller
- Perry Kundert
- Philippe Gauthier
- Rahul Raghunath
- sanjay
- schubduese42
- semyont
- Semyon Teplitsky
- Stuart Longland
- Yegor Yefremov
Pymodbus version 0 family
-------------------------
Thanks to
- Albert Brandl
- Galen Collins
Import to github was based on code from:
- S.W.A.C. GmbH, Germany.
- S.W.A.C. Bohemia s.r.o., Czech Republic.
- Hynek Petrak
- Galen Collins

View File

@@ -0,0 +1,23 @@
Copyright 2008-2023 Pymodbus
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,420 @@
Metadata-Version: 2.1
Name: pymodbus
Version: 3.7.2
Summary: A fully featured modbus protocol stack in python
Author: Galen Collins, Jan Iversen
Maintainer: dhoomakethu, janiversen
License: BSD-3-Clause
Project-URL: Homepage, https://github.com/pymodbus-dev/pymodbus/
Project-URL: Source Code, https://github.com/pymodbus-dev/pymodbus
Project-URL: Bug Reports, https://github.com/pymodbus-dev/pymodbus/issues
Project-URL: Docs: Dev, https://pymodbus.readthedocs.io/en/latest/?badge=latest
Project-URL: Discord, https://discord.gg/vcP8qAz2
Keywords: modbus,asyncio,scada,client,server,simulator
Platform: 'Linux'
Platform: 'Mac OS X'
Platform: 'Win'
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: OS Independent
Classifier: Operating System :: Microsoft
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Networking
Classifier: Topic :: Utilities
Requires-Python: >=3.9.0
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS.rst
Provides-Extra: all
Requires-Dist: pymodbus[development,documentation,repl,serial,simulator] ; extra == 'all'
Provides-Extra: development
Requires-Dist: build >=1.2.1 ; extra == 'development'
Requires-Dist: codespell >=2.3.0 ; extra == 'development'
Requires-Dist: coverage >=7.6.0 ; extra == 'development'
Requires-Dist: mypy >=1.10.1 ; extra == 'development'
Requires-Dist: pylint >=3.2.5 ; extra == 'development'
Requires-Dist: pytest >=8.2.2 ; extra == 'development'
Requires-Dist: pytest-asyncio >=0.23.8 ; extra == 'development'
Requires-Dist: pytest-cov >=5.0.0 ; extra == 'development'
Requires-Dist: pytest-profiling >=1.7.0 ; extra == 'development'
Requires-Dist: pytest-timeout >=2.3.1 ; extra == 'development'
Requires-Dist: pytest-xdist >=3.6.1 ; extra == 'development'
Requires-Dist: pytest-aiohttp >=1.0.5 ; extra == 'development'
Requires-Dist: ruff >=0.5.3 ; extra == 'development'
Requires-Dist: twine >=5.1.1 ; extra == 'development'
Requires-Dist: types-Pygments ; extra == 'development'
Requires-Dist: types-pyserial ; extra == 'development'
Provides-Extra: documentation
Requires-Dist: recommonmark >=0.7.1 ; extra == 'documentation'
Requires-Dist: Sphinx >=7.3.7 ; extra == 'documentation'
Requires-Dist: sphinx-rtd-theme >=2.0.0 ; extra == 'documentation'
Provides-Extra: repl
Requires-Dist: pymodbus-repl >=2.0.4 ; extra == 'repl'
Provides-Extra: serial
Requires-Dist: pyserial >=3.5 ; extra == 'serial'
Provides-Extra: simulator
Requires-Dist: aiohttp >=3.8.6 ; (python_version < "3.12") and extra == 'simulator'
Requires-Dist: aiohttp >=3.9.5 ; (python_version == "3.12") and extra == 'simulator'
PyModbus - A Python Modbus Stack
================================
.. image:: https://github.com/pymodbus-dev/pymodbus/actions/workflows/ci.yml/badge.svg?branch=dev
:target: https://github.com/pymodbus-dev/pymodbus/actions/workflows/ci.yml
.. image:: https://readthedocs.org/projects/pymodbus/badge/?version=latest
:target: https://pymodbus.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pepy.tech/badge/pymodbus
:target: https://pepy.tech/project/pymodbus
:alt: Downloads
Pymodbus is a full Modbus protocol implementation offering client/server with synchronous/asynchronous API a well as simulators.
Our releases is defined as X.Y.Z, and we have strict rules what to release when:
- **Z**, No API changes! bug fixes and smaller enhancements.
- **Y**, API changes, bug fixes and bigger enhancements.
- **X**, Major changes in API and/or method to use pymodbus
Upgrade examples:
- 3.6.1 -> 3.6.9: just plugin the new version, no changes needed.
- 3.6.1 -> 3.7.0: Smaller changes to the pymodbus calls might be needed
- 2.5.4 -> 3.0.0: Major changes in the application might be needed
Current release is `3.7.2 <https://github.com/pymodbus-dev/pymodbus/releases/tag/v3.7.2>`_.
Bleeding edge (not released) is `dev <https://github.com/pymodbus-dev/pymodbus/tree/dev>`_.
Waiting for v3.8.0 (not released) is `wait_next_API <https://github.com/pymodbus-dev/pymodbus/tree/wait_next_API>`_. This contains
dev + merged pull requests that have API changes, and thus have to wait.
All changes are described in `release notes <https://pymodbus.readthedocs.io/en/latest/source/changelog.html>`_
and all API changes are `documented <https://pymodbus.readthedocs.io/en/latest/source/api_changes.html>`_
A big thanks to all the `volunteers <https://pymodbus.readthedocs.io/en/latest/source/authors.html>`_ that helps make pymodbus a great project.
Source code on `github <https://github.com/pymodbus-dev/pymodbus>`_
Pymodbus in a nutshell
----------------------
Pymodbus consist of 5 parts:
- **client**, connect to your favorite device(s)
- **server**, simulate your favorite device(s)
- **repl**, a commandline text based client/server simulator
- **simulator**, an html based server simulator
- **examples**, showing both simple and advances usage
Common features
^^^^^^^^^^^^^^^
* Full modbus standard protocol implementation
* Support for custom function codes
* support serial (rs-485), tcp, tls and udp communication
* support all standard frames: socket, rtu, rtu-over-tcp, tcp and ascii
* does not have third party dependencies, apart from pyserial (optional)
* very lightweight project
* requires Python >= 3.9
* thorough test suite, that test all corners of the library
* automatically tested on Windows, Linux and MacOS combined with python 3.9 - 3.12
* strongly typed API (py.typed present)
The modbus protocol specification: Modbus_Application_Protocol_V1_1b3.pdf can be found on
`modbus org <https://modbus.org>`_
Client Features
^^^^^^^^^^^^^^^
* asynchronous API and synchronous API for applications
* very simple setup and call sequence (just 6 lines of code)
* utilities to convert int/float to/from multiple registers
* payload builder/decoder to help with complex data
`Client documentation <https://pymodbus.readthedocs.io/en/latest/source/client.html>`_
Server Features
^^^^^^^^^^^^^^^
* asynchronous implementation for high performance
* synchronous API classes for convenience
* simulate real life devices
* full server control context (device information, counters, etc)
* different backend datastores to manage register values
* callback to intercept requests/responses
* work on RS485 in parallel with other devices
`Server documentation <https://pymodbus.readthedocs.io/en/latest/source/library/server.html>`_
REPL Features
^^^^^^^^^^^^^
- server/client commandline emulator
- easy test of real device (client)
- easy test of client app (server)
- simulation of broken requests/responses
- simulation of error responses (hard to provoke in real devices)
`REPL documentation <https://github.com/pymodbus-dev/repl>`_
Simulator Features
^^^^^^^^^^^^^^^^^^
- server simulator with WEB interface
- configure the structure of a real device
- monitor traffic online
- allow distributed team members to work on a virtual device using internet
- simulation of broken requests/responses
- simulation of error responses (hard to provoke in real devices)
`Simulator documentation <https://pymodbus.readthedocs.io/en/dev/source/simulator.html>`_
Use Cases
---------
The client is the most typically used. It is embedded into applications,
where it abstract the modbus protocol from the application by providing an
easy to use API. The client is integrated into some well known projects like
`home-assistant <https://www.home-assistant.io>`_.
Although most system administrators will find little need for a Modbus
server, the server is handy to verify the functionality of an application.
The simulator and/or server is often used to simulate real life devices testing
applications. The server is excellent to perform high volume testing (e.g.
houndreds of devices connected to the application). The advantage of the server is
that it runs not only a "normal" computers but also on small ones like Raspberry PI.
Since the library is written in python, it allows for easy scripting and/or integration into their existing
solutions.
For more information please browse the project documentation:
https://readthedocs.org/docs/pymodbus/en/latest/index.html
Install
-------
The library is available on pypi.org and github.com to install with
- :code:`pip` for those who just want to use the library
- :code:`git clone` for those who wants to help or just are curious
Be aware that there are a number of project, who have forked pymodbus and
- seems just to provide a version frozen in time
- extended pymodbus with extra functionality
The latter is not because we rejected the extra functionality (we welcome all changes),
but because the codeowners made that decision.
In both cases, please understand, we cannot offer support to users of these projects as we do not known
what have been changed nor what status the forked code have.
A growing number of Linux distributions include pymodbus in their standard installation.
You need to have python3 installed, preferable 3.11.
Install with pip
^^^^^^^^^^^^^^^^
You can install using pip by issuing the following
commands in a terminal window::
pip install pymodbus
If you want to use the serial interface::
pip install pymodbus[serial]
This will install pymodbus with the pyserial dependency.
Pymodbus offers a number of extra options:
- **repl**, needed by pymodbus.repl
- **serial**, needed for serial communication
- **simulator**, needed by pymodbus.simulator
- **documentation**, needed to generate documentation
- **development**, needed for development
- **all**, installs all of the above
which can be installed as::
pip install pymodbus[<option>,...]
It is possible to install old releases if needed::
pip install pymodbus==3.5.4
Install with github
^^^^^^^^^^^^^^^^^^^
On github, fork https://github.com/pymodbus-dev/pymodbus.git
Clone the source, and make a virtual environment::
git clone git://github.com/<your account>/pymodbus.git
cd pymodbus
python3 -m venv .venv
Activate the virtual environment, this command needs repeated in every new terminal::
source .venv/bin/activate
To get a specific release::
git checkout v3.5.2
or the bleeding edge::
git checkout dev
Some distributions have an old pip, which needs to be upgraded:
pip install --upgrade pip
Install required development tools::
pip install ".[development]"
Install all (allows creation of documentation etc):
pip install ".[all]"
Install git hooks, that helps control the commit and avoid errors when submitting a Pull Request:
cp githooks/* .git/hooks
This installs dependencies in your virtual environment
with pointers directly to the pymodbus directory,
so any change you make is immediately available as if installed.
The repository contains a number of important branches and tags.
* **dev** is where all development happens, this branch is not always stable.
* **master** is where are releases are kept.
* **vX.Y.Z** (e.g. v2.5.3) is a specific release
Example Code
------------
For those of you that just want to get started fast, here you go::
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('MyDevice.lan')
client.connect()
client.write_coil(1, True)
result = client.read_coils(1,1)
print(result.bits[0])
client.close()
We provide a couple of simple ready to go clients:
- `async client <https://github.com/pymodbus-dev/pymodbus/blob/dev/examples/simple_async_client.py>`_
- `sync client <https://github.com/pymodbus-dev/pymodbus/blob/dev/examples/simple_sync_client.py>`_
For more advanced examples, check out `Examples <https://pymodbus.readthedocs.io/en/dev/source/examples.html>`_ included in the
repository. If you have created any utilities that meet a specific
need, feel free to submit them so others can benefit.
Also, if you have a question, please `create a post in discussions q&a topic <https://github.com/pymodbus-dev/pymodbus/discussions/new?category=q-a>`_,
so that others can benefit from the results.
If you think, that something in the code is broken/not running well, please `open an issue <https://github.com/pymodbus-dev/pymodbus/issues/new>`_,
read the Template-text first and then post your issue with your setup information.
`Example documentation <https://pymodbus.readthedocs.io/en/dev/source/examples.html>`_
Contributing
------------
Just fork the repo and raise your Pull Request against :code:`dev` branch.
We always have more work than time, so feel free to open a discussion / issue on a theme you want to solve.
If your company would like your device tested or have a cloud based device
simulation, feel free to contact us.
We are happy to help your company solve your modbus challenges.
That said, the current work mainly involves polishing the library and
solving issues:
* Fixing bugs/feature requests
* Architecture documentation
* Functional testing against any reference we can find
There are 2 bigger projects ongoing:
* rewriting the internal part of all clients (both sync and async)
* Add features to and simulator, and enhance the web design
Development instructions
------------------------
The current code base is compatible with python >= 3.9.
Here are some of the common commands to perform a range of activities::
source .venv/bin/activate <-- Activate the virtual environment
./check_ci.sh <-- run the same checks as CI runs on a pull request.
Make a pull request::
git checkout dev <-- activate development branch
git pull <-- update branch with newest changes
git checkout -b feature <-- make new branch for pull request
... make source changes
git commit <-- commit change to git
git push <-- push to your account on github
on github open a pull request, check that CI turns green and then wait for review comments.
Test your changes::
cd test
pytest
you can also do extended testing::
pytest --cov <-- Coverage html report in build/html
pytest --profile <-- Call profile report in prof
Internals
^^^^^^^^^
There are no documentation of the architecture (help is welcome), but most classes and
methods are documented:
`Pymodbus internals <https://pymodbus.readthedocs.io/en/dev/source/internals.html>`_
Generate documentation
^^^^^^^^^^^^^^^^^^^^^^
**Remark** Assumes that you have installed documentation tools:;
pip install ".[documentation]"
to build do::
cd doc
./build_html
The documentation is available in <root>/build/html
Remark: this generates a new zip/tgz file of examples which are uploaded.
License Information
-------------------
Released under the `BSD License <https://github.com/pymodbus-dev/pymodbus/blob/dev/LICENSE>`_

View File

@@ -0,0 +1,135 @@
../../../bin/pymodbus.simulator,sha256=xsTxg2p5JdmErh6GOD1bDWUwGX1RmN4PsTRohcrLVwE,250
pymodbus-3.7.2.dist-info/AUTHORS.rst,sha256=xQE9DZOIQ5nGAp3erZvJ9KP1XX-q5XfU9fhk7nz6pAU,2695
pymodbus-3.7.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pymodbus-3.7.2.dist-info/LICENSE,sha256=R_kEJJFy55Wmsy3pH0cQcyl77__XThfK_CiNNIpVly4,1367
pymodbus-3.7.2.dist-info/METADATA,sha256=A6tCF1P4h39XcyRZcqNS2pqpdtc3ganjlHTXQ5uIc2s,15288
pymodbus-3.7.2.dist-info/RECORD,,
pymodbus-3.7.2.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
pymodbus-3.7.2.dist-info/entry_points.txt,sha256=-ig4bOfoNwZ2C3GqUWs2DgArzF8YzgdlmcWOUa1EjTc,75
pymodbus-3.7.2.dist-info/top_level.txt,sha256=HJWcaj1-eMuBze0N2TieOGTgQD6XNXgTaqG7Ik6oxw0,9
pymodbus-3.7.2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
pymodbus/__init__.py,sha256=LSp2a7A2pJ1MyyP4golTLH_mbznKLUsNNjreZRq3sSI,512
pymodbus/__pycache__/__init__.cpython-312.pyc,,
pymodbus/__pycache__/constants.cpython-312.pyc,,
pymodbus/__pycache__/device.cpython-312.pyc,,
pymodbus/__pycache__/events.cpython-312.pyc,,
pymodbus/__pycache__/exceptions.cpython-312.pyc,,
pymodbus/__pycache__/factory.cpython-312.pyc,,
pymodbus/__pycache__/logging.cpython-312.pyc,,
pymodbus/__pycache__/payload.cpython-312.pyc,,
pymodbus/__pycache__/transaction.cpython-312.pyc,,
pymodbus/__pycache__/utilities.cpython-312.pyc,,
pymodbus/client/__init__.py,sha256=fkvpNNXZfVpLtYbDHpf7cAIcHq-iNtrMLljySOD-Sds,603
pymodbus/client/__pycache__/__init__.cpython-312.pyc,,
pymodbus/client/__pycache__/base.cpython-312.pyc,,
pymodbus/client/__pycache__/mixin.cpython-312.pyc,,
pymodbus/client/__pycache__/modbusclientprotocol.cpython-312.pyc,,
pymodbus/client/__pycache__/serial.cpython-312.pyc,,
pymodbus/client/__pycache__/tcp.cpython-312.pyc,,
pymodbus/client/__pycache__/tls.cpython-312.pyc,,
pymodbus/client/__pycache__/udp.cpython-312.pyc,,
pymodbus/client/base.py,sha256=l483WHE_qMrus_xp9ukeBN1mzeV9CuDXUDyccmbT92Y,10462
pymodbus/client/mixin.py,sha256=s_FHrYdVAJjM4sx_gqowioN9yRtVhkwWYNR2DOrZTuk,18025
pymodbus/client/modbusclientprotocol.py,sha256=ihiSdRTFjsdU8ErCvW5UDeishGWxu_XmqBjYi3slkoo,2770
pymodbus/client/serial.py,sha256=dOds9RrVVUOKKL0ya1EjYaOD36ERa-Kh6sH1cferdww,10489
pymodbus/client/tcp.py,sha256=hVDsksoKoRTgj07TPRshISx2jdRwq930Ipb7AaH2jpE,10355
pymodbus/client/tls.py,sha256=EAl6rl7OYZsm42WBEFDvyAZYxnhWz7v5LJqe8qdlI9E,7854
pymodbus/client/udp.py,sha256=_V9j7J9A8r248nV25YUnFAhRI0rLL0PfH3nUXwouAXU,6915
pymodbus/constants.py,sha256=SY8UeXMtCiNrzPidW8drNmv07PuNsConfrsI6CEcNs8,3499
pymodbus/datastore/__init__.py,sha256=7DoMjoxfHQYq_7Sn9buUq4dOOHzNot113AmrwgEHliE,491
pymodbus/datastore/__pycache__/__init__.cpython-312.pyc,,
pymodbus/datastore/__pycache__/context.cpython-312.pyc,,
pymodbus/datastore/__pycache__/remote.cpython-312.pyc,,
pymodbus/datastore/__pycache__/simulator.cpython-312.pyc,,
pymodbus/datastore/__pycache__/store.cpython-312.pyc,,
pymodbus/datastore/context.py,sha256=eICS-XBGrumZw81rpd7_WuRXllzU6qJNXEZjOoWpc_U,9061
pymodbus/datastore/remote.py,sha256=3NbJWbFc3NOgHuIV4jFtxY0tCKjUTuaZM9eXI3luz80,4418
pymodbus/datastore/simulator.py,sha256=H-5Y_6UiYF3kpo0-IY3e-BxMaSSJVyvyabjcS16WDIs,30931
pymodbus/datastore/store.py,sha256=-XRkFlbj6igeSU7WXf754fJJg53OwlSTvO2g9LgzHt0,12036
pymodbus/device.py,sha256=FP76VC0jxhTLiWNUbSB1QaF4AYAKCLI6lFde8futaN8,22313
pymodbus/events.py,sha256=6CReszGaobVN-4lXPcUmd3KbPQb-lYRHnxrOZNyJPQA,6420
pymodbus/exceptions.py,sha256=cxHWXIj9LWBa8Ckvvbki3J36jySB0fFJiyEd9h5bkv4,3189
pymodbus/factory.py,sha256=qTLpStniWXMByimWNDB3HdljxW1sJl4k4E_ymv4T4-8,12214
pymodbus/framer/__init__.py,sha256=wOKJsY3ft1xlAgxyXBW8Xe2aU14o54i-N2pfbcLA75I,764
pymodbus/framer/__pycache__/__init__.cpython-312.pyc,,
pymodbus/framer/__pycache__/ascii.cpython-312.pyc,,
pymodbus/framer/__pycache__/base.cpython-312.pyc,,
pymodbus/framer/__pycache__/framer.cpython-312.pyc,,
pymodbus/framer/__pycache__/old_framer_ascii.cpython-312.pyc,,
pymodbus/framer/__pycache__/old_framer_base.cpython-312.pyc,,
pymodbus/framer/__pycache__/old_framer_rtu.cpython-312.pyc,,
pymodbus/framer/__pycache__/old_framer_socket.cpython-312.pyc,,
pymodbus/framer/__pycache__/old_framer_tls.cpython-312.pyc,,
pymodbus/framer/__pycache__/raw.cpython-312.pyc,,
pymodbus/framer/__pycache__/rtu.cpython-312.pyc,,
pymodbus/framer/__pycache__/socket.cpython-312.pyc,,
pymodbus/framer/__pycache__/tls.cpython-312.pyc,,
pymodbus/framer/ascii.py,sha256=BPgnq2jzClDt5yZBEUU3oNJnnWXyptTM6HF3ByUEaXM,2924
pymodbus/framer/base.py,sha256=tVVgAVS8CoQThh-GNmENnuRK0tjEH8TCRaZW1lNjM_M,1078
pymodbus/framer/framer.py,sha256=uZ9L8St9LhdZJdFfacSgywMSVcPIlfh7ro8vnKRvJF8,3881
pymodbus/framer/old_framer_ascii.py,sha256=whTBxK44Q1bnK2aTva3YR8esE7_qclsPcSxbgUiymHk,2535
pymodbus/framer/old_framer_base.py,sha256=j371lSflmjmXhkuUAjI7r0vjv8-MdTbsgNUirkzRxyo,5385
pymodbus/framer/old_framer_rtu.py,sha256=3RPjfqN9GU5NAxIiWWs3hCYCdDpr_srQEngYK06BotQ,9421
pymodbus/framer/old_framer_socket.py,sha256=GynFudHSDmx3lplIXJXv9P-wK4fKGsH3KJiaiNOcHAI,3425
pymodbus/framer/old_framer_tls.py,sha256=qdBUbEe-oeqUg_AGOK34biHN3urCVydvG_zSi8ac2sk,2261
pymodbus/framer/raw.py,sha256=MLWIDng4T7KsrzoDwYPbpAdOukE6tXGh1SE_gsp4XPY,970
pymodbus/framer/rtu.py,sha256=JXQPKR7eS3LE4ypzato7ml8htdNMJxMElQWFtiadOO8,5441
pymodbus/framer/socket.py,sha256=cO9qRXvDwPlKix0kCqn4jbsHgJOtdsCk2WMn_ktQiIo,1432
pymodbus/framer/tls.py,sha256=SY-9wHE0r75dpdaT9NOHdjHrE5bgDCwOcPbexZvDvFk,492
pymodbus/logging.py,sha256=cfYnB5qswx28V3AVhRGhq8o6Q5z0x4D-NMVacCTslHs,3926
pymodbus/payload.py,sha256=dyjjfhCjueg1PIrdiTufJPaq1jxSu7VD-KiICzS6C-w,15487
pymodbus/pdu/__init__.py,sha256=BFTQv0r2cLjU8ZnUDjbZEFTCbjnKAWNjdnnSeY5pOOE,328
pymodbus/pdu/__pycache__/__init__.cpython-312.pyc,,
pymodbus/pdu/__pycache__/bit_read_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/bit_write_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/diag_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/file_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/mei_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/other_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/pdu.cpython-312.pyc,,
pymodbus/pdu/__pycache__/register_read_message.cpython-312.pyc,,
pymodbus/pdu/__pycache__/register_write_message.cpython-312.pyc,,
pymodbus/pdu/bit_read_message.py,sha256=Wwiv3tXR7BCdADT1_Nbfcq-AaWoQsYTywuxScMJOx2k,9520
pymodbus/pdu/bit_write_message.py,sha256=9MkkSlBymXK1WKQyxltrWJYb866xorTbTCe8CfaXOpw,9459
pymodbus/pdu/diag_message.py,sha256=jIyeNiL_crTlZv6qhRqgW1J4ASq1IIcD_nsoynytGKA,30195
pymodbus/pdu/file_message.py,sha256=I5cfoSvbCYLzQV2RnQkjqiACvMHjp9IdhTnalypD9lA,15064
pymodbus/pdu/mei_message.py,sha256=N0Wimf6ja94ozMlkrMVV27OctN3LLvpwUBYicGrH9_c,7891
pymodbus/pdu/other_message.py,sha256=ej_FsUXmDiVT5ypKhspUOEhLCGtDfOnZdG_9Vlw_u-4,15703
pymodbus/pdu/pdu.py,sha256=_AUFqTk-82HL8SCdkj1AJP5wUPTItNFJEXMb7ymUVyA,7926
pymodbus/pdu/register_read_message.py,sha256=RV3CVYFNFjG5M5g8a653gk7e8oxP7p-X8vK57i62Qy8,13265
pymodbus/pdu/register_write_message.py,sha256=ZeNs6VUu7lvgwr4D-oh4WhEJm8HDQ2EirWbHfL3JBPA,12499
pymodbus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pymodbus/server/__init__.py,sha256=q6EiG-hXtjtj-OP5a39qmUPlFiF18HuAnk7J0j3JNJE,996
pymodbus/server/__pycache__/__init__.cpython-312.pyc,,
pymodbus/server/__pycache__/async_io.cpython-312.pyc,,
pymodbus/server/async_io.py,sha256=g_nZY1a0jS-EtPwwFF9GGObsw3KoEdNrUVRTUuyvnFU,26436
pymodbus/server/simulator/__init__.py,sha256=TkIbeFNGu-JC0VbN64G4ImZOZdWUTZyXY0x1IQY0OQk,18
pymodbus/server/simulator/__pycache__/__init__.cpython-312.pyc,,
pymodbus/server/simulator/__pycache__/custom_actions.cpython-312.pyc,,
pymodbus/server/simulator/__pycache__/http_server.cpython-312.pyc,,
pymodbus/server/simulator/__pycache__/main.cpython-312.pyc,,
pymodbus/server/simulator/custom_actions.py,sha256=96R3tp7u5yGF5P4gNvIde9pY3M5KhlkEgGstHzg-Szk,187
pymodbus/server/simulator/http_server.py,sha256=MhJt98tdyiMv5rOjEAPeNqJbRLGG1PGfS-wXm8gcBjo,31617
pymodbus/server/simulator/main.py,sha256=kKceLq968V7u2mnFMpsnn2O-aFeHde6evCEH00A98S4,4200
pymodbus/server/simulator/setup.json,sha256=SG-qrG50Nh1zM_YHPKm0QIo2gh-zjKorGzsbPLsvODU,7643
pymodbus/server/simulator/web/apple120.png,sha256=kymnXpkuOnlk13QIlBHZ30RXqYL0Mep6PQ7BMHhON14,11369
pymodbus/server/simulator/web/apple152.png,sha256=56hV4HGeyfnBlbHgnMt_shWuVTJB7dKXx7EQpt9rjEc,15391
pymodbus/server/simulator/web/apple60.png,sha256=2YegT0ZTkBCQ3v32S8dmUOqCLdXXg2UnFp4QKYMWGrQ,4817
pymodbus/server/simulator/web/apple76.png,sha256=LDrwW4YW1ijbx1k2i384wka05U9NvBW5yvNfCTEXDe0,6344
pymodbus/server/simulator/web/favicon.ico,sha256=-eUdKiH2TBpF3HHawVjLnIaP_Y1oqe2t_hS0dOCY2ZY,12014
pymodbus/server/simulator/web/generator/calls,sha256=Lr7tTaTf8M7XT2vlrvROqLjyA07miMOExdsi7tmu60A,4314
pymodbus/server/simulator/web/generator/log,sha256=D-lDQKT0SZoNzTGZL-B05RdjvPdRF_6WxB5mJrpnaGc,1132
pymodbus/server/simulator/web/generator/pymodbus_icon_original.png,sha256=0VIAZ8wS-SP9qUfBVHaChzcNrAQzojyacFnizcieLIY,5850
pymodbus/server/simulator/web/generator/registers,sha256=7qD_pRY8szWJp9miATGVdCrUSkV1m0U7ZcRGVPsuq2U,2710
pymodbus/server/simulator/web/generator/server,sha256=lvkxOEA9HtP9cWhcabWK4veFIiNDpg4HunyvcedVul0,893
pymodbus/server/simulator/web/index.html,sha256=TQO1qDFdCAvEF5t2yS2xJ-IUuvg1EcYAP_0qTxvex2c,1944
pymodbus/server/simulator/web/pymodbus.css,sha256=0Nc2PYZ6bEgvOnvvSXICJvAhFJI-m7XOFDrCNIfcieA,919
pymodbus/server/simulator/web/welcome.html,sha256=6VLVyWdXMIVawjE56IkXITlotkXG-kJhu5zjjzZOXuI,710
pymodbus/transaction.py,sha256=YK5QRbNGgBbkp7lqU-OJlE3MMqt9c_OCYa0GoE6-ZhA,18636
pymodbus/transport/__init__.py,sha256=H9lHMyh5as-OlNnfSUYbaa8pFjf1D7QZt0skOWX_C0A,225
pymodbus/transport/__pycache__/__init__.cpython-312.pyc,,
pymodbus/transport/__pycache__/serialtransport.cpython-312.pyc,,
pymodbus/transport/__pycache__/transport.cpython-312.pyc,,
pymodbus/transport/serialtransport.py,sha256=bWQ-HjFLrWHVmRZXiwOVmHR2IoAvj0eM9SVUTOmigAQ,6223
pymodbus/transport/transport.py,sha256=sntfWp3swP-oNCkhyMNepVBmm1qzMcM2Y2jGGor3aXo,22907
pymodbus/utilities.py,sha256=TYXT2kfqb4Zg6Q1npTPvd9qsOTe6DCTHu2cUyh83Ips,5495

View File

@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (73.0.1)
Root-Is-Purelib: true
Tag: py3-none-any

View File

@@ -0,0 +1,2 @@
[console_scripts]
pymodbus.simulator = pymodbus.server.simulator.main:main

View File

@@ -0,0 +1 @@
pymodbus