org.lsst.ccs.subsystems.fcs
Class BasicAutoChangerModule

java.lang.Object
  extended by java.util.Observable
      extended by org.lsst.ccs.framework.Module
          extended by org.lsst.ccs.subsystems.fcs.BasicAutoChangerModule
All Implemented Interfaces:
java.io.Serializable, java.util.Observer, AutoChanger
Direct Known Subclasses:
AutoChangerModule, SftAutoChangerModule

public abstract class BasicAutoChangerModule
extends org.lsst.ccs.framework.Module
implements AutoChanger

An abstract changer module without a fliprail, without online clamp, and without a motor. This Module is in charge of the 2 latches which hold a filter in the autochanger. This basic autochanger is used in single filter test.

Author:
virieux
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.lsst.ccs.framework.Module
org.lsst.ccs.framework.Module.ValueUpdate
 
Field Summary
static java.lang.String publishedByAutoChangerOutputName
           
protected  ModuleState state
           
 
Fields inherited from class org.lsst.ccs.framework.Module
log, name, nObserverThreads, registry, tickMillis
 
Constructor Summary
BasicAutoChangerModule()
           
 
Method Summary
 Filter getFilterOnTrucks()
           
 java.lang.String getFilterOnTrucksName()
           
 ModuleState getState()
           
 StatusDataPublishedByBasicAutoChanger getStatusData()
           
abstract  java.lang.String goToPosition(double requiredPosition)
           
 java.lang.String goToStandback()
           
abstract  java.lang.String goToStandby()
           
 java.lang.String grabbeFilterAtStandby(Filter filter)
           
 void initModule()
           
 void initPublishedData()
           
 boolean isEmpty()
           
abstract  boolean isMoving()
           
 java.lang.String lockLatchesAtStandby(Filter aFilter)
          This methods locks the trucks latches at standby position and updates the field filterOnTrucks, the field filterLocation of the object Filter and updates the data that we publish on the status bus.
abstract  java.lang.String moveFilterToOnline(Filter aFilter)
           
abstract  java.lang.String moveFilterToStandback(Filter aFilter)
           
abstract  java.lang.String moveFilterToStandby(Filter aFilter)
           
 void processUpdate(java.util.Observable source, org.lsst.ccs.framework.Module.ValueUpdate v)
           
 void setEmpty(boolean isEmpty)
           
 void setFilterOnTrucks(Filter filterOnTrucks)
           
 void setState(ModuleState state)
           
 java.lang.String toString()
           
 java.lang.String unGrabbeFilterAtStandby()
           
 java.lang.String unlockLatchesAtStandby()
           
 void updatePublishedDataAndNotifyObservers()
           
 
Methods inherited from class org.lsst.ccs.framework.Module
getContext, getModule, getName, getNObserverThreads, getObservables, getSubsystem, getTickMillis, init, listens, publishData, publishData, publishData, publishData, sendToReply, sendToStatus, setBeanName, setContext, setName, setNObserverThreads, setObservables, setStateModularSubsystem, setStateModularSubsystem, setTickMillis, shutdownNow, start, tick, update
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.lsst.ccs.subsystems.fcs.common.AutoChanger
getTrucksPosition, locateTrucks, stop
 

Field Detail

publishedByAutoChangerOutputName

public static java.lang.String publishedByAutoChangerOutputName

state

protected volatile ModuleState state
Constructor Detail

BasicAutoChangerModule

public BasicAutoChangerModule()
Method Detail

getFilterOnTrucks

public Filter getFilterOnTrucks()
Specified by:
getFilterOnTrucks in interface AutoChanger

getFilterOnTrucksName

public java.lang.String getFilterOnTrucksName()

getStatusData

public StatusDataPublishedByBasicAutoChanger getStatusData()

getState

public ModuleState getState()
Returns:
the state

setState

public void setState(ModuleState state)
Parameters:
state - the state to set

goToPosition

public abstract java.lang.String goToPosition(double requiredPosition)
                                       throws java.lang.IllegalArgumentException,
                                              org.lsst.ccs.bus.BadCommandException
Specified by:
goToPosition in interface AutoChanger
Throws:
java.lang.IllegalArgumentException
org.lsst.ccs.bus.BadCommandException

