Package gda.mx.samplechanger.actor
Class ActorSampleChanger
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.px.sampleChanger.SampleChangerBase
gda.mx.samplechanger.actor.ActorSampleChanger
- All Implemented Interfaces:
Device,Stoppable,Configurable,Findable,PXSampleChanger,gda.observable.IObservable,gda.observable.IObserver,BlockedPositions,IJActorSampleChanger,SampleChanger,SamplePresentMonitor
@ServiceInterface(IJActorSampleChanger.class)
public class ActorSampleChanger
extends SampleChangerBase
implements PXSampleChanger, IJActorSampleChanger, SamplePresentMonitor, gda.observable.IObserver
-
Field Summary
Fields inherited from class gda.px.sampleChanger.SampleChangerBase
actionApproverName, centreRequired, holder, holderType, isEnabled, numberOfHolders, readingBarcodes, sample, samplesPerHolder, state, typeFields inherited from class gda.device.DeviceBase
DEFAULT_PROTECTION_LEVEL_PROPERTYFields inherited from interface gda.px.sampleChanger.SampleChanger
APPROVERNAME, ATTRIBUTE_IS_SOAKING, EMPTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidabort()voidvoidblockPosition(int holder, int sample) voidcentrelid(int lidNumber) Doesn't actually ask controller to do anything as EPICS/robot program handles this for soak, etc.voidin IJActorSampleChanger I24's keyence_autocenter.py also expects thisvoidDefault implementation for classes that do not have to do any specific configuration.
Classes that do their own configuration should *not* call this superclass function, as it may cause the object to appear configured before it really is.voiddispose()voiddry()getAttribute(String attributeName) Get the value of the specified attributeFor SampleChangers which are set to read barcodes, returns as a string the barcode of the sample mounted during the last load operation.Used by sample_control script to produce meaningful Exception messagesintReturns the number of the holder of the current loaded sample.int[]IJActorSampleChanger declaration overrides SampleChanger and throws DeviceExceptionrigaku.jcameraman.RobotClient.RobotLocationintintUsed by sample_control script to produce meaningful Exception messagesgetPuckName(int position) intGet the position in its holder of the currently loaded sample.booleanintvoidgotoWait()booleanisPositionBlocked(int holder, int sample) booleanReturns true if a sample is in the sample position on the beamline.booleanvoidload(int holder, int sample) Load a sample.voidRe-initialisation of values and states.voidsetAttribute(String attributeName, Object value) copied from JActorSampleChanger with intention of trapping what should be method calls to add to PXSampleChanger interfacevoidsetController(ActorSampleChangerController theController) voidsetNumberOfPlates(int numberOfPlates) voidsetSoakAfterOperation(boolean soakAfterOperation) voidsetSpecialPinPuckNumber(int specialPinPuckNumber) From JActorSampleChanger: For client use; e.g.voidsoak()voidsoak(int dewarNumber) voidstore(int container, int sample) voidunblockPosition(int holder, int sample) voidunload()Unloads the current sample without loading a new one.voidMethods inherited from class gda.px.sampleChanger.SampleChangerBase
getActionApproverName, getHolderType, getNumberOfHolders, getReadingBarcodes, getSamplesInHolder, getStatus, getTypeString, isCentreRequired, isEnabled, isHolderInRange, isSampleInRange, isSampleLoaded, setActionApproverName, setCentreRequired, setEnabled, setHolderType, setLoadedSample, setNumberOfHolders, setReadingBarcodes, setSamplesInEveryHolder, setSamplesInHolder, setState, setTestState, setType, stop, testLoadSafe, waitForIdleMethods inherited from class gda.device.DeviceBase
addIObserver, close, deleteIObserver, deleteIObservers, getName, getProtectionLevel, isBeingObserved, isConfigureAtStartup, notifyIObservers, setConfigureAtStartup, setName, setProtectionLevelMethods inherited from class gda.factory.ConfigurableBase
isConfigured, setConfiguredMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface gda.factory.Configurable
isConfigureAtStartup, isConfiguredMethods inherited from interface gda.device.Device
close, getProtectionLevel, setProtectionLevelMethods inherited from interface gda.observable.IObservable
addIObserver, deleteIObserver, deleteIObserversMethods inherited from interface gda.mx.samplechanger.actor.PXSampleChanger
setSamplesInEveryHolderMethods inherited from interface gda.px.sampleChanger.SampleChanger
getActionApproverName, getHolderType, getNumberOfHolders, getReadingBarcodes, getSamplesInHolder, getStatus, getTypeString, isCentreRequired, isEnabled, isSampleLoaded, setActionApproverName, setCentreRequired, setEnabled, setHolderType, setLoadedSample, setNumberOfHolders, setReadingBarcodes, setSamplesInHolder, stop, waitForIdleMethods inherited from interface gda.px.sampleChanger.SamplePresentMonitor
isEnabled
-
Constructor Details
-
ActorSampleChanger
public ActorSampleChanger()
-
-
Method Details
-
getController
-
setController
-
update
- Specified by:
updatein interfacegda.observable.IObserver
-
getProgramErrorCode
public int getProgramErrorCode()Used by sample_control script to produce meaningful Exception messages -
getControlErrorCode
Used by sample_control script to produce meaningful Exception messages -
configure
Description copied from class:ConfigurableBaseDefault implementation for classes that do not have to do any specific configuration.
Classes that do their own configuration should *not* call this superclass function, as it may cause the object to appear configured before it really is.- Specified by:
configurein interfaceConfigurable- Overrides:
configurein classConfigurableBase- Throws:
FactoryException- if there is an error in configuration e.g. required variable not set or cannot connect to device
-
reconfigure
public void reconfigure()Description copied from interface:ConfigurableRe-initialisation of values and states.Moved from Reconfigurable which has been deleted
- Specified by:
reconfigurein interfaceConfigurable- Overrides:
reconfigurein classConfigurableBase
-
getPuckName
- Specified by:
getPuckNamein interfaceIJActorSampleChanger
-
getHolderAndSample
Description copied from interface:PXSampleChangerIJActorSampleChanger declaration overrides SampleChanger and throws DeviceException- Specified by:
getHolderAndSamplein interfaceIJActorSampleChanger- Specified by:
getHolderAndSamplein interfacePXSampleChanger- Throws:
DeviceException
-
load
Description copied from interface:SampleChangerLoad a sample.- Specified by:
loadin interfaceSampleChanger- Parameters:
holder- the holder number (≥1)sample- the sample number (≥1)- Throws:
DeviceException
-
unload
Description copied from interface:SampleChangerUnloads the current sample without loading a new one.- Specified by:
unloadin interfaceSampleChanger- Throws:
DeviceException
-
centrelid
Doesn't actually ask controller to do anything as EPICS/robot program handles this for soak, etc.- Specified by:
centrelidin interfaceIJActorSampleChanger- Specified by:
centrelidin interfacePXSampleChanger- Throws:
DeviceException
-
getLocation
- Specified by:
getLocationin interfaceIJActorSampleChanger- Throws:
DeviceException
-
getBarcode
Description copied from interface:SampleChangerFor SampleChangers which are set to read barcodes, returns as a string the barcode of the sample mounted during the last load operation.- Specified by:
getBarcodein interfaceSampleChanger- Returns:
- the barcode of the currently mounted sample
- Throws:
DeviceException
-
clearSample
Description copied from interface:PXSampleChangerin IJActorSampleChanger I24's keyence_autocenter.py also expects this- Specified by:
clearSamplein interfaceIJActorSampleChanger- Specified by:
clearSamplein interfacePXSampleChanger- Throws:
DeviceException
-
setAttribute
copied from JActorSampleChanger with intention of trapping what should be method calls to add to PXSampleChanger interface- Specified by:
setAttributein interfaceDevice- Overrides:
setAttributein classDeviceBase- Parameters:
attributeName- is the name of the attributevalue- is the value of the attribute- Throws:
DeviceException- if an attribute cannot be set
-
store
public void store(int container, int sample) -
getAttribute
Description copied from interface:DeviceGet the value of the specified attribute- Specified by:
getAttributein interfaceDevice- Overrides:
getAttributein classDeviceBase- Parameters:
attributeName- is the name of the attribute- Returns:
- the value of the attribute as an Object type
- Throws:
DeviceException- if an attribute cannot be retrieved
-
dispose
- Specified by:
disposein interfacePXSampleChanger- Throws:
DeviceException
-
abort
- Specified by:
abortin interfacePXSampleChanger- Throws:
DeviceException
-
dry
- Specified by:
dryin interfacePXSampleChanger- Throws:
DeviceException
-
soak
- Specified by:
soakin interfacePXSampleChanger- Throws:
DeviceException
-
gotoWait
- Specified by:
gotoWaitin interfacePXSampleChanger- Throws:
DeviceException
-
setSoakAfterOperation
public void setSoakAfterOperation(boolean soakAfterOperation) -
getSoakAfterOperation
public boolean getSoakAfterOperation() -
autoDryRobotIfCan
public void autoDryRobotIfCan() -
isSampleLoaded
public boolean isSampleLoaded()Description copied from interface:SampleChangerReturns true if a sample is in the sample position on the beamline.- Specified by:
isSampleLoadedin interfaceSampleChanger- Overrides:
isSampleLoadedin classSampleChangerBase- Returns:
- boolean
-
getHolder
Description copied from interface:SampleChangerReturns the number of the holder of the current loaded sample.- Specified by:
getHolderin interfaceSampleChanger- Overrides:
getHolderin classSampleChangerBase- Returns:
- int
- Throws:
DeviceException
-
getSample
Description copied from interface:SampleChangerGet the position in its holder of the currently loaded sample.- Specified by:
getSamplein interfaceSampleChanger- Overrides:
getSamplein classSampleChangerBase- Returns:
- int
- Throws:
DeviceException
-
getNumberOfPlates
public int getNumberOfPlates() -
setNumberOfPlates
public void setNumberOfPlates(int numberOfPlates) - Specified by:
setNumberOfPlatesin interfacePXSampleChanger
-
getSpecialPinPuckNumber
public int getSpecialPinPuckNumber()- Specified by:
getSpecialPinPuckNumberin interfaceIJActorSampleChanger
-
setSpecialPinPuckNumber
public void setSpecialPinPuckNumber(int specialPinPuckNumber) Description copied from interface:PXSampleChangerFrom JActorSampleChanger: For client use; e.g. "load puck 6 position 1" means "load special pin 1"- Specified by:
setSpecialPinPuckNumberin interfacePXSampleChanger
-
isSamplePresent
public boolean isSamplePresent()- Specified by:
isSamplePresentin interfaceSamplePresentMonitor
-
soak
- Specified by:
soakin interfaceIJActorSampleChanger- Throws:
DeviceException
-
blockPosition
public void blockPosition(int holder, int sample) -
unblockPosition
public void unblockPosition(int holder, int sample) -
isPositionBlocked
public boolean isPositionBlocked(int holder, int sample) - Specified by:
isPositionBlockedin interfaceBlockedPositions
-
getBlockedPositions
- Specified by:
getBlockedPositionsin interfaceBlockedPositions
-