Pcdsdevices

Latest version: v8.4.0

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

Scan your dependencies

Page 4 of 11

5.2.0

Features
--------
- Added a post_elog_status method to the ``BaseInterface`` class, which posts to the registered primary elog if it exists.
- Added a function for posting ophyd object status (and lists of objects) to the ELog as html.
- Added new ``AggregateSignal`` variant ``MultiDerivedSignal``. With a list of signal names and a calculation function, it is now possible to create a new signal derived from the values of the provided signals. For example, if a hutch has many temperature sensors - each with their own corresponding ``EpicsSignal`` instance - a signal that shows the maximum value from all of those temperatures would be easy to implement.
- Added the scale keyword argument to tweak() method, allowing the user to pick the initial step size.

Device Updates
--------------
- Added the Y axis to the ``KBOMirror`` status printout
- TwinCAT state devices now have a top-level "state_velo" summary signal. This can be used to view the highest speed of all the configured state speeds, and it can also be used to do a bulk edit. These are stored per state destination in the IOC.
- Added a biological parent attribute to ``GroupDevice``, for tracking parents without alerting stage() methods
- Added the current monitoring PV to ``pcdsdevices.pump.PTMPLC``.
- Allow for user offsets to TMO Spectrometer motors.
- Commented out the GasNeedleTheta motor for 3/22 LAMPMBES configuration.

New Devices
-----------
- Added ``PCDSHDF5BlueskyTriggerable``, a variant of area detector specialized for doing ``bluesky`` scans.
- Added the ``KBOMirrorHE`` class to be used with KBO mirrors with cooling, like MR2K4.
- Added the laser beam transport protection system device classes and related screens.
- Added the Dg /DelayGenerator class to handle SRS645 delay generator
- Added the ``MMC100`` class, for motors controlled by Micronix MMC100 controllers
- Added a class for the HXR Single Shot Spectrometer.
- Add ``VRCDA``, a dual-acting valve class.

Bugfixes
--------
- Fixed an issue in sim.slow_motor classes where threading behavior could fail.
- State readbacks from preset positions are now correct.
- Fixed a race condition on initialization of new ``EpicsSignalEditMD`` and ``EpicsSignalROEditMD``. (963, 978)
- Fix an issue where mirror devices had overfiltered tab completion results.

Maintenance
-----------
- Removed the instantiation of a status object at motor startup to help improve the performance of loading large sessions. This object was not strictly needed.
- Removed the deprecation warning from ``pcdsdevices.utils`` import.
- Updated the docstrings in the valve submodule with detailed descriptions.

Contributors
------------
- klauer
- mbosum
- nrwslac
- spenc333
- vespos
- tangkong
- zrylettc
- zllentz

5.1.0

Features
--------
- Adds a new script, make_ophyd_device.py, that helps with autogeneration of
an ophyd device class from an IOC db file. Includes a helper script.
- State names are no longer case-sensitive.

Device Updates
--------------
- Add pmgr methods to the IMS class's tab whitelist.

New Devices
-----------
- SliceDhvChannel: a device for controlling a single channel on a Vescent
Photonics Slice-DHV controller.
- SliceDhvController: a device for controlling the controller of a Vescent
Photonics Slice-DHV controller.
- SliceDhv: a top-level device for controlling a complete 2-channel Vescent
Photonics Slice-DHV controller.
- QadcBase: Base class for qadc digitizers
- Qadc: Class for FMC126 (old) digitizers
- QadcSparsification: Class for holding FMC134 sparsification PVs.
- Qadc134: Class for FMC134 (new) digitizers
- Wave8V2Simple: A simple class for the LCLS-II Wave8. Provides waveforms
and acquisition start/stop buttons.
- Wave8V2: A complete top-level class for the LCLS-II Wave8. Includes many
configuration and diagnostic PVs, in addition to what is provided by
Wave8V2Simple.
- DiconSwitch: new device class for the DiCon fiber switch.
- CycleRfofRx: class for Cycle RFoF receiver.
- CycleRfofTx: class for Cycle RFoF transmitter.
- Agilent53210A: Device for controlling frequency counters by the same name.
- Adds a new class to interface with the LAMP motion configuration for LV17.

Bugfixes
--------
- EpicsSignalEditMD will be more lenient for cases where we have unset
metadata strings ("Invalid") from TwinCAT. This fixes recent issues
involving terminal spam and failure to update enum strings for
devices like the solid attenuators.
- EpicsSignalEditMD will not send metadata updates until all composite
signals have connected and updated us with their values.
- Fix SL1K2 target count (2 states + out instead of default).
- Fixed mr1l0_homs and mr2l0_homs state counts in TwinCATMirrorStripe.
This should be set to 2 for mr1l0 (B4C, B4C/Ni) and mr2l0 (B4C, Ni).

Maintenance
-----------
- ``detailed_tree.ui`` was vendored from typhos. The default attenuator screens
AT2L0, AT1K4, and AT2K2 will now default to ``detailed_tree.ui``.
- HelpfulIntEnum has been vendored from pcdsutils. This will be
switched to an import in a future release.

Contributors
------------
- mbosum
- klauer
- slactjohnson
- tangkong
- zllentz

5.0.2

Bugfixes
--------
- Fix issue where EpicsSignalEditMD could log enum error messages
for signals that did not edit their enum metadata.

Contributors
------------
- zllentz

5.0.1

Bugfixes
--------
- CCM status representation fixed in certain situations. (908)
- Exceptions will no longer be raised when generating device status
representations. (909)

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

5.0.0

