Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SmarAct UI overhaul #1320

Merged
merged 24 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
43147ca
ENH: Add a SmarAct detailed screen to customize to SmarAct signals
aberges-SLAC Jan 24, 2025
6fbb854
ENH: Add a SmarActTipTilt embedded screen for simple open loop control
aberges-SLAC Jan 24, 2025
a27dff4
ENH: add hybrid pyqt script for SmarActTipTilt embedded screen to mim…
aberges-SLAC Jan 24, 2025
d93860a
MNT: Try to fix expanded panel placement and refactor the resize func…
aberges-SLAC Jan 29, 2025
86f5aac
ENH: Fix object names and formatting for controls tabs
aberges-SLAC Jan 29, 2025
315cd1f
ENH: Add hybrid pyqt script to handle SmarAct closed loop UI and incl…
aberges-SLAC Jan 29, 2025
a70c0a9
Merge branch 'pcdshub:master' into SmarAct_ui_overhaul
aberges-SLAC Jan 29, 2025
f327052
DOC: add release notes
aberges-SLAC Jan 29, 2025
38ed48d
MNT: fix some ui loading calls for both screens and resizing conditio…
aberges-SLAC Jan 31, 2025
a358576
ENH: Add long_names for SmarAct
aberges-SLAC Feb 12, 2025
0df115a
ENH: Remove ${name} macros from channels, will be handled in .py script
aberges-SLAC Feb 12, 2025
2351005
ENH: Use long_names to simplify and refactor. Add another pico signal…
aberges-SLAC Feb 12, 2025
f8d0b19
MNT: Rename LSCO and LSCI widgets to be consistent with epics_motor.d…
aberges-SLAC Feb 12, 2025
d94b4cf
MNT: Fix tab priority
aberges-SLAC Feb 12, 2025
fc706f9
MNT: make channel and module temp widget object names consistent with…
aberges-SLAC Feb 12, 2025
fcd710d
MNT: More naming convention fixes
aberges-SLAC Feb 12, 2025
8e032e7
MNT: EVEN MORE naming convention compliance
aberges-SLAC Feb 12, 2025
24b1d70
MNT: Last naming convention fix I swear
aberges-SLAC Feb 12, 2025
323d4e3
ENH: Add tooltip helpers and fix some object names
aberges-SLAC Feb 12, 2025
f30adb7
DOC: update release notes doc
aberges-SLAC Feb 12, 2025
cdd6188
Update docs/source/upcoming_release_notes/1275-SmarAct_UI_Overhaul.rst
aberges-SLAC Feb 14, 2025
77e7d92
MNT: Clean up ui_filename call and move pico timer to rightful place
aberges-SLAC Feb 14, 2025
14baba1
MNT: Clean up ui_filename call
aberges-SLAC Feb 14, 2025
f799099
Merge branch 'pcdshub:master' into SmarAct_ui_overhaul
aberges-SLAC Feb 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions docs/source/upcoming_release_notes/1275-SmarAct_UI_Overhaul.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
1275 SmarAct UI Overhaul
#################

API Breaks
----------
- N/A

Library Features
----------------
- Added SmarAct.detailed.ui screen
- Accompanying SmarAct.detailed.py screen to handle closed loop and picoscale
- Added SmarActTipTilt.embedded ui and py screens for operational support
- Designed and implemented huge improvements for all the SmarAct typhos screens, a monumental win for laser folk.

Device Features
---------------
- Added long_name fields to various SmarAct classes in pcsdevices.epics_motor

New Devices
-----------
- N/A

Bugfixes
--------
- N/A

Maintenance
-----------
- N/A

Contributors
------------
- aberges-SLAC
61 changes: 61 additions & 0 deletions pcdsdevices/epics_motor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1562,6 +1562,20 @@ class SmarActOpenLoop(Device):
module_temp = Cpt(EpicsSignalRO, ':MODTEMP', kind='normal',
doc='Temperature of the MCS2 Module in the rack')

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Long name shenanigans
self.step_voltage.long_name = 'Step Voltage'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

