Improve troubleshooting details on equal device names in piCtory.

Tanks Kees @kjkoster

close #21
This commit is contained in:
2022-04-02 20:43:35 +02:00
parent 8f0539edfc
commit 08c9b59e48

View File

@@ -305,25 +305,25 @@ class RevPiModIO(object):
if dev_new is not None: if dev_new is not None:
# Offset prüfen, muss mit Länge übereinstimmen # Offset prüfen, muss mit Länge übereinstimmen
if self._length < dev_new._offset: if self._length < dev_new.offset:
self._length = dev_new._offset self._length = dev_new.offset
self._length += dev_new.length self._length += dev_new.length
# Auf doppelte Namen prüfen, da piCtory dies zulässt # Auf doppelte Namen prüfen, da piCtory dies zulässt
if hasattr(self.device, dev_new._name): if hasattr(self.device, dev_new.name):
err_names.append(dev_new._name) err_names.append((dev_new.name, dev_new.position))
# DeviceList für direkten Zugriff aufbauen # DeviceList für direkten Zugriff aufbauen
setattr(self.device, dev_new._name, dev_new) setattr(self.device, dev_new.name, dev_new)
# Namenszugriff zerstören, wenn doppelte Namen vorhanden sind # Namenszugriff zerstören, wenn doppelte Namen vorhanden sind
for errdev in err_names: for errdev in err_names: # type: tuple
self.device.__delattr__(errdev, False) self.device.__delattr__(errdev, False)
warnings.warn( warnings.warn(
"equal device name in pictory configuration. can not " "equal device name '{0}' in pictory configuration. you can "
"build device to access by name. you can access all devices " "access this device by position number .device[{1}] only!"
"by position number .device[nn] only!", "".format(*errdev),
Warning Warning
) )