public class AutochangerTwoTrucks extends MobileItem implements org.lsst.ccs.framework.ClearAlertHandler
agentStateService, currentAction, FCSLOG, hasToWaitForEndOfAction, lock, name, readSensorsHandle, s, scheduleralertSeparator| Constructor and Description |
|---|
AutochangerTwoTrucks(AutochangerTruck truckXminus,
AutochangerTruck truckXplus,
EPOSControllerForLinearRail linearRailMasterController,
EPOSControllerForLinearRail linearRailSlaveController)
Build a new AutoChangerTrucksModule.
|
| Modifier and Type | Method and Description |
|---|---|
void |
abortAction(FcsEnumerations.MobileItemAction action,
long delay)
aborts action actually running.
|
void |
activateBrakesAndDisable()
activate both brakes then disable voltage of the 2 controllers.
|
void |
alignSlave()
move slave truk to masterPosition.
|
org.lsst.ccs.framework.ClearAlertHandler.ClearAlertCode |
canClearAlert(org.lsst.ccs.bus.data.Alert alert) |
void |
checkConditionsForTrucksMotion()
This method sends Exceptions if the conditions for trucks motion are not
filled.
|
void |
checkDeltaPosition() |
void |
checkPositionSensors()
This method is called at the end of actions to check that after a
motion to well known position as STANDBY, HANDOFF and ONLINE, position
sensors confirm the trucks position.
|
void |
configureControllers()
Configure Autochanger trucks master and slave controllers.
|
StatusDataPublishedByAutoChangerTrucks |
createStatusDataPublishedByAutoChangerTrucks()
Creates an object to be published on the status bus.
|
void |
enableControllersAndReleaseBrake()
This method is used in the startAction method.
|
int |
getHandoffPosition()
Return HANDOFF masterPosition.
|
int |
getOnlinePosition()
Return ONLINE position.
|
int |
getPosition()
Return actual trucks masterPosition.
|
int |
getStandbyPosition()
Return STANDBY masterPosition.
|
long |
getTimeoutForTrucksMotion()
Return the timeout for trucks motion.
|
void |
goToHandOff()
Move Autochanger trucks to the Handoff position.
|
void |
goToOnline()
Move Autochanger trucks to the Online position.
|
void |
goToStandby()
Move Autochanger trucks to the Standby position.
|
void |
homing()
Do homing of both controllers.
|
void |
initializeControllers() |
boolean |
isActionCompleted(FcsEnumerations.MobileItemAction action) |
boolean |
isAtHandoff()
Returns the boolean field atHandoff.
|
boolean |
isAtOnline()
Returns the boolean field atOnline.
|
boolean |
isAtStandby()
Returns the boolean field atStandby.
|
boolean |
isHomingDone()
Return true if the homing of the trucks has been done.
|
boolean |
isInitialized()
Return true if both controllers are initialized and homing of trucks are
done.
|
boolean |
isPositionSensorsInError()
Return true if TruckXminus position sensors or TruckXminus position
sensors are in error.
|
void |
moveAndClampFilterOnline()
move filter at online position and lock filter with a docking process.
|
void |
moveToAbsoluteTargetPosition(int targetPosition)
Move the trucks to an absolute position given as argument.
|
void |
moveToAbsoluteTargetPositionDangerous(int targetPosition)
Move the trucks to an absolute position given as argument.
|
boolean |
myDevicesReady()
Return True if all CAN open devices useful for this MobileItemMobile are ready for an action.
|
void |
postStart() |
void |
publishData() |
void |
quickStopAction(FcsEnumerations.MobileItemAction action,
long delay) |
int |
readPosition()
For the GUI and end users for test purpose.
|
double |
readProximitySensorDevice() |
void |
setNaturalPosition(int pos) |
void |
shutdown()
This shutdowns the scheduler.
|
void |
startAction(FcsEnumerations.MobileItemAction action)
starts the action given as argument.
|
void |
updatePosition()
Updates the field position of the trucks in reading the CPU of the
controller.
|
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, signal, waitForEndOfActionclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckHardware, checkStartedclearAlarm, getAlertSeparator, raiseAlarm, raiseAlarm, raiseAlarm, raiseAlarm, raiseWarning, raiseWarningpublic AutochangerTwoTrucks(AutochangerTruck truckXminus, AutochangerTruck truckXplus, EPOSControllerForLinearRail linearRailMasterController, EPOSControllerForLinearRail linearRailSlaveController)
truckXminus - truckXplus - linearRailMasterController - linearRailSlaveController - @ConfigurationParameterChanger public void setNaturalPosition(int pos)
@Command(type=QUERY,
level=1,
description="Return actual trucks position (master position). Doesn\'t read again the position on the controller.")
public int getPosition()
@Command(type=QUERY,
level=1,
description="Return HANDOFF position. Doesn\'t read again the position on the controller.")
public int getHandoffPosition()
@Command(type=QUERY,
level=1,
description="Return STANDBY position. Doesn\'t read again the position on the controller.")
public int getStandbyPosition()
@Command(type=QUERY,
level=1,
description="Return ONLINE position. Doesn\'t read again the position on the controller.")
public int getOnlinePosition()
@Command(type=QUERY,
level=1,
description="Return timeout for trucks motion.")
public long getTimeoutForTrucksMotion()
@Command(type=QUERY,
level=0,
description="Return true if the carrier is at handoff position. This command doesn\'t read again the sensors.")
public boolean isAtHandoff()
@Command(type=QUERY,
level=0,
description="Return true if the carrier is at ONLINE position. This command doesn\'t read again the sensors.")
public boolean isAtOnline()
@Command(type=QUERY,
level=0,
description="Return true if the carrier is at STANDBY position. This command doesn\'t read again the sensors.")
public boolean isAtStandby()
@Command(type=QUERY,
level=0,
description="Return true if the homing of the trucks has been done.")
public boolean isHomingDone()
@Command(type=QUERY,
level=0,
description="Return true if TruckXminus position sensors or TruckXminus position sensors are in error.")
public boolean isPositionSensorsInError()
public void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecyclepublic void initializeControllers()
@Command(type=ACTION,
level=1,
description="Configure Autochanger trucks master and slave controllers.",
alias="initControllers")
public void configureControllers()
FcsHardwareException@Command(type=QUERY,
level=0,
description="Return true if both controllers are initialized and homing of trucks are done.")
public boolean isInitialized()
@Command(type=QUERY,
level=1,
description="Check if the motion of trucks are allowed.")
public void checkConditionsForTrucksMotion()
@Command(type=ACTION,
level=1,
description="Move Autochanger trucks to the Handoff position.",
alias="goToHandoff")
public void goToHandOff()
@Command(type=ACTION,
level=1,
description="Move Autochanger trucks to the Online position.")
public void goToOnline()
FcsHardwareException@Command(type=ACTION,
level=1,
description="Move Autochanger trucks to the Standby position.")
public void goToStandby()
@Command(type=ACTION,
level=1,
description="Move Autochanger trucks to the absolute position given as argument. At the end of motion : doesn\'t align slave, active brakes and disable controllers",
alias="mobeABSPos",
timeout=20000)
public void moveToAbsoluteTargetPosition(int targetPosition)
targetPosition - RejectedCommandExceptionFcsHardwareException@Command(type=ACTION,
level=3,
description="Move Autochanger trucks to the absolute position given as argument. At the end of motion : doesn\'t align slave, active brakes and disable controllers VERY DANGEROUS COMMAND. Only for tests with prototype.",
timeout=20000)
public void moveToAbsoluteTargetPositionDangerous(int targetPosition)
targetPosition - RejectedCommandExceptionFcsHardwareException@Command(type=ACTION,
description="goToOnline with filter, adjust position, close and lock clamps",
timeout=20000)
public void moveAndClampFilterOnline()
@Command(type=ACTION,
level=1,
description="Activate brakes and disable the 2 controllers.")
public void activateBrakesAndDisable()
public void startAction(FcsEnumerations.MobileItemAction action)
MobileItemstartAction in class MobileItem@Command(type=ACTION,
level=1,
description="Enable and release brake for the 2 controllers.")
public void enableControllersAndReleaseBrake()
@Command(type=ACTION,
level=1,
description="Align slave controller position to master controller position.",
timeout=20000)
public void alignSlave()
public void abortAction(FcsEnumerations.MobileItemAction action, long delay)
MobileItemabortAction in class MobileItempublic void quickStopAction(FcsEnumerations.MobileItemAction action, long delay)
quickStopAction in class MobileItempublic void checkPositionSensors()
FcsHardwareException@Command(type=ACTION,
level=1,
description="Do homing for both controllers.")
public void homing()
@Command(type=QUERY,
level=1,
description="Update trucks position in reading controller.")
public void updatePosition()
FcsHardwareException@Command(type=QUERY,
level=1,
description="Read position on controllers, compute difference and throw exceptionif difference is > 1000.")
public void checkDeltaPosition()
@Command(type=QUERY,
description="Update trucks position in reading controller and return position.")
public int readPosition()
RejectedCommandExceptionFcsHardwareException@Command(type=QUERY,
description="Return a voltage in mV which represents a distance between between filterand filter beam.")
public double readProximitySensorDevice()
public boolean myDevicesReady()
MobileItemmyDevicesReady in class MobileItempublic boolean isActionCompleted(FcsEnumerations.MobileItemAction action)
isActionCompleted in class MobileItempublic void updateStateWithSensorsToCheckIfActionIsCompleted()
MobileItemupdateStateWithSensorsToCheckIfActionIsCompleted in class MobileItempublic org.lsst.ccs.framework.ClearAlertHandler.ClearAlertCode canClearAlert(org.lsst.ccs.bus.data.Alert alert)
canClearAlert in interface org.lsst.ccs.framework.ClearAlertHandlerpublic StatusDataPublishedByAutoChangerTrucks createStatusDataPublishedByAutoChangerTrucks()
public void publishData()
publishData in class MobileItempublic void shutdown()
MobileItemshutdown in interface org.lsst.ccs.framework.HasLifecycleshutdown in class MobileItemCopyright © 2018 LSST. All rights reserved.