pcdsdevices.sqr1.SQR1
- class pcdsdevices.sqr1.SQR1(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)
- Ophyd device represents the entire square-one tri-sphere motion system. - It consists of multiple axes (X, Y, Z, rX, rY, rZ) that can be controlled individually or simultaneously.It aggregates instances of the - SQR1Axisclass for each axis and provides methods for multi-axis movement and stopping the motion.- Parameters:
- prefix (str, optional) – The PV prefix for all components of the device 
- name (str, keyword only) – The name of the device (as will be reported via read()` 
- kind (a member of the - Kind- IntEnum) – (or equivalent integer), optional Default is- Kind.normal. See- Kindfor options.
- read_attrs (sequence of attribute names) – DEPRECATED: the components to include in a normal reading (i.e., in - read())
- configuration_attrs (sequence of attribute names) – DEPRECATED: the components to be read less often (i.e., in - read_configuration()) and to adjust via- configure()
- parent (instance or None, optional) – The instance of the parent device, if applicable 
 
 - stop_signal
- An EPICS signal for stopping the motion of the entire tri-sphere motion system. - Type:
- ophyd.signal.EpicsSignal
 
 - Example
- >>> tri_sphere = SQR1(prefix="SQR1:", name="tri_sphere") >>> tri_sphere.multi_axis_move(x_sp=1.0, y_sp=2.0, z_sp=3.0) >>> tri_sphere.stop() 
 - Ophyd Device Components - Attribute - Class - Suffix - Docs - Kind - Notes - x - normal - y - normal - z - normal - rx - normal - ry - normal - rz - normal - actuate - EpicsSignal- :MOV- normal - stop_signal - EpicsSignal- :KILL- normal - Methods - 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.
 
 - 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. 
 - multi_axis_move(preset_pos: str | None = None, x_sp: float | None = None, y_sp: float | None = None, z_sp: float | None = None, rx_sp: float | None = None, ry_sp: float | None = None, rz_sp: float | None = None, wait: bool = True, timeout: float = 30.0)
- Move one or multiple axes simultaneously to specified positions. - Parameters:
- preset_pos (str or None, optional) – Move to a preset position labeled by the preset_pos string. 
- x_sp (float or None, optional) – The desired position for the X-axis.If None (default), the current position is used. 
- y_sp (float or None, optional) – The desired position for the Y-axis.If None (default), the current position is used. 
- z_sp (float or None, optional) – The desired position for the Z-axis.If None (default), the current position is used. 
- rx_sp (float or None, optional) – The desired position for the rX-axis.If None (default), the current position is used. 
- ry_sp (float or None, optional) – The desired position for the rY-axis.If None (default), the current position is used. 
- rz_sp (float or None, optional) – The desired position for the rZ-axis.If None (default), the current position is used. 
- wait (bool, optional) – If True (default), wait for motion to complete before returning. If False, return immediately after initiating the motion. 
- timeout (float, optional) – The maximum time (in seconds) to wait for the motion to complete. Default is 30.0 seconds. 
 
- Returns:
- status (MoveStatus) – status object that combins the motion of all axes. 
 - Notes - If any of axes fail to initiate motion, the overall status is False. - Example - >>> tri_sphere = SQR1(prefix="SQR1:", name="tri_sphere") >>> status = tri_sphere.multi_axis_move(x_sp=1.0, y_sp=2.0, z_sp=3.0) 
 - preset_list()
- return a list of preset positions. 
 - 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.
 - classmethod set_defaults(*, connection_timeout=10.0)
- Set class-wide defaults for device communications - This may be called only before any instances of Device are made. - This setting applies to the class it is called on and all its subclasses. For example, - >>> Device.set_defaults(...) - will apply to any Device subclass. - Parameters:
- connection_timeout (float, optional) – Time (seconds) allocated for establishing a connection with the IOC. 
- Raises:
- RuntimeError – If called after - EpicsSignalBasehas been instantiated for the first time.
 
 - stop()
- stop command for all axes. 
 - summary()
 - sync_setpoints()
- Synchronize setpoints of multiple axes with their respective readback values. - This method has to be called at tri-sphere motion system startup or to avoid moving uninitialized axes to zero unintentionally. 
 - 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 - actuate_value = 1
 - configuration_attrs
 - connected
 - connection_timeout
 - hints
 - kind
 - stop_value = 1