
public class Autochanger extends Object implements org.lsst.ccs.framework.HardwareController, FilterHolder, AlertRaiser, org.lsst.ccs.framework.HasLifecycle
alertSeparator| 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.
|
void |
decreaseCurrentMonitoring()
slow down online clamps current monitoring for the 3 clamps
|
void |
decreaseLinearRailsCurrentMonitoring()
slow down online clamps current monitoring for the 3 clamps
|
org.lsst.ccs.services.alert.AlertService |
getAlertService()
return alertService
|
AutochangerTwoTrucks |
getAutochangerTrucks()
returns trucks to be able to send commands to trucks in fcs subsystem.
|
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.
|
void |
increaseCurrentMonitoring()
speed up online clamps current monitoring for the 3 clamps
|
void |
increaseLinearRailsCurrentMonitoring()
increase current monitoring for the 2 trucks
|
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 |
isFilterOnAC(int filterID) |
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 |
isNotHoldingFilter()
Return true if FilterHolder is NOT holding filter, false otherwise.
|
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 |
setFastAcqRateLinearRails(int rate)
set a new value for the acquisition frequency of linear rail controllers
current.
|
void |
setFastAcqRateOnlineClamps(int rate)
set a new value for the acquisition frequency of ONLINE clamps
controllers current.
|
void |
setFilterOnTrucksID(int filterOnTrucksID)
Used for simulator only.
|
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 |
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, getAlertSeparator, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseWarning, raiseWarningpublic Autochanger(PlutoGatewayInterface plutoGateway)
public String getName()
getName in interface AlertRaiserpublic org.lsst.ccs.Subsystem getSubsystem()
getSubsystem in interface AlertRaiserpublic org.lsst.ccs.services.alert.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 boolean isFilterOnAC(int filterID)
@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="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="Update clamp state in reading sensors.")
public void updateStateWithSensors()
updateStateWithSensors in interface FilterHolderFcsHardwareException@Command(type=QUERY,
level=1,
description="update filterOnTrucksID.")
public void updateFilterOnTrucksID()
@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=1,
description="Return true if a filter is in trucks and latches are CLOSED.")
public boolean isHoldingFilter()
isHoldingFilter in interface FilterHolderpublic boolean isNotHoldingFilter()
FilterHolderisNotHoldingFilter in interface FilterHolder@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()
@Command(type=QUERY,
description="set a new value for the acquisition frequency of linear rail controllers current, in milliseconds.")
public void setFastAcqRateLinearRails(int rate)
rate - @Command(type=QUERY,
description="set a new value for the acquisition frequency of ONLINE clamps controllers current, in milliseconds.")
public void setFastAcqRateOnlineClamps(int rate)
rate - @Command(type=QUERY) public void increaseCurrentMonitoring()
@Command(type=QUERY) public void decreaseCurrentMonitoring()
@Command(type=QUERY) public void increaseLinearRailsCurrentMonitoring()
@Command(type=QUERY) public void decreaseLinearRailsCurrentMonitoring()
public StatusDataPublishedByAutoChanger createStatusDataPublishedByAutoChanger()
public void publishData()
Copyright © 2018 LSST. All rights reserved.