Pcdsdevices

Latest version: v8.4.0

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

Scan your dependencies

Page 1 of 11

8.4.0

Compatibility Notes
-------------------
- If your SmarAct release is < R1.0.20, then the EPICS signals will timeout on the new PVs. Please make sure to update your children IOCs.

Features
--------
- Adds `ioc_chan_num` and `ioc_card_num` to the `EnvironmentalMonitor` happi container.
- Adds the "embedded" file for `BeckhoffAxisEPSCustom` that allows for typhos screens to open using the compact controls.
- Adds a convenience `re_arg` decorator to redefine and deprecate a function's args in a backwards-compatible way in the `pcdsdevices.utils` submodule.

Device Updates
--------------
- `TprTrigger`: Update numerous PVs to "config", add TCMPL PV as the `operation` signal.
- Adds the following temperature monitoring signals to `SmarAct` and `SmarActOpenLoop`:

- `channel_temp`
- `module_temp`
- Adds the following hidden config PVs to the (encoded) `SmarAct` device class:

- `log_scale_offset`
- `log_scale_inv`
- `def_range_min`
- `def_range_max`
- `dist_code_inv`
- Adds the following missing epics signals to `MPODApalisModule`:

- `supply_status`
- `module_status`
- `fine_adjustment_status`
- `input_status`
- `live_insertion_status`
- `safety_loop_status`
- `kill`

- Adds an `energy_with_acr_status` instance to CCM
- Updates `BeamEnergyRequest` argument from "bunch" to "pv_index" to better reflect the broader use cases. A backward compatible warning is now returned if the old bunch kwarg is used.
- Updates "atol" in `BeamEnergyRequestNoWait` to 0.5 (was 5). This is needed for self-seeding.
- `XOffsetMirrorStateCool` and `XOffsetMirrorNoBend` gets `variable_cool` for controlling 24V solenoid valve.

New Devices
-----------
- Adds `li2k4` as `TMOLaserInCouplingTwoDimension`, with the x and y motors supported (no states yet).
- Adds `Lcls2LaserTiming`: New class supporting control of laser timing for the OPCPA laser locker system.
- Adds `SmarActEncodedTipTilt` to the `pcdsdevices.epics_motor` submodule.
- Adds `SmarPod` and related devices in new `pcdsdevices.smarpod` submodule.
- Adds a `CCMEnergyWithACRStatus` class to the `pcdsdevices.ccm` submodule, a new variant of `CCMEnergy` that waits for ACR status before marking moves as complete.

Bugfixes
--------
- Previously, calculate_on_get/put functions used in `MultiDerivedSignal` s in `pcdsdevices.tpr` classes were not accessing their attrs correctly and would throw KeyErrors when called. Specifically, the name of the attr was being used as the key for items dictionary instead of the actual signal object
- Also added unit tests for these `MultiDerivedSignal` s in the `pcdsdevices.tpr` submodule.
- Modify `sp1k4` Attenuator RTD class (`TMOSpectrometer`) to match prefix for `sp1k4` group device.

Contributors
------------
- aberges-SLAC
- baljamal
- jozamudi
- KaushikMalapati
- nrwslac
- patoppermann
- sainyamn
- slactjohnson
- tongju12
- vespos

8.3.0

Features
--------
- Enabled the use of custom EPS screens for Beckhoff axes via the `BeckhoffAxisEPSCustom` class in `pcdsdevices.epics_motor` and the accompanying ui template file.

Device Updates
--------------
- Added ``flow_meter`` to `ArrivalTimeMonitor` in `pcdsdevices.atm`
- Added ``flow_meter`` to `AttenuatorSXR_Ladder` in `pcdsdevices.attenuator`
- Added ``flow_meter`` to `AttenuatorSXR_LadderTwoBladeLBD` in `pcdsdevices.attenuator`
- Added `WaveFrontSensorTargetCool` and `WaveFrontSensorTargetFDQ` to `pcdsdevices.device_types`
- Added flow sensor components to `FFMirror` in `pcdsdevices.mirror`
- Added piezo pitch motors to the `ExitSlits` in `pcdsdevices.slits`

New Devices
-----------
- Added `PhotonCollimator` to readout `flow_switch` in new module `pcdsdevices.pc`
- Added `WaveFrontSensorTargetFDQ` to read out the `flow_meter` in `pcdsdevices.wfs`
- Added `MFXATM` to `pcdsdevices.atm` for the unique atm unit in the MFX hutch.

Bugfixes
--------
- Fixed an issue where `AT2L0.clear_errors` would not run properly.

Maintenance
-----------
- Added missing regression tests for `AT2L0`.
- Updated versions of pre-commit checks to latest and fix new flake8 errors.

Contributors
------------
- ghalym
- jozamudi
- nrwslac
- zllentz

8.2.0

API Breaks
----------
- Moved `K2700` and `IM3L0_K2700` to `keithley` submodule. This is not expected to impact any known user code.

Features
--------
- Adds attenuator RTD temperatures to sp1k4 (`TMOSpectrometer`), for display in GUI.
- pcdsdevices now has a `digital_signals` module for simple digital io.
- Added `PVPositionerNoInterrupt`, a pv positioner base class whose moves
cannot be interrupted (and will loudly complain about any such attempts).

Device Updates
--------------
- added `J120K` to `SxrTestAbsorber`, `XPIM`, `IM2K0`, `PowerSlits`
- Restructured `Qadc134` with new `Qadc134Common` and `QadcLcls1Timing` parent
classes.

New Devices
-----------
- `PPMCoolSwitch` ppms with cooling switch not a meter.
- `WaveFrontSensorTargetCool` WaveFrontSensors with a cooling switch.
- `J120K` a device class for a cooling switch.
- Added `K6514`, `GMD` (previously unimplemented), `GMDPreAmp`, and `SXRGasAtt`, taken from
``/cds/group/pcds/pyps/apps/hutch-python/tmo/tmo/tmo_beamline_control.py`` with some modifications
- `Qadc134Lcls2`: A class for LCLS-II timing versions of the FMC134
- New `TprTrigger` and `TprMotor` device classes in `tpr` submodule,
analogous to `Trigger` and `EvrMotor` from `evr` submodule

Bugfixes
--------
- LCLSI attenuator classes (generated from the `Attenuator` factory function)
will now raise a much clearer error for when they cannot interrupt a
previous move, without trying (and failing) to interrupt the previous move.
- Fix an issue where `BeckhoffAxis` typhos screens would overreport
known false alarm errors.

Contributors
------------
- KaushikMalapati
- nrwslac
- slactjohnson
- tongju12
- zllentz

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

Page 1 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.