aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Draxinger <Wolfgang.Draxinger@draxit.de>2011-11-28 16:06:06 +0100
committerWolfgang Draxinger <Wolfgang.Draxinger@draxit.de>2011-11-28 16:06:06 +0100
commit856cc1e195297ddedd03a898ffc79607467d1eed (patch)
treee88648b27793fff87836e5c70943fd3a77c4d142
parent8c543a6cbb906c02beca0be675231f6e873fc30a (diff)
parentd2d1e8997968bb2d2003b556fa938b92211c5aa8 (diff)
downloadPyPhytron-856cc1e195297ddedd03a898ffc79607467d1eed.tar.gz
PyPhytron-856cc1e195297ddedd03a898ffc79607467d1eed.tar.bz2
Merge branch 'master' of github.com:datenwolf/PyPhytron
-rw-r--r--Phytron.py32
1 files changed, 17 insertions, 15 deletions
diff --git a/Phytron.py b/Phytron.py
index ccdd617..bbca481 100644
--- a/Phytron.py
+++ b/Phytron.py
@@ -337,28 +337,30 @@ class IPCOMM:
return self.axisByID[int(nameOrID)]
def enumerate(self, axes=0x10, names=None):
- # Use a only short timeout for enumeration.
if isinstance(axes, int):
axes = range(axes)
+ # Use a only short timeout for enumeration.
oldtimeout = self.conn.timeout
self.conn.timeout = 0.05
self.axisByID.clear()
self.axisByName.clear()
- for i,ID in enumerate(axes):
- try:
- if self.execute(ID, 'IS?').ID == ID:
- if ((isinstance(names, dict) and names.haskey(ID)) or (isinstance(names, list) and i < len(names))) and names[i].isalpha():
- if isinstance(names, dict):
- axisname = names[ID]
+ try:
+ for i,ID in enumerate(axes):
+ try:
+ if self.execute(ID, 'IS?').ID == ID:
+ if ((isinstance(names, dict) and names.haskey(ID)) or (isinstance(names, list) and i < len(names))) and names[i].isalpha():
+ if isinstance(names, dict):
+ axisname = names[ID]
+ else:
+ axisname = names[i]
+ axis = self.axisByName[str(axisname)] = Axis(self, ID, axisname)
else:
- axisname = names[i]
- axis = self.axisByName[str(axisname)] = Axis(self, ID, axisname)
- else:
- axis = Axis(self, ID)
- self.axisByID[ID] = axis
- except ReceiveTimeout:
- continue
- self.conn.timeout = oldtimeout
+ axis = Axis(self, ID)
+ self.axisByID[ID] = axis
+ except ReceiveTimeout:
+ continue
+ finally:
+ self.conn.timeout = oldtimeout
def send(self, data):
self.conn.write('\x02' + data + ':' + ('%02X' % checksum(data + ':')) + '\x03')