Pcdsdevices

Latest version: v8.7.0

Safety actively analyzes 715032 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 12

8.1.0

Device Updates
--------------
- Adds a `K2700` component to `IM3L0`.
- Reorders the `IM3L0` components to make the `K2700` and power meter adjacent in the UI. The Keithley 2700 here is also measuring the power meter, but with a higher resolution.
- Removes the `IM3L0` detailed screen in favor of an embedded `IM3L0_K2700` screen.

New Devices
-----------
- Adds the new (Keithley) `K2700` class and one-off `IM3L0_K2700` instance for the `IM3L0` Keithley that uses a pydm screen instead of the default detailed screen.
- Adds `XOffsetMirrorNoBend`: an `XOffsetMirror` that has no bender motors, like MR1L1.

Bugfixes
--------
- The TMO Spectrometer (SP1K4) now correctly has 6 attenuator states
instead of 7, which was causing a myriad of issues due to other
internal bugs.

Maintenance
-----------
- Fixes documentation building due to missing IPython dependency in
docs-extras.

Contributors
------------
- kaushikmalapati
- klauer
- nrwslac
- zllentz

8.0.0

API Breaks
----------
- Removes rarely-used TwinCAT state config PVs from `TwinCATStateConfigOne`
that are also being removed from the IOCs.
These are still available on the PLC itself.

- ``delta``
- ``accl``
- ``dccl``
- ``locked``
- ``valid``

- Removes lens motors from `TMOSpectrometer` (``SP1K4``).

Features
--------
- EPICS motors now support setattr on their ``limits`` attribute.
That is, you can do e.g. ``motor.limits = (0, 100)`` to set
the low limit to 0 and the high limit to 100.
- Adds a blank subclass of `PPM`, `IM3L0`, to allow for screens specific to this device that don't interfere with other `PPM` devices.
- Adds a ``IM3L0.detailed.ui`` template to add embedded Keithley readout screen to detailed screen for `IM3L0`.
`IM3L0` has a Keithley multimeter added to it for higher-resolution readouts of its power meter.
- ND (N-dimensional) TwinCAT states are now supported.
- Updates supported positioner typhos templates to use the new row widget,
``TyphosPositionerRowWidget``.

Device Updates
--------------
- Updates limits for `LaserTiming`, `LaserTimingCompensation`, and `LxtTtcExample` from +/-10us to +/-100us.
- Adds missing ``pump_state`` (``:STATE_RBV``) signal to `PTMPLC`.
- Adds chin guard RTDs to `FFMirrorZ` in `mirror.py`.
- `LODCM`: Adds the ``E1C`` pseudo-interface for moving only the first tower energy.
- `SmarAct`: Adds signals for performing axis calibration and checking calibration status.
- Adds laser destination 1 (LD1), where a diagnostics box is installed, to
the Laser Beam Transport System (BTPS) state configuration. Updates
overview and configuration screens to display LD1.
- ``TwinCATInOutPositioner`` by default now uses 2 states as its name implies
(excluding the "unknown" transition sate), with one representing the "out"
state and one representing the "in" state.
- `XOffsetMirrorSwitch`: adds ``cool_flow1``, ``cool_flow2``, and ``cool_press``.
- `XOffsetMirrorSwitch` gets component reordering.
- Adds TIXEL Manipulator motors to `LAMPMagneticBottle`.
- Adds twincat states and the ST3K4 automation switch to the SXR test absorber.
This device is ``pcdsdevices.sxr_test_absorber.SxrTestAbsorber`` and is named ST1K4.
- Includes the Fresnel Zone Plate (FZP) 3D states on the `TMOSpectrometer` device.
- `TMOSpectrometer` (``SP1K4``): adds two new motors for solid attenuator and one for thorlabs lens x.
- Add the following signals to `BeckhoffAxis`:
- ``enc_count``: the raw encoder count.
- ``pos_diff``: the distance between the readback and trajectory setpoint.
- ``hardware_enable``: an indicator for hardware enable signals, such as STO buttons.
- Added new PVS to `OpticsPitchNotepad` for storing the ``MR2L3`` channel-cut monochromator (CCM) pitch position setpoints for its two coatings.

New Devices
-----------
- `FDQ` flow meter implemented in ``analog_signals.py``.
- `PPMCOOL` added to ``pim.py``.
- `KBOMirrorChin` added to ``mirror.py``
- `SQR1Axis`: A class representing a single axis of the tri-sphere motion system. It inherits
from PVPositionerIsClose and includes attributes for setpoint, readback, actuation, and
stopping the motion.
- `SQR1`: A class representing the entire tri-sphere motion system. It is a Device that
aggregates multiple SQR1Axis instances for each axis. It also includes methods for
multi-axis movement and stopping the motion.
- Includes example devices and components that correspond to
`lcls-plc-example-motion <https://github.com/pcdshub/lcls-plc-example-motion>`_.
- Adds `BeckhoffAxisEPS`, which has the new-style EPS PVs on its directional and power enables.
These correspond to structured EPS logic on the PLC that can be inspected from higher level applications.

Bugfixes
--------
- `KBOMirrorHE` in `mirror.py` only has 1 flow sensor per mirror, so remove one.
- Fixes an issue where the generic `Motor` factory function would not recognize devices with
``MCS2`` in the PV name. These are now recognized as `SmarAct` devices.

Maintenance
-----------
- Updates `BtpsState` comments and logic to help guide future port additions.
- TwinCAT state devices now properly report that their ``state_velo``
should be visualized with 3 decimal places instead of with 0.
This caused no issues in hutch-python and was patched as a bug in
typhos, and is done for completeness here.

Contributors
------------
- baljamal
- jozamudi
- kaushikmalapati
- klauer
- nrwslac
- slactjohnson
- tongju12
- vespos
- zllentz

7.4.3

Bugfixes
--------
- Fix typo in zoom motor prefix for PIM devices.

Maintenance
-----------
- Fix conda recipe test-requires.
- Remove sqlalchemy and xraydb pins from requirements.txt.
These were pinned because the most recent versions of these packages
were previously incompatible with each other. This has since been resolved.

Contributors
------------
- tangkong
- vespos
- zllentz

7.4.2

Device Updates
--------------
- ``.screen()`` and ``.post_elog_status()`` methods were added to the
BaseInterface whitelist for tab completion.

Contributors
------------
- klauer

7.4.1

Device Updates
--------------
- QminiSpectrometer: Added some new PVs and modified others related to recent
IOC changes. Embedded UI was updated to reflect this.

Maintenance
-----------
- unpin pyqt, with the hope of supporting py3.11

Contributors
------------
- slactjohnson
- tangkong

7.4.0

Device Updates
--------------
- `IMS` class:

- Added special parameter manager/questionnaire handling.
On load from the questionnaire, grab questionnaire stage identities
and apply them to the parameter manager for the given PV.
- Added functions that allow the user to see the given configuration
parameters or the current parameters of that base PV.

- See `IMS.get_configuration_values`
- See `IMS.get_current_values`

- Return the output of `IMS.diff_configuration` as a ``PrettyTable``
instead of as a dictionary, making it much easier to understand.

- Updated `HXRSpectrometer` filter wheel with its state PV.
Previously, only the raw motor device was available.

Contributors
------------
- spenc333
- tangkong
- zllentz

Page 2 of 12

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.