public class AutoChangerModule extends org.lsst.ccs.framework.Module implements org.lsst.ccs.framework.HardwareController, FilterHolder, AlertRaiser
| Constructor and Description |
|---|
AutoChangerModule(String plutoGatewayName,
NumericSensor loaderConnectedSensor0,
NumericSensor loaderConnectedSensor1,
AutoChangerTwoTrucksModule trucks,
AutochangerTwoLatches latches,
AutochangerThreeOnlineClamps onlineClamps)
Build new AutoChangerModule with following arguments :
|
| Modifier and Type | Method and Description |
|---|---|
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.
|
String |
getFilterOnlineName()
If autochanger holds a filter at ONLINE, return filter name else return null.
|
int |
getFilterOnTrucksID()
If autochanger holds a filter, return filterID, else return 0.
|
String |
getFilterOnTrucksName()
If autochanger holds a filter, return filter name else return null.
|
int |
getHandoffPosition() |
int |
getOnlinePosition() |
int |
getStandbyPosition() |
StatusDataPublishedByAutoChanger |
getStatusData() |
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 |
isLoaderConnectedSensorsInError()
Return false if the 2 redondant loader sensors are equal.
|
boolean |
isLoaderHoldingFilterAtHandoff()
Return true if loader is connected and holding a filter.
|
boolean |
isMoving()
Return true if the autochanger is running an action.
|
boolean |
isOnlineClampsLocked()
Return true if onlineClamps are LOCKED.
|
boolean |
isSensorsInError()
Return true if an error has been detected on sensors.
|
void |
lockOnlineClamps()
Lock ONLINE clamps.
|
void |
openLatches()
Open both latches
|
void |
publishData()
Publish Data on status bus for trending data base and GUIs.
|
void |
setFilterOnTrucksID(int filterOnTrucksID)
Used for simulator only.
|
void |
tick() |
void |
ungrabFilterAtStandby()
Open the latches at standby position.
|
void |
unlockOnlineClamps()
Unlock ONLINE clamps.
|
void |
updateStateWithSensors()
This method reads all the sensors and updates the autochangerTrucks, latches and online clamps state.
|
getNObserverThreads, getObservables, getTickMillis, init, listens, processUpdate, sendSignal, sendSignalWithTimeLimit, setNObserverThreads, setObservables, setTickMillis, shutdownNow, signal, startTicking, updateaddObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChangedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitraiseAlarm, raiseAlarm, raiseAlarm, raiseWarning, raiseWarning, raiseWarninggetComponentConfigurationEnvironment, getComponentLookup, getName, getSubsystemchange, dropSubmittedChanges, getChildren, getComponentByName, getEnvironment, getParent, getParentObject, getSubmittedChanges, isParameterConfigurable, postStart, printConfigurableParameters, setBulkParameter, start, submitChange, submitChanges, validateBulkChangepublic AutoChangerModule(String plutoGatewayName, NumericSensor loaderConnectedSensor0, NumericSensor loaderConnectedSensor1, AutoChangerTwoTrucksModule trucks, AutochangerTwoLatches latches, AutochangerThreeOnlineClamps onlineClamps)
plutoGatewayName - loaderConnectedSensor0 - loaderConnectedSensor1 - trucks - latches - onlineClamps - @Command(type=QUERY,
level=1,
description="Return false if the 2 redondant loader sensors are equal.")
public boolean isLoaderConnectedSensorsInError()
@Command(type=QUERY,
level=1,
description="Return true if an error has been detected on sensors.")
public boolean isSensorsInError()
public int getHandoffPosition()
public int getOnlinePosition()
public int getStandbyPosition()
@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 - @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 boolean isMoving()
public 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,
level=1,
description="Check if its safe for filters to move autochanger trucks.")
public void checkFilterSafetyBeforeMotion()
public boolean isHoldingFilter()
isHoldingFilter in interface FilterHolderpublic boolean isOnlineClampsLocked()
@Command(type=ACTION,
level=1,
description="Update clamp state in reading sensors.")
public void updateStateWithSensors()
updateStateWithSensors in interface FilterHolderFcsHardwareException@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 ONLINE. This command doesn\'t read again the sensors.")
public boolean isAtOnline()
@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,
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,
description="Lock ONLINE clamps.")
public void lockOnlineClamps()
@Command(type=ACTION,
level=1,
description="Unlock ONLINE clamps.")
public void unlockOnlineClamps()
@Command(type=ACTION,
alias="grabFilter",
level=1,
description="Go to STANDBY to grab filter and stay at STANDBY.")
public void grabFilterAtStandby()
RejectedCommandException - if autochanger trucks are not at STANDBY.@Command(level=1,
description="Ungrab filter at STANDBY",
type=ACTION)
public void ungrabFilterAtStandby()
@Command(type=ACTION,
level=1,
description="Open both Latches.")
public void openLatches()
public void tick()
tick in class org.lsst.ccs.framework.Modulepublic StatusDataPublishedByAutoChanger getStatusData()
public StatusDataPublishedByAutoChanger createStatusDataPublishedByAutoChanger()
public void publishData()
Copyright © 2016 LSST. All rights reserved.