microscope.stages.linkam module

A microscope interface to Linkam stages.

This module requires the LinkamSDK library and a license file, available from Linkam Scientific Instruments.

Currently, this module supports on the the correlative microscopy stage, but should be readily extensible to support other Linkam stages.

NOTE: this module does not run correctly with python optimisations in use. When invoked with python -O, there seem to be issues with accessing ctypes objects.

  • get_status() throws AttributeError “c_ulonglong has no attribute ‘flags’”;
  • get_id returns an empty string, not the device serial number.
class microscope.stages.linkam.ControllerError[source]

Bases: enum.Enum

ControllerError enum from C headers

CMS196BaseSensorOpen = 28
CMS196BaseSensorOverrange = 29
CMS196ChamberSensorOpen = 21
CMS196ChamberSensorOverrange = 22
CMS196DewarEmpty = 27
CMS196DewarSensorOpen = 25
CMS196DewarSensorOverrange = 26
CMS196LN2SwitchSensorOpen = 23
CMS196LN2SwitchSensorOverrange = 24
CMS196MotorPosnError = 30
CSS450MotorDriveOverTemp = 15
CSS450MotorWindingError1 = 16
CSS450MotorWindingError2 = 17
CommsError = 13
CoolingWaterTooWarmNotFlowing = 14
LNP95Error = 12
LoadPowerIncorrectForStage = 8
LoadPowerOutputVoltageWrong = 4
NoError = 0
OptionBoardCableDisconnect = 7
OptionBoardIncorrectCable = 9
OptionBoardSensorOenOverrange = 10
Reserved1 = 18
Reserved2 = 19
Reserved3 = 20
StageCableDisconnected = 1
StageCableError = 2
StageTempSensorOpenOverrange = 3
T95FanNotWorking = 11
T95OptionBoardWongConfig = 6
T95RelayMissing = 5
class microscope.stages.linkam.ErrorCode[source]

Bases: enum.Enum

ErrorCode enum from C headers

CommandBufferLimitReached = 3975151627
DeviceCreationFailure = 3975151620
DeviceRegistrationFailed = 3975151619
LibraryNotInitialised = 3975151617
Max = 3976200191
NoConnectionInfo = 3975151618
NoError = 3975151616
SerialCommsHandshakeFailure = 3975151622
SerialCommsInitialisationFailure = 3975151621
SerialCommsRxError = 3975151625
SerialCommsTxError = 3975151635
SerialCommsUnknownRxError = 3975151626
SerialCommsUnknownTxError = 3975151636
SerialPortSocketConfigurationFailure = 3975151624
SerialPortSocketCreationFailure = 3975151623
USBCommsHandshakeFailure = 3975151629
USBCommsInitialisationFailure = 3975151628
USBCommsRxError = 3975151631
USBCommsTxError = 3975151633
USBCommsUnknownRxError = 3975151632
USBCommsUnknownTxError = 3975151634
USBPortSocketCreationFailure = 3975151630
class microscope.stages.linkam.LinkamCMS(uid='', **kwargs)[source]

Bases: microscope.stages.linkam._LinkamMDSMixin, microscope.stages.linkam._LinkamBase

Linkam correlative-microscopy stage.

class RefillTracker[source]

Bases: object

__repr__()[source]

Display tracker properties in representation.

as_dict()[source]

Represent this object as a dict for status queries.

dt = datetime.timedelta(0)
end_refill()[source]

End a refill: update status flag and last refill time.

refilling = False
start_refill()[source]

Start a refill: update status flag and last cycle time.

t = None
_update_status(status)[source]

Update status structures.

get_condensor_level()[source]

Return the condensor level

get_light()[source]

Report the state of the chamber light.

get_motors()[source]

Return the position, set point and stopped status of available motors.

get_status(*args)[source]

Return a dict containing aggregated stage status.

refill_chamber(state=True)[source]

Start a refill of the sample chamber from the internal dewar

refill_dewar(state=True)[source]

