
public class Autochanger extends Object implements org.lsst.ccs.framework.HardwareController, FilterHolder, AlertRaiser, org.lsst.ccs.framework.HasLifecycle
alertSeparater| Constructor and Description |
|---|
Autochanger(PlutoGatewayInterface plutoGateway) |
| 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.
|
void |
checkStarted() |
StatusDataPublishedByAutoChanger |
createStatusDataPublishedByAutoChanger()
Creates an Object to be published on the STATUS bus.
|
org.lsst.ccs.AlertService |
getAlertService()
return alertService
|
AutochangerTwoTrucks |
getAutochangerTrucks()
returns trucks 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.
|
String |
getName() |
AutochangerThreeOnlineClamps |
getOnlineClamps()
returns onlineClamps to be able to send commands to onlineClamps in fcs subsystem.
|
org.lsst.ccs.Subsystem |
getSubsystem() |
void |
grabFilterAtStandby()
Close latches on filter at STANDBY.
|
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 |
postStart() |
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 trucks, latches and online clamps state.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckHardware, checkStoppedclearAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseWarning, raiseWarning, raiseWarning, raiseWarning, raiseWarningpublic Autochanger(PlutoGatewayInterface plutoGateway)
public String getName()
getName in interface AlertRaiserpublic org.lsst.ccs.Subsystem getSubsystem()
getSubsystem in interface AlertRaiserpublic org.lsst.ccs.AlertService getAlertService()
AlertRaisergetAlertService in interface AlertRaiser@Command(type=QUERY, level=1, description="Return true if an error has been detected on sensors.") public boolean isSensorsInError()
public AutochangerTwoTrucks 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()
FcsHardwareException@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 void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecyclepublic void checkStarted()
checkStarted in interface org.lsst.ccs.framework.HardwareController@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 CLOSED.") 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.HasLifecycleCopyright © 2017 LSST. All rights reserved.