mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 22:03:53 +01:00
Disconnect bei veränderter replace_ios Datei nur, wenn diese angefordert wrude
This commit is contained in:
@@ -211,13 +211,16 @@ Static Methods</h3>
|
|||||||
<a NAME="NetFH.__init__" ID="NetFH.__init__"></a>
|
<a NAME="NetFH.__init__" ID="NetFH.__init__"></a>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
NetFH (Constructor)</h3>
|
NetFH (Constructor)</h3>
|
||||||
<b>NetFH</b>(<i>address, timeout=500</i>)
|
<b>NetFH</b>(<i>address, check_replace_ios, timeout=500</i>)
|
||||||
<p>
|
<p>
|
||||||
Init NetFH-class.
|
Init NetFH-class.
|
||||||
</p><dl>
|
</p><dl>
|
||||||
<dt><i>address</i></dt>
|
<dt><i>address</i></dt>
|
||||||
<dd>
|
<dd>
|
||||||
IP Adresse, Port des RevPi als <class 'tuple'>
|
IP Adresse, Port des RevPi als <class 'tuple'>
|
||||||
|
</dd><dt><i>check_replace_ios</i></dt>
|
||||||
|
<dd>
|
||||||
|
Prueft auf veraenderungen der Datei
|
||||||
</dd><dt><i>timeout</i></dt>
|
</dd><dt><i>timeout</i></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Timeout in Millisekunden der Verbindung
|
Timeout in Millisekunden der Verbindung
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ revpimodio2.netio.NetFH.set_timeout?4(value)
|
|||||||
revpimodio2.netio.NetFH.tell?4()
|
revpimodio2.netio.NetFH.tell?4()
|
||||||
revpimodio2.netio.NetFH.timeout?7
|
revpimodio2.netio.NetFH.timeout?7
|
||||||
revpimodio2.netio.NetFH.write?4(bytebuff)
|
revpimodio2.netio.NetFH.write?4(bytebuff)
|
||||||
revpimodio2.netio.NetFH?1(address, timeout=500)
|
revpimodio2.netio.NetFH?1(address, check_replace_ios, timeout=500)
|
||||||
revpimodio2.netio.RevPiNetIO._create_myfh?5()
|
revpimodio2.netio.RevPiNetIO._create_myfh?5()
|
||||||
revpimodio2.netio.RevPiNetIO._get_cpreplaceio?5()
|
revpimodio2.netio.RevPiNetIO._get_cpreplaceio?5()
|
||||||
revpimodio2.netio.RevPiNetIO.disconnect?4()
|
revpimodio2.netio.RevPiNetIO.disconnect?4()
|
||||||
|
|||||||
@@ -54,20 +54,25 @@ class NetFH(Thread):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__slots__ = "__by_buff", "__int_buff", "__dictdirty", "__flusherr", \
|
__slots__ = "__by_buff", "__check_replace_ios", "__config_changed", \
|
||||||
"__position", "__sockact", "__sockerr", "__sockend", "__socklock", \
|
"__int_buff", "__dictdirty", "__flusherr", "__replace_ios_h", \
|
||||||
"__timeout", "__trigger", "__waitsync", \
|
"__pictory_h", "__position", "__sockact", "__sockerr", "__sockend", \
|
||||||
"_address", "_slavesock", \
|
"__socklock", "__timeout", "__trigger", "__waitsync", "_address", \
|
||||||
"daemon"
|
"_slavesock", "daemon"
|
||||||
|
|
||||||
def __init__(self, address, timeout=500):
|
def __init__(self, address, check_replace_ios, timeout=500):
|
||||||
"""Init NetFH-class.
|
"""Init NetFH-class.
|
||||||
|
|
||||||
@param address IP Adresse, Port des RevPi als <class 'tuple'>
|
@param address IP Adresse, Port des RevPi als <class 'tuple'>
|
||||||
@param timeout Timeout in Millisekunden der Verbindung"""
|
@param check_replace_ios Prueft auf veraenderungen der Datei
|
||||||
|
@param timeout Timeout in Millisekunden der Verbindung
|
||||||
|
|
||||||
|
"""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.daemon = True
|
self.daemon = True
|
||||||
|
|
||||||
self.__by_buff = b''
|
self.__by_buff = b''
|
||||||
|
self.__check_replace_ios = check_replace_ios
|
||||||
self.__config_changed = False
|
self.__config_changed = False
|
||||||
self.__int_buff = 0
|
self.__int_buff = 0
|
||||||
self.__dictdirty = {}
|
self.__dictdirty = {}
|
||||||
@@ -148,14 +153,18 @@ class NetFH(Thread):
|
|||||||
so.connect(self._address)
|
so.connect(self._address)
|
||||||
|
|
||||||
# Hashwerte anfordern
|
# Hashwerte anfordern
|
||||||
so.sendall(_syspictoryh + _sysreplaceioh)
|
recv_len = 16
|
||||||
|
so.sendall(_syspictoryh)
|
||||||
|
if self.__check_replace_ios:
|
||||||
|
so.sendall(_sysreplaceioh)
|
||||||
|
recv_len += 16
|
||||||
|
|
||||||
# Hashwerte empfangen
|
# Hashwerte empfangen
|
||||||
byte_buff = bytearray()
|
byte_buff = bytearray()
|
||||||
zero_byte = 0
|
zero_byte = 0
|
||||||
while not self.__sockend.is_set() and zero_byte < 100 \
|
while not self.__sockend.is_set() and zero_byte < 100 \
|
||||||
and len(byte_buff) < 32:
|
and len(byte_buff) < recv_len:
|
||||||
data = so.recv(32)
|
data = so.recv(recv_len)
|
||||||
if data == b'':
|
if data == b'':
|
||||||
zero_byte += 1
|
zero_byte += 1
|
||||||
byte_buff += data
|
byte_buff += data
|
||||||
@@ -170,7 +179,8 @@ class NetFH(Thread):
|
|||||||
self.__pictory_h = byte_buff[:16]
|
self.__pictory_h = byte_buff[:16]
|
||||||
|
|
||||||
# Änderung an replace_ios prüfen
|
# Änderung an replace_ios prüfen
|
||||||
if self.__replace_ios_h and byte_buff[16:] != self.__replace_ios_h:
|
if self.__check_replace_ios and self.__replace_ios_h \
|
||||||
|
and byte_buff[16:] != self.__replace_ios_h:
|
||||||
self.__config_changed = True
|
self.__config_changed = True
|
||||||
self.close()
|
self.close()
|
||||||
raise ConfigChanged(
|
raise ConfigChanged(
|
||||||
@@ -710,7 +720,7 @@ class RevPiNetIO(_RevPiModIO):
|
|||||||
"""Erstellt NetworkFileObject.
|
"""Erstellt NetworkFileObject.
|
||||||
return FileObject"""
|
return FileObject"""
|
||||||
self._buffedwrite = True
|
self._buffedwrite = True
|
||||||
return NetFH(self._address)
|
return NetFH(self._address, self._replace_io_file == ":network:")
|
||||||
|
|
||||||
def _get_cpreplaceio(self):
|
def _get_cpreplaceio(self):
|
||||||
"""Laed die replace_io Konfiguration ueber das Netzwerk.
|
"""Laed die replace_io Konfiguration ueber das Netzwerk.
|
||||||
@@ -748,7 +758,7 @@ class RevPiNetIO(_RevPiModIO):
|
|||||||
def get_jconfigrsc(self):
|
def get_jconfigrsc(self):
|
||||||
"""Laedt die piCotry Konfiguration und erstellt ein <class 'dict'>.
|
"""Laedt die piCotry Konfiguration und erstellt ein <class 'dict'>.
|
||||||
@return <class 'dict'> der piCtory Konfiguration"""
|
@return <class 'dict'> der piCtory Konfiguration"""
|
||||||
mynh = NetFH(self._address)
|
mynh = NetFH(self._address, False)
|
||||||
byte_buff = mynh.readpictory()
|
byte_buff = mynh.readpictory()
|
||||||
mynh.close()
|
mynh.close()
|
||||||
return jloads(byte_buff.decode("utf-8"))
|
return jloads(byte_buff.decode("utf-8"))
|
||||||
|
|||||||
Reference in New Issue
Block a user