From 508e27eb5bf3f27d17b5a6bc25bd3a35022ab83d Mon Sep 17 00:00:00 2001 From: Henrik Lemke Date: Fri, 17 Nov 2017 08:04:50 +0100 Subject: [PATCH] motor __call__ and startup error handling --- devices_general/motors.py | 8 +++++--- instruments/bernina.py | 18 +++++++++++++----- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/devices_general/motors.py b/devices_general/motors.py index 0b28125..ec56e7a 100755 --- a/devices_general/motors.py +++ b/devices_general/motors.py @@ -13,10 +13,12 @@ def _keywordChecker(kw_key_list_tups): assert tkey in tlist, "Keyword %s should be one of %s"%(tkw,tlist) class MotorRecord: - def __init__(self,pvname, elog=None): + def __init__(self,pvname, name=None, elog=None): self.Id = pvname self._motor = _Motor(pvname) self._elog = elog + if name: + self.name = name # Conventional methods and properties for all Adjustable objects @@ -146,8 +148,8 @@ class MotorRecord: def __repr__(self): return self.__str__() - def __call__(self,value,*args,**kwargs): - self.changeTo(value,*args,**kqwargs) + def __call__(self,value): + self._currentChange = self.changeTo(value) diff --git a/instruments/bernina.py b/instruments/bernina.py index c1b83cd..e07cae0 100755 --- a/instruments/bernina.py +++ b/instruments/bernina.py @@ -1,6 +1,7 @@ from ..aliases.bernina import elog as _elog_info from ..utilities.elog import Elog as _Elog +from colorama import Fore as _color elog = _Elog(_elog_info['url'],user='gac-bernina',screenshot_directory=_elog_info['screenshot_directory']) @@ -15,11 +16,18 @@ def _attach_device(devDict,devId,args,kwargs): eco_type_name = imp_p[-1] istr = 'from ..'+'.'.join(imp_p[:-1])+' import ' istr += '%s as _%s'%(eco_type_name,eco_type_name) - print(istr) - exec(istr) - tdev = eval('_%s(Id=\'%s\',*args,**kwargs)'%(eco_type_name,devId)) - tdev.name = dev_alias - globals().update([(dev_alias,tdev)]) + #print(istr) + print(('Configuring %s '%(dev_alias)).ljust(25), end='') + print(('(%s)'%(devId)).ljust(25), end='') + try: + exec(istr) + tdev = eval('_%s(Id=\'%s\',*args,**kwargs)'%(eco_type_name,devId)) + tdev.name = dev_alias + tdev._z_und = devDict['z_und'] + globals().update([(dev_alias,tdev)]) + print((_color.GREEN+'OK'+_color.RESET).rjust(5)) + except: + print((_color.RED+'FAILED'+_color.RESET).rjust(5)) for device_Id in _aliases.keys():