Start a refill of the internal dewar from an external reservoir

refill_stats()[source]

Return information about refill times and cycle lengths.

set_condensor(state)[source]

Turn the condensor LED on or off.

set_condensor_level(level)[source]

Set the condensor LED level

set_light(state)[source]

Set the state of the chamber light.

temperatures()[source]

Return a dict of temperature sensor readings.

class microscope.stages.linkam.Msg[source]

Bases: enum.IntEnum

An enumeration.

ApplySampleCals = 14
CloseComms = 2
CssApplyValues = 29
CssCheckValues = 30
CssGotoReference = 31
CssSendDirection = 85
CssSendForceStop = 86
CssSendFrequency = 83
CssSendGap = 80
CssSendGapOverride = 79
CssSendGapVelocity = 78
CssSendRate = 82
CssSendStrain = 84
CssSendTorque = 87
CssSendVelocity = 81
CssSensorCal = 32
CssStartJogGap = 33
CssStartJogRot = 34
DisableLogging = 36
DoesOptionCardSupportSensors = 54
EnableLogging = 35
ForceCooling = 90
ForceHeating = 89
ForceHold = 91
GetConnectionInformation = 96
GetControllerConfig = 3
GetControllerError = 4
GetControllerFirmwareVersion = 37
GetControllerHardwareVersion = 38
GetControllerHeaterDetails = 77
GetControllerIdent = 95
GetControllerName = 5
GetControllerPSUDetails = 68
GetControllerSerial = 6
GetDataRate = 41
GetHumidityControllerSensorHardwareVersion = 66
GetHumidityControllerSensorName = 64
GetHumidityControllerSensorSerial = 65
GetInstrumentBusDeviceFirmwareVersion = 62
GetInstrumentBusDeviceHardwareVersion = 63
GetInstrumentBusDeviceIdent = 92
GetInstrumentBusDeviceName = 60
GetInstrumentBusDeviceSerial = 61
GetMaxValue = 11
GetMinValue = 12
GetOptionCardHardwareVersion = 53
GetOptionCardName = 51
GetOptionCardSensorHardwareVersion = 57
GetOptionCardSensorName = 55
GetOptionCardSensorSerial = 56
GetOptionCardSerial = 52
GetOptionCardSlot = 50
GetOptionCardType = 49
GetProgramState = 75
GetResolution = 13
GetStageCableLimits = 43
GetStageConfig = 8
GetStageConfiguration = 76
GetStageFirmwareVersion = 39
GetStageGroup = 58
GetStageHardwareVersion = 40
GetStageHeaterIdent = 97
GetStageIdent = 93
GetStageName = 10
GetStageSerial = 9
GetStatus = 7
GetValue = 21
HaveInstrumentBusDeviceType = 59
InitialiseTriggerSignalPulse = 72
IsControllerType = 67
LnpSetMode = 27
LnpSetSpeed = 28
Max = 268435455
OpenComms = 1
SaveSampleCals = 15
SendDscBaselinePowerValues = 46
SendDscGainValues = 44
SendDscPowerValue = 45
SendDscTuaConstants = 47
SetControllerMainsFrequency = 71
SetControllerTriggerSignalDisable = 70
SetControllerTriggerSignalEnable = 69
SetDSCModulationData = 48
SetDataRate = 42
SetTriggerSignalPluseWidth = 74
SetTriggerSignalPulse = 73
SetValue = 22
StartHeating = 16
StartHumidity = 18
StartHumidityDesiccantConditioning = 19
StartMotors = 20
StartVacuum = 17
TstCalibrateDistance = 23
TstSetCalibrationForce = 88
TstSetMode = 24
TstZeroForce = 25
TstZeroPosition = 26
class microscope.stages.linkam._CMSError[source]

Bases: _ctypes.Union

CMSError union from C headers

flags

Structure/Union member

value

Structure/Union member

class microscope.stages.linkam._CMSErrorFlags[source]

