Replaces Master-Slave with Client-Server

Expunging all occurrences of inappropriate language of the query and
response paradigm of PLC communications. We are familiar with the Modbus
terminology and fully support this change.
https://www.modbus.org/docs/Client-ServerPR-07-2020-final.docx.pdf
This commit is contained in:
2023-02-07 09:38:11 +01:00
parent 7d482d498c
commit 3771a7847e
3 changed files with 25 additions and 29 deletions

View File

@@ -2,7 +2,6 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
import os
import sys
@@ -11,7 +10,6 @@ sys.path.insert(0, os.path.abspath('../src'))
from revpimodio2 import __version__
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'revpimodio2'
copyright = '2023, Sven Sager'
@@ -19,7 +17,6 @@ author = 'Sven Sager'
version = __version__
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = [
'sphinx.ext.autodoc',
@@ -31,7 +28,6 @@ templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
html_theme = 'alabaster'
html_static_path = ['_static']

View File

@@ -1,4 +1,4 @@
.. revpimodio2 documentation master file, created by
.. revpimodio2 documentation main 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.

View File

@@ -62,7 +62,7 @@ class NetFH(Thread):
"__int_buff", "__dictdirty", "__flusherr", "__replace_ios_h", \
"__pictory_h", "__position", "__sockerr", "__sockend", \
"__socklock", "__timeout", "__waitsync", "_address", \
"_slavesock", "daemon"
"_serversock", "daemon"
def __init__(self, address: tuple, check_replace_ios: bool, timeout=500):
"""
@@ -91,7 +91,7 @@ class NetFH(Thread):
self.__timeout = None
self.__waitsync = None
self._address = address
self._slavesock = None # type: socket.socket
self._serversock = None # type: socket.socket
# Parameterprüfung
if not isinstance(address, tuple):
@@ -105,8 +105,8 @@ class NetFH(Thread):
self.__set_systimeout(timeout)
self._connect()
if self._slavesock is None:
raise FileNotFoundError("can not connect to revpi slave")
if self._serversock is None:
raise FileNotFoundError("can not connect to revpi server")
# NetFH konfigurieren
self.__position = 0
@@ -129,10 +129,10 @@ class NetFH(Thread):
# Alles beenden, wenn nicht erlaubt
self.__sockend.set()
self.__sockerr.set()
self._slavesock.close()
self._serversock.close()
raise AclException(
"write access to the process image is not permitted - use "
"monitoring=True or check aclplcslave.conf on RevPi and "
"monitoring=True or check aclplcserver.conf on RevPi and "
"reload revpipyload!"
)
@@ -146,8 +146,8 @@ class NetFH(Thread):
self.__timeout = value / 1000
# Timeouts in Socket setzen
if self._slavesock is not None:
self._slavesock.settimeout(self.__timeout)
if self._serversock is not None:
self._serversock.settimeout(self.__timeout)
# 45 Prozent vom Timeout für Synctimer verwenden
self.__waitsync = self.__timeout / 100 * 45
@@ -156,7 +156,7 @@ class NetFH(Thread):
raise ValueError("value must between 10 and 60000 milliseconds")
def _connect(self) -> None:
"""Stellt die Verbindung zu einem RevPiSlave her."""
"""Stellt die Verbindung zu einem RevPiPlcServer her."""
# Neuen Socket aufbauen
so = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
@@ -205,10 +205,10 @@ class NetFH(Thread):
else:
# Alten Socket trennen
with self.__socklock:
if self._slavesock is not None:
self._slavesock.close()
if self._serversock is not None:
self._serversock.close()
self._slavesock = so
self._serversock = so
self.__sockerr.clear()
# Timeout setzen
@@ -241,7 +241,7 @@ class NetFH(Thread):
send_len = len(send_bytes)
while counter < send_len:
# Send loop to trigger timeout of socket on each send
sent = self._slavesock.send(send_bytes[counter:])
sent = self._serversock.send(send_bytes[counter:])
if sent == 0:
self.__sockerr.set()
raise IOError("lost network connection while send")
@@ -249,7 +249,7 @@ class NetFH(Thread):
self.__buff_recv.clear()
while recv_len > 0:
count = self._slavesock.recv_into(
count = self._serversock.recv_into(
self.__buff_block, min(recv_len, self.__buff_size)
)
if count == 0:
@@ -270,7 +270,7 @@ class NetFH(Thread):
def clear_dirtybytes(self, position=None) -> None:
"""
Entfernt die konfigurierten Dirtybytes vom RevPi Slave.
Entfernt die konfigurierten Dirtybytes vom RevPi Server.
Diese Funktion wirft keine Exception bei einem uebertragungsfehler,
veranlasst aber eine Neuverbindung.
@@ -319,17 +319,17 @@ class NetFH(Thread):
self.__sockerr.set()
# Vom Socket sauber trennen
if self._slavesock is not None:
if self._serversock is not None:
try:
self.__socklock.acquire()
self._slavesock.sendall(_sysexit)
self._slavesock.shutdown(socket.SHUT_WR)
self._serversock.sendall(_sysexit)
self._serversock.shutdown(socket.SHUT_WR)
except Exception:
pass
finally:
self.__socklock.release()
self._slavesock.close()
self._serversock.close()
def flush(self) -> None:
"""Schreibpuffer senden."""
@@ -538,12 +538,12 @@ class NetFH(Thread):
# Kein Fehler aufgetreten, sync durchführen wenn socket frei
if self.__socklock.acquire(blocking=False):
try:
self._slavesock.sendall(_syssync)
self._serversock.sendall(_syssync)
self.__buff_recv.clear()
recv_lenght = 2
while recv_lenght > 0:
count = self._slavesock.recv_into(
count = self._serversock.recv_into(
self.__buff_block, recv_lenght
)
if count == 0:
@@ -857,7 +857,7 @@ class RevPiNetIO(_RevPiModIO):
def net_cleardefaultvalues(self, device=None) -> None:
"""
Loescht Defaultwerte vom PLC Slave.
Loescht Defaultwerte vom PLC Server.
:param device: nur auf einzelnes Device anwenden, sonst auf Alle
"""
@@ -879,7 +879,7 @@ class RevPiNetIO(_RevPiModIO):
def net_setdefaultvalues(self, device=None) -> None:
"""
Konfiguriert den PLC Slave mit den piCtory Defaultwerten.
Konfiguriert den PLC Server mit den piCtory Defaultwerten.
Diese Werte werden auf dem RevPi gesetzt, wenn die Verbindung
unerwartet (Netzwerkfehler) unterbrochen wird.
@@ -924,7 +924,7 @@ class RevPiNetIO(_RevPiModIO):
dirtybytes += \
int_byte.to_bytes(length=1, byteorder="little")
# Dirtybytes an PLC Slave senden
# Dirtybytes an PLC Server senden
self._myfh.set_dirtybytes(
dev._offset + dev._slc_out.start, dirtybytes
)