From 40d7c132a5bcbd28ef8723ceef8aefc9bc56cc3c Mon Sep 17 00:00:00 2001 From: NaruX Date: Tue, 23 Jul 2019 09:09:34 +0200 Subject: [PATCH] =?UTF-8?q?Selected=20/=20Driver=20gegen=20nun=20einen=20D?= =?UTF-8?q?eviceNotFoundError=20aus,=20wenn=20nicht=20vorhanden=20debug=20?= =?UTF-8?q?und=20replace=5Fio=5Ffile=20=C3=BCber=20Namen=20abrufbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/revpimodio2.__init__.html | 36 ++++++++++++++++++++++++++++++++++- doc/revpimodio2.modio.html | 30 ++++++++++++++++++++++++++++- eric-revpimodio2.api | 4 ++++ eric-revpimodio2.bas | 1 + revpimodio2/__init__.py | 7 +++++++ revpimodio2/modio.py | 26 +++++++++++++++++-------- revpimodio2/netio.py | 10 +++++----- 7 files changed, 99 insertions(+), 15 deletions(-) diff --git a/doc/revpimodio2.__init__.html b/doc/revpimodio2.__init__.html index 6441740..1554d3c 100644 --- a/doc/revpimodio2.__init__.html +++ b/doc/revpimodio2.__init__.html @@ -27,7 +27,10 @@ Global Attributes

Classes

- + + + +
None
DeviceNotFoundErrorFehler wenn ein Device nicht gefunden wird.

Functions

@@ -41,6 +44,37 @@ Functions

+ +

DeviceNotFoundError

+

+Fehler wenn ein Device nicht gefunden wird. +

+

+Derived from

+Exception +

+Class Attributes

+ + +
None
+

+Class Methods

+ + +
None
+

+Methods

+ + +
None
+

+Static Methods

+ + +
None
+ +
Up
+

acheck

acheck(check_type, **kwargs) diff --git a/doc/revpimodio2.modio.html b/doc/revpimodio2.modio.html index 2841f45..343aee3 100644 --- a/doc/revpimodio2.modio.html +++ b/doc/revpimodio2.modio.html @@ -54,7 +54,7 @@ object

Class Attributes

- +
__slots__
configrsc
cycletime
ioerrors
length
maxioerrors
monitoring
procimg
simulator
__slots__
configrsc
cycletime
debug
ioerrors
length
maxioerrors
monitoring
procimg
replace_io_file
simulator

Class Methods

@@ -89,6 +89,9 @@ Methods _get_cycletime Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus. +_get_debug +Gibt Status des Debugflags zurueck. + _get_ioerrors Getter function. @@ -104,6 +107,9 @@ Methods _get_procimg Getter function. +_get_replace_io_file +Gibt Pfad zur verwendeten replace IO Datei aus. + _get_simulator Getter function. @@ -260,6 +266,17 @@ Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus.
Millisekunden
+ +

+RevPiModIO._get_debug

+_get_debug() +

+Gibt Status des Debugflags zurueck. +

+
Returns:
+
+Status des Debugflags +

RevPiModIO._get_ioerrors

@@ -315,6 +332,17 @@ Getter function.
Pfad des verwendeten Prozessabbilds
+ +

+RevPiModIO._get_replace_io_file

+_get_replace_io_file() +

+Gibt Pfad zur verwendeten replace IO Datei aus. +

+
Returns:
+
+Pfad zur replace IO Datei +

RevPiModIO._get_simulator

