Pcdsdevices

Latest version: v8.6.0

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

Scan your dependencies

Page 1 of 12

8.6.0

Device Features
---------------
- Lcls2LaserTiming: Reduce timeout on moves from 2 seconds to 0.2 seconds
- Added HI_DI PV to PIPPLC class to show high voltage input for pump diagnostics

Bugfixes
--------
- pos_ao PV in VCN class no longer reads 'connection timed out' in typhos screens

Maintenance
-----------
- Adjusted docs template headers to make them more intuitive
- Switch build recipes to rely on lightpath >= 1.0.5 (and lightpath-base in conda)
to avoid unnecessary ui dependencies.

Contributors
------------
- jozamudi
- slactjohnson
- tangkong
- zllentz

8.5.0

Features
--------
- `MstaEnum`: Enum describing the motor record MSTA bits.
- `NewportMstaEnum`: Enum describing the special Newport motor record MSTA bits.
- `IMSMstaEnum`: Enum describing the special IMS motor record MSTA bits.

Device Updates
--------------
- Includes new PV RBVs for Picoscale at motor level: `pico_present`, `pico_exists`, `pico_sig_qual`, `pico_enable`.
- Includes new PV RBVs for Picoscale at controller level: `pico_stable`, `pico_name`, `pico_wmin` (working distance min), `pico_wmax` (working distance max).
- Add state mover to LI2K4.
- Added ``RST_SW`` pv to Ebara EVA pumps. This PV is used to reset alarm errors.
- Added ``PI_M824`` motor class for MEC hexapod motors.
- `TprTrigger`: change delay_setpoint and width_setpoint to kind=config.
- `TprTrigger`: Make LCLS2 timing the default timing_mode.
- `XOffsetMirrorNoBend` in mirror.py gets 3 new cooling readout components.
- `Mono` in spectrometer.py gets 4 new RTD components and re-named RTDs 1-8. Also, Made cooling component names consistent with mirror cooling component names.
- ST1K4 can move freely without automode.
- `EpicsMotorInterface`: Add a "raw" MSTA value, as well as the interpreted
values as a dictionary. Adds a "homed" property based on this. Uses a "generic"
MstaEnum class.
- `Newport`: Add a "raw" MSTA value, as well as the interpreted values as a
dictionary. Adds a "homed" property based on this. Uses the `NewportMstaEnum`
class.
- `IMS`: Add a "raw" MSTA value, as well as the interpreted values as a
dictionary. Adds a "homed" property based on this. Uses the `IMSMstaEnum`
class.
- `btps.BtpsState`: add LS3, LS4, and LS6
- `btps.DestinationConfig`: add LS3, LS4, and LS6
- `btms_config.SourcePosition`: add LS3, LS4, and LS6
- `btms_config.valid_sources`: add LS3, LS4, and LS6
- UI file updates to support above device updates
- `sqr1`: overwrite SQR1Axis set method to avoid waiting and setpoints synchronization.
- `FFMirrorZ` updated to read out flow sensors for ``MR4K4`` and ``MR5K4``.
- `lasers.btms_config.SourcePosition`: Add a new method to get the happi device
name, turn the PV name into a dictionary rather than generating from bay
number.
- `IMS`: Move VBAS and VMAX signals into EpicsMotorInterface parent class.
- `EpicsMotorInterface`: Update tab_whitelist for ``.VBAS`` and ``.VMAX`` signals.

New Devices
-----------
- added `SmarActPicoscale` subclass of SmarAct.
- adds `MirrorStripe2D4P` for coating states with 2 dimensional position state movers with PMPS.
- adds `XOffsetMirror2D4PState` for OffsetMirrors with 2D 4Position coating states.
- adding new device PA1K4-PF
- Adds `OnePvMotor`: a pv_positioner that simply writes to and reads from a single PV.
This could be useful if you encounter a reason to use the motor interface on
non-motor PVs.
- `XOffsetMirrorStateCoolNoBend` is added to support ``MR1K4``.
- `VonHamos6Crystal`: New MFX 6-crystals spectrometer running on plc-mfx-motion. Contains 6 crystals motions + 3 translations and 1 rotation for the base.
- `VonHamosCrystal_2`: interface to the motor stack of a single crystal in the spectrometer.

Bugfixes
--------
- Overwrite ``velocity_max`` and ``velocity_base`` signals for ``Newport``
class to fix a bug that prevented these motors from moving.
- `BtpsState``: Fix mis-match of LS3 and LS4 PVs.
- Prevent some devices from creating threads at high frequency when
trying to get the lightpath state. These devices classes include
`XOffsetMirrorXYState`, `AttenuatorSXR_Ladder`,
`AttenuatorSXR_LadderTwoBladeLBD`, `AT2L0`, `XCSLODCM`, and `XPPLODCM`
- `SmarActEncodedTipTilt``: Fix typo in tilt axis instantiation.
- Replace the broken motor "disabled" (.DISP) typhos widget with a bitmask toggle button.
- Properly fill the `sys` keyword argument in `TprTrigger.ns_delay_scan`
- `btms_config.DestinationPosition`: fix description of RIX IP3
- `btms_config.valid_destinations`: fix description of RIX IP3
- Implement a workaround for an issue where `Lcls2LaserTiming` could not be scanned
with small scan steps.
- Remove two targets from the tmo spectrometer's foil attenuator.
These were removed from the PLC/IOC.
This fixes an issue where the state device was not moveable.
- Fix an issue with classes like `IMS` and `Newport` where calling
``set_current_position`` on a position outside of the user limits
would fail, rather than change the limits to support the new
offsets.

Maintenance
-----------
- Allow motion uis to expand vertically once this functionality gets added to typhos.
- Use sympy instead of pint for unit conversions for simpler
maintainability.
- Various CI tweaks due to numpy 2.0's chaos.
- Modifies entrypoint tests to be forward-compatible with py3.12 entrypoint API.
- Unpins numpy in CI, build incompatibility has been fixed upstream.

Contributors
------------
- aberges-SLAC
- baljamal
- ghalym
- jozamudi
- nrwslac
- rcjwoods
- slactjohnson
- tangkong
- tongju12
- vespos
- zllentz

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

Page 1 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.