pcdshub / pcdsdevices

Collection of Ophyd device subclasses for IOCs unique to LCLS PCDS.
https://pcdshub.github.io/pcdsdevices/
Other
5 stars 58 forks source link

ENH: SmarAct_improvements #1213

Open aberges-SLAC opened 5 months ago

aberges-SLAC commented 5 months ago

Current Behavior

in pcdsdevices.epics_motor.py there is currently only SmarActTipTilt for bundling open loop tip tilt stages as a single, bundled item. Now that we have the inductive encoded tip tilts, we need to do this by instancing encoded axes.

Additionally, in recent releases there are now diagnostic PVs for temperature :CHANTEMP and :MODTEMP which can be added to open & closed loop SmarActs. There are additional NVRAM setting PVs which are useful for closed-loop SmarAct stages as well.

Expected Behavior

Add SmarActEncodedTipTilt which can be used in a corresponded HAPPI entry for generating a Typhos screen. Add the NVRAM PVs as a hidden config for advanced users. Add the temperature PVs as read only EPICS signals to all SmarAct stage types.

Context / environment

New encoded tip-tilts (e.g. STT25.4iv-?? or STT50.8iv-??) deployed in MODS can be cumbersome for users as each axis is treated as its own motor in a separate window. Bundling them together like the open-loop tip-tilts would provide a better user experience.

Temperature monitoring PVs are useful for debugging/troubleshooting failed stages, and the NVRAM configurations are useful for

Steps to Reproduce (for bugs)

No bugs to reproduce.

Suggested Solution

Add a new class (SmarActEncodedTipTilt) to pcdsdevices.epic_motor.py and test on a real stage.

Add the following NVRAM PVs: log_scale_offset , log_scale_inv, def_range_min, def_range_max with their respective read/write PVs as released in ioc/common/smaract/R1.0.19

Add the temperature PVs added in ioc/common/smaract/R1.0.20