goToStandby

public abstract java.lang.String goToStandby()

goToStandback

public java.lang.String goToStandback()

grabbeFilterAtStandby

public java.lang.String grabbeFilterAtStandby(Filter filter)
                                       throws org.lsst.ccs.bus.BadCommandException,
                                              org.lsst.ccs.bus.ErrorInCommandExecutionException
Specified by:
grabbeFilterAtStandby in interface AutoChanger
Throws:
org.lsst.ccs.bus.BadCommandException
org.lsst.ccs.bus.ErrorInCommandExecutionException

initModule

public void initModule()
Overrides:
initModule in class org.lsst.ccs.framework.Module

initPublishedData

public void initPublishedData()
Specified by:
initPublishedData in interface AutoChanger

isEmpty

public boolean isEmpty()

isMoving

public abstract boolean isMoving()

lockLatchesAtStandby

public java.lang.String lockLatchesAtStandby(Filter aFilter)
                                      throws org.lsst.ccs.bus.BadCommandException,
                                             org.lsst.ccs.bus.ErrorInCommandExecutionException
This methods locks the trucks latches at standby position and updates the field filterOnTrucks, the field filterLocation of the object Filter and updates the data that we publish on the status bus. It sends the command "lock" to the hardware of the latches and if this command is executed with success it goes on with the updates otherwise it returns an exception.

Specified by:
lockLatchesAtStandby in interface AutoChanger
Returns:
Throws:
org.lsst.ccs.bus.ErrorInCommandExecutionException
org.lsst.ccs.bus.BadCommandException

moveFilterToOnline

public abstract java.lang.String moveFilterToOnline(Filter aFilter)
                                             throws org.lsst.ccs.bus.BadCommandException,
                                                    org.lsst.ccs.bus.ErrorInCommandExecutionException
Specified by:
moveFilterToOnline in interface AutoChanger
Throws:
org.lsst.ccs.bus.BadCommandException
org.lsst.ccs.bus.ErrorInCommandExecutionException

moveFilterToStandby

public abstract java.lang.String moveFilterToStandby(Filter aFilter)
                                              throws org.lsst.ccs.bus.BadCommandException,
                                                     org.lsst.ccs.bus.ErrorInCommandExecutionException
Specified by:
moveFilterToStandby in interface AutoChanger
Throws:
org.lsst.ccs.bus.BadCommandException
org.lsst.ccs.bus.ErrorInCommandExecutionException

moveFilterToStandback

public abstract java.lang.String moveFilterToStandback(Filter aFilter)
                                                throws org.lsst.ccs.bus.BadCommandException,
                                                       org.lsst.ccs.bus.ErrorInCommandExecutionException
Throws:
org.lsst.ccs.bus.BadCommandException
org.lsst.ccs.bus.ErrorInCommandExecutionException

processUpdate

public void processUpdate(java.util.Observable source,
                          org.lsst.ccs.framework.Module.ValueUpdate v)
Overrides:
processUpdate in class org.lsst.ccs.framework.Module

setEmpty

public void setEmpty(boolean isEmpty)

setFilterOnTrucks

public void setFilterOnTrucks(Filter filterOnTrucks)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

unGrabbeFilterAtStandby

public java.lang.String unGrabbeFilterAtStandby()
                                         throws org.lsst.ccs.bus.ErrorInCommandExecutionException,
                                                org.lsst.ccs.bus.BadCommandException
Specified by:
unGrabbeFilterAtStandby in interface AutoChanger
Throws:
org.lsst.ccs.bus.ErrorInCommandExecutionException
org.lsst.ccs.bus.BadCommandException

unlockLatchesAtStandby

public java.lang.String unlockLatchesAtStandby()
                                        throws org.lsst.ccs.bus.BadCommandException,
                                               org.lsst.ccs.bus.ErrorInCommandExecutionException
Specified by:
unlockLatchesAtStandby in interface AutoChanger
Throws:
org.lsst.ccs.bus.BadCommandException
org.lsst.ccs.bus.ErrorInCommandExecutionException

updatePublishedDataAndNotifyObservers

public void updatePublishedDataAndNotifyObservers()


Copyright © 2012 LSST. All Rights Reserved.