Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
 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