Bases: _ctypes.Structure

CMSError.flags struct from C headers

baseSensorOC

Structure/Union member

baseSensorOver

Structure/Union member

dewarEmpty

Structure/Union member

dewarSensorOC

Structure/Union member

dewarSensorOver

Structure/Union member

ln2SwitchSensorOC

Structure/Union member

ln2SwitchSensorOver

Structure/Union member

mainSensorOC

Structure/Union member

mainSensorOver

Structure/Union member

motorPosnError

Structure/Union member

unused10

Structure/Union member

unused11

Structure/Union member

unused12

Structure/Union member

unused13

Structure/Union member

unused14

Structure/Union member

unused15

Structure/Union member

unused16

Structure/Union member

unused17

Structure/Union member

unused18

Structure/Union member

unused19

Structure/Union member

unused20

Structure/Union member

unused21

Structure/Union member

unused22

Structure/Union member

unused23

Structure/Union member

unused24

Structure/Union member

unused25

Structure/Union member

unused26

Structure/Union member

unused27

Structure/Union member

unused28

Structure/Union member

unused29

Structure/Union member

unused30

Structure/Union member

unused31

Structure/Union member

class microscope.stages.linkam._CMSStatus[source]

Bases: _ctypes.Union

CMSStatus union from C headers

flags

Structure/Union member

value

Structure/Union member

class microscope.stages.linkam._CMSStatusFlags[source]

Bases: _ctypes.Structure

CMSStatus.flags struct from C headers

WarmingUpFromCupboard

Structure/Union member

autoTopUp

Structure/Union member

light

Structure/Union member

mainDewarFillSignal

Structure/Union member

on

Structure/Union member

onNoLN2

Structure/Union member

prime

Structure/Union member

sampleDewarFillSignal

Structure/Union member

unused11

Structure/Union member

unused12

Structure/Union member

unused13

Structure/Union member

unused14

Structure/Union member

unused15

Structure/Union member

unused16

Structure/Union member

unused17

Structure/Union member

unused18

Structure/Union member

unused19

Structure/Union member

unused20

Structure/Union member

unused21

Structure/Union member

unused22

Structure/Union member

unused23

Structure/Union member

unused24

Structure/Union member

unused25

Structure/Union member

unused26

Structure/Union member

unused27

Structure/Union member

unused28

Structure/Union member

unused29

Structure/Union member

unused30

Structure/Union member

unused31

Structure/Union member

unused6

Structure/Union member

unused7

Structure/Union member

warmingUp

Structure/Union member

class microscope.stages.linkam._CommsInfo[source]

Bases: _ctypes.Structure

CommsInfo struct from C headers

info

Structure/Union member

type

Structure/Union member

view_of_info

Provide a view of the info field so that its subfields can be accessed

class microscope.stages.linkam._ConnectionStatus[source]

Bases: _ctypes.Union

ConnectionStatus union from C headers

flags

Structure/Union member

value

Structure/Union member

class microscope.stages.linkam._ConnectionStatusFlags[source]

Bases: _ctypes.Structure

ConnectionStatus.flags structure from C headers

connected

Structure/Union member

errorAllocationFailed

Structure/Union member

errorAlreadyOpen

Structure/Union member

errorCommsStreams

Structure/Union member

errorHandleRegistrationFailed

Structure/Union member

errorMultipleDevicesFound

Structure/Union member

errorNoDeviceFound

Structure/Union member

errorPortConfig

Structure/Union member

errorPropertiesIncorrect

Structure/Union member

errorSerialNumberRequired

Structure/Union member

errorTimeout

Structure/Union member

errorUnhandled

Structure/Union member

unused12

Structure/Union member

unused13

Structure/Union member

unused14

Structure/Union member

unused15

Structure/Union member

unused16

Structure/Union member

unused17

Structure/Union member

unused18

Structure/Union member

unused19

Structure/Union member

unused20

Structure/Union member

unused21

Structure/Union member

unused22

Structure/Union member

