toptica.lasersdk.utils.dlcpro module

class toptica.lasersdk.utils.dlcpro.DataBlock(id: str, payload: memoryview)

Bases: NamedTuple

A binary data block.

id: str

Alias for field number 0

payload: memoryview

Alias for field number 1

exception toptica.lasersdk.utils.dlcpro.DataFormatError

Bases: ValueError

Exception raised for format errors in binary data.

class toptica.lasersdk.utils.dlcpro.SignalChannel(*values)

Bases: IntEnum

An enum of the IDs of a DLC pro signal channel.

AMP_CC_ANALOG_IN = 60
AMP_CURRENT_ACT = 64
AMP_CURRENT_SET = 63
AMP_POWER = 62
AMP_SEED_POWER = 61
CC_ANALOG_IN1 = 52
CC_ANALOG_IN2 = 53
CTL_ERROR_SIGNAL = 73
CTL_INTENSITY = 75
CTL_MODE_CONTROL = 72
CTL_MOTOR_POSITION = 71
CTL_NORMALIZE_SIGNAL = 74
CTL_PHOTODIODE = 69
CTL_POWER = 70
CTL_TONIC_I = 77
CTL_TONIC_Q = 76
CTL_WAVELENGTH_ACT = 79
CTL_WAVELENGTH_SET = 78
DEBUG = -4
DL_CURRENT = 51
DL_EOM_VOLTAGE = 58
DL_PHOTODIODE = 54
DL_PIEZO_VOLTAGE = 50
DL_TEMP_ACT = 57
DL_TEMP_SET = 56
EXTERNAL_POWER = 55
FAST_IN3 = 2
FAST_IN3B = 3
FAST_IN4 = 4
FAST_IN4B = 5
FHG_CAVITY_ERROR_SIGNAL = 110
FHG_CAVITY_PIEZO_VOLTAGE_FAST = 121
FHG_CAVITY_PIEZO_VOLTAGE_SLOW = 120
FHG_CAVITY_REJECTION_SIGNAL = 111
FHG_INTRA_CAVITY_SIGNAL = 112
FHG_POWER = 113
FINE_IN1 = 0
FINE_IN2 = 1
FREQUENCY = -1
LOCKIN_OUTPUT = 30
LOCK_INPUT_ALIAS = 100
NLO_AMP_POWER = 84
NLO_FIBER_POWER = 86
NLO_SEED_POWER = 85
NONE = -3
OPO_CAVITY_PIEZO_VOLTAGE_FAST = 151
OPO_CAVITY_PIEZO_VOLTAGE_SLOW = 150
OPO_DEPLETED_PUMP_POWER = 145
OPO_IDLER_POWER = 147
OPO_PUMP_POWER = 144
OPO_SIGNAL_POWER = 146
OUTPUT_A = 20
OUTPUT_B = 21
PDH1_ERROR1 = 40
PDH1_ERROR2 = 42
PDH1_IN1 = 41
PDH1_IN2 = 43
PDH2_ERROR1 = 44
PDH2_ERROR2 = 46
PDH2_IN1 = 45
PDH2_IN2 = 47
PID1_OUTPUT = 31
PID2_OUTPUT = 32
POWERLOCK_INPUT_ALIAS = 102
SCAN_AUX_OUTPUT = 35
SCAN_AUX_OUTPUT_ALIAS = 103
SCAN_OUTPUT = 34
SCAN_OUTPUT_ALIAS = 101
SHG_CAVITY_ERROR_SIGNAL = 80
SHG_CAVITY_PIEZO_VOLTAGE_FAST = 91
SHG_CAVITY_PIEZO_VOLTAGE_SLOW = 90
SHG_CAVITY_REJECTION_SIGNAL = 81
SHG_INPUT_POWER = 87
SHG_INTRA_CAVITY_SIGNAL = 82
SHG_POWER = 83
TIME = -2
UV_SHG_POWERSTAB_SETPOINT = 130
toptica.lasersdk.utils.dlcpro.extract_float_arrays(blockids: str, data: bytes) → dict[str, array]

Extracts float arrays from raw scope, background trace, and recorder zoom binary data.

The raw scope, background trace, and recorder zoom binary data consists of block ids a, A, b, B, x, y, Y in the DLC pro ‘Scope, Lock, and Recorder Binary Data’ format.

Parameters:
  • blockids – String of requested block id letters. Block ids not

  • ignored. (available in the input data or in the above list are)

  • data – Input byte sequence.

Returns:

Dictionary with found block ids as keys and arrays of floats (typecode ‘f’) as values.

Raises:
  • DataFormatError – If the contents of data are not conform to the

  • 'Scope, Lock, and Recorder Binary Data' format. –

toptica.lasersdk.utils.dlcpro.extract_lock_points(blockids: str, data: bytes) → dict[str, dict[str, Iterable]]

Extracts lock points from raw lock point data.

The raw lock point data consists of block ids l, c, t in the DLC pro ‘Scope, Lock, and Recorder Binary Data’ format.

Parameters:
  • blockids – String of requested block id letters. Block ids not

  • ignored. (available in the input data or in the above list are)

  • data – Input byte sequence.

Returns:

Dictionary with found block ids as keys with nested dicts as values. The nested dicts contain the keys x, y, t and lists of the respective field contents as values (float for keys x,y, str for key t).

Raises:
  • DataFormatError – If the contents of data are not conform to the

  • 'Scope, Lock, and Recorder Binary Data' format. –

toptica.lasersdk.utils.dlcpro.extract_lock_state(data: bytes) → int | None

Extracts the state of the locking module from raw lock point data.

The raw lock point data consists of blockid s in the DLC pro ‘Scope, Lock, and Recorder Binary Data’ format.

Parameters:

data – Input byte sequence.

Returns:

Lock module’s state as integer if available, otherwise None.

Raises:
  • DataFormatError – If the contents of data are not conform to the

  • 'Scope, Lock, and Recorder Binary Data' format. –