Package gda.device.continuouscontroller
Interface TrajectoryMoveController
- All Superinterfaces:
Configurable,ContinuousMoveController,Device,Findable,HardwareTriggerProvider,gda.observable.IObservable
- All Known Implementing Classes:
DummyTrajectoryMoveController
A trajectory move controller represents a motor controller that move one or more axes through an arbitrary trajectory
while generating hardware triggers. Hardware triggers can be uniformly spaced in time if configured with
HardwareTriggerProvider.setTriggerPeriod(double), or may be non-uniform if configured with setTriggerDeltas(double[]); not
all controllers need support the latter.-
Method Summary
Modifier and TypeMethodDescriptionvoidCalled in sequence specifies the trajectory over all axes point by point.Double[]Return the last point added.intGet the number of axes configured on the controller.voidsetAxisTrajectory(int axisIndex, double[] trajectory) Set the entire trajectory for one axis.voidsetTriggerDeltas(double[] triggerDeltas) Set a profile of potentially non-uniformly spaced trigger times.Methods inherited from interface gda.factory.Configurable
configure, isConfigureAtStartup, isConfigured, reconfigureMethods inherited from interface gda.device.continuouscontroller.ContinuousMoveController
isMoving, prepareForMove, startMove, stopAndReset, waitWhileMovingMethods inherited from interface gda.device.Device
close, getAttribute, getProtectionLevel, setAttribute, setProtectionLevelMethods inherited from interface gda.device.continuouscontroller.HardwareTriggerProvider
getNumberTriggers, getTotalTime, setTriggerPeriodMethods inherited from interface gda.observable.IObservable
addIObserver, deleteIObserver, deleteIObservers
-
Method Details
-
getNumberAxes
int getNumberAxes()Get the number of axes configured on the controller. This may be less than the maximum number the controller supports,- Returns:
- number of configured axes.
-
addPoint
Called in sequence specifies the trajectory over all axes point by point. Alternatively usesetAxisTrajectory(int, double[]).- Parameters:
point- Array with a value for each axis. If an axis value is null null, indicating this axis is not to be used, then all positions for this axis must also be null.- Throws:
DeviceException
-
getLastPointAdded
Return the last point added.- Returns:
- the last point added, or null if no points have been added or
setAxisTrajectory(int, double[])has been used to configure the controller. - Throws:
DeviceException
-
setAxisTrajectory
void setAxisTrajectory(int axisIndex, double[] trajectory) throws DeviceException, InterruptedException Set the entire trajectory for one axis. Alternatively useaddPoint(Double[]).- Parameters:
axisIndex-trajectory-- Throws:
DeviceExceptionInterruptedException
-
setTriggerDeltas
Set a profile of potentially non-uniformly spaced trigger times. May not be supported by all controllers. Alternatively useHardwareTriggerProvider.setTriggerPeriod(double).- Parameters:
triggerDeltas-- Throws:
DeviceException- if not supported or the request is not possible.
-