pcdsdevices.pseudopos.PseudoPositioner
- class pcdsdevices.pseudopos.PseudoPositioner(*args, **kwargs)
- Methods - check_single(pseudo_single, single_pos)
- Check if a new position for a single pseudo positioner is valid 
 - configure(d: Dict[str, Any]) Tuple[Dict[str, Any], Dict[str, Any]]
- Configure the device for something during a run - This default implementation allows the user to change any of the - configuration_attrs. Subclasses might override this to perform additional input validation, cleanup, etc.- Parameters:
- d (dict) – The configuration dictionary. To specify the order that the changes should be made, use an OrderedDict. 
- Returns:
- (old, new) tuple of dictionaries 
- Where old and new are pre- and post-configure configuration states. 
 
 
 - describe() OrderedDictType[str, Dict[str, Any]]
- Provide schema and meta-data for - read().- This keys in the - OrderedDictthis method returns must match the keys in the- OrderedDictreturn by- read().- This provides schema related information, (ex shape, dtype), the source (ex PV name), and if available, units, limits, precision etc. - Returns:
- data_keys (OrderedDict) – The keys must be strings and the values must be dict-like with the - event_model.event_descriptor.data_keyschema.
 
 - forward(pseudo_pos)
- Calculate a RealPosition from a given PseudoPosition - Must be defined on the subclass. - Parameters:
- pseudo_pos (PseudoPosition) – The pseudo position input 
- Returns:
- real_position (RealPosition) – The real position output 
 
 - get(**kwargs)
- Get the value of all components in the device - Keyword arguments are passed onto each signal.get(). Components beginning with an underscore will not be included. 
 - inverse(real_pos)
- Calculate a PseudoPosition from a given RealPosition - Must be defined on the subclass. - Parameters:
- real_position (RealPosition) – The real position input 
- Returns:
- pseudo_pos (PseudoPosition) – The pseudo position output 
 
 - move(position, wait=True, timeout=None, moved_cb=None)
- Move to a specified position, optionally waiting for motion to complete. - Parameters:
- position – Pseudo position to move to. 
- moved_cb (callable) – Call this callback when movement has finished. This callback must accept one keyword argument: ‘obj’ which will be set to this positioner instance. 
- timeout (float, optional) – Maximum time to wait for the motion. If None, the default timeout for this positioner is used. 
 
- Returns:
- status (MoveStatus) 
- Raises:
- TimeoutError – When motion takes longer than - timeout.
- ValueError – On invalid positions. 
- RuntimeError – If motion fails other than timing out. 
 
 
 - move_single(pseudo, position, **kwargs)
- Move one PseudoSingle axis to a position - All other positioners will use their current setpoint/target value, if available. Failing that, their current readback value will be used (see - PseudoSingle.syncand- PseudoSingle.target).
 - read() OrderedDictType[str, Dict[str, Any]]
- Read data from the device. - This method is expected to be as instantaneous as possible, with any substantial acquisition time taken care of in - trigger().- The - OrderedDictreturned by this method must have identical keys (in the same order) as the- OrderedDictreturned by- describe().- By convention, the first key in the return is the ‘primary’ key and maybe used by heuristics in - bluesky.- The values in the ordered dictionary must be dict (-likes) with the keys - {'value', 'timestamp'}. The- 'value'may have any type, the timestamp must be a float UNIX epoch timestamp in UTC.- Returns:
- data (OrderedDict) – The keys must be strings and the values must be dict-like with the keys - {'value', 'timestamp'}
 
 - read_configuration() OrderedDictType[str, Dict[str, Any]]
- Dictionary mapping names to value dicts with keys: value, timestamp - To control which fields are included, change the Component kinds on the device, or modify the - configuration_attrslist.
 - set(position, **kwargs)
- Move to a new position asynchronously - Parameters:
- position (PseudoPosition) – Position for the all of the pseudo axes 
- Returns:
- status (MoveStatus) 
 
 - set_current_position(position)
- Adjust all offsets so that the pseudo position matches the input. - This will raise an AttributeError if any of the real motors is missing a - set_current_positionmethod.- Parameters:
- position (PseudoPos) – The position 
 
 - stop(success=False)
- Stop the Device and all (instantiated) subdevices 
 - summary()
 - to_pseudo_tuple(*args, **kwargs)
- Convert arguments to a PseudoPosition namedtuple and kwargs 
 - to_real_tuple(*args, **kwargs)
- Convert arguments to a RealPosition namedtuple and kwargs 
 - trigger() StatusBase
- Trigger the device and return status object. - This method is responsible for implementing ‘trigger’ or ‘acquire’ functionality of this device. - If there is an appreciable time between triggering the device and it being able to be read (via the - read()method) then this method is also responsible for arranging that the- StatusBaseobject returned by this method is notified when the device is ready to be read.- If there is no delay between triggering and being readable, then this method must return a - StatusBaseobject which is already completed.- Returns:
- status (StatusBase) – - StatusBaseobject which will be marked as complete when the device is ready to be read.
 
 - Attributes - composite_egu
- The composite engineering units (EGU) from all PseudoSingles 
 - concurrent
- If concurrent is set, motors will move concurrently (in parallel) 
 - configuration_attrs
 - connected
 - egu
- The engineering units (EGU) for positions 
 - high_limit
- All PseudoSingle high limits as a namedtuple 
 - hints
 - kind
 - limits
- All PseudoSingle limits as a namedtuple 
 - low_limit
- All PseudoSingle low limits as a namedtuple 
 - moving
 - position
- Pseudo motor position namedtuple 
 - pseudo_positioners
- Pseudo positioners instances in a namedtuple - Returns:
- positioner_instances (PseudoPosition) 
 
 - real_position
- Real motor position namedtuple 
 - real_positioners
- Real positioners instances in a namedtuple - Returns:
- positioner_instances (RealPosition) 
 
 - sequential
- If sequential is set, motors will move in the sequence they were defined in (i.e., in series) 
 - settle_time
- Amount of time to wait after moves to report status completion 
 - subscriptions: ClassVar[FrozenSet[str]] = frozenset({'_req_done', 'acq_done', 'done_moving', 'readback', 'start_moving'})
 - target
- Last commanded target positions 
 - timeout
- Amount of time to wait before to considering a motion as failed