Device classes

Cameras

class concert.devices.cameras.base.Camera

Bases: concert.devices.base.Device

Base class for remotely controllable cameras.

frame-rate

Frame rate of acquisition in q.count per time unit.

grab()

Return a NumPy array with data of the current frame.

recording(*args, **kwds)

A context manager for starting and stopping the camera.

In general it is used with the with keyword like this:

with camera.recording():
    frame = camera.grab()
start_recording(instance, *args, **kwargs)

Start recording frames.

stop_recording(instance, *args, **kwargs)

Stop recording frames.

stream(*args, **kwargs)

Grab frames continuously and send them to consumer, which is a coroutine.

trigger()

Trigger a frame if possible.

I/O

class concert.devices.io.base.IO

Bases: concert.devices.base.Device

The IO device consists of ports which can be readable, writable or both.

ports

Port IDs used by read_port() and write_port()

read_port(port)

Read a port.

write_port(port, value)

Write a value to the port.

Lightsources

class concert.devices.lightsources.base.LightSource

Bases: concert.devices.base.Device

A base LightSource class.

Monochromators

class concert.devices.monochromators.base.Monochromator

Bases: concert.devices.base.Device

Monochromator device which is used to filter the beam in order to get a very narrow energy bandwidth.

energy

Monochromatic energy in electron volts.

wavelength

Monochromatic wavelength in meters.

Motors

Linear

Linear motors are characterized by moving along a straight line.

class concert.devices.motors.base.LinearMotor

Bases: concert.devices.motors.base._PositionMixin

One-dimensional linear motor.

position

Position of the motor in length units.

class concert.devices.motors.base.ContinuousLinearMotor

Bases: concert.devices.motors.base.LinearMotor

One-dimensional linear motor with adjustable velocity.

velocity

Current velocity in length per time unit.

Rotational

Rotational motors are characterized by rotating around an axis.

class concert.devices.motors.base.RotationMotor

Bases: concert.devices.motors.base._PositionMixin

One-dimensional rotational motor.

position

Position of the motor in angular units.

class concert.devices.motors.base.ContinuousRotationMotor

Bases: concert.devices.motors.base.RotationMotor

One-dimensional rotational motor with adjustable velocity.

velocity

Current velocity in angle per time unit.

Axes

An axis is a coordinate system axis which can realize either translation or rotation, depending by which type of motor it is realized.

class concert.devices.positioners.base.Axis(coordinate, motor, direction=1, position=None)

Bases: object

An axis represents a Euclidean axis along which one can translate or around which one can rotate. The axis coordinate is a string representing the Euclidean axis, i.e. ‘x’ or ‘y’ or ‘z’. Movement is realized by a motor. An additional position argument is necessary for calculatin more complicated motion types, e.g. rotation around arbitrary point in space. It is the local position with respect to a concert.devices.positioners.base.Positioner in which it is placed.

get_position()

Get position asynchronously with respect to axis direction.

set_position(position)

Set the position asynchronously with respect to axis direction.

Photodiodes

Photodiodes measure light intensity.

class concert.devices.photodiodes.base.PhotoDiode

Bases: concert.devices.base.Device

Impementation of photo diode with V output signal

Positioners

Positioner is a device consisting of more concert.devices.positioners.base.Axis instances which make it possible to specify a 3D position and orientation of some object.

class concert.devices.positioners.base.Positioner(axes, position=None)

Bases: concert.devices.base.Device

Combines more motors which move to form a complex motion. axes is a list of Axis instances. position is a 3D vector of coordinates specifying the global position of the positioner.

If a certain coordinate in the positioner is missing, then when we set the position or orientation we can specify the respective vector position to be zero or numpy.nan.

back(value)

Move back by value.

down(value)

Move down by value.

forward(value)

Move forward by value.

left(value)

Move left by value.

move(position)

Move by specified position.

right(value)

Move right by value.

rotate(angles)

Rotate by angles.

up(value)

Move up by value.

Imaging Positioners

Imaging positioner is a positioner capable of moving in x and y directions by the given amount of pixels.

class concert.devices.positioners.imaging.Positioner(axes, detector, position=None)

Bases: concert.devices.positioners.base.Positioner

A positioner which takes into account a detector with some pixel size. This way the user can specify the movement in pixels.

move(position)

Move by specified position which can be given in meters or pixels.

Pumps

class concert.devices.pumps.base.Pump

Bases: concert.devices.base.Device

A pumping device.

start()

Start pumping.

stop()

Stop pumping.

Scales

class concert.devices.scales.base.Scales

Bases: concert.devices.base.Device

Base scales class.

class concert.devices.scales.base.TarableScales

Bases: concert.devices.scales.base.Scales

Scales which can be tared.

tare(*args, **kwargs)

Tare the scales.

Shutters

class concert.devices.shutters.base.Shutter

Bases: concert.devices.base.Device

Shutter device class implementation.

close()

Close the shutter.

open()

Open the shutter.

Storage rings

class concert.devices.storagerings.base.StorageRing

Bases: concert.devices.base.Device

Read-only access to storage ring information.

current

Ring current

energy

Ring energy

lifetime

Ring lifetime in hours