mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-09 06:13:53 +01:00
RevPiNetIO nur ._configure wenn nicht vererbt
Bugfix: prüfen auf self._myfh is not None statt hasattr Socket in .close() beenden - nicht am Ende von .run() da als daemon=True
This commit is contained in:
@@ -25,7 +25,7 @@ __all__ = [
|
||||
__author__ = "Sven Sager <akira@revpimodio.org>"
|
||||
__name__ = "revpimodio2"
|
||||
__package__ = "revpimodio2"
|
||||
__version__ = "2.1.0"
|
||||
__version__ = "2.1.1"
|
||||
|
||||
# Global package values
|
||||
OFF = 0
|
||||
|
||||
@@ -87,7 +87,7 @@ class RevPiModIO(object):
|
||||
def __del__(self):
|
||||
"""Zerstoert alle Klassen um aufzuraeumen."""
|
||||
self.exit(full=True)
|
||||
if hasattr(self, "_myfh"):
|
||||
if self._myfh is not None:
|
||||
self._myfh.close()
|
||||
|
||||
def __evt_exit(self, signum, sigframe):
|
||||
@@ -116,7 +116,8 @@ class RevPiModIO(object):
|
||||
if len(self._lst_devselect) > 0:
|
||||
lst_found = []
|
||||
|
||||
if type(self) == RevPiModIODriver:
|
||||
if type(self) == RevPiModIODriver \
|
||||
or type(self) == RevPiNetIODriver:
|
||||
_searchtype = "VIRTUAL"
|
||||
else:
|
||||
_searchtype = None
|
||||
@@ -907,3 +908,7 @@ class RevPiModIODriver(RevPiModIOSelected):
|
||||
super().__init__(
|
||||
virtdev, autorefresh, False, syncoutputs, procimg, configrsc, True
|
||||
)
|
||||
|
||||
|
||||
# Nachträglicher Import
|
||||
from .netio import RevPiNetIODriver
|
||||
|
||||
@@ -128,6 +128,17 @@ class NetFH(Thread):
|
||||
self.__sockend = True
|
||||
self.__sockerr.set()
|
||||
|
||||
# Vom Socket sauber trennen
|
||||
with self.__socklock:
|
||||
try:
|
||||
if self.__sockend:
|
||||
self._slavesock.send(_sysexit)
|
||||
else:
|
||||
self._slavesock.shutdown(socket.SHUT_RDWR)
|
||||
except:
|
||||
pass
|
||||
self._slavesock.close()
|
||||
|
||||
def flush(self):
|
||||
"""Schreibpuffer senden."""
|
||||
if self.__sockend:
|
||||
@@ -247,17 +258,6 @@ class NetFH(Thread):
|
||||
|
||||
self.__trigger = False
|
||||
|
||||
# Vom Socket trennen
|
||||
with self.__socklock:
|
||||
try:
|
||||
if self.__sockend:
|
||||
self._slavesock.send(_sysexit)
|
||||
else:
|
||||
self._slavesock.shutdown(socket.SHUT_RDWR)
|
||||
except:
|
||||
pass
|
||||
self._slavesock.close()
|
||||
|
||||
def seek(self, position):
|
||||
"""Springt an angegebene Position.
|
||||
@param position An diese Position springen"""
|
||||
@@ -418,8 +418,9 @@ class RevPiNetIO(_RevPiModIO):
|
||||
# Netzwerkfilehandler anlegen
|
||||
self._myfh = self._create_myfh()
|
||||
|
||||
# Modul konfigurieren
|
||||
self._configure(self.get_jconfigrsc())
|
||||
# Nur Konfigurieren, wenn nicht vererbt
|
||||
if type(self) == RevPiNetIO:
|
||||
self._configure(self.get_jconfigrsc())
|
||||
|
||||
def _create_myfh(self):
|
||||
"""Erstellt NetworkFileObject.
|
||||
|
||||
Reference in New Issue
Block a user