diff --git a/eric-revpimodio2.api b/eric-revpimodio2.api index 270362a..889636a 100644 --- a/eric-revpimodio2.api +++ b/eric-revpimodio2.api @@ -145,11 +145,13 @@ revpimodio2.modio.RevPiModIO._configure_replace_io?5() revpimodio2.modio.RevPiModIO._create_myfh?5() revpimodio2.modio.RevPiModIO._get_configrsc?5() revpimodio2.modio.RevPiModIO._get_cycletime?5() +revpimodio2.modio.RevPiModIO._get_debug?5() revpimodio2.modio.RevPiModIO._get_ioerrors?5() revpimodio2.modio.RevPiModIO._get_length?5() revpimodio2.modio.RevPiModIO._get_maxioerrors?5() revpimodio2.modio.RevPiModIO._get_monitoring?5() revpimodio2.modio.RevPiModIO._get_procimg?5() +revpimodio2.modio.RevPiModIO._get_replace_io_file?5() revpimodio2.modio.RevPiModIO._get_simulator?5() revpimodio2.modio.RevPiModIO._gotioerror?5(action, e=None) revpimodio2.modio.RevPiModIO._set_cycletime?5(milliseconds) @@ -159,6 +161,7 @@ revpimodio2.modio.RevPiModIO.cleanup?4() revpimodio2.modio.RevPiModIO.configrsc?7 revpimodio2.modio.RevPiModIO.cycleloop?4(func, cycletime=50) revpimodio2.modio.RevPiModIO.cycletime?7 +revpimodio2.modio.RevPiModIO.debug?7 revpimodio2.modio.RevPiModIO.exit?4(full=True) revpimodio2.modio.RevPiModIO.export_replaced_ios?4(filename) revpimodio2.modio.RevPiModIO.get_jconfigrsc?4() @@ -170,6 +173,7 @@ revpimodio2.modio.RevPiModIO.maxioerrors?7 revpimodio2.modio.RevPiModIO.monitoring?7 revpimodio2.modio.RevPiModIO.procimg?7 revpimodio2.modio.RevPiModIO.readprocimg?4(device=None) +revpimodio2.modio.RevPiModIO.replace_io_file?7 revpimodio2.modio.RevPiModIO.resetioerrors?4() revpimodio2.modio.RevPiModIO.setdefaultvalues?4(device=None) revpimodio2.modio.RevPiModIO.simulator?7 diff --git a/eric-revpimodio2.bas b/eric-revpimodio2.bas index 56a0c5e..3eda7c3 100644 --- a/eric-revpimodio2.bas +++ b/eric-revpimodio2.bas @@ -1,6 +1,7 @@ Base Device Connect Core Core Base +DeviceNotFoundError Exception DioModule Device EventCallback Thread Gateway Device diff --git a/revpimodio2/__init__.py b/revpimodio2/__init__.py index 26c7636..3b8c1e2 100644 --- a/revpimodio2/__init__.py +++ b/revpimodio2/__init__.py @@ -38,6 +38,13 @@ MEM = 302 warnings.simplefilter(action="always") +class DeviceNotFoundError(Exception): + + """Fehler wenn ein Device nicht gefunden wird.""" + + pass + + def acheck(check_type, **kwargs): """Check type of given arguments. diff --git a/revpimodio2/modio.py b/revpimodio2/modio.py index 589d297..d08544c 100644 --- a/revpimodio2/modio.py +++ b/revpimodio2/modio.py @@ -10,7 +10,7 @@ from json import load as jload from multiprocessing import cpu_count from os import access, F_OK, R_OK from queue import Empty -from revpimodio2 import acheck +from revpimodio2 import acheck, DeviceNotFoundError from signal import signal, SIG_DFL, SIGINT, SIGTERM from threading import Thread, Event, Lock from timeit import default_timer @@ -368,9 +368,7 @@ class RevPiModIO(object): except Exception as e: raise RuntimeError( "replace_io_file: can not replace '{0}' with '{1}' " - "| RevPiModIO message: {2}".format( - parentio, io, e - ) + "| RevPiModIO message: {2}".format(parentio, io, e) ) def _create_myfh(self): @@ -389,6 +387,11 @@ class RevPiModIO(object): @return Millisekunden""" return self._imgwriter.refresh + def _get_debug(self): + """Gibt Status des Debugflags zurueck. + @return Status des Debugflags""" + return self._debug + def _get_ioerrors(self): """Getter function. @return Aktuelle Anzahl gezaehlter Fehler""" @@ -417,6 +420,11 @@ class RevPiModIO(object): @return Pfad des verwendeten Prozessabbilds""" return self._procimg + def _get_replace_io_file(self): + """Gibt Pfad zur verwendeten replace IO Datei aus. + @return Pfad zur replace IO Datei""" + return self._replace_io_file + def _get_simulator(self): """Getter function. @return True, wenn als Simulator gestartet""" @@ -992,6 +1000,7 @@ class RevPiModIO(object): return workokay + debug = property(_get_debug) configrsc = property(_get_configrsc) cycletime = property(_get_cycletime, _set_cycletime) ioerrors = property(_get_ioerrors) @@ -999,6 +1008,7 @@ class RevPiModIO(object): maxioerrors = property(_get_maxioerrors, _set_maxioerrors) monitoring = property(_get_monitoring) procimg = property(_get_procimg) + replace_io_file = property(_get_replace_io_file) simulator = property(_get_simulator) @@ -1052,20 +1062,20 @@ class RevPiModIOSelected(RevPiModIO): if len(self.device) == 0: if type(self) == RevPiModIODriver: - raise RuntimeError( + raise DeviceNotFoundError( "could not find any given VIRTUAL devices in config" ) else: - raise RuntimeError( + raise DeviceNotFoundError( "could not find any given devices in config" ) elif len(self.device) != len(self._lst_devselect): if type(self) == RevPiModIODriver: - raise RuntimeError( + raise DeviceNotFoundError( "could not find all given VIRTUAL devices in config" ) else: - raise RuntimeError( + raise DeviceNotFoundError( "could not find all given devices in config" ) diff --git a/revpimodio2/netio.py b/revpimodio2/netio.py index d8c899f..8db2607 100644 --- a/revpimodio2/netio.py +++ b/revpimodio2/netio.py @@ -3,11 +3,11 @@ __author__ = "Sven Sager" __copyright__ = "Copyright (C) 2018 Sven Sager" __license__ = "LGPLv3" - import socket import warnings from json import loads as jloads from re import compile +from revpimodio2 import DeviceNotFoundError from threading import Thread, Event, Lock from .device import Device @@ -696,20 +696,20 @@ class RevPiNetIOSelected(RevPiNetIO): if len(self.device) == 0: if type(self) == RevPiNetIODriver: - raise RuntimeError( + raise DeviceNotFoundError( "could not find any given VIRTUAL devices in config" ) else: - raise RuntimeError( + raise DeviceNotFoundError( "could not find any given devices in config" ) elif len(self.device) != len(self._lst_devselect): if type(self) == RevPiNetIODriver: - raise RuntimeError( + raise DeviceNotFoundError( "could not find all given VIRTUAL devices in config" ) else: - raise RuntimeError( + raise DeviceNotFoundError( "could not find all given devices in config" )