Preset Positions

All pcdsdevices objects that involve moving positioners across a continuum of positions can save preset positions. See Presets for a full API description, or stay here for the user guide.

Creating a Preset

A device that can save and load presets will have a presets attribute. This is the interface that is used to create new presets. The module is configurable to have differing presets catagories, and these are typically used to have “permanent” and “temporary” presets, and in hutch-python are laid out as such:

Method

Description

add_hutch(name, value[, comment])

Add a permenant preset

add_exp(name, value[, comment])

Add a temporary preset

add_hutch_here(name[, comment])

Add a permenant preset with this spot as the value

add_exp_here(name[, comment])

Add a temporary preset with this spot as the value

Using a Preset

After a preset is created, you can use the preset using three special methods. These will be added directly to the object, not to the presets attribute:

Method

Description

mv_presetname([timeout, wait])

Move to this preset position

umv_presetname([timeout])

Move to thie preset position and update

wm_presetname()

Check the offset from this preset position

Manage Existing Presets

You can see all existing presets via checking my_motor.presets.positions. In IPython, this will show you all the current presets. You can also use this presets.positions object to manage the set positions. Each attribute is an instance of PresetPosition that can be managed. See PresetPosition for the full API.

Configuring Presets

Presets are configured in hutch-python to use add_hutch and add_exp as the preset-adding methods, with the add_hutch method saving to a hutch directory and add_exp saving to an experiment directory. This can be changed for other applications using the setup_preset_paths method. This method must be called for the presets to be saved and loaded.