Update documentation

This commit is contained in:
2023-01-22 18:05:56 +01:00
parent 05e4ff96ca
commit 8ddb323f24
18 changed files with 148 additions and 265 deletions

View File

@@ -1,3 +1,5 @@
recursive-include docs *
recursive-exclude docs/_build *
include LICENSE.txt
include Makefile
include MANIFEST.in

View File

@@ -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

View File

@@ -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/)

View File

@@ -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).

View File

@@ -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'),
]

View File

@@ -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::

View File

@@ -1,5 +1,5 @@
revpimodio2
===========
src
===
.. toctree::
:maxdepth: 4

View File

@@ -1,7 +0,0 @@
revpimodio2\.app module
=======================
.. automodule:: revpimodio2.app
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
revpimodio2\.device module
==========================
.. automodule:: revpimodio2.device
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
revpimodio2\.helper module
==========================
.. automodule:: revpimodio2.helper
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
revpimodio2\.io module
======================
.. automodule:: revpimodio2.io
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
revpimodio2\.modio module
=========================
.. automodule:: revpimodio2.modio
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
revpimodio2\.netio module
=========================
.. automodule:: revpimodio2.netio
:members:
:undoc-members:
:show-inheritance:

View File

@@ -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:

View File

@@ -1,7 +0,0 @@
revpimodio2\.summary module
===========================
.. automodule:: revpimodio2.summary
:members:
:undoc-members:
:show-inheritance:

View File

@@ -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",

View File

@@ -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

View File

@@ -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: