
public class Loader extends Object implements org.lsst.ccs.framework.HardwareController, FilterHolder, AlertRaiser, org.lsst.ccs.framework.HasLifecycle
| Modifier and Type | Field and Description |
|---|---|
protected org.lsst.ccs.services.DataProviderDictionaryService |
dataProviderDictionaryService |
alertSeparator| Constructor and Description |
|---|
Loader() |
| Modifier and Type | Method and Description |
|---|---|
void |
build() |
void |
checkClosedOnVoid() |
void |
checkConditionsForCarrierMotion(int targetPosition)
Checks if the loader carrier can move.
|
void |
checkConditionsForClampingHooks() |
void |
checkConditionsForOpeningHooks()
Check if the clamp can be opened.
|
void |
checkConditionsForUnclampingHooks() |
void |
checkConnectedOnCamera()
Check if loader is connected on camera.
|
void |
checkHaltRequired() |
void |
checkLoaderNotEmpty()
Check if the clamp can be closed.
|
void |
connectLoaderCANbus() |
StatusDataPublishedByLoader |
createStatusDataPublishedByLoader()
Creates an Object to be published on the STATUS bus.
|
void |
disconnectLoaderCANbus() |
org.lsst.ccs.services.alert.AlertService |
getAlertService()
return alertService
|
LoaderCarrier |
getCarrier()
Returns carrier.
|
LoaderClamp |
getClamp()
Returns clamp.
|
int |
getFilterID() |
String |
getName() |
org.lsst.ccs.Subsystem |
getSubsystem() |
void |
goToAbsolutePosition(int newPosition) |
void |
goToEngaged() |
void |
goToHandoff() |
void |
goToStorage() |
void |
initializeGateway() |
void |
initializeHardware()
initialize loader hardware after initialization.
|
boolean |
isAtHandoff()
This method returns true if the autochanger trucks are at HANDOFF position,
false otherwise.
|
boolean |
isAtOnline()
This method returns true if the autochanger trucks are at ONLINE
position, false otherwise.
|
boolean |
isAtStandby()
This method returns true if the autochanger trucks are at STANDBY position,
false otherwise.
|
boolean |
isAtStorage() |
boolean |
isAutochangerHoldingFilter()
Return true if the autochanger is holding the filter.
|
boolean |
isClampedOnFilter()
return true if a filter is present and hooks are closed.
|
boolean |
isClosedOnFilter()
return true if a filter is present and hooks are closed.
|
boolean |
isConnectedOnCamera()
Returns the sensor value loaderOnCamera.
|
boolean |
isEmpty()
Returns the boolean field empty.
|
boolean |
isHoldingFilter()
Return true if a filter is present and it is held by the loader clamp.
|
boolean |
isInitialized() |
boolean |
isNotHoldingFilter()
Return true if loader clamp is openened.
|
boolean |
isOpened() |
void |
locateHardware()
This command has to be executed after the initialization phase and after the
checkHardware command.
|
void |
moveEmptyToHandoffAndClose() |
void |
moveFilterFromHandoffToStorage()
Move a filter from HANDOFF to STORAGE.
|
void |
moveFilterFromStorageToHandoff()
move a filter from Storage position or a position between ENGAGED and
STORAGE to HANDOFF position.
|
void |
openClampAndMoveEmptyToStorage()
This command can be executed when loader is at Handoff with a filter.
|
void |
postStart()
Check that plutoGateway is booted and initialize plutoGateway.
|
String |
printHardwareState()
Print list of hardware with initialization information.
|
void |
publishData()
Publish Data on status bus for trending data base and GUIs.
|
void |
updateFCSStateToReady()
Update FCS state and FCS readyness state and publish on the status bus.
|
void |
updateStateAndCheckSensors() |
void |
updateStateWithSensors()
This methods updates the carrier and clamp state in reading all the sensors.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckHardware, checkStoppedclearAlarm, getAlertSeparator, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarmOnlyIfNew, raiseAlertOnlyEveryTenMinutes, raiseAlertOnlyEveryTenMinutes, raiseAlertOnlyIfNew, raiseWarning, raiseWarning, raiseWarningOnlyEveryTenMinutes, raiseWarningOnlyIfNew@LookupField(strategy=TREE) protected org.lsst.ccs.services.DataProviderDictionaryService dataProviderDictionaryService
public org.lsst.ccs.services.alert.AlertService getAlertService()
AlertRaisergetAlertService in interface AlertRaiserpublic String getName()
getName in interface AlertRaiserpublic org.lsst.ccs.Subsystem getSubsystem()
getSubsystem in interface AlertRaiserpublic LoaderCarrier getCarrier()
public LoaderClamp getClamp()
public void build()
build in interface org.lsst.ccs.framework.HasLifecycle@Command(type=QUERY, level=0, description="Return true if hardware (controllers and plutoGateway) is correctly initializedand homing of the controllers is done.") public boolean isInitialized()
@Command(type=QUERY, level=0, description="Return true if there is no filter in the loader. This command doesn\'t read again the sensors.") public boolean isEmpty()
@Command(type=QUERY, level=0, description="Return true if the loader is connected on the camera. This command doesn\'t read again the sensors.") public boolean isConnectedOnCamera()
@Command(type=QUERY, level=0, description="Return true if the autochanger is holding the filter. This command doesn\'t read again the sensors.") public boolean isAutochangerHoldingFilter()
FcsHardwareException@Command(type=QUERY, level=0, description="Return true if a filter is present and it is held by the loader clamp.") public boolean isHoldingFilter()
isHoldingFilter in interface FilterHolderFcsHardwareExceptionpublic boolean isClampedOnFilter()
public boolean isClosedOnFilter()
public boolean isOpened()
@Command(type=QUERY, level=0, description="Return true if loader clamp is openened.") public boolean isNotHoldingFilter()
isNotHoldingFilter in interface FilterHolderFcsHardwareException@Command(type=ACTION, level=1, description="Attention ! this commands does the homing of the controllers and might move hardware. Initialize loader hardware.", alias="homing") public void locateHardware()
public void checkClosedOnVoid()
public void checkHaltRequired()
@Command(type=QUERY, level=1, description="Initialize loader hardware after initialization. To be executed if during boot process some hardware is missing.") public void initializeHardware()
public void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecyclepublic void initializeGateway()
public void checkConnectedOnCamera()
RejectedCommandException - if not connected on camera@Command(type=QUERY, level=1, description="Check if the carrier can move.") public void checkConditionsForCarrierMotion(int targetPosition)
targetPosition - FcsHardwareExceptionFailedCommandException@Command(type=QUERY, level=1, description="Check if the clamp can be opened.") public void checkConditionsForOpeningHooks()
FcsHardwareExceptionpublic void checkConditionsForClampingHooks()
public void checkConditionsForUnclampingHooks()
@Command(type=QUERY, level=1, description="Check if the clamp can be closed.") public void checkLoaderNotEmpty()
FcsHardwareExceptionpublic void updateStateAndCheckSensors()
@Command(type=ACTION, level=1, description="Update clamp state in reading sensors.") public void updateStateWithSensors()
updateStateWithSensors in interface FilterHolderFcsHardwareException@Command(type=ACTION, level=1, description="Update FCS state and FCS readyness state and publishes on the status bus.") public void updateFCSStateToReady()
public void disconnectLoaderCANbus()
public void connectLoaderCANbus()
public void goToStorage()
public void goToHandoff()
public void goToEngaged()
public void goToAbsolutePosition(int newPosition)
@Command(type=ACTION, level=1, description="Move a filter from STORAGE to HANDOFF. This command executes sequence of actions :\n- check initial conditions (a filter is at STORAGE) \n- move carrier to ENGAGED with high speed\n- unclamp filter \n- move slowly filter to HANDOFF. ", timeout=120000) public void moveFilterFromStorageToHandoff()
@Command(type=ACTION, level=1, description="Move a filter from HANDOFF to STORAGE : move filter slowly to ENGAGEDthen clamp and move filter to STORAGE with high speed.", timeout=120000) public void moveFilterFromHandoffToStorage()
@Command(type=ACTION, level=1, description="open clamp and move empty from HANDOFF to STORAGE Position at high speed.", timeout=120000) public void openClampAndMoveEmptyToStorage()
@Command(type=ACTION, level=1, description="move empty from Storage to Handoff at high speed and then close clamp.", timeout=120000) public void moveEmptyToHandoffAndClose()
public StatusDataPublishedByLoader createStatusDataPublishedByLoader()
public void publishData()
public boolean isAtHandoff()
FilterHolderisAtHandoff in interface FilterHolderpublic boolean isAtStandby()
FilterHolderisAtStandby in interface FilterHolderpublic boolean isAtOnline()
FilterHolderisAtOnline in interface FilterHolderpublic boolean isAtStorage()
@Command(type=QUERY, level=1, description="Print list of hardware with initialization information.") public String printHardwareState()
public int getFilterID()
getFilterID in interface FilterHolderCopyright © 2021 LSST. All rights reserved.