API Changes
-----------
- ``TwinCATStateConfigAll`` has been removed. This was considered an
internal API.
- ``isum`` components have been renamed to ``sum`` in IPM detector classes.
- The motor components for PIM classes have been shortened by removing
``_motor`` from their names (e.g. ``zoom_motor`` is now ``zoom``).
- Switch the target PVs for ``BeamEnergyRequest`` from e.g. "XPP:USR:MCC:EPHOT" to
e.g. "XPP:USR:MCC:EPHOT:SET1", "RIX:USR:MCC:EPHOTK:SET1".

Features
--------
- ``EpicsSignalEditMD`` and ``EpicsSignalROEditMD`` now allow for overriding of
enumeration strings (``enum_strs``) by way of a static list of strings
(``enum_strs`` kwarg) or a list of signal attribute names (``enum_attrs``
kwarg).
- Update ``TwinCATStatePositioner`` to have a configurable and variable number
of state configuration PVs. These are the structures that allow you to
check and change state setpoints, deltas, velocities, etc. This is
implemented through the new ``TwinCATStateConfigDynamic`` class.
- Increase the maximum number of connected state configuration records to
match the current motion library limit (9)

Device Updates
--------------
- Using the new ``TwinCATStateConfigDynamic`` mechanisms and the ``UpdateComponent``,
update the following classes to contain exactly the correct number of
twincat configuration states in their component state records.
Note that the number of states here does not include the "Unknown"
or "Moving" state associated with index 0. A device with n states will have
typically have 1 out state and n-1 target states by this count, and the
EPICS record will have n+1 possible enum values.
- ``ArrivalTimeMonitor`` (6)
- ``AttenuatorSXR_Ladder`` (9)
- ``AT2L0`` (2)
- ``FEESolidAttenuatorBlade`` (2)
- ``LaserInCoupling`` (2)
- ``PPM`` (4)
- ``ReflaserL2SI`` (2)
- ``WavefrontSensorTarget`` (6)
- ``XPIM`` (4)
- The default ``theta0`` values for CCM objects has been changed from
``14.9792`` to ``15.1027``.
- ``IPM`` objects now have short aliases for their motors (`ty`, `dx`, `dy`).
- Reorganized the sample delivery ``Selector`` class to be composed of two
``Sensiron`` devices instead of a flat collection of PVs.
- In ``VGC_2S``, allow for the user to change the ``at_vac`` setpoint value
for upstream and downstream gauges separately.
- Add the ``user_enable`` signal (``bUserEnable``) to the ``BeckhoffAxisPLC`` class.
This is a signal that allows the user to unilaterally disable a
running motor's power. When enabled, it is up to the controller
whether or not to actually power the motor, but when disabled the
power will be shut off.
- Add the ability for ``BeamEnergyRequest`` to write to PVs for either
the K or the L line and for either bunch 1 or bunch 2 in two bunch mode.

New Devices
-----------
- Add ``TM2K2``, a variant of the ``ArrivalTimeMonitor`` class that has an extra
state (7). The real ``TM2K2`` has one extra target holder compared to the
standard ``ArrivalTimeMonitor``.
- ``BeckhoffAxis_Pre140`` has been added to support versions of ``lcls-twincat-motion``
prior to ``v1.4.0``. This has been aliased to ``OldBeckhoffAxis`` for backcompat.
- Created ``Bronkhorst`` and ``Sensiron`` flow meter devices for sample delivery.
- Added the ``crix_motion.VLSOptics`` Device, which contains calculated
axes for the VLS optical components. The rotation state of these
crystals is approximated by a best-fit 2nd order polynomial.
- Add ``VRCClsLS``, a class for gate valves with control and closed limit switch readback.

Bugfixes
--------
- Fix subtle bugs related to the ``UpdateComponent`` and using copy vs deepcopy.
This was needed to make the dynamic state classes easy to customize.
- Add an extra error state in ``UpdateComponent`` for when you've made a typo
in your component name. Previously this would give a confusing ``NameError``.
- In the ``LODCM`` "inverse" calculations, return a NaN energy instead of
raising an exception when there is a problem determining the crystal
orientation. This prevents the calculated value from going stale when
it has become invalid, and it prevents logger spam when this is
called in the pseudopositioner update position callback.

Maintenance
-----------
- Add various missing docstrings and type annotations.
- Tab whitelists have been cut down to make things simpler for non-expert users.

Contributors
------------
- cymel123
- jyin999
- klauer
- mbosum
- zllentz
- zrylettc

4.9.0

Device Updates
--------------
- Changed pv names for flow cell xyz-theta

New Devices
-----------
- LAMPFlowCell class for new 4 axis flow cell manipulator replacing cVMI on LAMP.

Bugfixes
--------
- All stop methods now use the ophyd-defined signature, including a
keyword-only ``success`` boolean.
- Test suite utility ``find_all_classes`` will no longer report test suite
classes.

Maintenance
-----------
- Removed prototype-grade documentation helpers in favor of those in ophyd.docs
- Added similar ``find_all_callables`` for the purposes of documentation and
testing.
- Added documentation helper for auto-generating ``docs/source/api.rst``. This
should be run when devices are added, removed, or moved.
- Docstring fixup on CCM class.
- Imports changed to relative in test suite.
- Miscellaneous floating point comparison fixes for test suite.
- Fixed CCM test failure when run individually or quickly (failure when run
less than 10 seconds after Python starts up)
- Linux-only ``test_presets`` now skips macOS as well.

Contributors
------------
- Mbosum
- klauer

Page 4 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.