def Close(self, manager, vname, sender_address, *args):
        """
        Close 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
        """
        # intercept flags
        if vname.endswith('Flag'):
            r = self.Set(manager, vname, 0, sender_address, *args)
            return 'OK' if r else 'Error clearing flag'

        result, change = manager.close_valve(vname,
                                             sender_address=sender_address)
        if result == True:
            result = 'OK' if change else 'ok'
        elif result is None:
            result = InvalidArgumentsErrorCode('Close', vname, logger=self)
        elif result == 'software lock enabled':
            result = ValveSoftwareLockErrorCode(vname, logger=self)
        else:
            result = ValveActuationErrorCode(vname, 'close', logger=self)

        return result
Example #2
0
    def SetZoom(self, manager, data, *args):
        try:
            zoom = float(data)
        except (ValueError, TypeError):
            return InvalidArgumentsErrorCode('SetZoom', data, logger=self)

        manager.zoom = zoom
        return 'OK'
Example #3
0
    def SetMotor(self, manager, name, data, *args):
        try:
            data = float(data)
        except ValueError:
            return InvalidArgumentsErrorCode('SetMotor', data, logger=self)

        if manager.set_motor(name, data, block=False):
            return 'OK'
        else:
            return 'OK - {} disabled'.format(name)
Example #4
0
    def SetLaserOutput(self, manager, value, units, *args):
        result = 'OK'
        try:
            p = float(value)
        except:
            return InvalidArgumentsErrorCode('SetLaserOutput',
                                             value,
                                             logger=self)

        manager.set_laser_output(p, units)
        return result
Example #5
0
    def SetLaserPower(self, manager, data, *args):
        result = 'OK'
        try:
            p = float(data)
        except:
            return InvalidArgumentsErrorCode('SetLaserPower',
                                             data,
                                             logger=self)

        manager.set_laser_power(p)
        return result
Example #6
0
    def SetSampleHolder(self, manager, name, *args):
        if name is None:
            r = InvalidArgumentsErrorCode('SetSampleHolder', name)
        else:
            err = manager.stage_manager._set_stage_map(name)
            if err is True:
                r = 'OK'
            else:
                r = InvalidSampleHolderErrorCode(name)

        return r
Example #7
0
    def GoToHole(self, manager, hole, autocenter, *args):
        try:
            hole = int(hole)
            autocenter = to_bool(autocenter)

            err = manager.stage_manager.move_to_hole(
                str(hole), correct_position=autocenter)
        except (ValueError, TypeError):
            err = InvalidArgumentsErrorCode('GoToHole', (hole, autocenter))

        return self.error_response(err)
Example #8
0
    def SetBeamDiameter(self, manager, data, *args):
        try:
            bd = float(data)
        except ValueError:
            return InvalidArgumentsErrorCode('SetBeamDiameter',
                                             data,
                                             logger=self)

        if manager.set_beam_diameter(bd, block=False):
            return 'OK'
        else:
            return 'OK - beam disabled'
Example #9
0
    def SetXY(self, manager, data, *args):
        try:
            x, y = data.split(',')
        except (ValueError, AttributeError):
            return InvalidArgumentsErrorCode('SetXY', '{}'.format(data))

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

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

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

        err = manager.stage_manager.set_xy(x, y)

        return self.error_response(err)
Example #10
0
    def Close(self, manager, vname, sender_address, *args):
        # intercept flags
        if vname.endswith('Flag'):
            r = self.Set(manager, vname, 0, sender_address, *args)
            return 'OK' if r else 'Error clearing flag'

        result, change = manager.close_valve(vname,
                                             sender_address=sender_address)
        if result == True:
            result = 'OK' if change else 'ok'
        elif result is None:
            result = InvalidArgumentsErrorCode('Close', vname, logger=self)
        elif result == 'software lock enabled':
            result = ValveSoftwareLockErrorCode(vname, logger=self)
        else:
            result = ValveActuationErrorCode(vname, 'close', logger=self)

        return result
Example #11
0
 def _set_axis(self, manager, axis, value):
     try:
         d = float(value)
     except (ValueError, TypeError), err:
         return InvalidArgumentsErrorCode('Set{}'.format(axis.upper()), err)
Example #12
0
 def DoPattern(self, manager, name, *args, **kw):
     if name is None:
         err = InvalidArgumentsErrorCode('DoJog', name)
     else:
         err = manager.execute_pattern(name)
     return self.error_response(err)