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)
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)
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)