unused23

Structure/Union member

unused24

Structure/Union member

unused25

Structure/Union member

unused26

Structure/Union member

unused27

Structure/Union member

unused28

Structure/Union member

unused29

Structure/Union member

unused30

Structure/Union member

unused31

Structure/Union member

class microscope.stages.linkam._ControllerStatus[source]

Bases: _ctypes.Union

ControllerStatus union from C headers

flags

Structure/Union member

value

Structure/Union member

class microscope.stages.linkam._ControllerStatusFlags[source]

Bases: _ctypes.Structure

ControllerStatus.flags struct from C headers

HumidityDesiccantConditioning

Structure/Union member

controllerError

Structure/Union member

cssGapMotorStopped

Structure/Union member

cssLidOn

Structure/Union member

cssRefLimit

Structure/Union member

cssRotMotorStopped

Structure/Union member

cssZeroLimit

Structure/Union member

heater1RampSetPoint

Structure/Union member

heater1Started

Structure/Union member

heater2RampSetPoint

Structure/Union member

heater2Started

Structure/Union member

humidityCtrlStarted

Structure/Union member

humidityRampSetPoint

Structure/Union member

lnpCoolingPumpAuto

Structure/Union member

lnpCoolingPumpOn

Structure/Union member

motorDistanceCalTST

Structure/Union member

motorStoppedX

Structure/Union member

motorStoppedY

Structure/Union member

motorStoppedZ

Structure/Union member

motorTravelMaxX

Structure/Union member

motorTravelMaxY

Structure/Union member

motorTravelMaxZ

Structure/Union member

motorTravelMinX

Structure/Union member

motorTravelMinY

Structure/Union member

motorTravelMinZ

Structure/Union member

sampleCal

Structure/Union member

unused13

Structure/Union member

unused15

Structure/Union member

unused16

Structure/Union member

unused17

Structure/Union member

unused18

Structure/Union member

unused19

Structure/Union member

unused20

Structure/Union member

unused21

Structure/Union member

unused22

Structure/Union member

unused23

Structure/Union member

unused24

Structure/Union member

unused25

Structure/Union member

unused26

Structure/Union member

unused27

Structure/Union member

unused28

Structure/Union member

unused29

Structure/Union member

unused30

Structure/Union member

unused31

Structure/Union member

unused32

Structure/Union member

unused33

Structure/Union member

unused34

Structure/Union member

unused35

Structure/Union member

unused36

Structure/Union member

unused37

Structure/Union member

unused38

Structure/Union member

unused39

Structure/Union member

unused40

Structure/Union member

unused57

Structure/Union member

unused58

Structure/Union member

unused59

Structure/Union member

unused60

Structure/Union member

unused61

Structure/Union member

unused62

Structure/Union member

unused63

Structure/Union member

vacuumCtrlStarted

Structure/Union member

vacuumRampSetPoint

Structure/Union member

vacuumValveClosed

Structure/Union member

vacuumValveOpen

Structure/Union member

class microscope.stages.linkam._LinkamBase(**kwargs)[source]

Bases: microscope.devices.FloatingDeviceMixin, microscope.devices.Device

Base class for connecting to Linkam SDK devices.

This class deals with SDK initialisation and setting callbacks to handle SDK events. It maintains a map of SDK handle to device instance so that SDK events result in updates to the correct instance.

__del__()[source]

Close comms on object deletion

classmethod _on_connect(h: ctypes.c_ulong)[source]

Connection event callback

Connection event only seems to be generated by processing an OpenComms message - USB connection is not autodetected.

classmethod _on_disconnect(h: ctypes.c_ulong)[source]

Disconnection event callback

Discconneciton event only seems to be generated by processing a CloseComms message.

classmethod _on_error(h: ctypes.c_ulong, errcode: ctypes.c_uint)[source]

Error event callback

classmethod _on_new_value(h: ctypes.c_ulong, status: microscope.stages.linkam._ControllerStatus)[source]

