def _set_position(self, pos, wait=None):
        """
        Move to an absolute position, taking into account backlash.

        When self.backlash is to a negative value the stage will always move
         from low to high values. If necessary, a extra step with length
         self.backlash is set.

        :param pos: New position in mm
        :param wait: wait until stage is finished
        """

        # First do move to extra position if necessary
        if self.backlash:
            position = self.position.magnitude
            #backlash = self.backlash.to('mm').magnitude
            backlash = convert_to('mm', on_dimensionless='ignore')(self.backlash).magnitude
            if ( backlash < 0 and position > pos) or\
                ( backlash > 0 and position < pos):

                self.log_info('Using backlash')
                self.__set_position(pos + backlash)
                self._wait_until_done()

        # Than move to final position
        self.__set_position(pos)
        if wait:
            self._wait_until_done()
    def _set_position(self, pos, wait=None):
        """
        Move to an absolute position, taking into account backlash.

        When self.backlash is to a negative value the stage will always move
         from low to high values. If necessary, a extra step with length
         self.backlash is set.

        :param pos: New position in mm
        :param wait: wait until stage is finished
        """

        # First do move to extra position if necessary
        if self.backlash:
            position = self.position.magnitude
            #backlash = self.backlash.to('mm').magnitude
            backlash = convert_to('mm', on_dimensionless='ignore')(
                self.backlash).magnitude
            if ( backlash < 0 and position > pos) or\
                ( backlash > 0 and position < pos):

                self.log_info('Using backlash')
                self.__set_position(pos + backlash)
                self._wait_until_done()

        # Than move to final position
        self.__set_position(pos)
        if wait:
            self._wait_until_done()
            self.check_position(pos)
Beispiel #3
0
    def test_return_float(self):
        self.assertEqual(
            processors.convert_to(V, return_float=True)(1 * mv), 0.001)

        self.assertRaises(
            ValueError,
            processors.convert_to(V,
                                  return_float=True,
                                  on_incompatible='raise'), Hz)
        self.assertWarns(
            processors.DimensionalityWarning,
            processors.convert_to(V, return_float=True,
                                  on_incompatible='warn'), Hz)
        self.assertEqual(
            processors.convert_to(V,
                                  return_float=True,
                                  on_incompatible='ignore')(Hz), 1)

        self.assertRaises(
            ValueError,
            processors.convert_to(V,
                                  return_float=True,
                                  on_dimensionless='raise'), 1000)
        self.assertWarns(
            processors.DimensionalityWarning,
            processors.convert_to(V,
                                  return_float=True,
                                  on_dimensionless='warn'), 1000)
        self.assertEqual(
            processors.convert_to(V,
                                  return_float=True,
                                  on_dimensionless='ignore')(1000), 1000)
Beispiel #4
0
    def test_return_quantity(self):
        self.assertEqual(processors.convert_to(V)(1*mv), 0.001 * V)

        self.assertRaises(ValueError, processors.convert_to(V, on_incompatible='raise'), Hz)
        self.assertWarns(processors.DimensionalityWarning, processors.convert_to(V, on_incompatible='warn'), Hz)
        self.assertEqual(processors.convert_to(V, on_incompatible='ignore')(Hz), 1 * V)

        self.assertRaises(ValueError, processors.convert_to(V, on_dimensionless='raise'), 1000)
        self.assertWarns(processors.DimensionalityWarning, processors.convert_to(V, on_dimensionless='warn'), 1000)
        self.assertEqual(processors.convert_to(V, on_dimensionless='ignore')(1000), 1000 * V)

        self.assertRaises(ValueError, processors.convert_to(V, on_dimensionless='raise'), 1000)