mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 13:53:53 +01:00
Update documentation
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
recursive-include docs *
|
||||
recursive-exclude docs/_build *
|
||||
include LICENSE.txt
|
||||
include Makefile
|
||||
include MANIFEST.in
|
||||
|
||||
2
Makefile
2
Makefile
@@ -28,7 +28,7 @@ build:
|
||||
$(PYTHON) -m setup sdist
|
||||
$(PYTHON) -m setup bdist_wheel
|
||||
|
||||
install:
|
||||
install: build
|
||||
$(PYTHON) -m pip install dist/$(PACKAGE)-*.whl
|
||||
|
||||
.PHONY: build install
|
||||
|
||||
54
README.md
54
README.md
@@ -1,26 +1,32 @@
|
||||
# RevPiModIO
|
||||
|
||||
### Python3 programming for RevolutionPi of Kunbus GmbH.
|
||||
### Python3 programming for RevolutionPi of KUNBUS GmbH.
|
||||
|
||||
The module provides all devices and IOs from the piCtory configuration in Python3. It allows direct
|
||||
access to the values via their assigned name. Read and write actions on the process image are
|
||||
managed by the module itself without the programmer having to worry about offsets and addresses.
|
||||
For the gateway modules such as ModbusTCP or Profinet, own 'inputs' and 'outputs' can be defined
|
||||
over a specific address range. These IOs can be accessed directly from the values using Python3.
|
||||
The module provides all devices and IOs from the piCtory configuration in
|
||||
Python3. It allows direct access to the values via their assigned name. Read and
|
||||
write actions on the process image are managed by the module itself without the
|
||||
programmer having to worry about offsets and addresses.
|
||||
|
||||
For the gateway modules such as ModbusTCP or Profinet, own 'inputs' and
|
||||
'outputs' can be defined over a specific address range. These IOs can be
|
||||
accessed directly from the values using Python3.
|
||||
|
||||
#### [RevolutionPi Hardware](https://revolution.kunbus.com)
|
||||
The hardware configuration is done via a web page, which is located on the PiCore module. The
|
||||
program is called “piCtory”.
|
||||
|
||||
All inputs and outputs can be assigned symbolic names to facilitate their handling and programming.
|
||||
If this configuration is created and activated, the data of the input, output and gateway modules
|
||||
are exchanged via a 4096-byte process image.
|
||||
The hardware configuration is done via a web page, which is located on the
|
||||
PiCore module. The program is called “piCtory”.
|
||||
|
||||
All inputs and outputs can be assigned symbolic names to facilitate their
|
||||
handling and programming. If this configuration is created and activated, the
|
||||
data of the input, output and gateway modules are exchanged via a 4096-byte
|
||||
process image.
|
||||
|
||||
#### [Our RevPiModIO module](https://revpimodio.org/)
|
||||
|
||||
If you use our module in Python3, it uses the piCtory configuration to create all the inputs and
|
||||
outputs with their symbolic names as objects. The programmer can address these directly via the
|
||||
symbolic names and access the values of the inputs and outputs – both reading and writing!
|
||||
If you use our module in Python3, it uses the piCtory configuration to create
|
||||
all the inputs and outputs with their symbolic names as objects. The programmer
|
||||
can address these directly via the symbolic names and access the values of the
|
||||
inputs and outputs – both reading and writing!
|
||||
|
||||
```
|
||||
import revpimodio2
|
||||
@@ -34,11 +40,11 @@ if rpi.io.t_on.value:
|
||||
rpi.exit()
|
||||
```
|
||||
|
||||
In addition, it provides the developer with many useful functions that can be used to develop
|
||||
cyclic or event-based programs.
|
||||
In addition, it provides the developer with many useful functions that can be
|
||||
used to develop cyclic or event-based programs.
|
||||
|
||||
If you know the .add_event_detect(...) function of the GPIO module from the Raspberry Pi, you
|
||||
can also achieve this behavior with the Revolution Pi:
|
||||
If you know the .add_event_detect(...) function of the GPIO module from the
|
||||
Raspberry Pi, you can also achieve this behavior with the Revolution Pi:
|
||||
|
||||
```
|
||||
import revpimodio2
|
||||
@@ -58,8 +64,8 @@ rpi.io.t_on.reg_event(event_detect)
|
||||
rpi.mainloop()
|
||||
```
|
||||
|
||||
Even with hardware changes, but constant names of the inputs and outputs, the actual Python3
|
||||
source code does not need to be changed!
|
||||
Even with hardware changes, but constant names of the inputs and outputs, the
|
||||
actual Python3 source code does not need to be changed!
|
||||
|
||||
#### How it works:
|
||||
|
||||
@@ -79,10 +85,10 @@ source code does not need to be changed!
|
||||
|
||||
#### Summary
|
||||
|
||||
With this module we want to spare all Python developers a lot of work. All communication with the
|
||||
process image is optimally performed inside the module. Changes to the inputs and outputs are also
|
||||
evaluated along with the additional functions of the module give the developer many tools along
|
||||
the way.
|
||||
With this module we want to spare all Python developers a lot of work. All
|
||||
communication with the process image is optimally performed inside the module.
|
||||
Changes to the inputs and outputs are also evaluated along with the additional
|
||||
functions of the module give the developer many tools along the way.
|
||||
|
||||
More examples: (https://revpimodio.org/en/blogs/examples/)
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Minimal makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
SPHINXPROJ = RevPiModIO2
|
||||
# You can set these variables from the command line, and also
|
||||
# from the environment for the first two.
|
||||
SPHINXOPTS ?=
|
||||
SPHINXBUILD ?= sphinx-build
|
||||
SOURCEDIR = .
|
||||
BUILDDIR = _build
|
||||
|
||||
@@ -12,7 +12,10 @@ BUILDDIR = _build
|
||||
help:
|
||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
.PHONY: help Makefile
|
||||
clean:
|
||||
rm -R $(BUILDDIR)
|
||||
|
||||
.PHONY: help clean Makefile
|
||||
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
|
||||
168
docs/conf.py
168
docs/conf.py
@@ -1,174 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# RevPiModIO2 documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sun Oct 20 12:38:53 2019.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
# For the full list of built-in configuration values, see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
sys.path.insert(0, os.path.abspath('../'))
|
||||
|
||||
sys.path.insert(0, os.path.abspath('../src'))
|
||||
from revpimodio2 import __version__
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
# -- Project information -----------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#
|
||||
# needs_sphinx = '1.0'
|
||||
project = 'revpimodio2'
|
||||
copyright = '2023, Sven Sager'
|
||||
author = 'Sven Sager'
|
||||
version = __version__
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.todo',
|
||||
'sphinx.ext.viewcode'
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = 'RevPiModIO2'
|
||||
copyright = '2019, Sven Sager (NaruX)'
|
||||
author = 'Sven Sager (NaruX)'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = __version__
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
# release = ''
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This patterns also effect to html_static_path and html_extra_path
|
||||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = True
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = 'alabaster'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Custom sidebar templates, must be a dictionary that maps document names
|
||||
# to template names.
|
||||
#
|
||||
# This is required for the alabaster theme
|
||||
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
|
||||
html_sidebars = {
|
||||
'**': [
|
||||
'relations.html', # needs 'show_related': True theme option to display
|
||||
'searchbox.html',
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
# -- Options for HTMLHelp output ------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'RevPiModIO2doc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'RevPiModIO2.tex', 'RevPiModIO2 Documentation',
|
||||
'Sven Sager (NaruX)', 'manual'),
|
||||
]
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'revpimodio2', 'RevPiModIO2 Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'RevPiModIO2', 'RevPiModIO2 Documentation',
|
||||
author, 'RevPiModIO2', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.. RevPiModIO2 documentation master file, created by
|
||||
sphinx-quickstart on Sun Oct 20 12:38:53 2019.
|
||||
.. revpimodio2 documentation master file, created by
|
||||
sphinx-quickstart on Sun Jan 22 17:49:41 2023.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to RevPiModIO2's documentation!
|
||||
Welcome to revpimodio2's documentation!
|
||||
=======================================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
revpimodio2
|
||||
===========
|
||||
src
|
||||
===
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.app module
|
||||
=======================
|
||||
|
||||
.. automodule:: revpimodio2.app
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.device module
|
||||
==========================
|
||||
|
||||
.. automodule:: revpimodio2.device
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.helper module
|
||||
==========================
|
||||
|
||||
.. automodule:: revpimodio2.helper
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.io module
|
||||
======================
|
||||
|
||||
.. automodule:: revpimodio2.io
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.modio module
|
||||
=========================
|
||||
|
||||
.. automodule:: revpimodio2.modio
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.netio module
|
||||
=========================
|
||||
|
||||
.. automodule:: revpimodio2.netio
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -4,20 +4,82 @@ revpimodio2 package
|
||||
Submodules
|
||||
----------
|
||||
|
||||
.. toctree::
|
||||
revpimodio2.app module
|
||||
----------------------
|
||||
|
||||
revpimodio2.app
|
||||
revpimodio2.device
|
||||
revpimodio2.helper
|
||||
revpimodio2.io
|
||||
revpimodio2.modio
|
||||
revpimodio2.netio
|
||||
revpimodio2.summary
|
||||
.. automodule:: revpimodio2.app
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.device module
|
||||
-------------------------
|
||||
|
||||
.. automodule:: revpimodio2.device
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.errors module
|
||||
-------------------------
|
||||
|
||||
.. automodule:: revpimodio2.errors
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.helper module
|
||||
-------------------------
|
||||
|
||||
.. automodule:: revpimodio2.helper
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.io module
|
||||
---------------------
|
||||
|
||||
.. automodule:: revpimodio2.io
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.modio module
|
||||
------------------------
|
||||
|
||||
.. automodule:: revpimodio2.modio
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.netio module
|
||||
------------------------
|
||||
|
||||
.. automodule:: revpimodio2.netio
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.pictory module
|
||||
--------------------------
|
||||
|
||||
.. automodule:: revpimodio2.pictory
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
revpimodio2.summary module
|
||||
--------------------------
|
||||
|
||||
.. automodule:: revpimodio2.summary
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Module contents
|
||||
---------------
|
||||
|
||||
.. automodule:: revpimodio2
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
revpimodio2\.summary module
|
||||
===========================
|
||||
|
||||
.. automodule:: revpimodio2.summary
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
21
setup.py
21
setup.py
@@ -1,15 +1,19 @@
|
||||
#! /usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Setupscript for revpimodio."""
|
||||
"""Setup-script for revpimodio2."""
|
||||
__author__ = "Sven Sager"
|
||||
__copyright__ = "Copyright (C) 2023 Sven Sager"
|
||||
__license__ = "LGPLv3"
|
||||
|
||||
from setuptools import setup, find_namespace_packages
|
||||
|
||||
with open("README.md") as fh:
|
||||
# Load long description from readme file
|
||||
long_description = fh.read()
|
||||
|
||||
setup(
|
||||
name="revpimodio2",
|
||||
version="2.6.0rc2",
|
||||
version="2.6.0rc3",
|
||||
|
||||
packages=find_namespace_packages("src"),
|
||||
package_dir={'': 'src'},
|
||||
@@ -27,16 +31,9 @@ setup(
|
||||
author_email="akira@narux.de",
|
||||
maintainer="Sven Sager",
|
||||
maintainer_email="akira@revpimodio.org",
|
||||
description="Python3 programming for RevolutionPi of Kunbus GmbH",
|
||||
long_description="Das Modul stellt alle Devices und IOs aus der piCtory Konfiguration \n"
|
||||
"in Python3 zur Verfügung. Es ermöglicht den direkten Zugriff auf die \n"
|
||||
"Werte über deren vergebenen Namen. Lese- und Schreibaktionen mit dem \n"
|
||||
"Prozessabbild werden von dem Modul selbst verwaltet, ohne dass sich \n"
|
||||
"der Programmierer um Offsets und Adressen kümmern muss. Für die \n"
|
||||
"Gatewaymodule wie ModbusTCP oder Profinet sind eigene 'Inputs' und \n"
|
||||
"'Outputs' über einen bestimmten Adressbereich definierbar. Auf \n"
|
||||
"diese IOs kann mit Python3 über den Namen direkt auf die Werte \n"
|
||||
"zugegriffen werden.",
|
||||
description="Python3 programming for RevolutionPi of KUNBUS GmbH",
|
||||
long_description=long_description,
|
||||
long_description_content_type="text/markdown",
|
||||
keywords=["revpi", "revolution pi", "revpimodio", "plc", "automation"],
|
||||
classifiers=[
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
|
||||
@@ -5,7 +5,7 @@ Stellt alle Klassen fuer den RevolutionPi zur Verfuegung.
|
||||
Webpage: https://revpimodio.org/
|
||||
|
||||
Stellt Klassen fuer die einfache Verwendung des Revolution Pis der
|
||||
Kunbus GmbH (https://revolution.kunbus.de/) zur Verfuegung. Alle I/Os werden
|
||||
KUNBUS GmbH (https://revolution.kunbus.de/) zur Verfuegung. Alle I/Os werden
|
||||
aus der piCtory Konfiguration eingelesen und mit deren Namen direkt zugreifbar
|
||||
gemacht. Fuer Gateways sind eigene IOs ueber mehrere Bytes konfigurierbar
|
||||
Mit den definierten Namen greift man direkt auf die gewuenschten Daten zu.
|
||||
@@ -22,8 +22,8 @@ __all__ = [
|
||||
__author__ = "Sven Sager <akira@revpimodio.org>"
|
||||
__copyright__ = "Copyright (C) 2023 Sven Sager"
|
||||
__license__ = "LGPLv3"
|
||||
__name__ = "revpimodio2"
|
||||
__version__ = "2.6.0rc2"
|
||||
__package__ = "revpimodio2"
|
||||
__version__ = "2.6.0rc3"
|
||||
|
||||
from ._internal import *
|
||||
from .helper import Cycletools, EventCallback
|
||||
|
||||
@@ -250,7 +250,7 @@ class RevPiModIO(object):
|
||||
err_names_check = {}
|
||||
for device in sorted(lst_devices, key=lambda x: x["offset"]):
|
||||
|
||||
# VDev alter piCtory Versionen auf Kunbus-Standard ändern
|
||||
# VDev alter piCtory Versionen auf KUNBUS-Standard ändern
|
||||
if device["position"] == "adap.":
|
||||
device["position"] = 64
|
||||
while device["position"] in self.device:
|
||||
|
||||
Reference in New Issue
Block a user