NewValue callback

_post_connect()[source]

Mixins should implement this method to do post-connection config.

_process_msg(msg, param1=None, param2=None, param3=None, result=None)[source]

As the SDK to process a message.

_reopen_comms()[source]

Reopen communications.

This is called by the error event callback, which runs in some thread in the library. If comms_close is called in that thread, the connection status isn’t correctly updated, so reconnection must happen in another thread.

_reopen_loop()[source]

Attempt to reopen comms.

_update_status(status)[source]

Update status structures.

check_connection()[source]

Raise an exception if the connection is down.

close_comms()[source]

Close the comms link

get_data_rate()[source]

Return the status update period in seconds.

get_error()[source]

Fetch the controller error.

get_id()[source]

Fetch the device’s serial number

static get_sdk_version()[source]

Fetch the SDK version.

get_status(*args)[source]

Called by a client to fetch status in a dict.

Derived classes and mixins should implement this to add their own status.

status = super().get_status(*args, status_structure, …) in derived classes. # then add any other values with status[key] = …

get_value(svt, result=None)[source]

Fetch a value from the device.

svt: a StageValueType result: an existing Variant to use to return a result, or None.

get_value_limits(svt)[source]

Returns the bounds for a StageValueType

static init_sdk()[source]

Initialise the SDK and set up event callbacks

init_serial(port)[source]

Populate commsinfo struct with default SerialCommsInfo for given port

init_usb(uid)[source]

Populate commsinfo struct with default USBCommsInfo

initialize()[source]

Initialize the device.

is_moving(axis=None)[source]

Returns True if the stage is moving, False if stopped

This method isn’t on the LinkamMDSMixin because the StageStatus motor stopped flags appear to be more reliable than the MDSStatus MoveDone flags.

open_comms()[source]

Open the comms link and store the comms handle.

set_value(svt, val)[source]

Set value identified by svt to val

class microscope.stages.linkam._LinkamMDSMixin(**kwargs)[source]

Bases: object

A mixin for motor-driven stages

_post_connect()[source]

Set up motors: set velocities and add velocity settings.

_update_status(status)[source]

Call parent class update_status, then update MDS status structure.

get_position()[source]

Return the stage’s position.

get_status(*args)[source]

Includes MDSStatus in the get_status call.

move_to(x=None, y=None, z=None)[source]

Move to co-ordinates given by x and y

class microscope.stages.linkam._MDSStatus[source]

Bases: _ctypes.Union

MDSStatus union from C headers

flags

Structure/Union member

value

Structure/Union member

class microscope.stages.linkam._MDSStatusFlags[source]

Bases: _ctypes.Structure

MDSStatus.flags struct from C headers

unused10

Structure/Union member

unused11

Structure/Union member

unused12

Structure/Union member

unused13

Structure/Union member

unused14

Structure/Union member

unused15

Structure/Union member

unused16

Structure/Union member

unused17

Structure/Union member

unused18

Structure/Union member

unused19

Structure/Union member

unused20

Structure/Union member

unused21

Structure/Union member

unused22

Structure/Union member

unused23

Structure/Union member

unused24

Structure/Union member

unused25

Structure/Union member

unused26

Structure/Union member

unused27

Structure/Union member

unused28

Structure/Union member

unused29

Structure/Union member

unused30

Structure/Union member

unused31

Structure/Union member

unused6

Structure/Union member

unused7

Structure/Union member

unused8

Structure/Union member

unused9

Structure/Union member

xMaxLimit

Structure/Union member

xMinLimit

Structure/Union member

xMoveDone

Structure/Union member

yMaxLimit

Structure/Union member

yMinLimit

Structure/Union member

yMoveDone

Structure/Union member

class microscope.stages.linkam._SerialCommsInfo[source]

Bases: _ctypes.Structure

SerialCommsInfo struct from C headers

baudrate

Structure/Union member

bytesize

Structure/Union member

flowcontrol

Structure/Union member

