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'
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
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'
def _set_zoom(self, data): try: zoom = float(data) except (ValueError, TypeError): return InvalidArgumentsErrorCode('SetZoom', data) self._manager.zoom = zoom return True
def _set_laser_power(self, data): try: p = float(data) except: return InvalidArgumentsErrorCode('SetLaserPower', data) self._manager.set_laser_power(p) return True
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
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)
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
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'
def nargs_err(failure): failure.trap(ValueError) return InvalidArgumentsErrorCode('Foo', str(failure.value))
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)
def _set_axis(self, axis, value): try: d = float(value) except (ValueError, TypeError), err: return InvalidArgumentsErrorCode('Set{}'.format(axis.upper()), err)