Package gda.px.sampleChanger
Interface SampleChanger
- All Superinterfaces:
BlockedPositions,Configurable,Device,Findable,gda.observable.IObservable,Stoppable
- All Known Subinterfaces:
IJActorSampleChanger
- All Known Implementing Classes:
ActorSampleChanger,DummyJActorSampleChanger,DummyJCameramanSampleChanger,DummySampleChanger,JActorSampleChanger,OscarSampleChanger,PlateSampleChangerBase,SampleChangerBase
Interface for automated sample exchange systems. It is assumed that samples are identified by holder and position
numbers.
Sample changers also assumed to be able to automatically centre their sample via control of an XYZ sample mounting stage.
Sample changers can be enabled/disabled at runtime to allow for switching between manual and automated sample
loading.
Implementations should set the state to INITIALISING while the robot is initialising, and go back to
the IDLE state when this is finished. If an error occurs, the ERROR state should be used.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe name of the ActionApprover object located in the top-level Jython namespace which is used to test if sample changer movements are possible due to hardware interlocksstatic final Stringstatic final intValue to be used for the holder number or sample number if no sample is loaded. -
Method Summary
Modifier and TypeMethodDescriptionFor SampleChangers which are set to read barcodes, returns as a string the barcode of the sample mounted during the last load operation.intReturns the number of the holder of the current loaded sample.Returns a string representing the type of puck in useintReturns the number of holders (pucks) over all available dewars to load from.booleanintGet the position in its holder of the currently loaded sample.intgetSamplesInHolder(int holder) Returns the number of samples in the specified holder (puck).Returns a string of the Java class of the type of this sample changer.booleanReturnstrueif the user needs to centre the crystal.booleanReturns true if this sample changer is in use for loading samples.booleanReturns true if a sample is in the sample position on the beamline.booleanisSampleLoaded(int holder, int sample) Returns true if loaded sample has the specified index.voidload(int holder, int sample) Load a sample.voidsetActionApproverName(String actionApproverName) voidsetCentreRequired(boolean centringRequired) Sets the centre required flag.voidsetEnabled(boolean isEnabled) Sets if the sample changer is currently in use.voidsetHolderType(String puckType) Sets a string representing the type of puck in use e.g.voidsetLoadedSample(int holder, int sample) Sets the holder and sample numbers of the loaded sample.voidsetNumberOfHolders(int numberOfHolders) Sets the number of total holders (pucks/magazines/plates etc.) that the sample changer can load fromvoidsetReadingBarcodes(boolean readDuringLoad) Sets whether to read barcodes during each load operationvoidsetSamplesInHolder(int holder, int samples) Sets the number of samples in the specified holder.voidstop()Stops the current operation.voidunload()Unloads the current sample without loading a new one.booleanReturns when the sample changer has finished its current operation.Methods inherited from interface gda.px.sampleChanger.BlockedPositions
getBlockedPositions, isPositionBlockedMethods inherited from interface gda.factory.Configurable
configure, isConfigureAtStartup, isConfigured, reconfigureMethods inherited from interface gda.device.Device
close, getAttribute, getProtectionLevel, setAttribute, setProtectionLevelMethods inherited from interface gda.observable.IObservable
addIObserver, deleteIObserver, deleteIObservers
-
Field Details
-
ATTRIBUTE_IS_SOAKING
- See Also:
-
APPROVERNAME
The name of the ActionApprover object located in the top-level Jython namespace which is used to test if sample changer movements are possible due to hardware interlocks- See Also:
-
EMPTY
static final int EMPTYValue to be used for the holder number or sample number if no sample is loaded.- See Also:
-
-
Method Details
-
getBarcode
For SampleChangers which are set to read barcodes, returns as a string the barcode of the sample mounted during the last load operation.- Returns:
- the barcode of the currently mounted sample
- Throws:
DeviceException
-
getHolder
Returns the number of the holder of the current loaded sample.- Returns:
- int
- Throws:
DeviceException
-
getTypeString
Returns a string of the Java class of the type of this sample changer.- Returns:
- java.lang.String
- Throws:
DeviceException
-
getNumberOfHolders
Returns the number of holders (pucks) over all available dewars to load from.- Returns:
- int
- Throws:
DeviceException
-
getHolderType
Returns a string representing the type of puck in use- Returns:
- string
- Throws:
DeviceException
-
getReadingBarcodes
- Returns:
- true if the samplechanger will read barcodes during loading.
- Throws:
DeviceException
-
getSample
Get the position in its holder of the currently loaded sample.- Returns:
- int
- Throws:
DeviceException
-
getSamplesInHolder
Returns the number of samples in the specified holder (puck).- Parameters:
holder- the holder number (starting from 1)- Returns:
- the number of samples in that holder
- Throws:
DeviceException
-
isCentreRequired
Returnstrueif the user needs to centre the crystal.- Throws:
DeviceException
-
isEnabled
Returns true if this sample changer is in use for loading samples.- Returns:
- boolean
- Throws:
DeviceException
-
setNumberOfHolders
Sets the number of total holders (pucks/magazines/plates etc.) that the sample changer can load from- Parameters:
numberOfHolders-- Throws:
DeviceException
-
setHolderType
Sets a string representing the type of puck in use e.g. "Rigaku"- Parameters:
puckType-- Throws:
DeviceException
-
setSamplesInHolder
Sets the number of samples in the specified holder. Used when changing the puck type mid-experiment.- Parameters:
holder- the holder number (starting from 1)samples- the number of samples in that holder- Throws:
DeviceException
-
isSampleLoaded
Returns true if a sample is in the sample position on the beamline.- Returns:
- boolean
- Throws:
DeviceException
-
isSampleLoaded
Returns true if loaded sample has the specified index.- Parameters:
holder- the holder index (≥1)sample- the sample index (≥1)- Returns:
- boolean
- Throws:
DeviceException
-
load
Load a sample.- Parameters:
holder- the holder number (≥1)sample- the sample number (≥1)- Throws:
DeviceException
-
getStatus
- Returns:
- the current status of the sample changer as a SampleChangerStatus object
- Throws:
DeviceException
-
setCentreRequired
Sets the centre required flag. This enables the detector to be told when manual centring has been successfully completed.- Parameters:
centringRequired-- Throws:
DeviceException
-
setLoadedSample
Sets the holder and sample numbers of the loaded sample. To be used if a sample is manually mounted onto the sample changer.- Parameters:
holder- the holder numbersample- the sample number- Throws:
DeviceException
-
setEnabled
Sets if the sample changer is currently in use.- Parameters:
isEnabled-- Throws:
DeviceException
-
setReadingBarcodes
Sets whether to read barcodes during each load operation- Parameters:
readDuringLoad-- Throws:
DeviceException
-
stop
Description copied from interface:StoppableStops the current operation.- Specified by:
stopin interfaceStoppable- Throws:
DeviceException
-
unload
Unloads the current sample without loading a new one.- Throws:
DeviceException
-
waitForIdle
Returns when the sample changer has finished its current operation.- Returns:
- true if the current operation was successful
- Throws:
DeviceException
-
setActionApproverName
- Parameters:
actionApproverName-- Throws:
DeviceException
-
getActionApproverName
- Returns:
- name of the action approver object in the top-level Jython namespace
- Throws:
DeviceException
-