side note: the long_name ophyd PR churned a little bit recently (rebase?) so these are pretty safe for the future.

self.step_freq.long_name = 'Step Frequency'
self.jog_step_size.long_name = 'Jog Step Size'
self.jog_fwd.long_name = 'Jog Forward'
self.jog_rev.long_name = 'Jog Backward'
self.total_step_count.long_name = 'Total Step Count'
self.step_clear_cmd.long_name = 'Clear Step Count'
self.scan_move.long_name = 'Scan Voltage'
self.channel_temp.long_name = 'Channel Temp. (°C)'
self.module_temp.long_name = 'Module Temp. (°C)'


class SmarActTipTilt(Device):
"""
Expand Down Expand Up @@ -1652,6 +1666,41 @@ class SmarAct(EpicsMotorInterface):
# useful
open_loop = Cpt(SmarActOpenLoop, '', kind='omitted')

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Long name shenanigans
# Motor Record long name overrides
self.velocity.long_name = 'Velocity'
self.velocity_base.long_name = 'Velocity Min'
self.velocity_max.long_name = 'Velocity Max'
self.acceleration.long_name = 'Acceleration'
self.motor_stop.long_name = 'Stop Motor'
self.motor_is_moving.long_name = 'Actively Moving'
self.dial_position.long_name = 'Dial Position'
self.direction_of_travel.long_name = 'Direction of Travel'
self.home_forward.long_name = 'Home Forward'
self.home_reverse.long_name = 'Home Backward'
self.low_limit_switch.long_name = 'Low Limit Switch'
self.high_limit_switch.long_name = 'High Limit Switch'
self.high_limit_travel.long_name = 'High Limit Travel'
self.low_limit_travel.long_name = 'Low Limit Travel'
self.user_setpoint.long_name = 'Setpoint'
self.user_offset.long_name = 'User Offset'
self.user_offset_dir.long_name = 'User Offset Direction'
self.motor_egu.long_name = 'EGU'
self.description.long_name = 'Description'
# SmarAct specific long names
self.pos_type.long_name = 'Positioner Type'
self.needs_calib.long_name = 'Needs Calibration?'
self.do_calib.long_name = 'Calibrate'
self.log_scale_offset.long_name = 'Logical Scale Offset'
self.def_range_min.long_name = 'Default Range Min.'
self.def_range_max.long_name = 'Default Range Max'
self.log_scale_inv.long_name = 'Logical Scale Inversion'
self.dist_code_inv.long_name = 'Distance Code Inversion'
self.channel_temp.long_name = 'Channel Temp. (°C)'
self.module_temp.long_name = 'Module Temp. (°C)'


class SmarActEncodedTipTilt(Device):
"""
Expand Down Expand Up @@ -1718,6 +1767,18 @@ class SmarActPicoscale(SmarAct):
def __init__(self, prefix, *, ioc_base, **kwargs):
self._ioc_base = ioc_base
super().__init__(prefix, **kwargs)
self.pico_adj_done.long_name = 'Auto Adjustment Done?'
self.pico_adj_state.long_name = 'Auto Adjustment State'
self.pico_curr_adj_prog.long_name = 'Auto Adjustment Progress'
self.pico_enable.long_name = 'PicoScale Enabled?'
self.pico_exists.long_name = 'PicoScale Exists?'
self.pico_name.long_name = 'PicoScale Name'
self.pico_present.long_name = 'PicoScale Present?'
self.pico_sig_qual.long_name = 'Signal Quality'
self.pico_valid.long_name = 'PicoScale Valid?'
self.pico_stable.long_name = 'PicoScale Stable?'
self.pico_wmax.long_name = 'Working distance (max)'
self.pico_wmin.long_name = 'Working distance (min)'


class PI_M824(PVPositionerIsClose):
Expand Down
Loading
Loading