
public abstract class BasicAutoChangerModule extends MobileItemModule implements AutoChanger
| Modifier and Type | Field and Description |
|---|---|
protected CarouselModule |
carousel |
protected boolean |
closingLatches |
protected FcsEnumerations.LockStatus |
latchesState |
protected boolean |
openingLatches |
static String |
publishedByAutoChangerOutputName |
protected ModuleState |
state |
protected long |
timeoutForClosingLatches |
protected long |
timeoutForOpeningLatches |
protected long |
timeToWaitForCompleteClose
When we close the Latches, after the numeric sensors have detected that the latches are closed, we want to wait
some time to be sure that the latches are really closed.
|
protected long |
timeToWaitForCompleteOpen
When we open the Latches, after the numeric sensors have detected that the latches are opened, we want to wait
some time to be sure that the latches are really opened.
|
protected TruckModule |
truckXminus
The truck on side X-
|
protected TruckModule |
truckXplus
The truck on side X+
|
protected boolean |
updatingLatches |
currentAction, fcslog, haltRequired, hasToWaitForEndOfAction, lock, motionCompleted, moving, stopRequired| Constructor and Description |
|---|
BasicAutoChangerModule(String moduleName,
int aTickMillis,
FilterLatchModule latchXminus,
FilterLatchModule latchXplus,
TruckModule truckXminus,
TruckModule truckXplus,
String railsSensorsDIOName,
String filterSensorsDIOName) |
| Modifier and Type | Method and Description |
|---|---|
void |
abortAction(FcsEnumerations.MobileItemAction action,
long delay) |
void |
checkPreConditionsForTrucksMotion()
This method checks if the preconditions are ok before a motion of the trucks can be started.
|
void |
closeLatchesAtHandoff() |
String |
closeLatchesAtStandby()
Close the 2 latches when the autochanger trucks are at standby position.
|
Filter |
getFilterOnTrucks() |
String |
getFilterOnTrucksName() |
CompactIOModule |
getFilterSensorsDIO() |
String |
getFilterSensorsDIOName() |
FcsEnumerations.LockStatus |
getLatchesState()
This method returns the latchesState if it is not been updated otherwise it waits until the end of
the update.
|
FilterLatchModule |
getLatchXminus() |
FilterLatchModule |
getLatchXplus() |
CompactIOModule |
getRailsSensorsDIO() |
String |
getRailsSensorsDIOName() |
ModuleState |
getState() |
StatusDataPublishedByBasicAutoChanger |
getStatusData() |
FcsEnumerations.AutoChangerTrucksLocation |
getTrucksLocation()
This method returns the truckLocation if it is not been updated otherwise it waits until the end of
the update.
|
TruckModule |
getTruckXminus() |
TruckModule |
getTruckXplus() |
abstract String |
goToStandback() |
abstract String |
goToStandby() |
void |
grabFilterAtHandoff(Filter aFilter) |
String |
grabFilterAtStandby(Filter filter) |
void |
initModule() |
boolean |
isActionCompleted(FcsEnumerations.MobileItemAction action) |
boolean |
isAtHandoff() |
boolean |
isAtStandback()
For the single-filter-test only ?
|
boolean |
isAtStandby() |
boolean |
isHardwareReady() |
boolean |
isHoldingFilterAtStandback() |
boolean |
isHoldingFilterAtStandby() |
abstract boolean |
isMoving() |
abstract boolean |
isMovingToStandback() |
abstract boolean |
isMovingToStandby() |
boolean |
isOnline() |
boolean |
isTrucksEmpty() |
abstract String |
moveFilterToStandback(Filter aFilter) |
abstract String |
moveFilterToStandby(Filter aFilter) |
void |
openLatchesAtHandoff() |
String |
openLatchesAtStandby()
Open the 2 latches when the autochanger trucks are at standby position.
|
void |
postAction(FcsEnumerations.MobileItemAction action) |
void |
processUpdate(Observable source,
org.lsst.ccs.framework.Module.ValueUpdate v) |
void |
publishData()
Publish Data on status bus for trending data base and GUIs.
|
void |
publishDataAndNotifyObservers() |
void |
setFilterOnTrucks(Filter filterOnTrucks) |
void |
setFilterSensorsDIOName(String filterSensorsDIOName) |
void |
setRailsSensorsDIOName(String railsSensorsDIOName) |
void |
setState(ModuleState state) |
void |
setTimeoutForClosingLatches(long timeoutForClosingLatches) |
void |
setTimeoutForOpeningLatches(long timeoutForOpeningLatches) |
void |
setTimeToWaitForCompleteClose(long timeToWaitForCompleteClose) |
void |
setTimeToWaitForCompleteOpen(long timeToWaitForCompleteOpen) |
void |
setTrucksEmpty(boolean isEmpty) |
void |
startAction(FcsEnumerations.MobileItemAction action) |
void |
tick() |
String |
toString() |
void |
ungrabFilterAtHandoff(Filter aFilter) |
String |
ungrabFilterAtStandby()
Open the latches at standby position and go back empty to STANBACK position.
|
void |
updateLatchesStateWithSensors()
This methods updates the latches status in reading the sensors.
|
abstract void |
updateStateWithSensors() |
void |
updateStateWithSensorsToCheckIfActionIsCompleted() |
void |
updateTrucksLocationWithSensors()
This methods updates the trucks location in reading the sensors.
|
abort, abort, checkHardware, checkStarted, checkStopped, executeAction, getHaltRequired, quickstop, quickStopAction, readSensorsUntilActionIsCompleted, shutdownNow, signal, stop, stopalias, getComponentDictionariesTree, getComponentTree, getContext, getEnvironment, getMainDictionary, getModule, getName, getNObserverThreads, getObservables, getSubsystem, getTickMillis, init, listens, percolateSignal, postStart, publishData, publishData, publishData, publishData, publishData, publishData, publishData, sendSignal, sendSignal, sendSignalWithTimeLimit, sendToReply, sendToStatus, setBeanName, setContext, setEnvironment, setName, setNObserverThreads, setObservables, setStateModularSubsystem, setStateModularSubsystem, setTickMillis, startTicking, updateaddObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChangedclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetTrucksPosition, goToPosition, locateTrucks, moveFilterToOnlinechange, getCheckedValueFromConfiguration, getChildren, getComponentByName, getDictionary, getParent, getParentObject, injectResources, listChildren, notifyChange, notifyChangeWithoutPreliminaryChecks, proceduralWalk, publish, publish, publish, publish, publish, publish, start, treeWalkprotected CarouselModule carousel
protected TruckModule truckXminus
protected TruckModule truckXplus
public static final String publishedByAutoChangerOutputName
protected volatile ModuleState state
protected volatile FcsEnumerations.LockStatus latchesState
protected volatile boolean updatingLatches
protected volatile boolean closingLatches
protected volatile boolean openingLatches
protected long timeoutForOpeningLatches
protected long timeoutForClosingLatches
protected long timeToWaitForCompleteClose
protected long timeToWaitForCompleteOpen
public BasicAutoChangerModule(String moduleName, int aTickMillis, FilterLatchModule latchXminus, FilterLatchModule latchXplus, TruckModule truckXminus, TruckModule truckXplus, String railsSensorsDIOName, String filterSensorsDIOName)
public CompactIOModule getRailsSensorsDIO()
public CompactIOModule getFilterSensorsDIO()
public Filter getFilterOnTrucks()
getFilterOnTrucks in interface AutoChangerpublic ModuleState getState()
public void setState(ModuleState state)
state - the state to setpublic FilterLatchModule getLatchXminus()
public FilterLatchModule getLatchXplus()
public TruckModule getTruckXminus()
public TruckModule getTruckXplus()
public boolean isTrucksEmpty()
public void setTrucksEmpty(boolean isEmpty)
public void setFilterOnTrucks(Filter filterOnTrucks)
public String getFilterOnTrucksName()
public String getFilterSensorsDIOName()
public void setFilterSensorsDIOName(String filterSensorsDIOName)
public String getRailsSensorsDIOName()
public void setRailsSensorsDIOName(String railsSensorsDIOName)
@ConfigChanger public void setTimeToWaitForCompleteClose(long timeToWaitForCompleteClose)
@ConfigChanger public void setTimeToWaitForCompleteOpen(long timeToWaitForCompleteOpen)
@ConfigChanger public void setTimeoutForClosingLatches(long timeoutForClosingLatches)
@ConfigChanger public void setTimeoutForOpeningLatches(long timeoutForOpeningLatches)
public abstract boolean isMovingToStandback()
public abstract boolean isMovingToStandby()
public void initModule()
initModule in class org.lsst.ccs.framework.Module@Command(type=QUERY, level=1, description="Returns true if hardware is connected and ready.") public boolean isHardwareReady()
isHardwareReady in class MobileItemModulepublic void tick()
tick in class org.lsst.ccs.framework.Modulepublic void processUpdate(Observable source, org.lsst.ccs.framework.Module.ValueUpdate v)
processUpdate in class org.lsst.ccs.framework.Modulepublic StatusDataPublishedByBasicAutoChanger getStatusData()
public void publishDataAndNotifyObservers()
public void publishData()
publishData in class MobileItemModulepublic abstract boolean isMoving()
isMoving in class MobileItemModulepublic abstract String goToStandby() throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException, CanOpenException
org.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionCanOpenExceptionpublic abstract String goToStandback() throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException, CanOpenException
org.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionCanOpenExceptionpublic abstract String moveFilterToStandby(Filter aFilter) throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException, CanOpenException
moveFilterToStandby in interface AutoChangerorg.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionCanOpenExceptionpublic abstract String moveFilterToStandback(Filter aFilter) throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException, CanOpenException
org.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionCanOpenExceptionpublic abstract void updateStateWithSensors()
throws FcsHardwareException,
org.lsst.ccs.bus.ErrorInCommandExecutionException
FcsHardwareExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionException@Command(level=1, description="checks if the preconditions are ok before a motion of the trucks can be started", type=QUERY) public void checkPreConditionsForTrucksMotion() throws org.lsst.ccs.bus.BadCommandException, FcsHardwareException, org.lsst.ccs.bus.ErrorInCommandExecutionException
org.lsst.ccs.bus.BadCommandExceptionFcsHardwareExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionException@Command(level=1, description="Go to STANDBY to grab filter and stay at STANDBY", type=ACTION) public String grabFilterAtStandby(Filter filter) throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException, CanOpenException
grabFilterAtStandby in interface AutoChangerorg.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionCanOpenException@Command(level=1, description="Ungrab filter at STANDBY and go back to HANDOFF", type=ACTION) public String ungrabFilterAtStandby() throws org.lsst.ccs.bus.ErrorInCommandExecutionException, org.lsst.ccs.bus.BadCommandException, FcsHardwareException, CanOpenException
ungrabFilterAtStandby in interface AutoChangerorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionorg.lsst.ccs.bus.BadCommandExceptionFcsHardwareExceptionCanOpenExceptionpublic FcsEnumerations.LockStatus getLatchesState()
@Command(level=1, description="Return true if the trucks are at STANDBY position and hold a filter", type=QUERY) public boolean isHoldingFilterAtStandby()
@Command(type=QUERY, level=1, description="Return true if the trucks are at STANDBACK position and hold a filter") public boolean isHoldingFilterAtStandback()
public boolean isActionCompleted(FcsEnumerations.MobileItemAction action)
isActionCompleted in class MobileItemModulepublic void postAction(FcsEnumerations.MobileItemAction action)
postAction in class MobileItemModulepublic void startAction(FcsEnumerations.MobileItemAction action) throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException
startAction in class MobileItemModuleorg.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionpublic void abortAction(FcsEnumerations.MobileItemAction action, long delay) throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException
abortAction in class MobileItemModuleorg.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionpublic void updateStateWithSensorsToCheckIfActionIsCompleted()
throws FcsHardwareException,
org.lsst.ccs.bus.ErrorInCommandExecutionException
updateStateWithSensorsToCheckIfActionIsCompleted in class MobileItemModuleFcsHardwareExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionException@Command(level=1, description="Open the 2 latches when the autochanger trucks are at standby position", type=ACTION, alias="openLatches") public String openLatchesAtStandby() throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException
openLatchesAtStandby in interface AutoChangerorg.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareException@Command(level=1, description="Close the 2 latches when the autochanger trucks are at standby position", type=ACTION, alias="closeLatches") public String closeLatchesAtStandby() throws org.lsst.ccs.bus.BadCommandException, org.lsst.ccs.bus.ErrorInCommandExecutionException, FcsHardwareException
closeLatchesAtStandby in interface AutoChangerorg.lsst.ccs.bus.BadCommandExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionFcsHardwareExceptionpublic void updateLatchesStateWithSensors()
throws FcsHardwareException,
org.lsst.ccs.bus.ErrorInCommandExecutionException
FcsHardwareExceptionorg.lsst.ccs.bus.ErrorInCommandExecutionExceptionpublic FcsEnumerations.AutoChangerTrucksLocation getTrucksLocation()
@Command(level=1, description="Return true if the trucks are at STANDBY position", type=QUERY) public boolean isAtStandby()
isAtStandby in interface AutoChanger@Command(level=1, description="Return true if the trucks are at STANDBACK position", type=QUERY) public boolean isAtStandback()
@Command(level=1, description="Return true if the trucks are at HANDOFF position", type=QUERY) public boolean isAtHandoff()
@Command(level=1, description="Return true if the trucks are at ONLINE position", type=QUERY) public boolean isOnline()
public void updateTrucksLocationWithSensors()
throws org.lsst.ccs.bus.ErrorInCommandExecutionException
org.lsst.ccs.bus.ErrorInCommandExecutionExceptionpublic void grabFilterAtHandoff(Filter aFilter)
public void ungrabFilterAtHandoff(Filter aFilter)
@Command(level=1, description="Open the 2 latches when the autochanger trucks are at HANDOFF position", type=ACTION, alias="openLatchesHO") public void openLatchesAtHandoff()
Copyright © 2015 LSST. All rights reserved.