public class CarouselModule extends org.lsst.ccs.framework.Module implements Carousel
| Modifier and Type | Field and Description |
|---|---|
protected static org.lsst.ccs.utilities.logging.Logger |
fcslog |
static String |
publishedByCarouselOutputName |
| Constructor and Description |
|---|
CarouselModule(String aName,
int aTickMillis,
int nbSockets,
List<CarouselSocket> socketsList) |
| Modifier and Type | Method and Description |
|---|---|
static double |
addAngle(double angle1,
double angle2)
Add 2 angles : an angle is a double which value is between -360 and +360
|
String |
engageBrake()
Lock the carousel (or engage the break).
|
void |
engageClampsContact()
After a rotation, when the carousel is stopped the power contact can be engaged
again.
|
Actuator |
getClampActuatorXminus() |
Actuator |
getClampActuatorXplus() |
CarouselClampModule |
getClampXminus()
This method returns the clampX- which is at standby position.
|
CarouselClampModule |
getClampXplus()
This method returns the clampX+ which is at standby position.
|
Filter |
getFilterAtStandby()
This methods return the filter which is in the socketAtStandby at standby position.
|
String |
getFilterInStandbyName() |
double |
getFilterPosition(Filter filter) |
int |
getNbSockets() |
double |
getPosition()
The carousel position measures the rotation angle of the carousel within
the fixed part of the camera.
|
CarouselSocket |
getSocketAtStandby()
This methods returns the socket at standby position or null if there is no
socket at standby position.
|
int |
getSocketNumber(Filter filter) |
CarouselSocket[] |
getSockets() |
double |
getStandbyPositionForFilter(Filter filter) |
ModuleState |
getState() |
StatusDataPublishedByCarousel |
getStatusData() |
String |
grabFilterAtStandby(Filter filter)
This method has to be executed when a filter has just been moved on the carousel
at standby position by the autochanger.
|
String |
grabFilterAtStandby(Object filterName) |
void |
initModule() |
boolean |
isAbleToMove()
The carousel can be EngageBrakeed by a break or prevented to move by the
autochanger fliprail.
|
boolean |
isHoldingFilterAtStandby() |
boolean |
isLocked() |
boolean |
isOnStandby(Filter filter) |
boolean |
isReadyToGrabAFilterAtStandby()
This method let us know if the carousel is ready to receive a filter at
standby position :
- the carousel must not rotate
- an empty socketAtStandby is at standby position.
|
boolean |
isRotating() |
protected String |
moveFilterToStandby(Filter filter)
This method rotates the carousel to put the given filter in front of the autochanger
(standby position).
|
void |
printSockets()
Print for every socket on carousel, the name of the filter it contains.
|
void |
processUpdate(Observable source,
org.lsst.ccs.framework.Module.ValueUpdate v)
What to do when the Modules we observe send there new values : we notify our own observers
|
void |
publishData()
Publish Data on status bus for trending data base and GUIs.
|
String |
releaseBrake()
UnEngageBrake the carousel (or disengage the break)
|
String |
releaseClamps()
This is a command that can be sent to the carousel.
|
void |
releaseClampsContact()
Before rotating the carousel we have to release the power contact between the
moving part and the fixed part.
|
void |
removeFilterFromCarousel(Filter filter) |
String |
rotate(double angle)
Deprecated.
|
void |
setState(ModuleState state) |
void |
tick()
What has to be done for each tick of the timer.
|
String |
toString() |
void |
ungrabFilterAtStandby(Filter filter) |
String |
unlockClamps() |
String |
unlockClamps(Filter filter)
This methods ReleaseBrakes the 2 clamps at standby position, without Thread.sleep
|
void |
updateClampsStateWithSensors()
Read the clamps state from PDO : all the clamp sensors are read at one time.
|
void |
updateClampsStateWithSensorsFromPDO()
Read the clamps state from PDO : all the clamp sensors are read at one time.
|
void |
updateClampsStateWithSensorsFromSDO()
Read the clamp sensors one by one with RSDO command
|
alias, getComponentTree, getEnvironment, getModule, getName, getNObserverThreads, getObservables, getSubsystem, getTickMillis, init, listens, percolateSignal, postStart, sendSignal, sendSignalWithTimeLimit, setEnvironment, setName, setNObserverThreads, setObservables, setTickMillis, shutdownNow, signal, startTicking, updateaddObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChangedprotected static final org.lsst.ccs.utilities.logging.Logger fcslog
public static final String publishedByCarouselOutputName
public CarouselModule(String aName, int aTickMillis, int nbSockets, List<CarouselSocket> socketsList)
public CarouselSocket[] getSockets()
public double getPosition()
CarouselgetPosition in interface Carouselpublic ModuleState getState()
public void setState(ModuleState state)
public int getNbSockets()
public Actuator getClampActuatorXminus()
public Actuator getClampActuatorXplus()
public CarouselClampModule getClampXminus()
public CarouselClampModule getClampXplus()
public void initModule()
initModule in class org.lsst.ccs.framework.Modulepublic StatusDataPublishedByCarousel getStatusData()
public void publishData()
public void processUpdate(Observable source, org.lsst.ccs.framework.Module.ValueUpdate v)
processUpdate in class org.lsst.ccs.framework.Modulepublic CarouselSocket getSocketAtStandby()
CarouselgetSocketAtStandby in interface Carouselpublic Filter getFilterAtStandby()
public String getFilterInStandbyName()
@Command(level=1,
description="Returns true if Carousel is stopped and no filter is at STANDBY position",
type=QUERY)
public boolean isReadyToGrabAFilterAtStandby()
throws FcsHardwareException
FcsHardwareException@Command(level=1,
description="Returns true if a filter is clamped at STANDBY position",
type=QUERY)
public boolean isHoldingFilterAtStandby()
throws FcsHardwareException
FcsHardwareExceptionpublic boolean isRotating()
@Command(level=1,
description="Returns true if the brake is released",
type=QUERY)
public boolean isAbleToMove()
CarouselisAbleToMove in interface Carouselpublic boolean isLocked()
@Command(level=1,
description="Engage the carousel brake to stop the rotation",
type=ACTION)
public String engageBrake()
CarouselengageBrake in interface Carousel@Command(level=1,
description="Release the carousel brake",
type=ACTION)
public String releaseBrake()
CarouselreleaseBrake in interface Carouselpublic void updateClampsStateWithSensorsFromSDO()
throws org.lsst.ccs.messaging.BadCommandException,
FcsHardwareException
org.lsst.ccs.messaging.BadCommandExceptionFcsHardwareExceptionpublic void updateClampsStateWithSensorsFromPDO()
throws org.lsst.ccs.messaging.BadCommandException,
FcsHardwareException
org.lsst.ccs.messaging.BadCommandExceptionFcsHardwareException@Command(level=1,
description="Read clamps sensors and update clamps state",
type=QUERY)
public void updateClampsStateWithSensors()
throws org.lsst.ccs.messaging.BadCommandException,
FcsHardwareException
org.lsst.ccs.messaging.BadCommandExceptionFcsHardwareException@Command(level=1,
description="Rotate carousel for an angle",
type=ACTION)
@Deprecated
public String rotate(double angle)
throws IllegalArgumentException,
org.lsst.ccs.messaging.BadCommandException
rotate in interface Carouselangle - : rotation angle
The rotation angle can be positive or negative.
It must be a double and have a value between -360.0 and 360.0IllegalArgumentException, - BadCommandExceptionorg.lsst.ccs.messaging.BadCommandExceptionIllegalArgumentException - if the angle given as parameter
is not in the ranges of available values.public void tick()
tick in class org.lsst.ccs.framework.Modulepublic void removeFilterFromCarousel(Filter filter) throws org.lsst.ccs.messaging.BadCommandException, FcsHardwareException, org.lsst.ccs.messaging.ErrorInCommandExecutionException
org.lsst.ccs.messaging.BadCommandExceptionFcsHardwareExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionpublic double getFilterPosition(Filter filter)
public double getStandbyPositionForFilter(Filter filter)
public int getSocketNumber(Filter filter)
filter - @Command(level=1,
description="Rotate carousel to put filter at standby position",
type=ACTION)
protected String moveFilterToStandby(Filter filter)
throws org.lsst.ccs.messaging.BadCommandException
filter - org.lsst.ccs.messaging.BadCommandExceptionpublic void printSockets()
public String grabFilterAtStandby(Object filterName) throws org.lsst.ccs.messaging.BadCommandException, org.lsst.ccs.messaging.ErrorInCommandExecutionException, FcsHardwareException
org.lsst.ccs.messaging.BadCommandExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionFcsHardwareExceptionpublic String grabFilterAtStandby(Filter filter) throws org.lsst.ccs.messaging.BadCommandException, org.lsst.ccs.messaging.ErrorInCommandExecutionException, FcsHardwareException
filter - org.lsst.ccs.messaging.BadCommandExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionFcsHardwareExceptionpublic void ungrabFilterAtStandby(Filter filter) throws org.lsst.ccs.messaging.BadCommandException, org.lsst.ccs.messaging.ErrorInCommandExecutionException, FcsHardwareException
org.lsst.ccs.messaging.BadCommandExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionFcsHardwareException@Command(level=1,
description="Release clamps at standby position to get ready to clamp again",
type=ACTION)
public String releaseClamps()
throws org.lsst.ccs.messaging.BadCommandException,
org.lsst.ccs.messaging.ErrorInCommandExecutionException,
FcsHardwareException
CarouselreleaseClamps in interface Carouselorg.lsst.ccs.messaging.BadCommandExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionFcsHardwareExceptionpublic String unlockClamps(Filter filter) throws org.lsst.ccs.messaging.BadCommandException, org.lsst.ccs.messaging.ErrorInCommandExecutionException, FcsHardwareException
unlockClamps in interface Carouselfilter - org.lsst.ccs.messaging.BadCommandExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionFcsHardwareException@Command(level=3,
description="Unlock the clamps",
type=ACTION)
public String unlockClamps()
throws org.lsst.ccs.messaging.BadCommandException,
FcsHardwareException,
org.lsst.ccs.messaging.ErrorInCommandExecutionException
org.lsst.ccs.messaging.BadCommandExceptionFcsHardwareExceptionorg.lsst.ccs.messaging.ErrorInCommandExecutionExceptionpublic boolean isOnStandby(Filter filter)
public static double addAngle(double angle1,
double angle2)
angle1 - angle2 - public void releaseClampsContact()
CarouselreleaseClampsContact in interface Carouselpublic void engageClampsContact()
CarouselengageClampsContact in interface CarouselCopyright © 2015 LSST. All rights reserved.