# Device classes¶

## Cameras¶

class concert.devices.cameras.base.Camera

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

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

ports

Port IDs used by read_port() and write_port()

write_port(port, value)

Write a value to the port.

## Lightsources¶

class concert.devices.lightsources.base.LightSource

A base LightSource class.

## Monochromators¶

class concert.devices.monochromators.base.Monochromator

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

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

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

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)

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)

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

A pumping device.

start()

Start pumping.

stop()

Stop pumping.

## Scales¶

class concert.devices.scales.base.Scales

Base scales class.

class concert.devices.scales.base.TarableScales

Scales which can be tared.

tare(*args, **kwargs)

Tare the scales.

## Shutters¶

class concert.devices.shutters.base.Shutter

Shutter device class implementation.

close()

Close the shutter.

open()

Open the shutter.

## Storage rings¶

class concert.devices.storagerings.base.StorageRing