photons.equipment.shot702_controller module

OptoSigma SHOT-702 controller.

class photons.equipment.shot702_controller.OptoSigmaSHOT702(record, **kwargs)[source]

Bases: BaseEquipment

OptoSigma SHOT-702 controller.

Parameters:
  • record (EquipmentRecord) – The equipment record.

  • **kwargs – Keyword arguments. Can be specified as attributes of an XML element in a configuration file (with the tag of the element equal to the alias of record).

connection: SHOT702
NUM_PULSES_PER_360_DEGREES = 144000
angle_changed: SignalInstance
property degrees_per_pulse: float

Returns the number of degrees per pulse.

degrees_to_position(degrees)[source]

Convert an angle, in degrees, to an encoder position.

Parameters:

degrees (float) – An angle, in degrees.

Return type:

int

Returns:

The corresponding encoder position.

get_angle()[source]

Returns the angle (in degrees) of the filter wheel.

Return type:

float

get_speed()[source]

Get speed that the stage moves to a new angle.

Return type:

tuple[int, int, int]

Returns:

The minimum speed (in number of pulses per second),

the maximum speed (in number of pulses per second) and the acceleration/deceleration time in ms.

get_speed_home()[source]

Get speed that the stage moves home.

Return type:

tuple[int, int, int]

Returns:

The minimum speed (in number of pulses per second),

the maximum speed (in number of pulses per second), and the acceleration/deceleration time in ms.

home(*, wait=True, timeout=300)[source]

Home the continuously-variable filter wheel.

Parameters:
  • wait (bool) – Whether to wait for the wheel to stop moving.

  • timeout (float) – The maximum number of seconds to wait for the wheel to stop moving.

Return type:

None

is_moving()[source]

Returns whether the filter wheel is moving.

Return type:

bool

position_to_degrees(position, *, bound=False)[source]

Convert an encoder position to an angle in degrees.

Parameters:
  • position (int) – The encoder position.

  • bound (bool) – Whether to bound the angle to be between [0, 360) degrees.

Return type:

float

Returns:

The angle in degrees.

set_angle(degrees, *, wait=True, timeout=300)[source]

Set the angle of the continuously-variable filter wheel.

Parameters:
  • degrees (float) – The angle, in degrees.

  • wait (bool) – Whether to wait for the wheel to stop moving.

  • timeout (float) – The maximum number of seconds to wait for the wheel to stop moving.

Return type:

None

set_speed(minimum, maximum, acceleration)[source]

Set speed that the stage moves to a new angle.

According to the manual:

Max. Driving Speed: 500000 pps -> 1250 deg/s
Min. Driving Speed: 1 pps -> 0.0025 deg/s
Acceleration/Deceleration Time: 1 - 1000ms
Parameters:
  • minimum (int) – The minimum speed (in number of pulses per second).

  • maximum (int) – The maximum speed (in number of pulses per second).

  • acceleration (int) – The acceleration/deceleration time in ms.

Return type:

None

set_speed_home(minimum, maximum, acceleration)[source]

Set speed that the stage moves home.

According to the manual:

Max. Driving Speed: 500000 pps -> 1250 deg/s
Min. Driving Speed: 1 pps -> 0.0025 deg/s
Acceleration/Deceleration Time: 1 - 1000ms
Parameters:
  • minimum (int) – The minimum speed (in number of pulses per second).

  • maximum (int) – The maximum speed (in number of pulses per second).

  • acceleration (int) – The acceleration/deceleration time in ms.

Return type:

None

status()[source]

Get the status of the continuously-variable filter wheel.

Return type:

tuple[int, bool]

Returns:

The position of the encoder and whether the stage is moving.

stop_slowly()[source]

Slowly bring the stage to a stop.

Return type:

None