mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 22:03:53 +01:00
RevPiNetIO.net_cleardefaultvalues() funktionierte nicht mit Server
Bugfix: Bei Instantiierungsfehler traten weitere Fehler auf
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
||||||
<!-- eric project file for project revpimodio2 -->
|
<!-- eric project file for project revpimodio2 -->
|
||||||
<!-- Saved: 2017-11-02, 13:54:10 -->
|
<!-- Saved: 2017-11-06, 11:06:12 -->
|
||||||
<!-- Copyright (C) 2017 Sven Sager, akira@narux.de -->
|
<!-- Copyright (C) 2017 Sven Sager, akira@narux.de -->
|
||||||
<Project version="5.1">
|
<Project version="5.1">
|
||||||
<Language>en_US</Language>
|
<Language>en_US</Language>
|
||||||
@@ -31,6 +31,8 @@
|
|||||||
<Source>test/web_virtdevdriver.py</Source>
|
<Source>test/web_virtdevdriver.py</Source>
|
||||||
<Source>test/web_benniesrun.py</Source>
|
<Source>test/web_benniesrun.py</Source>
|
||||||
<Source>test/web_benniesrunxxl.py</Source>
|
<Source>test/web_benniesrunxxl.py</Source>
|
||||||
|
<Source>revpimodio2/netio.py</Source>
|
||||||
|
<Source>test_unitnet.py</Source>
|
||||||
<Source>test_unit.py</Source>
|
<Source>test_unit.py</Source>
|
||||||
</Sources>
|
</Sources>
|
||||||
<Forms/>
|
<Forms/>
|
||||||
@@ -183,6 +185,7 @@
|
|||||||
<list>
|
<list>
|
||||||
<string>setup.py</string>
|
<string>setup.py</string>
|
||||||
<string>test_unit.py</string>
|
<string>test_unit.py</string>
|
||||||
|
<string>test_unitnet.py</string>
|
||||||
</list>
|
</list>
|
||||||
</value>
|
</value>
|
||||||
<key>
|
<key>
|
||||||
@@ -230,6 +233,7 @@
|
|||||||
<list>
|
<list>
|
||||||
<string>setup.py</string>
|
<string>setup.py</string>
|
||||||
<string>test_unit.py</string>
|
<string>test_unit.py</string>
|
||||||
|
<string>test_unitnet.py</string>
|
||||||
</list>
|
</list>
|
||||||
</value>
|
</value>
|
||||||
<key>
|
<key>
|
||||||
|
|||||||
@@ -102,12 +102,14 @@ class NetFH(Thread):
|
|||||||
|
|
||||||
with self.__socklock:
|
with self.__socklock:
|
||||||
if position is None:
|
if position is None:
|
||||||
|
# Alle Dirtybytes löschen
|
||||||
self._slavesock.sendall(_sysdeldirty)
|
self._slavesock.sendall(_sysdeldirty)
|
||||||
else:
|
else:
|
||||||
|
# Nur bestimmte Dirtybytes löschen
|
||||||
self._slavesock.sendall(
|
self._slavesock.sendall(
|
||||||
b'\x01EY' +
|
b'\x01EY' +
|
||||||
position.to_bytes(length=2, byteorder="little") +
|
position.to_bytes(length=2, byteorder="little") +
|
||||||
b'\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x17'
|
b'\x00\x00\xFE\x00\x00\x00\x00\x00\x00\x00\x17'
|
||||||
)
|
)
|
||||||
|
|
||||||
check = self._slavesock.recv(1)
|
check = self._slavesock.recv(1)
|
||||||
@@ -115,13 +117,13 @@ class NetFH(Thread):
|
|||||||
self.__sockerr.set()
|
self.__sockerr.set()
|
||||||
raise IOError("clear dirtybytes error on network")
|
raise IOError("clear dirtybytes error on network")
|
||||||
|
|
||||||
# Daten bei Erfolg übernehmen
|
# Daten bei Erfolg übernehmen
|
||||||
if position is None:
|
if position is None:
|
||||||
self.__dictdirty = {}
|
self.__dictdirty = {}
|
||||||
else:
|
elif position in self.__dictdirty:
|
||||||
del self.__dictdirty[position]
|
del self.__dictdirty[position]
|
||||||
|
|
||||||
self.__trigger = True
|
self.__trigger = True
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""Verbindung trennen."""
|
"""Verbindung trennen."""
|
||||||
@@ -224,6 +226,7 @@ class NetFH(Thread):
|
|||||||
|
|
||||||
byte_buff += data
|
byte_buff += data
|
||||||
if data.find(b'\x04') >= 0:
|
if data.find(b'\x04') >= 0:
|
||||||
|
# NOTE: Nur suchen oder Ende prüfen?
|
||||||
return byte_buff[:-1]
|
return byte_buff[:-1]
|
||||||
|
|
||||||
self.__sockerr.set()
|
self.__sockerr.set()
|
||||||
@@ -320,7 +323,7 @@ class NetFH(Thread):
|
|||||||
self.__trigger = True
|
self.__trigger = True
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise ValueError("value must between 0 and 65535 milliseconds")
|
raise ValueError("value must between 1 and 65535 milliseconds")
|
||||||
|
|
||||||
def tell(self):
|
def tell(self):
|
||||||
"""Gibt aktuelle Position zurueck.
|
"""Gibt aktuelle Position zurueck.
|
||||||
@@ -384,6 +387,13 @@ class RevPiNetIO(_RevPiModIO):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Objekte die auch schon bei Fehler benötigt werden
|
||||||
|
self._exit = Event()
|
||||||
|
self._imgwriter = None
|
||||||
|
self._lst_refresh = []
|
||||||
|
self._myfh = None
|
||||||
|
self._waitexit = Event()
|
||||||
|
|
||||||
# Adresse verarbeiten
|
# Adresse verarbeiten
|
||||||
if type(address) == str:
|
if type(address) == str:
|
||||||
# TODO: IP-Adresse prüfen
|
# TODO: IP-Adresse prüfen
|
||||||
@@ -396,7 +406,7 @@ class RevPiNetIO(_RevPiModIO):
|
|||||||
|
|
||||||
# Werte prüfen
|
# Werte prüfen
|
||||||
# TODO: IP-Adresse prüfen
|
# TODO: IP-Adresse prüfen
|
||||||
if 0 < address[1] <= 65535:
|
if not 0 < address[1] <= 65535:
|
||||||
raise ValueError("port number out of range 1 - 65535")
|
raise ValueError("port number out of range 1 - 65535")
|
||||||
|
|
||||||
self._address = address
|
self._address = address
|
||||||
@@ -448,14 +458,14 @@ class RevPiNetIO(_RevPiModIO):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if device is None:
|
if device is None:
|
||||||
mylist = self.device
|
self._myfh.clear_dirtybytes()
|
||||||
else:
|
else:
|
||||||
dev = device if issubclass(type(device), Device) \
|
dev = device if issubclass(type(device), Device) \
|
||||||
else self.device.__getitem__(device)
|
else self.device.__getitem__(device)
|
||||||
mylist = [dev]
|
mylist = [dev]
|
||||||
|
|
||||||
for dev in mylist:
|
for dev in mylist:
|
||||||
self._myfh.clear_dirtybytes(dev._offset + dev._slc_out.start)
|
self._myfh.clear_dirtybytes(dev._offset + dev._slc_out.start)
|
||||||
|
|
||||||
def net_setdefaultvalues(self, device=None):
|
def net_setdefaultvalues(self, device=None):
|
||||||
"""Konfiguriert den PLC Slave mit den piCtory Defaultwerten.
|
"""Konfiguriert den PLC Slave mit den piCtory Defaultwerten.
|
||||||
|
|||||||
Reference in New Issue
Block a user