public class AutochangerThreeOnlineClamps extends Object implements ControlledBySensors, org.lsst.ccs.framework.SignalHandler, org.lsst.ccs.framework.HasLifecycle
| Modifier and Type | Field and Description |
|---|---|
protected Autochanger |
autochanger |
protected AutochangerOnlineClamp[] |
clampsList |
protected ScheduledFuture<?> |
currentRampHandle |
protected org.lsst.ccs.services.DataProviderDictionaryService |
dataProviderDictionaryService |
protected int |
maxTimeToCloseClampsX |
protected int |
maxTimeToLockAllClamps |
protected int |
maxTimeToOpenClampsX |
protected int |
maxTimeToUnlockAllClamps |
protected int |
minPeriod |
protected String |
name |
protected AutochangerOnlineClamp |
onlineClampXminus |
protected AutochangerOnlineClamp |
onlineClampXplus |
protected AutochangerOnlineClamp |
onlineClampYminus |
protected String |
path |
protected int |
timeoutForLockingClamps |
protected int |
timeoutForUnlockingClamps |
alertSeparator| Constructor and Description |
|---|
AutochangerThreeOnlineClamps(AutochangerOnlineClamp onlineClampXminus,
AutochangerOnlineClamp onlineClampXplus,
AutochangerOnlineClamp onlineClampYminus)
Create a AutochangerThreeOnlineClamps with 3 AutochangerOnlineClamp.
|
| Modifier and Type | Method and Description |
|---|---|
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.
|
org.lsst.ccs.services.alert.AlertService |
getAlertService()
return alertService
|
FcsEnumerations.LockStatus |
getLockStatus() |
org.lsst.ccs.Subsystem |
getSubsystem() |
void |
homing()
do homing of the 3 clamps
|
void |
init() |
void |
initializeHardware()
initialize AC online clamps hardware after initialization.
|
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 |
setMinPeriod(int minPeriod)
set a minimal value for current ramps period
|
void |
testPeriodTask()
test periodicTask.
|
void |
unlockAndOpen()
Use by command unclampAndMoveFilterToHandoff.
|
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() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckSensorsclearAlarm, getAlertSeparator, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarmOnlyIfNew, raiseAlertOnlyEveryTenMinutes, raiseAlertOnlyEveryTenMinutes, raiseAlertOnlyIfNew, raiseWarning, raiseWarning, raiseWarning, raiseWarning, raiseWarningOnlyEveryTenMinutes, raiseWarningOnlyIfNew@LookupName protected String name
@LookupPath protected String path
@LookupField(strategy=TREE) protected Autochanger autochanger
@LookupField(strategy=TREE) protected org.lsst.ccs.services.DataProviderDictionaryService dataProviderDictionaryService
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="millisecond",
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="millisecond",
category="autochanger")
protected volatile int timeoutForUnlockingClamps
@ConfigurationParameter(description="maximum time in milliseconds to lock the 3 clamps",
units="millisecond",
category="autochanger")
protected volatile int maxTimeToLockAllClamps
@ConfigurationParameter(description="maximum time in milliseconds to unlock the 3 clamps",
units="millisecond",
category="autochanger")
protected volatile int maxTimeToUnlockAllClamps
@ConfigurationParameter(description="maximum time in milliseconds to open the 3 clamps",
units="millisecond",
category="autochanger")
protected volatile int maxTimeToOpenClampsX
@ConfigurationParameter(description="maximum time in milliseconds to close the 3 clamps",
units="millisecond",
category="autochanger")
protected volatile int maxTimeToCloseClampsX
@ConfigurationParameter(description="minimal period for current ramps. should be > 50",
units="millisecond",
range="50..1000",
category="autochanger")
protected volatile int minPeriod
public AutochangerThreeOnlineClamps(AutochangerOnlineClamp onlineClampXminus, AutochangerOnlineClamp onlineClampXplus, AutochangerOnlineClamp onlineClampYminus)
onlineClampXminus - onlineClampXplus - onlineClampYminus - public org.lsst.ccs.services.alert.AlertService getAlertService()
AlertRaisergetAlertService in interface AlertRaiserpublic org.lsst.ccs.Subsystem getSubsystem()
getSubsystem in interface AlertRaiserpublic void build()
build in interface org.lsst.ccs.framework.HasLifecyclepublic void init()
init 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()
public void unlockAndOpen()
@Command(type=QUERY,
level=0,
description="Return true if the 3 onlineClamps hardware is ready.")
public boolean myDevicesReady()
public StatusDataPublishedByAutochangerThreeClamps createStatusDataPublishedByThreeClamps()
public void publishData()
protected 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.HasLifecycleCopyright © 2023 LSST. All rights reserved.