def _read_axis_value(self, element): def is_chunk(type_, obj): if not is_non_str_seq(obj): return False if type_ == ElementType.CTExpChannel: return True elif type_ == ElementType.OneDExpChannel: # empty list is also considered as chunk if len(obj) == 0 or not is_number(obj[0]): return True elif type_ == ElementType.TwoDExpChannel: # empty list is also considered as chunk if len(obj) == 0 or not is_number(obj[0][0]): return True return False try: axis = element.get_axis() type_ = element.get_type() ctrl_value = self.ctrl.ReadOne(axis) if ctrl_value is None: msg = '%s.ReadOne(%s[%d]) return error: Expected value(s), ' \ 'got None instead' % (self.name, element.name, axis) raise ValueError(msg) if is_chunk(type_, ctrl_value): value = [translate_ctrl_value(v) for v in ctrl_value] else: value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value
def calc_all(self, values): ctrl = self.ctrl try: ctrl_value = ctrl.CalcAll(values) if ctrl_value is None: msg = "%s.CalcAll() return error: Expected value, " "got None instead" % (self.name,) raise ValueError(msg) value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value
def calc_physical(self, axis, pseudo_pos, curr_physical_pos): ctrl = self.ctrl try: ctrl_value = ctrl.CalcPhysical(axis, pseudo_pos, curr_physical_pos) if ctrl_value is None: msg = "%s.CalcPhysical() return error: Expected value, " "got None instead" % (self.name,) raise ValueError(msg) value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value
def calc_all(self, values): ctrl = self.ctrl try: ctrl_value = ctrl.CalcAll(values) if ctrl_value is None: msg = '%s.CalcAll() return error: Expected value, ' \ 'got None instead' % (self.name,) raise ValueError(msg) value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value
def calc_physical(self, axis, pseudo_pos, curr_physical_pos): ctrl = self.ctrl try: ctrl_value = ctrl.CalcPhysical(axis, pseudo_pos, curr_physical_pos) if ctrl_value is None: msg = '%s.CalcPhysical() return error: Expected value, ' \ 'got None instead' % (self.name,) raise ValueError(msg) value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value
def _read_axis_value(self, element): try: axis = element.get_axis() ctrl_value = self.ctrl.ReadOne(axis) if ctrl_value is None: msg = '%s.ReadOne(%s[%d]) return error: Expected value, ' \ 'got None instead' % (self.name, element.name, axis) raise ValueError(msg) value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value
def _read_axis_value_refs(self, element): def is_chunk(obj): if is_non_str_seq(obj): return True return False try: axis = element.get_axis() ctrl_value = self.ctrl.RefOne(axis) if ctrl_value is None: msg = ('%s.RefOne(%s[%d]) return error: Expected value ' 'ref(s), got None instead' % (self.name, element.name, axis)) raise ValueError(msg) if is_chunk(ctrl_value): value = [translate_ctrl_value(v) for v in ctrl_value] else: value = translate_ctrl_value(ctrl_value) except Exception: value = SardanaValue(exc_info=sys.exc_info()) return value
def _read_axis_value(self, element): try: axis = element.get_axis() ctrl_value = self.ctrl.ReadOne(axis) if ctrl_value is None: msg = "%s.ReadOne(%s[%d]) return error: Expected value, " "got None instead" % ( self.name, element.name, axis, ) raise ValueError(msg) value = translate_ctrl_value(ctrl_value) except: value = SardanaValue(exc_info=sys.exc_info()) return value