diff options
author | Wolfgang Draxinger <Wolfgang.Draxinger@draxit.de> | 2011-11-25 16:37:11 +0100 |
---|---|---|
committer | Wolfgang Draxinger <Wolfgang.Draxinger@draxit.de> | 2011-11-25 16:37:11 +0100 |
commit | 1506bb1334a9ce8cff94d6cc735052aa99a3688c (patch) | |
tree | 12b427b30af56f54e53cecfa3387b36a7b5c2b2d | |
parent | 677449b520088413afd0ce9e443a68cb87fa3236 (diff) | |
download | PyPhytron-1506bb1334a9ce8cff94d6cc735052aa99a3688c.tar.gz PyPhytron-1506bb1334a9ce8cff94d6cc735052aa99a3688c.tar.bz2 |
axis enumeration can now be limited to a list of IDs to test
-rw-r--r-- | Phytron.py | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -229,7 +229,7 @@ class ReceiveData: class IPCOMM: MAX_RETRY_COUNT = 5 - def __init__(self, url, baudrate = 38400, axisnames = None): + def __init__(self, url, baudrate = 38400, axes=range(0x10), axisnames = None): self.rlock = threading.RLock() self.conn = serial.serial_for_url(url) self.conn.baudrate = baudrate @@ -240,7 +240,7 @@ class IPCOMM: self.conn.timeout = 0.5 self.axisByID = dict() self.axisByName = dict() - self.enumerate(axisnames) + self.enumerate(axes, axisnames) self.max_retry_count = IPCOMM.MAX_RETRY_COUNT def axis(self, nameOrID): @@ -248,17 +248,21 @@ class IPCOMM: return self.axisByName[nameOrID] return self.axisByID[int(nameOrID)] - def enumerate(self, names=None): + def enumerate(self, axes=range(0x10), names=None): # Use a only short timeout for enumeration. oldtimeout = self.conn.timeout self.conn.timeout = 0.05 self.axisByID.clear() self.axisByName.clear() - for ID in range(0x10): + 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 ID < len(names))) and names[ID].isalpha(): - axis = self.axisByName[str(names[ID])] = Axis(self, ID, names[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: axis = Axis(self, ID) self.axisByID[ID] = axis |