padding

Structure/Union member

parity

Structure/Union member

port

Structure/Union member

stopbits

Structure/Union member

timeout

Structure/Union member

class microscope.stages.linkam._StageConfig[source]

Bases: _ctypes.Union

StageConfig union from C headers.

flags

Structure/Union member

value

Structure/Union member

class microscope.stages.linkam._StageConfigFlags[source]

Bases: _ctypes.Structure

StageConfig.flags struct from C headers

coolingAutomatic

Structure/Union member

coolingDual

Structure/Union member

coolingDualSpeedIndependent

Structure/Union member

coolingManual

Structure/Union member

correlativeStage

Structure/Union member

css450Stage

Structure/Union member

dscStage

Structure/Union member

gradedStage

Structure/Union member

heater1

Structure/Union member

heater12IndependentLimits

Structure/Union member

heater1TempCtrl

Structure/Union member

heater1TempCtrlProbe

Structure/Union member

heater2

Structure/Union member

highTempStage

Structure/Union member

home

Structure/Union member

itoStage

Structure/Union member

motorX

Structure/Union member

motorY

Structure/Union member

motorZ

Structure/Union member

peltierStage

Structure/Union member

standardStage

Structure/Union member

supportsHumidity

Structure/Union member

supportsVacuum

Structure/Union member

tensileStage

Structure/Union member

unused10

Structure/Union member

unused11

Structure/Union member

unused12

Structure/Union member

unused13

Structure/Union member

unused14

Structure/Union member

unused15

Structure/Union member

unused16

Structure/Union member

unused17

Structure/Union member

unused18

Structure/Union member

unused19

Structure/Union member

unused20

Structure/Union member

unused25

Structure/Union member

unused29

Structure/Union member

unused30

Structure/Union member

unused31

Structure/Union member

unused32

Structure/Union member

unused33

Structure/Union member

unused34

Structure/Union member

unused35

Structure/Union member

unused38

Structure/Union member

unused39

Structure/Union member

unused40

Structure/Union member

unused41

Structure/Union member

unused42

Structure/Union member

unused43

Structure/Union member

unused44

Structure/Union member

unused45

Structure/Union member

unused53

Structure/Union member

unused54

Structure/Union member

unused55

Structure/Union member

unused56

Structure/Union member

unused57

Structure/Union member

unused58

Structure/Union member

unused59

Structure/Union member

unused60

Structure/Union member

unused61

Structure/Union member

unused62

Structure/Union member

unused63

Structure/Union member

warmStage

Structure/Union member

waterCoolingSensorFitted

Structure/Union member

class microscope.stages.linkam._StageGroup[source]

Bases: enum.Enum

StageGroup enum from C headers

CambridgeShearingSystem = 8
CorrelativeMicroscopy = 11
DifferentialScanningCalorimetry = 3
DifferentialScanningCalorimetryV2 = 15
FreezeDryingVialSystem = 16
Gradient = 2
IndiumTinOxideWarm = 12
MAX = 2047
MotorDriven = 6
Peltier = 1
Pressure = 5
START = 0
Standard = 0
TemperatureControlled = 9
TemperatureControlledVacuum = 13
TensileTest = 7
TensileTestV2 = 14
Vacuum = 4
Warm = 10
class microscope.stages.linkam._StageValueType[source]

Bases: enum.Enum

StageValueType enum from C headers

