Esempio n. 1
0
    def _set_x_y(self, data):
        if isinstance(data, dict):
            x, y = data['x'], data['y']
        else:
            x, y = data
        # try:
        #     x, y = data
        # except (ValueError, AttributeError):
        #     return InvalidArgumentsErrorCode('SetXY', '{}'.format(data))

        try:
            x = float(x)
        except ValueError:
            return InvalidArgumentsErrorCode('SetXY', 'x={}'.format(x))

        try:
            y = float(y)
        except ValueError:
            return InvalidArgumentsErrorCode('SetXY', 'y{}'.format(y))

        # need to remember x,y so we can fool mass spec that we are at position
        self._manager.stage_manager.temp_position = x, y

        err = self._manager.stage_manager.set_xy(x, y)
        return err or 'OK'
Esempio n. 2
0
    def _open(self, data):
        """
        Open a valve. Valve name e.g. A
        if vname ends with 'Flag' interpret this command as ``Set``

        :param vname: name of valve
        :return: OK or ErrorCode
        """
        if isinstance(data, dict):
            data = data['value']

        # intercept flags
        if data.endswith('Flag'):
            r = self.set(data, 1)
            return bool(r)

        manager = self._manager
        result, change = manager.open_valve(data, sender_address=self._addr)

        if result is True:
            result = 'OK' if change else 'ok'
        elif result is None:
            result = InvalidArgumentsErrorCode('Open', data)
        elif result == 'software lock enabled':
            result = ValveSoftwareLockErrorCode(data)
        else:
            result = ValveActuationErrorCode(data, 'open')

        return result
Esempio n. 3
0
    def _set_axis(self, axis, value):
        try:
            d = float(value)
        except (ValueError, TypeError) as err:
            return InvalidArgumentsErrorCode('Set{}'.format(axis.upper()), err)

        err = self._manager.stage_manager.single_axis_move(axis, d)
        return err or 'OK'
Esempio n. 4
0
    def _set_zoom(self, data):
        try:
            zoom = float(data)
        except (ValueError, TypeError):
            return InvalidArgumentsErrorCode('SetZoom', data)

        self._manager.zoom = zoom
        return True
Esempio n. 5
0
    def _set_laser_power(self, data):
        try:
            p = float(data)
        except:
            return InvalidArgumentsErrorCode('SetLaserPower', data)

        self._manager.set_laser_power(p)
        return True
Esempio n. 6
0
    def _set_sample_holder(self, name):
        if name is None:
            r = InvalidArgumentsErrorCode('SetSampleHolder', name)
        else:
            err = self._manager.stage_manager._set_stage_map(name)
            if not err:
                r = InvalidSampleHolderErrorCode(name)

        return r
Esempio n. 7
0
    def _set_motor(self, data):
        if isinstance(data, dict):
            name = data['name']
            value = data['value']
        else:
            name, value = data

        try:
            value = float(value)
        except ValueError:
            return InvalidArgumentsErrorCode('SetMotor', value)

        return self._manager.set_motor(name, value, block=False)
Esempio n. 8
0
    def _set_laser_output(self, data):
        if isinstance(data, dict):
            value, units = data['value'], data['units']
        else:
            value, units = data

        try:
            p = float(value)
        except:
            return InvalidArgumentsErrorCode('SetLaserOutput', value)

        self._manager.set_laser_output(p, units=units)
        return True
Esempio n. 9
0
    def _go_to_hole(self, data):
        if isinstance(data, dict):
            hole, autocenter = data['hole'], data['autocenter']
        else:
            hole, autocenter = data

        try:
            hole = int(hole)
            autocenter = to_bool(autocenter)
            err = self._manager.stage_manager.move_to_hole(
                str(hole), correct_position=autocenter)
        except (ValueError, TypeError):
            err = InvalidArgumentsErrorCode('GoToHole', (hole, autocenter))

        return err or 'OK'
Esempio n. 10
0
def nargs_err(failure):
    failure.trap(ValueError)
    return InvalidArgumentsErrorCode('Foo', str(failure.value))
Esempio n. 11
0
 def _set_beam_diameter(self, data):
     try:
         bd = float(data)
     except ValueError:
         return InvalidArgumentsErrorCode('SetBeamDiameter', data)
     return self._manager.set_beam_diameter(bd, block=False)
Esempio n. 12
0
 def _set_axis(self, axis, value):
     try:
         d = float(value)
     except (ValueError, TypeError), err:
         return InvalidArgumentsErrorCode('Set{}'.format(axis.upper()), err)