public class AutochangerThreeOnlineClamps extends MobileItem implements ControlledBySensors
| Modifier and Type | Field and Description |
|---|---|
protected Autochanger |
autochanger |
protected AutochangerOnlineClamp[] |
clampsList |
protected ScheduledFuture<?> |
currentRampHandle |
protected int |
maxTimeToCloseClampsX |
protected int |
maxTimeToLockAllClamps |
protected int |
maxTimeToOpenClampsX |
protected int |
maxTimeToUnlockAllClamps |
protected int |
minPeriod |
protected AutochangerOnlineClamp |
onlineClampXminus |
protected AutochangerOnlineClamp |
onlineClampXplus |
protected AutochangerOnlineClamp |
onlineClampYminus |
protected int |
timeoutForLockingClamps |
protected int |
timeoutForUnlockingClamps |
agentStateService, beginTime, commandDuration, currentAction, dataProviderDictionaryService, FCSLOG, hasToWaitForEndOfAction, lock, moving, name, readSensorsHandle, scheduler, timeoutExceededalertSeparator| Constructor and Description |
|---|
AutochangerThreeOnlineClamps(AutochangerOnlineClamp onlineClampXminus,
AutochangerOnlineClamp onlineClampXplus,
AutochangerOnlineClamp onlineClampYminus)
Create a AutochangerThreeOnlineClamps with 3 AutochangerOnlineClamp.
|
| Modifier and Type | Method and Description |
|---|---|
void |
abortAction(FcsEnumerations.MobileItemAction action,
long delay)
aborts action actually running.
|
void |
build() |
void |
closeClamps()
close clamps in mode PROFILE_POSITION.
|
FcsEnumerations.LockStatus |
computeStrainGaugeLockStatus()
return a lock status computed from strain read on onlineStrainGauge.
|
StatusDataPublishedByAutochangerThreeClamps |
createStatusDataPublishedByThreeClamps()
Creates an object to be published on the status bus.
|
void |
endAction(FcsEnumerations.MobileItemAction action)
end current action.
|
FcsEnumerations.LockStatus |
getLockStatus() |
void |
homing()
do homing of the 3 clamps
|
void |
initializeHardware()
initialize AC online clamps hardware after initialization.
|
boolean |
isActionCompleted(FcsEnumerations.MobileItemAction action) |
boolean |
isClosed()
Returns true if LockStatus=CLOSED
|
boolean |
isHomingDone() |
boolean |
isInError()
Returns true if LockStatus=ERROR
|
boolean |
isInitialized()
Return true if the 3 onlineClamps hardware is lockStatusInitialized.
|
boolean |
isLocked()
Returns true if LockStatus=LOCKED
|
boolean |
isLockStatusInitialized() |
boolean |
isOpened()
Returns true if LockStatus=OPENED
|
void |
lockClamps()
Locks clamps : closed with a strong pressure (high current).
|
void |
lockFilterAtOnline()
to be used by setFilter
|
boolean |
myDevicesReady()
Return true if the 3 onlineClamps hardware is ready.
|
void |
openClamps()
Opens the 3 clamps.
|
void |
postStart() |
void |
publishData() |
void |
quickStopAction(FcsEnumerations.MobileItemAction action,
long delay) |
void |
setMinPeriod(int minPeriod)
set a minimal value for current ramps period
|
void |
startAction(FcsEnumerations.MobileItemAction action)
starts the action given as argument.
|
void |
testPeriodTask()
test periodicTask.
|
void |
unlockClamps()
Unlocks clamps : slows down current sent to controller in order to decrease
pressure on the clamps.
|
void |
updateState()
This methods updates lockStatus from the values return by the sensors.
|
protected void |
updateStateAndCheckSensors() |
void |
updateStateWithSensorsToCheckIfActionIsCompleted()
reads sensors or any device and updates state from sensors
It can be also reading a position or a current on a motor controller.
|
cancelReadingSensors, checkReadyForAction, checkStopped, executeAction, getAlertService, getHaltRequired, getName, getSubsystem, isMoving, readSensorsUntilActionIsCompleted, shutdown, signal, waitForEndOfActionclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckSensorsclearAlarm, getAlertSeparator, getAlertService, getSubsystem, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarmOnlyIfNew, raiseAlertOnlyEveryTenMinutes, raiseAlertOnlyEveryTenMinutes, raiseAlertOnlyIfNew, raiseWarning, raiseWarning, raiseWarningOnlyEveryTenMinutes, raiseWarningOnlyIfNew@LookupField(strategy=TREE) protected Autochanger autochanger
protected final AutochangerOnlineClamp onlineClampXminus
protected final AutochangerOnlineClamp onlineClampXplus
protected final AutochangerOnlineClamp onlineClampYminus
protected final AutochangerOnlineClamp[] clampsList
protected ScheduledFuture<?> currentRampHandle
@ConfigurationParameter(description="timeout in milliseconds : if closing the clamps last more than this amount of time, then the subsystem goes in ERROR.",
units="milliseconds",
category="autochanger")
protected volatile int timeoutForLockingClamps
@ConfigurationParameter(description="timeout in milliseconds : if unlocking the clamps last more than this amount of time, then the subsystem goes in ERROR.",
units="milliseconds",
category="autochanger")
protected volatile int timeoutForUnlockingClamps
@ConfigurationParameter(description="maximum time in milliseconds to lock the 3 clamps",
units="milliseconds",
category="autochanger")
protected volatile int maxTimeToLockAllClamps
@ConfigurationParameter(description="maximum time in milliseconds to unlock the 3 clamps",
units="milliseconds",
category="autochanger")
protected volatile int maxTimeToUnlockAllClamps
@ConfigurationParameter(description="maximum time in milliseconds to open the 3 clamps",
units="milliseconds",
category="autochanger")
protected volatile int maxTimeToOpenClampsX
@ConfigurationParameter(description="maximum time in milliseconds to close the 3 clamps",
units="milliseconds",
category="autochanger")
protected volatile int maxTimeToCloseClampsX
@ConfigurationParameter(description="minimal period for current ramps. should be > 50",
units="milliseconds",
range="50..1000",
category="autochanger")
protected volatile int minPeriod
public AutochangerThreeOnlineClamps(AutochangerOnlineClamp onlineClampXminus, AutochangerOnlineClamp onlineClampXplus, AutochangerOnlineClamp onlineClampYminus)
onlineClampXminus - onlineClampXplus - onlineClampYminus - public void build()
build in interface org.lsst.ccs.framework.HasLifecycle@Command(type=QUERY,
level=0,
description="Returns true if lockStatus has been first initialized from strain.")
public boolean isLockStatusInitialized()
@Command(type=QUERY,
level=0,
description="Returns true if homing has been done for the 3 ONLINE clamp controllers.")
public boolean isHomingDone()
@ConfigurationParameterChanger public void setMinPeriod(int minPeriod)
minPeriod - public FcsEnumerations.LockStatus getLockStatus()
@Command(type=QUERY,
level=0,
description="Returns true if the 3 clamps are LOCKED.")
public boolean isLocked()
@Command(type=QUERY,
level=0,
description="Returns true if the 3 clamps are CLOSED.")
public boolean isClosed()
@Command(type=QUERY,
level=0,
description="Returns true if the 3 clamps are OPENED.")
public boolean isOpened()
@Command(type=QUERY,
level=0,
description="Returns true if one of the clamp is in error.")
public boolean isInError()
isInError in interface ControlledBySensors@Command(type=QUERY,
level=0,
description="Return true if the 3 onlineClamps hardware is ready : controllers ready, controllers parameters checked and controllers configured.")
public boolean isInitialized()
@Command(type=ACTION,
level=2,
description="do homing of the 3 ONLINE clamps : open in CURRENT mode and homing of controller",
timeout=6000)
public void homing()
public void testPeriodTask()
public void closeClamps()
public void openClamps()
public void lockClamps()
public void unlockClamps()
public void lockFilterAtOnline()
@Command(type=QUERY,
level=0,
description="Return true if the 3 onlineClamps hardware is ready.")
public boolean myDevicesReady()
myDevicesReady in class MobileItempublic void quickStopAction(FcsEnumerations.MobileItemAction action, long delay)
quickStopAction in class MobileItempublic StatusDataPublishedByAutochangerThreeClamps createStatusDataPublishedByThreeClamps()
public void publishData()
publishData in class MobileItemprotected void updateStateAndCheckSensors()
@Command(type=ACTION,
level=1,
description="Update state from sensors values.")
public void updateState()
@Command(type=QUERY,
level=1,
description="Return a lock status computed from the normalizedStrain value")
public FcsEnumerations.LockStatus computeStrainGaugeLockStatus()
@Command(type=QUERY,
level=1,
description="Initialize AC online clamps 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 startAction(FcsEnumerations.MobileItemAction action)
MobileItemstartAction in class MobileItempublic void endAction(FcsEnumerations.MobileItemAction action)
MobileItemendAction in class MobileItempublic boolean isActionCompleted(FcsEnumerations.MobileItemAction action)
isActionCompleted in class MobileItempublic void abortAction(FcsEnumerations.MobileItemAction action, long delay)
MobileItemabortAction in class MobileItempublic void updateStateWithSensorsToCheckIfActionIsCompleted()
MobileItemupdateStateWithSensorsToCheckIfActionIsCompleted in class MobileItemCopyright © 2021 LSST. All rights reserved.