CmsAlarmVolume = 193
CmsAutoDewarFill = 99
CmsBaseHeaterLimit = 192
CmsCondenserLEDLevel = 61
CmsDewarTopTemperature = 98
CmsError = 57
CmsLashWarning = 191
CmsLight = 52
CmsMainDewarFillSig = 60
CmsSampleDewarFillSig = 55
CmsSolenoidRefill = 54
CmsStatus = 56
CmsWarmingHeater = 53
CmsXaxisGridCentre = 189
CmsYaxisGridCentre = 190
ConnectionType = 171
CssDefaultGapChangeVel = 204
CssDefaultGapRefVel = 82
CssDefaultRotRefVel = 83
CssDirn = 79
CssForce = 87
CssGapMotorVelocitySetpoint = 90
CssGapPos = 75
CssGapSetpoint = 74
CssJogGapDis = 81
CssJogRotVel = 80
CssMode = 73
CssOcsFreq = 78
CssOptionBoardSensorData = 91
CssRateSetpoint = 77
CssRotMotorVelocitySetpoint = 89
CssShareTime = 88
CssStatus = 86
CssStepDone = 84
CssStepSuccess = 85
CssStrainSetpoint = 76
DisableJoyStick = 199
Dsc = 45
DscBaselineConstTerm = 111
DscBaselinePowerTerm1 = 112
DscBaselinePowerTerm2 = 113
DscBaselinePowerTerm3 = 114
DscBaselinePowerTerm4 = 115
DscConstantTerm = 104
DscGain1 = 101
DscGain2 = 102
DscGain3 = 103
DscOptionBoardSensorEnabled = 118
DscPower = 100
DscPowerTerm1 = 105
DscPowerTerm2 = 106
DscPowerTerm3 = 107
DscPowerTerm4 = 108
DscPowerTerm5 = 109
DscPowerTerm6 = 110
DscTuaConst1 = 116
DscTuaConst2 = 117
DtcOptionBoardSensor1Enabled = 153
DtcOptionBoardSensor2Enabled = 154
EnableJoyStick = 198
FDVSColdTrapPumpSpeed = 195
FDVSMotorDistanceSetpoint = 203
FDVSMotorVel = 202
FDVSScanMotorPosition = 196
GradedMotorDistanceSetpoint = 33
GradedMotorPos = 31
GradedMotorVel = 32
Heater1LNPSpeed = 4
Heater1Power = 3
Heater1Temp = 0
Heater2LNPSpeed = 9
Heater2Power = 8
Heater2Temp = 5
Heater3Temp = 44
Heater4Temp = 51
HeaterRate = 1
HeaterSetpoint = 2
Humidity = 14
HumidityDryingTimeLeft = 166
HumidityDryingTimeSetpoint = 162
HumidityPipeTempSetpoint = 164
HumiditySetpoint = 15
HumiditySwapTimeLeft = 167
HumiditySwapTimeSetpoint = 163
HumidityTemp = 11
HumidityWaterTemp = 168
HumidityWaterTempSetpoint = 165
ImagingStationBrightness = 197
InvertJoyStickAxisX = 200
InvertJoyStickAxisY = 201
LNP95 = 176
LNP96 = 177
LNPDual = 175
LNPSingle = 174
ManualHumiditySetpoint = 194
MaxValue = 65535
MotorDrivenStageStatus = 25
MotorFDVacDefaultSpeed = 161
MotorFDVacuumOptionBoardSensorData = 146
MotorFDVacuumOptionBoardSensorEnabled = 139
MotorFeedbackYX = 63
MotorGradientOptionBoardSensorData = 148
MotorGradientOptionBoardSensorEnabled = 141
MotorGsDefaultSpeed = 159
MotorPosX = 16
MotorPosY = 19
MotorPosZ = 22
MotorSetpointX = 18
MotorSetpointY = 21
MotorSetpointZ = 24
MotorTstDefaultSpeed = 158
MotorTstOptionBoardSensorData = 147
MotorTstOptionBoardSensorEnabled = 140
MotorVacDefaultSpeed = 160
MotorVacuumOptionBoardSensorData = 145
MotorVacuumOptionBoardSensorEnabled = 138
MotorVelX = 17
MotorVelY = 20
MotorVelZ = 23
MotorXDefaultSpeed = 155
MotorXOptionBoardSensorData = 142
MotorXOptionBoardSensorEnabled = 135
MotorYDefaultSpeed = 156
MotorYOptionBoardSensorData = 143
MotorYOptionBoardSensorEnabled = 136
MotorZDefaultSpeed = 157
MotorZOptionBoardSensorData = 144
MotorZOptionBoardSensorEnabled = 137
MotorZeroRefX = 187
MotorZeroRefY = 188
Pressure = 134
PressureSimulatorPlug = 173
RS232OptionBoardSensorEnabled = 92
RampHoldRemaining = 59
RampHoldTime = 58
SampleAct1 = 35
SampleAct2 = 37
SampleAct3 = 39
SampleAct4 = 41
SampleAct5 = 43
SampleRef1 = 34
SampleRef2 = 36
SampleRef3 = 38
SampleRef4 = 40
SampleRef5 = 42
StageHumidityUnitData = 133
TemperatureResolution = 50
TestMotion = 62
TriggerSignalBlue = 46
TriggerSignalGreen = 47
TriggerSignalPink = 48
TriggerSignalPulseWidth = 170
TriggerSignalsEnabled = 49
TstCalForceValue = 125
TstForce = 67
TstForceGauge = 72
TstForceSetpoint = 68
TstJawPosition = 129
TstJawToJawSize = 119
TstMotorDistanceSetpoint = 66
TstMotorPos = 64
TstMotorVel = 65
TstOptionBoardSensorEnabled = 126
TstPidKd = 71
TstPidKi = 70
TstPidKp = 69
TstSampleSize = 121
TstShowAsForceDistance = 124
TstShowCalbData = 127
TstStatus = 128
TstStrain = 130
TstStrainEngineeringUnits = 122
TstStrainPercentage = 123
TstStress = 131
TstTableDirection = 120
TstTableMode = 132
TtcOptionBoardEnabled = 149
TtcOptionBoardSensor1Enabled = 150
TtcOptionBoardSensor2Enabled = 151
TtcOptionBoardSensor3Enabled = 152
UsingCalibrationCableA = 184
UsingCalibrationCableB = 182
UsingCalibrationCableC = 183
UsingCalibrationPlug = 181
UsingXenocsStageTestCableType1 = 179
UsingXenocsStageTestCableType2 = 180
UsingXenocsStageTestCables = 178
VacMotorValvePos = 28
VacMotorValveSetpoint = 30
VacMotorValveStatus = 27
VacMotorValveVel = 29
Vacuum = 12
VacuumBoardUnitOfMeasure = 26
VacuumOptionBoardSensor1Data = 93
VacuumOptionBoardSensor1Enabled = 94
VacuumOptionBoardSensor2Data = 95
VacuumOptionBoardSensor2Enabled = 96
VacuumSetpoint = 13
VacuumSimulatorPlug = 172
VtoOptionBoardEnabled = 97
VtoText = 185
VtoTime = 186
VtoVideoStandard = 169
WaterCoolingTemp = 10
class microscope.stages.linkam._USBCommsInfo[source]

Bases: _ctypes.Structure

USBCommsInfo struct from C headers

padding

Structure/Union member

productID

Structure/Union member

serialNumber

Structure/Union member

vendorID

Structure/Union member

class microscope.stages.linkam._Variant[source]

Bases: _ctypes.Union

Variant union from C headers

__getattribute__(name)[source]

Wrap enum variants with their python Enum for convenience

vBoolean

Structure/Union member

vCMSError

Structure/Union member

vCMSStatus

Structure/Union member

vChar

Structure/Union member

vConnectionStatus

Structure/Union member

vControllerError

Structure/Union member

vControllerStatus

Structure/Union member

vFloat32

Structure/Union member

vFloat64

Structure/Union member

vInt16

Structure/Union member

vInt32

Structure/Union member

vInt64

Structure/Union member

vInt8

Structure/Union member

vMDSStatus

Structure/Union member

vPtr

Structure/Union member

vStageConfig

Structure/Union member

vStageGroup

Structure/Union member

vUint16

Structure/Union member

vUint32

Structure/Union member

vUint64

Structure/Union member

vUint8

Structure/Union member