Interface IScanPointGeneratorModel

All Superinterfaces:
INameable, IScanPathModel
All Known Subinterfaces:
IAxialModel, IBoundingBoxModel, IBoundingLineModel, IMapPathModel
All Known Implementing Classes:
AbstractAxialStepModel, AbstractBoundingBoxModel, AbstractBoundingLineModel, AbstractMapModel, AbstractMultiModel, AbstractOverlapModel, AbstractPointsModel, AbstractTwoAxisGridModel, AxialArrayModel, AxialCollatedStepModel, AxialMultiStepModel, AxialPointsModel, AxialStepModel, CompoundModel, ConcurrentMultiModel, ConsecutiveMultiModel, InterpolatedMultiScanModel, JythonGeneratorModel, OneAxisPointRepeatedModel, StaticModel, TwoAxisGridPointsModel, TwoAxisGridPointsRandomOffsetModel, TwoAxisGridStepModel, TwoAxisLinePointsModel, TwoAxisLineStepModel, TwoAxisLissajousModel, TwoAxisPointSingleModel, TwoAxisPtychographyModel, TwoAxisSpiralModel

public interface IScanPointGeneratorModel extends IScanPathModel
IScanPointGeneratorModels are any model that can be created through the ScanPointGenerator, as each should extend Generator.py they need to provide Axes names, Units (either 1 or N where N is the number of axes), Alternating, number of points for each Generator. As all Generator are wrapped in CompoundGenerators, Continuousness is also contained
  • Method Details

    • isContinuous

      boolean isContinuous()
      If true the scan is continuous if possible, i.e. the motors continue to move while the detectors are exposed, if false the motors stop at each point for the detectors are exposed. For a scan to be continous, generally it must done by malcolm device, i.e. for a GDA point of view the scan contains exactly one runnable device and that must be a malcolm device. Additionally continuous scanning is only possible for certain path models, e.g. TwoAxisGridPointsModel, where even then the scan will only be continuous in the fast axis, and step in the slow axis, where the x-axis is the fast axis by default.
      Returns:
      true if the scan should be continuous, false otherwise.
    • setContinuous

      void setContinuous(boolean continuous)
    • isAlternating

      boolean isAlternating()
      This setting only makes sense when there is another model outside of this model within a CompoundModel: e.g. a StepModel in Energy outside of a Spiral in x, y will run the points of the Spiral backwards every alternate step of Energy, preventing having to return to starting positions of that scan. In the special case of Grid shaped scans both axes of the scan alternate, so it runs: bottom left -> bottom right -> top right -> top left, top left -> top right...
      Returns:
      true if the scan is a alternating, false otherwise
    • setAlternating

      void setAlternating(boolean continuous)
    • getUnits

      List<String> getUnits()
    • setUnits

      void setUnits(List<String> units)
    • updateFromPropertiesMap

      void updateFromPropertiesMap(Map<String,Object> properties)