
public class AutoChangerModule extends org.lsst.ccs.framework.Module implements org.lsst.ccs.framework.HardwareController, FilterHolder, AlertRaiser
| Constructor and Description |
|---|
AutoChangerModule(String plutoGatewayName,
ComplementarySensors loaderConnectedSensors,
AutoChangerTwoTrucksModule trucks,
AutochangerTwoLatches latches,
AutochangerThreeOnlineClamps onlineClamps,
InclinometerModule inclinometerXminus,
InclinometerModule inclinometerXplus)
Builds new AutoChangerModule with following arguments :
|
| Modifier and Type | Method and Description |
|---|---|
void |
checkConditionsForActioningOnlineClamps()
log if actions on online clamps are allowed,
throws an exception otherwise.
|
void |
checkConditionsForClosingLatches()
Check if Autochanger latches can be closed.
|
void |
checkConditionsForOpeningLatches()
Check if latches can be opened.
|
void |
checkFilterSafetyBeforeMotion()
This methods checks that filter can be moved by trucks.
|
org.lsst.ccs.framework.TreeWalkerDiag |
checkHardware() |
void |
checkStarted() |
void |
checkStopped()
This method is executed during a shutdown of the subystem to prevent a
shutdown when some hardware is moving.
|
StatusDataPublishedByAutoChanger |
createStatusDataPublishedByAutoChanger()
Creates an Object to be published on the STATUS bus.
|
AutoChangerTwoTrucksModule |
getAutochangerTrucks()
returns autochangerTrucks to be able to send commands to trucks in fcs subsystem.
|
String |
getFilterOnlineName()
If autochanger holds a filter at ONLINE, return filter name else return null.
|
int |
getFilterOnTrucksID()
If autochanger holds a filter, returns filterID, else returns 0.
|
String |
getFilterOnTrucksName()
If autochanger holds a filter, return filter name else return null.
|
AutochangerThreeOnlineClamps |
getOnlineClamps()
returns onlineClamps to be able to send commands to onlineClamps in fcs subsystem.
|
void |
grabFilterAtStandby()
Close latches on filter at STANDBY.
|
void |
initModule() |
boolean |
isAtHandoff()
Return true if autochanger trucks are at HANDOFF.
|
boolean |
isAtOnline()
return true if autochanger trucks are at ONLINE.
|
boolean |
isAtStandby()
Return true if autochanger trucks are at STANDBY.
|
boolean |
isCANDevicesReady() |
boolean |
isCarouselHoldingFilterAtStandby()
TODO when autochanger is in standalone mode this method has to answer the value of the
fake carousel sensor.
|
boolean |
isEmpty()
Return true if there is no filter in the autochanger.
|
boolean |
isHardwareReady() |
boolean |
isHoldingFilter()
Return true if a filter is in trucks and latches are LOCKED.
|
boolean |
isInitialized()
Return true if plutoGateway, trucks, latches and onlineClamps are initialized.
|
boolean |
isLoaderConnected()
Returns the boolean field loaderConnected.
|
boolean |
isLoaderHoldingFilterAtHandoff()
Return true if loader is connected and holding a filter.
|
boolean |
isSensorsInError()
Return true if an error has been detected on sensors.
|
void |
publishData()
Publish Data on status bus for trending data base and GUIs.
|
void |
saveCurrentSentToOnlineClampsControllers()
Save on disk the values of current sent to online clamps controllers.
|
void |
setFilterOnAutochanger()
set filter location to AUTOCHANGER.
|
void |
setFilterOnTrucksID(int filterOnTrucksID)
Used for simulator only.
|
void |
shutdownNow() |
void |
ungrabFilterAtStandby()
Open the latches at standby position.
|
void |
updateFCSStateToReady()
Update FCS state and FCS readyness state and publish on the status bus.
|
void |
updateFilterOnTrucksID()
update filterOnTrucksID
|
void |
updateStateFromPDO() |
void |
updateStateWithSensors()
This method reads all the sensors and updates the autochangerTrucks, latches and online clamps state.
|
getNObserverThreads, getObservables, getTickMillis, init, listens, processUpdate, setNObserverThreads, setObservables, setTickMillis, startTicking, tick, updateaddObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChangedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitraiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseWarning, raiseWarning, raiseWarning, raiseWarninggetComponentConfigurationEnvironment, getComponentLookup, getName, getSubsystemchange, dropSubmittedChanges, getChildren, getComponentByName, getEnvironment, getParent, getParentObject, getSubmittedChanges, isParameterConfigurable, printConfigurableParameters, setBulkParameter, submitChange, submitChanges, validateBulkChangesetParameterBulkpublic AutoChangerModule(String plutoGatewayName, ComplementarySensors loaderConnectedSensors, AutoChangerTwoTrucksModule trucks, AutochangerTwoLatches latches, AutochangerThreeOnlineClamps onlineClamps, InclinometerModule inclinometerXminus, InclinometerModule inclinometerXplus)
plutoGatewayName - loaderConnectedSensors - trucks - latches - onlineClamps - inclinometerXminus - inclinometerXplus - @Command(type=QUERY, level=1, description="Return true if an error has been detected on sensors.") public boolean isSensorsInError()
public AutoChangerTwoTrucksModule getAutochangerTrucks()
public AutochangerThreeOnlineClamps getOnlineClamps()
@Command(type=QUERY, level=0, description="If autochanger holds a filter, return filterID, else return 0.") public int getFilterOnTrucksID()
public void setFilterOnTrucksID(int filterOnTrucksID)
filterOnTrucksID - public void setFilterOnAutochanger()
@Command(type=QUERY, level=0, description="If autochanger holds a filter, return filter name else return null.") public String getFilterOnTrucksName()
@Command(type=QUERY, level=0, description="If autochanger holds a filter at ONLINE, return filter name else return null.") public String getFilterOnlineName()
@Command(type=QUERY, level=0, description="Return true if the loader is connected to the camera. This command doesn\'t read again the sensors.") public boolean isLoaderConnected()
@Command(type=QUERY, level=0, description="Return true if the carousel is holding the filter at STANDBY position.") public boolean isCarouselHoldingFilterAtStandby()
FcsHardwareException@Command(type=QUERY, level=0, description="Return true if loader is connected and holding a filter. This command doesn\'t read again the sensors.") public boolean isLoaderHoldingFilterAtHandoff()
FcsHardwareExceptionpublic void initModule()
initModule in class org.lsst.ccs.framework.Module@Command(type=QUERY, level=0, description="Return true if all autochanger CANopen devices are booted, identified and initialized.") public boolean isCANDevicesReady()
@Command(type=QUERY, level=0, description="Return true if all autochanger CANopen devices are booted, identified and initialized and homing of the controllers is done.") public boolean isHardwareReady()
@Command(type=QUERY, level=0, description="Return true if all autochanger hardware is initialized.") public boolean isInitialized()
public org.lsst.ccs.framework.TreeWalkerDiag checkHardware()
throws org.lsst.ccs.HardwareException
checkHardware in interface org.lsst.ccs.framework.HardwareControllerorg.lsst.ccs.HardwareExceptionpublic void checkStarted()
throws org.lsst.ccs.HardwareException
checkStarted in interface org.lsst.ccs.framework.HardwareControllerorg.lsst.ccs.HardwareExceptionpublic void checkStopped()
throws org.lsst.ccs.HardwareException
checkStopped in interface org.lsst.ccs.framework.HardwareControllerorg.lsst.ccs.HardwareException@Command(type=QUERY, level=1, description="Check if the latches can be opened.") public void checkConditionsForOpeningLatches()
FcsHardwareException@Command(type=QUERY, level=1, description="Check if Autochanger latches can be closed.") public void checkConditionsForClosingLatches()
FcsHardwareException@Command(type=QUERY, description="log if actions on online clamps are allowed,throws an exception otherwise.") public void checkConditionsForActioningOnlineClamps()
@Command(type=QUERY, level=1, description="Check if its safe for filters to move autochanger trucks.") public void checkFilterSafetyBeforeMotion()
@Command(type=QUERY, level=1, description="Return true if a filter is in trucks and latches are LOCKED.") public boolean isHoldingFilter()
isHoldingFilter in interface FilterHolder@Command(type=QUERY, level=1, description="Update clamp state in reading sensors.") public void updateStateWithSensors()
updateStateWithSensors in interface FilterHolderFcsHardwareException@Command(type=QUERY, level=1, description="Update clamp state in reading sensors.") public void updateFilterOnTrucksID()
public void updateStateFromPDO()
@Command(type=ACTION, level=1, description="Update FCS state and FCS readyness state and publishes on the status bus.") public void updateFCSStateToReady()
@Command(type=QUERY, level=0, description="Return true if autochanger trucks are at HANDOFF. This command doesn\'t read again the sensors.") public boolean isAtHandoff()
isAtHandoff in interface FilterHolder@Command(type=QUERY, level=0, description="Return true if autochanger trucks are at STANDBY. This command doesn\'t read again the sensors.") public boolean isAtStandby()
isAtStandby in interface FilterHolder@Command(type=QUERY, description="Return true if autochanger trucks are at ONLINE. This command doesn\'t read again the sensors.") public boolean isAtOnline()
@Command(type=QUERY, level=0, description="Return true if there is no filter in the autochanger. This command doesn\'t read again the sensors.") public boolean isEmpty()
@Command(type=ACTION, level=1, alias="grabFilter", description="Go to STANDBY to grab filter and stay at STANDBY.") public void grabFilterAtStandby()
RejectedCommandException - if autochanger trucks are not at STANDBY.@Command(type=ACTION, level=1, description="Ungrab filter at STANDBY") public void ungrabFilterAtStandby()
public StatusDataPublishedByAutoChanger createStatusDataPublishedByAutoChanger()
public void publishData()
public void saveCurrentSentToOnlineClampsControllers()
public void shutdownNow()
shutdownNow in interface org.lsst.ccs.framework.HasLifecycleshutdownNow in class org.lsst.ccs.framework.ModuleCopyright © 2017 LSST. All rights reserved.