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.